Struct sap_scripting::SAPComInstance
source · pub struct SAPComInstance;
Expand description
An instance of a COM session. This should be kept whilst a connection to SAP is used.
Implementations§
source§impl SAPComInstance
impl SAPComInstance
sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Initialise the COM environment.
Examples found in repository?
examples/simple.rs (line 32)
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
fn main() -> Result<()> {
// Initialise the environment.
let com_instance = SAPComInstance::new()?;
eprintln!("Got COM instance");
let wrapper = com_instance.sap_wrapper()?;
eprintln!("Got wrapper");
let engine = wrapper.scripting_engine()?;
eprintln!("Got scripting engine");
let connection = engine.get_connection(0)?;
eprintln!("Got connection");
let session = connection.children(0)?;
eprintln!("Got session");
if let SAPComponent::GuiMainWindow(wnd) = session.find_by_id("wnd[0]")? {
wnd.maximize().unwrap();
if let SAPComponent::GuiOkCodeField(tbox_comp) =
session.find_by_id("wnd[0]/tbar[0]/okcd")?
{
tbox_comp.set_text("/nfpl9").unwrap();
wnd.send_vkey(0).unwrap();
} else {
panic!("no ok code field!");
}
} else {
panic!("no window!");
}
Ok(())
}
sourcepub fn sap_wrapper(&self) -> Result<SAPWrapper>
pub fn sap_wrapper(&self) -> Result<SAPWrapper>
Create an instance of the SAP wrapper
Examples found in repository?
examples/simple.rs (line 34)
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
fn main() -> Result<()> {
// Initialise the environment.
let com_instance = SAPComInstance::new()?;
eprintln!("Got COM instance");
let wrapper = com_instance.sap_wrapper()?;
eprintln!("Got wrapper");
let engine = wrapper.scripting_engine()?;
eprintln!("Got scripting engine");
let connection = engine.get_connection(0)?;
eprintln!("Got connection");
let session = connection.children(0)?;
eprintln!("Got session");
if let SAPComponent::GuiMainWindow(wnd) = session.find_by_id("wnd[0]")? {
wnd.maximize().unwrap();
if let SAPComponent::GuiOkCodeField(tbox_comp) =
session.find_by_id("wnd[0]/tbar[0]/okcd")?
{
tbox_comp.set_text("/nfpl9").unwrap();
wnd.send_vkey(0).unwrap();
} else {
panic!("no ok code field!");
}
} else {
panic!("no window!");
}
Ok(())
}
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for SAPComInstance
impl Send for SAPComInstance
impl Sync for SAPComInstance
impl Unpin for SAPComInstance
impl UnwindSafe for SAPComInstance
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more