SAP Jobsuche bei DV-Treff
CDevil
  • CDevil
  • SAP Forum - Neuling Thema Starter
vor 8 Jahre
Hallo,

ich arbeite seit vielen Jahren mit SAP-Scripting und bin begeistert von den Möglichkeiten, Prozesse zu automatisieren.

Den Zugriff auf ein Children über eine Variable habe ich jedoch bis heute nicht hinbekommen.

Beispiel:


      Dim iChild0 As Long
      
      sText = ""
      sText = Session.FindById("wnd[0]/usr").Children(0).Name
      sText = Session.FindById("wnd[0]/usr").Children(1).Name
      
      iChild0 = 0
      sText = ""
      sText = Session.FindById("wnd[0]/usr").Children(iChild0).Name
      iChild0 = iChild0 + 1
      sText = Session.FindById("wnd[0]/usr").Children(iChild0).Name

Der erste Block klappt problemlos.

In beiden Fällen wird der Name des Childrens in die Variable sText geschrieben.

Wenn ich (wie im 2. Block) die Zahl 0 bzw. 1 jedoch mit einer Variablen ersetze, in der auch nur 0 oder 1 steht, so kann der Name nicht ausgelesen werden. Die Varibale sText bleibt leer.

Hat vielleicht jemand eine Idee woran das liegt bzw. wie man das umgehen kann?

ScriptMan
vor 8 Jahre
Hallo CDevil,

Deine Leidenschaft kann ich sehr gut verstehen. Leider kann ich das Problem nicht nachstellen und daher kommt nur eine Vermutung von mir.

Beispiel:

iChild0 = 0

sText = ""

sText = Session.FindById("wnd[0]/usr").Children(int(iChild0)).Name

iChild0 = iChild0 + 1

sText = Session.FindById("wnd[0]/usr").Children(int(iChild0)).Name

Grüße,

ScriptMan

P.S. Du weißt aber schon, dass SAP Script nichts mit SAP GUI Scripting zu tun hat? In diesem Forum findest einiges dazu unter GuiXT.

CDevil
  • CDevil
  • SAP Forum - Neuling Thema Starter
vor 8 Jahre
Hallo ScriptMan,

Danke, aber leider funktioniert auch Deine Vermutung nicht.

Ja, mir ist bewusst, dass SAP Script und SAP Scripting unterschiedliche Dinge sind, da ihr aber kein Forum habt für SAP Scripting (ich habe es zumindest nicht gefunden), habe ich zu Beginn erwähnt, dass es sich um SAP Scripting handelt in der Hoffnung, dass mir dennoch einer weiterhelfen kann.

Ich habe es sicherheitshalber auch bei scn.sap.com probiert, dort wartet mein Beitrag als Neuling jedoch noch auf die abschließende Überprüfung und Freigabe.

ScriptMan
vor 8 Jahre
Hallo Cdevil,

knapp daneben ist auch daneben. Man könnte aber noch folgendes ausprobieren:

Dim iChild0 As Variant

iChild0 = 0

sText = ""

sText = Session.FindById("wnd[0]/usr").Children(int(iChild0)).Name

iChild0 = iChild0 + 1

sText = Session.FindById("wnd[0]/usr").Children(int(iChild0)).Name

Grüße,

Scriptman

CDevil
  • CDevil
  • SAP Forum - Neuling Thema Starter
vor 8 Jahre
Hallo ScriptMan,

da habe ich ja zumindest mit einem Punkt Recht gehabt:

Man kann mir auch im SAP Script Forum helfen, obwohl es sich eigentlich um SAP Scripting handelt.

Dein Vorschlag funktioniert.

Vielen Dank.

Hast Du vielleicht eine Idee, wieso?

So toll, wie es auch ist, dass es funktioniert, einleuchten will es mir nicht wirklich.

Erwartet wird eine Zahl.

Übergebe ich als Datentyp eine Zahl, egal ob Byte, Integer oder Long, schlägt meine Abfrage fehl. Übergebe ich als Datentyp die Umwandlung eines Variant zur Integerzahl, funktioniert es.

ScriptMan
vor 8 Jahre
Hallo CDevil,

eine Erklärung dafür habe ich nicht. Solche Dinge speichere ich bei mir als Erfahrungswert ab. Die wiss. Abhandlung hierzu wäre zwar interessant, sie könnte aber auch ausarten, wenn man nicht genau weiß, was sich der Programmierer selbst dabei gedacht hat.

Na dann, noch viel Spaß bei der Prozess Automatisierung innerhalb von SAP. Es gibt immer noch was zu tun!

Grüße,

ScriptMan