Struct sap_scripting::types::SAPWrapper
source · pub struct SAPWrapper { /* private fields */ }
Expand description
A wrapper over the SAP scripting engine, equivalent to CSapROTWrapper.
Implementations§
source§impl SAPWrapper
impl SAPWrapper
sourcepub fn scripting_engine(&self) -> Result<GuiApplication>
pub fn scripting_engine(&self) -> Result<GuiApplication>
Get the Scripting Engine object from this wrapper.
Examples found in repository?
examples/simple.rs (line 35)
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 59 60 61 62 63
fn main() -> crate::Result<()> {
// Initialise the environment.
let com_instance = SAPComInstance::new().expect("Couldn't get COM instance");
let wrapper = com_instance.sap_wrapper().expect("Couldn't get SAP wrapper");
let engine = wrapper.scripting_engine().expect("Couldn't get GuiApplication instance");
let connection = match sap_scripting::GuiApplication_Impl::children(&engine)?.element_at(0)? {
SAPComponent::GuiConnection(conn) => conn,
_ => panic!("expected connection, but got something else!"),
};
eprintln!("Got connection");
let session = match sap_scripting::GuiConnection_Impl::children(&connection)?.element_at(0)? {
SAPComponent::GuiSession(session) => session,
_ => panic!("expected session, but got something else!"),
};
if let SAPComponent::GuiMainWindow(wnd) = session.find_by_id("wnd[0]".to_owned())? {
wnd.maximize().unwrap();
if let SAPComponent::GuiOkCodeField(tbox_comp) =
session.find_by_id("wnd[0]/tbar[0]/okcd".to_owned())?
{
tbox_comp.set_text("/nfpl9".to_owned()).unwrap();
wnd.send_v_key(0).unwrap();
} else {
panic!("no ok code field!");
}
} else {
panic!("no window!");
}
Ok(())
}
More examples
examples/charge.rs (line 7)
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
fn main() -> crate::Result<()> {
let com_instance = SAPComInstance::new().expect("Couldn't get COM instance");
let wrapper = com_instance.sap_wrapper().expect("Couldn't get SAP wrapper");
let engine = wrapper.scripting_engine().expect("Couldn't get GuiApplication instance");
let connection = match sap_scripting::GuiApplication_Impl::children(&engine)?.element_at(0)? {
SAPComponent::GuiConnection(conn) => conn,
_ => panic!("expected connection, but got something else!"),
};
eprintln!("Got connection");
let session = match sap_scripting::GuiConnection_Impl::children(&connection)?.element_at(0)? {
SAPComponent::GuiSession(session) => session,
_ => panic!("expected session, but got something else!"),
};
if let SAPComponent::GuiMainWindow(wnd) = session.find_by_id("wnd[0]".to_owned())? {
wnd.maximize().unwrap();
session.start_transaction("fpe1".to_string())?;
match session.find_by_id("wnd[0]/usr/ctxtFKKKO-BLART".to_string())? {
SAPComponent::GuiCTextField(ctxt) => ctxt.set_text("P1".to_string())?,
_ => panic!("expected doc type ctextfield")
}
match session.find_by_id("wnd[0]/usr/ctxtFKKKO-WAERS".to_string())? {
SAPComponent::GuiCTextField(ctxt) => ctxt.set_text("GBP".to_string())?,
_ => panic!("expected currency ctextfield")
}
match session.find_by_id("wnd[0]/usr/txtFKKKO-XBLNR".to_string())? {
SAPComponent::GuiTextField(txt) => txt.set_text("XA12345678".to_string())?,
_ => panic!("expected reference textfield")
}
} else {
panic!("no window!");
}
Ok(())
}
Auto Trait Implementations§
impl RefUnwindSafe for SAPWrapper
impl !Send for SAPWrapper
impl !Sync for SAPWrapper
impl Unpin for SAPWrapper
impl UnwindSafe for SAPWrapper
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