AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aus SAP mit WSH auslesen

Ein Thema von PeteSky · begonnen am 29. Dez 2006 · letzter Beitrag vom 30. Dez 2006
Antwort Antwort
PeteSky

Registriert seit: 9. Nov 2004
10 Beiträge
 
#1

Daten aus SAP mit WSH auslesen

  Alt 29. Dez 2006, 14:38
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 WSH Control. Das speichern der Zellen in einer Datei funktioniert. Nur will ich diese Daten nicht in einer Datei speichern (war hier nur als Test gedacht), sondern in meinem Programm verarbeiten. Nur wie stelle ich das an ?
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:
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
Ich bedanke mich im voraus für eure Hilfe.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Daten aus SAP mit WSH auslesen

  Alt 29. Dez 2006, 16:29
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:
uses
  Variants;

var
  n: Integer;
  s: String;

begin
  // ...
  s := VarToStr(GRID1.getCellValue(i, "QMTXT"));
  n := GRID1.getCellValue(i, "TPLNR");
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
PeteSky

Registriert seit: 9. Nov 2004
10 Beiträge
 
#3

Re: Daten aus SAP mit WSH auslesen

  Alt 29. Dez 2006, 18:16
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?

cu PeteSky
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Daten aus SAP mit WSH auslesen

  Alt 29. Dez 2006, 18:25
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
  Mit Zitat antworten Zitat
PeteSky

Registriert seit: 9. Nov 2004
10 Beiträge
 
#5

Re: Daten aus SAP mit WSH auslesen

  Alt 29. Dez 2006, 18:41
Von Delphi rufe ich das Script auf und dieses Script schreibt mir die Daten in der Script.txt. Die Funktion (im SAPscript)
Code:
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").getCellValue i,"QMTXT"
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?

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"
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Daten aus SAP mit WSH auslesen

  Alt 29. Dez 2006, 18:47
Zitat von PeteSky:
Wie kann ich den in einer Variablen (im SAPscript) oder im Zwischenspeicher laden?
Das VB-Script im Kontext des WScriptingHost kennt Variablen wie normales VB. D.h. Du könntest zuerst versuchen MyString per
Dim MyString zu initialisieren.
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
  Mit Zitat antworten Zitat
PeteSky

Registriert seit: 9. Nov 2004
10 Beiträge
 
#7

Re: Daten aus SAP mit WSH auslesen

  Alt 30. Dez 2006, 12:46
Danke für die Antworten. Kann ich erst nächstes Jahr ausprobieren.
Habe aber noch etwas im INet gefunden:
SAP GUI Scripting Beispiele
SAP GUI Scripting API

Wünsche allen DP Usern einen guten Rutsch ins neue Jahr.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz