SAP FORUM - SAP Community
»
Technische Foren
»
GuiXT
»
lesen und schreiben in Excel Datei mit Guixt Script
Beiträge: 2  Wohnort: Steg VS
|
Hallo an alle GuiXT-Kenner ;-)
Danke erstmal für die Aufnahme im Forum.
Ich bin seit ca. 3-/4-Wochen auf GuiXT gekommen und war sehr erstaunt was dieses Programm für Möglichkeiten hat und was das mir persönlich helfen könnte.
Nun habe ich anhand eines Beispiels aus dem Synactive-doc ein Script + Inputscript + VbsScript erstellt, um mit einem Pushbutton, Planauftragsnummern (aus einer Excel-Datei lesen) in CO40 umzusetzen in Ferigungsaufträge und gewisse Info-Daten aus Sap wieder in die Excel-Datei zu schreiben.
Wenn ich auf den Pushbutton drücke erscheint auch das Auswahlfenster um die Exceldatei auszuwählen, aber bei Auswahl der Datei öffnet sich keine Exceldatei obwohl "XL.Visible = True" gesetzt und das Script beendet dann auch den Vorgang. Der Einstieg der Transaction wird wieder angezeigt und auch die Message...-statusline wird angezeigt, aber natürlich mit 0 Verarbeitungen.
Script:
Box (8,1) (14,35) "Sonderfunktionen" Pushbutton (10,2) "FAUF umsetzen über Excel Datei" process="co40_excel.txt"
InputScript:
// Select Excel file SelectFile name="xlsfile" filter="*.xls;*.xlsx" title="Wähle Excel-Datei mit PLAUF-Nr" directory="C:\Users\2116033\Desktop\PLAUF-umsetzen"
// done? if not Q[ok] Return "S: Keine Datei ausgewählt" -statusline endif
// Open file in Excel CallVBS XL_open "&V[xlsfile]" "PLAUF umsetzen in FAUF"
// Start with row Set V[k] 0
// Count updated Auftrag Set V[k_ok] 0 Set V[k_skip] 0 Set V[k_err] 0
label next_auftrag
Enter "/NCO40"
// Fertigungsauftrag anlegen: Einstieg Screen SAPLCOKO1.0150
// Change screen title during processing Title "Please wait.... umsetzen PLAUF in FAUF &V[CO40_plnum]"
label read_row_from_excel
Set V[k] &V[k] + 1
CallVBS XL_getrow &V[k] if not V[CO40_plnum] goto all_done endif
// status ok? then skip this one, already done if V[CO40_stats=OK] Set V[k_skip] &V[k_skip] + 1 goto read_row_from_excel endif
Set F[AFPOD-PLNUM] "&V[CO40_plnum]" Set F[AUFPAR-PP_AUFART] "&V[CO40_aufpar]" // PLAUF eingeben aus Excel Enter OnError="Continue" goto error // Clear variables for Material text and Statustext Set V[CO40_maktx] "" Set V[CO40_sttxt] ""
// Fertigungsauftrag anlegen: Kopf Screen SAPLCOKO1.0115
// Material text and Statustext Set V[CO40_maktx] "&F[CAUFVD-MATXT]" Set V[CO40_sttxt] "&F[CAUFVD-STTXT]"
Enter "/11" OnError="Continue" // Sichern
goto error
// Fertigungsauftrag anlegen: Einstieg Screen SAPLCOKO1.0150
// Set status fields Set V[CO40_stats] "OK" Set V[CO40_error] "" CallVBS XL_updaterow &V[k]
// increase ok count Set V[k_ok] &V[k_ok] + 1
// process next auftrag goto next_auftrag
// error occured label error
Set V[CO40_stats] "Error" Set V[CO40_error] "&V[_lasterror]" CallVBS XL_updaterow &V[k]
// increase error count Set V[k_err] &V[k_err] + 1 goto next_auftrag
label all_done Set V[k] &V[k] - 1
Message "S: &V[k] auftrag, &V[k_ok] changed, &V[k_skip] skipped, &V[k_err] errors" -statusline
Enter "/N"
VbsEdit .vbs Script:
Dim XL
Function XL_open(filename, caption)
Set XL = guixt.CreateObject("Excel.Application")
' display Excel window XL.visible = True
' Set caption XL.caption = caption
' open file XL.WorkBooks.Open(filename)
End Function
' Read Excel row values into GuiXT variables Function XL_getrow(k)
' Read Excel row into GuiXT variables Call guixt.Set("CO40_plnum", XL.Cells(k, 1).Value) ' plaufnr Call guixt.Set("CO40_aufpar", XL.Cells(k, 2).Value) ' auftart Call guixt.Set("CO40_stats", XL.Cells(k, 3).Value) ' status Space, OK, Fehler
End Function
' Update Excel row from GuiXT variables Function XL_updaterow(k)
' status OK bei Fehler XL.Cells(k, 3).Value = guixt.Get("CO40_stats")
' color depending bei status If XL.Cells(k, 3).Value = "OK" Then XL.Cells(k, 3).Interior.ColorIndex = 2 Else XL.Cells(k, 3).Interior.ColorIndex = 46 End If
XL.Cells(k, 4).Value = guixt.Get("CO40_error") XL.Cells(k, 5).Value = guixt.Get("CO40_maktx") XL.Cells(k, 6).Value = guixt.Get("CO40_sttxt") XL.Cells(k, 7).Value = FormatDateTime(Now(), 0)
End Function
Beim Debuggen des VbsScript wurde auch kein Fehler angezeigt.
Ich hoffe ihr könnt mir bei meinem Problem helfen, denn diese Automatisation würde mir eine Menge Zeit ersparen bei meiner wöchentlichen Arbeit.
Hat vielleicht jemand eine Idee woran das liegen könnte?? <ich währe sehr Dankbar um jede Hilfe>
Danke im Voraus und ich wünsche allen einen schönen Sonntag Abend
|
|
|
|
|
Hallo rlorenz8,
ich selbst arbeite nicht mit GuiXT Controls. Beim Durchsehen der Programmierung kann ich keinen Fehler sehen. Es stellt sich aber die Frage, ob die Komponente GuiXT Controls tatsächlich vor Ort vorhanden ist. Bei der Einstellung Trace <--> On in der GuiXT-Umgebung ist es bei mir eindeutig zu sehen, dass ich es nicht besitze.
Ansonsten gibt es unter XING eine Gruppe namens 'GuiXT - Anwenderfreundliche Benutzeroberflächen für das SAP GUI', wo sich sehr viele GuiXT-Experten treffen. Man kann aber auch eine direkte Anfrage an office(at)synactive.com senden.
Grüße, ScriptMan
|
|
|
|
Beiträge: 2  Wohnort: Steg VS
|
Hallo ScriptMan
Danke für die Antwort.
Ich habe hier im Forum vergessen mitzuteilen, dass ich den Fehler selbst herausgefunden habe. Der Fehler lag wahrscheinlich im Vbs-Script welches ich neu als ein JavaScript geschrieben habe. Und das Script und Inputscript habe ich auf "UTF-8 BOM" umgestellt und dann hat plötzlich alles einwandfrei funktioniert.
Trotzdem danke...
|
|
|
|
SAP FORUM - SAP Community
»
Technische Foren
»
GuiXT
»
lesen und schreiben in Excel Datei mit Guixt Script
Das Forum wechseln
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.