pub struct GuiApplication { /* private fields */ }
Expand description

The GuiApplication represents the process in which all SAP GUI activity takes place. If the scripting component is accessed by attaching to an SAP Logon process, then GuiApplication will represent SAP Logon. GuiApplication is a creatable class. However, there must be only one component of this type in any process. GuiApplication extends the GuiContainer Object.

Implementations§

source§

impl GuiApplication

source

pub fn start_connection<S>(&self, connection_string: S) -> Result<GuiConnection>where S: AsRef<str>,

Start a new connection with the provided connection string.

source

pub fn get_connection(&self, n: i32) -> Result<GuiConnection>

Get the nth session from the scripting engine.

Examples found in repository?
examples/simple.rs (line 38)
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§

source§

impl GuiComponentMethods<GuiApplication> for GuiApplication

source§

fn container_type(&self) -> Result<bool>

This property is TRUE, if the object is a container and therefore has the Children property.
source§

fn id(&self) -> Result<String>

An object id is a unique textual identifier for the object. It is built in a URLlike formatting, starting at the GuiApplication object and drilling down to the respective object.
source§

fn name(&self) -> Result<String>

The name property is especially useful when working with simple scripts that only access dynpro fields. In that case a field can be found using its name and type information, which is easier to read than a possibly very long id. However, there is no guarantee that there are no two objects with the same name and type in a given dynpro.
source§

fn kind(&self) -> Result<String>

The type information of GuiComponent can be used to determine which properties and methods an object supports. The value of the type string is the name of the type taken from this documentation.
source§

fn kind_as_number(&self) -> Result<i64>

While the Type property is a string value, the TypeAsNumber property is a long value that can alternatively be used to identify an object’s type . It was added for better performance in methods such as FindByIdEx. Possible values for this property are taken from the GuiComponentTypeenumeration.
source§

impl GuiContainerMethods<GuiApplication> for GuiApplication

source§

fn find_by_id<S>(&self, id: S) -> Result<SAPComponent>where S: AsRef<str>,

Search through the object’s descendants for a given id. If the parameter is a fully qualified id, the function will first check if the container object’s id is a prefix of the id parameter. If that is the case, this prefix is truncated. If no descendant with the given id can be found the function raises an exception.
source§

fn children(&self, n: u32) -> Result<GuiSession>

This collection contains all direct children of the object.
source§

impl HasDispatch<GuiApplication> for GuiApplication

source§

fn get_idispatch(&self) -> &IDispatch

Get the IDispatch object for low-level access to this component.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.