GP/QTP Automation: GUI Mapping script
All related posts: Reference Page – GP/QTP Automation
Purpose: extract object descriptions from Dexterity Dictionary and create custom XML-based GUI Map file for QTP.
Used resources: Service Functions – XML (QTP, VBScript)
Option Explicit ' Purpose: Map GP Dexterity GUI into XML file ' Requirements: GP App started (don't have to login) 'Output: ".....\DexGUI.xml" Dim GPApp, objForm, objWindow, objWndField Dim sGPMapXML, sCurrentProduct Dim FormIter, WinIter, FieldIter Dim objGPMapXML, objRoot, objFormMapXML, objWndMapXML, objFldMapXML Set GPApp = GetObject("", "Dynamics.Application") sCurrentProduct = GPApp.CurrentProduct 'Define or parameterize your output folder here sGPMapXML = "C:\TEMP\" & "\DexGUI.xml" Set objGPMapXML = XMLUtil.CreateXML("DexGUI") Set objRoot = objGPMapXML.GetRootElement FormIter = 1 Set objForm = GPApp.GetFirstForm() Do If Not (objForm is Nothing) Then Set objFormMapXML = CreateChildElementByName(objRoot, "Form", "") objFormMapXML.AddAttribute "name", objForm.GetName() objFormMapXML.AddAttribute "childcount", CStr(objForm.CountWindows()) WinIter = 1 Set objWindow = objForm.GetFirstWindow() Do If Not (objWindow is Nothing) Then Set objWndMapXML = CreateChildElementByName(objFormMapXML, "Window", "") objWndMapXML.AddAttribute "name", objWindow.GetName() objWndMapXML.AddAttribute "childcount", CStr(objWindow.CountFields()) FieldIter = 1 Set objWndField = objWindow.GetFirstWindowField() Do If Not (objWndField is Nothing) Then Set objFldMapXML = CreateChildElementByName(objWndMapXML, "Field", "") objFldMapXML.AddAttribute "name", objWndField.GetName() objFldMapXML.AddAttribute "id", CStr(objWndField.GetID()) End If FieldIter = FieldIter +1 Set objWndField = objWindow.GetNextWindowField() Loop While FieldIter <= objWindow.CountFields() End If Set objWindow = objForm.GetNextWindow() WinIter = WinIter + 1 Loop While WinIter <= objForm.CountWindows() End If Set objForm = GPApp.GetNextForm() FormIter = FormIter + 1 Loop While FormIter <= GPApp.CountForms() objGPMapXML.SaveFile sGPMapXML Set GPApp = Nothing Set objForm = Nothing Set objWindow = Nothing Set objWndField = Nothing Set objGPMapXML = Nothing Set objRoot = Nothing Set objFormMapXML = Nothing Set objWndMapXML = Nothing Set objFldMapXML = Nothing