Open topic with navigation

# SAPGUI code samples (.NET SDK)

In this topic:

## Launch an SAP GUI session and run transactions

The following example uses GuiSession and GuiSessionFactory methods to launch a GuiSession and execute transaction codes.

    // The example below uses GuiSession and GuiSessionFactory
    // to launch a GuiSession and execute transaction codes.

    [Test]
    public void TestManipulatingGuiSession()
    {
           // Program flow:
           //  1. Launch a GuiSession from GuiSessionFactory.
           //  2. Execute transaction codes in the GuiSession.
           //  3. Return to the initial session window.
           //  4. Close the session.
           // Launch a GuiSession instance.
           IGuiSession session = GuiSessionFactory.Launch("ECC 6.0", "800", "qa01", "55c1b303f6a77cb79fcbb321af78eed77befc906");

           // Execute a transaction code and verify it is executed successfully.
           session.Reset(@"sbwp");
           Verify.AreEqual(@"Business Workplace of QA01", session.ActiveWindow, "Verify Transaction Code", "Verify that the transaction was executed successfully.");

           // Execute another transaction code and verify it is executed successfully.
           // Unlike IOKCode.Set(code), Reset method can be performed at any point.
           session.Reset(@"dwdm");
           Verify.AreEqual(@"Enjoy Demo Center: Display", session.ActiveWindow, "Verify Second Transaction", "Verify a second transaction was executed successfully.");

           // Return to the initial session window.
           session.Reset();
           Verify.AreEqual(@"SAP Easy Access", session.ActiveWindow, "Verify Return to Initial Session Windows", "Verify return to initial session windows by checking the session's active window.");

           // Exit the session.
           session.Close();
    }

Back to top

## Run a transaction using IOKCode

The following example uses IOKCode and IWindow methods to execute a transaction code.

    // The example below uses IOKCode, IWindow to execute a transaction code.

    [Test]
    public void TestOkCode()
    {
           // Program flow:
           //  1. Launch a GuiSession from GuiSessionFactory.
           //  2. Execute a transaction code in the IOKCode.
           // Launch a GuiSession instance.
           IGuiSession session = GuiSessionFactory.Launch("ECC 6.0", "800", "qa01", "55c1b303f6a77cb79fcbb321af78eed77befc906");

           // Describe the parent window and the OKCode objects.
           var window = session.Describe<IWindow>(new WindowDescription
           {
    		Transaction = @"SESSION_MANAGER",
    		Program = @"SAPLSMTR_NAVIGATION",
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.MainWindow,
    		Name = @"wnd[0]"
           });

           var okCode = window.Describe<IOKCode>(new OKCodeDescription
           {
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.OkCodeField
           });

           // Enter the transaction code in the OKCode field.
           okCode.SetValue(@"sbwp");

           // Commit the transaction by clicking the Enter key.
           window.SendKey(SapFunctionKey.Enter);

           // Verify navigation to the correct session window.
           Verify.AreEqual(@"Business Workplace of QA01", session.ActiveWindow, "Verify Correct Navigation", "Verify navigation to the correct session window.");

           // Exit the session.
           session.Close();
    }

Back to top

## Set data for a table cell

The example below uses ITreeView, ITreeViewNode, ITable, ITableRow, and ITableCell methods to activate an item in the tree node, to navigate to a table object, and set data for the table cells.

    // The example below uses ITreeView, ITreeViewNode, ITable, ITableRow, and ITableCell
    // to activate an item in the tree node, to navigate to a table object, and set data for the table cells.

    [Test]
    public void TestTreeViewAndTable()
    {
           // Program flow:
           //  1. Launch a GuiSession from GuiSessionFactory.
           //  2. Navigate to a ITreeView object of type ColumnTree.
           //  3. Activate an item in a TreeView Node.
           // Launch a GuiSession instance.
           IGuiSession session = GuiSessionFactory.Launch("ECC 6.0", "800", "qa01", "55c1b303f6a77cb79fcbb321af78eed77befc906");

           // Navigates to the session window where holds the tree view control.
           session.Reset(@"dwdm");

           // Describe the tree view control.
           var treeView = session.Describe<IWindow>(new WindowDescription
           {
    		Transaction = @"DWDM",
    		Program = @"SAPMSDM1",
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.MainWindow,
    		Name = @"wnd[0]"
           }).Describe<ITreeView>(new TreeViewDescription
           {
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.CtrlTree,
    		Name = @"shell"
           });

           // Build the path to the node.
           var nodePath = treeView.BuildNodePath(@"Workbench Demos", @"Interface Elements", @"Table Control");

           // Get the node object.
           var treeViewNode = treeView.GetNode(nodePath);

           // Navigate to the table object.
           treeViewNode.ActivateItem(@"Table Control");

           // Describe the table.
           var table = session.Describe<IWindow>(new WindowDescription
           {
    		Transaction = @"DWDM",
    		Program = @"RSDEMO_TABLE_CONTROL",
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.MainWindow,
    		Name = @"wnd[0]"
           }).Describe<ITable>(new TableDescription
           {
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.TableControl,
    		Name = @"RSDEMO_TABLE_CONTROLTABLE_CONTROL"
           });

           // Verify the value of a table cell.
           Verify.AreEqual(@"American Airlines", table.Rows[0].Cells[0].Value, "Verify Cell Value", "Verify that the cell value has coorect value.");
           // Set the value of the table cell.
           table.Rows[0].Cells[0].SetValue(@"Lauda Air");

           // Verify value set.
           Verify.AreEqual(@"Lauda Air", table.Rows[0].Cells[0].Value, "Verify Value Was Set", "Verify that the expected value was set.");

           // Exit the session.
           session.Close();
    }

Back to top

## Set an edit box value

The following example uses IEditField to set a value for a SAP GUI edit box.

    // The example below uses IEditField to set a value for a SAP GUI edit box.

    [Test]
    public void TestEditField()
    {
           // Program flow:
           //  1. Launch a GuiSession from GuiSessionFactory.
           //  2. Navigate to the edit box.
           //  3. Set a value for the editbox.
           // Launch a GuiSession instance.
           IGuiSession session = GuiSessionFactory.Launch("ECC 6.0", "800", "qa01", "55c1b303f6a77cb79fcbb321af78eed77befc906");

           // Execute a transaction code to navigate to the editbox.
           session.Reset(@"bibs");

           // Describe the editbox.
           var editField = session.Describe<IWindow>(new WindowDescription
           {
    		Transaction = @"BIBS",
    		Program = @"SAPLEXAMPLE_ENTRY_SCREEN",
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.MainWindow,
    		Name = @"wnd[0]"
           }).Describe<IEditField>(new EditFieldDescription
           {
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.TextField,
    		Name = @"F1"
           });

           // Set text for the editbox.
           editField.SetText(@"No #99");

           // Verify the text.
           Verify.AreEqual(@"No #99", editField.Text, "Verify Text", "Verify that the edit field contains the expected value.");

           // Exit the session.
           session.Close();
    }

Back to top

## Select an item in a combo box

The following example uses IComboBox to make a selection on a combo box control.

     // The example below uses IComboBox to make a selection on a combo box control.

    [Test]
    public void TestComboBox()
    {
    	// Program flow:
           //  1. Launch a GuiSession from GuiSessionFactory.
           //  2. Navigate to the combo box control.
           //  3. Make a selection on the combo box.
           // Launch a GuiSession instance.
           IGuiSession session = GuiSessionFactory.Launch("ECC 6.0", "800", "qa01", "55c1b303f6a77cb79fcbb321af78eed77befc906");

           // Navigates to the control box.
           session.Reset(@"bibs");

           var window = session.Describe<IWindow>(new WindowDescription
           {
    		Transaction = @"BIBS",
    		Program = @"SAPLEXAMPLE_ENTRY_SCREEN",
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.MainWindow,
    		Name = @"wnd[0]"
           });
           window.Describe<IMenubar>(new MenubarDescription
           {
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.Menubar
           }).Select(@"Goto;Elements;Dropdown List");

           // Describe the combo box.
           var comboBox = window.Describe<IComboBox>(new ComboBoxDescription
           {
    		Type = HP.LFT.SDK.SAP.GUI.ComponentType.ComboBox,
    		Name = @"SCARR-CARRID"
           });

           Verify.AreEqual(19, comboBox.Items.Count, "Verify ComboBox Number of Items", "Verify that the combo box contains 19 items.");

           // Make a selection.
           comboBox.Select(3);

           // Verify the selection.
           Verify.AreEqual(@"Air France", comboBox.SelectedItem.Text, "Verify Selected Item in ComboBox Using Selected Item's Text", "Verify that the correct combobox item was selected by checking the selected item's text.");
           Verify.AreEqual(@"AF", comboBox.SelectedItem.Key, "Verify Selected Item in ComboBox Using Selected Item's Key", "Verify that the correct combobox item was selected by checking the selected item's key.");

           // Exit the session.
           session.Close();
    }

Back to top