vineri, 12 octombrie 2018



Salut,

poate sunt persoane care efectueaza in activitatea de zi cu zi, operatiuni repetitive in SAP, ruleaza aceleasi tranzactii de foarte multe ori, doar pentru a da niste bife si a scrie 3 randuri repetitive.. Ei bine poti modifica acest mod de lucru realizand un script de automatizare a actiunilor din SAP.
In primul rand trebuie sa te asiguri ca administratorul de server iti permite sa rulezi scripturi pe terminalul tau. Trebuie sa intri in SAP, sa deschizi SAP GUI Options-> Accessibility & Scripting->Enable scripting. Acesta trebuie sa fie bifat, in cazul in care casuta este coloroata in gri, adica inaccesibila, inseamna ca adminstratorul dumneavoastra de server restrictioneaza accesul clientilor la aceasta facilitate (Majoritatea spun ca din motive de securitate dezactiveaza).
Intram in SAP si selectam iconita alaturata (trebuie sa fie undeva in dreapta sus) ->Script Recording and Playback.
Putem apasa pe butonul de inregistrare, iar in timp ce aceasta ruleaza putem intra intr-o tranzactie uzuala si sa iesim inapoi la fereastra anterioara. Punem stop inregistrarii si analizam rezultatele.
Apasam pe "More" din meniul de inregistrare si verificam locul in care se salveaza fisierul ce contine acum datele despre ce am apasat si actionat anterior. Intram in directorul mentionat, si deschidem fisierul cu notepad, putand observa actiunea noastra transcrisa in cod, mai exact visual basic.
Ok, dar ce treaba are cu Excel? Ei bine, Excel pune la dispozitie dezvoltarea de macro-uri prin limbajul visual basic, deci daca SAP poate fi actionat prin visual basic, iar noi putem scrie in Excel in visual basic..exact, le putem corela.
Deschidem un nou modul ca in tutorialul de aici, si inseram codul de stabilire a conexiunii dintre modulul nostru si SAP:

Function Attach() As Boolean
On Error Resume Next
Set SapGuiAuto = GetObject("SAPGUI")
On Error GoTo 0
If SapGuiAuto Is Nothing Then
   Attach = False
   Exit Function
   Else
   Set Applicat = SapGuiAuto.GetScriptingEngine
   On Error GoTo 0
End If
If Applicat Is Nothing Then
   Attach = False
   Exit Function
End If
If Applicat.Children.Count = 0 Then
  Attach = False
  Exit Function
  Else
  Set Connection = Applicat.Children(0)
  On Error GoTo 0
End If
Set Session = Connection.Children(0)
If Session.ActiveWindow.Text = "SAP" Then
   Attach = False
   Exit Function
End If
Attach = True
End Function

Functia este intuitiva, de fapt limbajul visual basic este foarte intuitiv. Putem observa ca functia verifica daca se incearca stabilirea unei conexiuni intre un macro din Excel si SAP. Vei fi chiar intrebat de catre SAP daca dai aprobare scriptului sa ruleze inainte de a porni.
Acum ceea ce vrem sa facem e sa introducem exact ce apare in fisierul notepad cu scriptul in continuarea modulului actual.

Sub Tranzactie()
****Continut notepad****
End Sub

Eu de exemplu am implementat si o bucla for legata la casutele din foaia principala cu informatii, astfel incat programul intra in tranzactie, completa informatii de pe randul 1, in campurile predeterminate, salva, si intra iar in tranzactie ca sa introduca informatiile de pe randul 2, s.a.m.d.

0 comentarii:

Trimiteți un comentariu