Automatiserad systemanalys tack vare SAP GUI-skript

Aktie

SAP GUI-skript

SAP möjliggör automatisering av repetitiva processer genom lämpligt skrivna skript.
För att kunna köra dem på systemet måste miljön förberedas i enlighet med detta:

  • SAP GUI - aktivera skript i inställningarna
  • SAP-system - ställ in parametern sapgui/user_scripting på systemet till TRUE

Skript för SAP GUI

Som standard är SAP GUI-skript skrivna i VBA (Visual Basic for Applications). Med VBA kan du upprätta en session med SAP GUI och sedan utföra lämpliga åtgärder på det. Ett sådant skript består av rader för att hitta det relevanta elementet i SAP GUI enligt dess förutbestämda sökväg och sedan utföra en åtgärd på ett sådant element, t.ex. skriva in text eller klicka på en knapp.

Till exempel kan en sökväg se ut på följande sätt:

wnd[0]/tbar[0]/okcd

Det första elementet är wnd (fönster). Nollindexet anger programmets huvudfönster, efterföljande index kan t.ex. vara popup-fönster som visas efter att någon åtgärd har utförts. Efter ‘/’ finns tbar[0], som är det första verktygsfältet i SAP GUI. Efter ytterligare ett ‘/’ finns det redan ett specifikt element, i detta fall okcd, som är det fält där TCODE anges.

Automagica

Behöver du i så fall lära dig VBA för att skriva skript för SAP GUI? Svaret på den frågan är nej. Open source-biblioteket Automagica kommer till vår hjälp. Med Automagica kan du utföra samma åtgärder på SAP GUI med hjälp av Python-språket.

Förutom stöd för SAP GUI kan Automagica även hantera musrörelser, användning av Microsoft Excel, skicka e-post och mycket mer.

Tillämpning

Med Automagica-biblioteket är det möjligt att automatisera många repetitiva processer.

I kombination med SAST-verktyget kan t.ex. analysen av transaktioner som användaren använder automatiseras. Du kan automatiskt köra den dedikerade SAST-funktionen och sedan ladda ner data till Excel. Nedan finns ett exempel på kod som implementerar detta:

#init SAPGUI
sap = SAPGUI()
#login
sap.login(sap_system_name, sap_mandant, sap_username, sap_pass)

#enter tkod
sap.set_text(’/app/con[0]/ses[0]/wnd[0]/tbar[0]/okcd’, '/n/sast/us_user_activ’)
#run-transaktion
sap.click(’/app/con[0]/ses[0]/wnd[0]/tbar[0]/btn[0]’)

#input användarnamn
sap.set_text(’/app/con[0]/ses[0]/wnd[0]/usr/ctxtSO_USER-LOW’, 'misstänkt’)
#exekvering
sap.click(„/app/con[0]/ses[0]/wnd[0]/tbar[1]/btn[8]”)

1TP7Resultat till kalkylblad
sap.click(„/app/con[0]/ses[0]/wnd[0]/tbar[1]/btn[46]”)
sap.click(„/app/con[0]/ses[0]/wnd[0]/tbar[1]/btn[43]”)
tryck_knapp(’enter’)
sap.click(„/app/con[0]/ses[0]/wnd[1]/tbar[0]/btn[11]”)

Ett sådant skript kan sedan köra en annan SAST-funktion som visar de SoD-konflikter som används av samma användare och ladda ner dem till en annan Excel-fil.

Slutligen kan skriptet, genom att utföra operationer på cellerna i Excel, generera en slutrapport över konfliktfyllda transaktioner i en form som gör det möjligt för behörighetsgruppen att på ett enkelt och transparent sätt granska konflikterna och besluta om privilegierna ska återkallas eller om konflikten ska mildras.

Filip Starobrat