![]() |
Daten aus SAP mit WSH auslesen
Hallo,
Mein Problem besteht darin, Daten aus einem SAP Grid in meinem Programm einzulesen. Es sind nur jeweils einzelne Zellen. Da mir Berechtigungen fehlen, habe ich mich entschlossen den Windows Script Host (WSH) zu benutzen. Ausführen der Scripte klappt wunderbar mit ![]() Dachte eigentlich an die Zwischenablage. Abrufen wäre dann nicht das Problem, nur wie kriege ich die Daten dahin? Also ohne die gespeicherten Daten wieder einzulesen. Irgendwie schaffe ich es nicht mit "getCellValue" einen Wert in einer Variablen zu packen und dann in den Zwischenspeicher zu laden. Hier mal das Testscript:
Code:
Ich bedanke mich im voraus für eure Hilfe. :wink:
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI") Set application = SapGuiAuto.GetScriptingEngine End If If Not IsObject(connection) Then Set connection = application.Children(0) End If If Not IsObject(session) Then Set session = connection.Children(0) End If If IsObject(WScript) Then WScript.ConnectObject session, "on" WScript.ConnectObject application, "on" End If Set GRID1 = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell") Set oFS = CreateObject("Scripting.FileSystemObject") Set oTS = oFS.CreateTextFile("C:\script.txt") for i = 0 to GRID1.rowCount - 1 oTS.writeLine(GRID1.getCellValue(i,"QMTXT")+"."+GRID1.getCellValue(i,"TPLNR")) Next |
Re: Daten aus SAP mit WSH auslesen
Herzlich willkommen in der Delphi-PRAXiS, PeteSky.
Ich vermute, dass mit Variants gearbeitet wird. Also kannst du die Zellwerte einfach einer internen Variablen zuweisen, statt sie mit WriteLine() in die Textdatei zu schreiben:
Delphi-Quellcode:
Freundliche Grüße vom marabu
uses
Variants; var n: Integer; s: String; begin // ... s := VarToStr(GRID1.getCellValue(i, "QMTXT")); n := GRID1.getCellValue(i, "TPLNR"); end; |
Re: Daten aus SAP mit WSH auslesen
Hi marabu,
Der gepostete Code von mir ist das WSH-Script bzw. SAPscript und nicht der Delphi-Code. Den rufe ich vom Delphiprogramm auf. Eine andere Schnittstelle zum SAP bleibt mir nicht. Ich kann doch nicht einfach auf die Funktionen im SAPscript zugreifen, oder? :gruebel: cu PeteSky |
Re: Daten aus SAP mit WSH auslesen
Nun ja, für deine Skript-Lösung benötigst du im Prinzip die gleichen Informationen, welche du auch für die Automatisierung mittels Delphi benötigst. Bei mir ist der Eindruck entstanden, dass dein Skript - nicht ohne Anpassungen - auf Delphi übertragen werden könnte.
Freundliche Grüße |
Re: Daten aus SAP mit WSH auslesen
Von Delphi rufe ich das Script auf und dieses Script schreibt mir die Daten in der Script.txt. Die Funktion (im SAPscript)
Code:
gibt mir den Inhalt der Zelle als String zurück (laut SAP-Documentation). Wie kann ich den in einer Variablen (im SAPscript) oder im Zwischenspeicher laden?
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getCellValue i,"QMTXT"
Die nachfolgende Zuweisung funzt nicht. Gibt mir als Fehler im SAP "Ende der Anweisung Erwartet" zurück.
Code:
MyString = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getCellValue i,"QMTXT"
|
Re: Daten aus SAP mit WSH auslesen
Zitat:
Delphi-Quellcode:
zu initialisieren.
Dim MyString
Unabhängig davon kannst Du im Script selber COM-Objekte instanzieren und benutzen. Ein Weg an die Daten zu kommen wäre, in Deinem Programm selber eine COM-Klasse als Daten-Proxy bereitzustellen. Gruß, Christoph |
Re: Daten aus SAP mit WSH auslesen
Danke für die Antworten. Kann ich erst nächstes Jahr ausprobieren. :mrgreen:
Habe aber noch etwas im INet gefunden: ![]() ![]() Wünsche allen DP Usern einen guten Rutsch ins neue Jahr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz