Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden oder Registrieren.

Mitteilung

Icon
Error

Optionen
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline rlorenz8  
#1 Geschrieben : Sonntag, 1. November 2020 17:29:02(UTC)
rlorenz8

Beiträge: 2
Switzerland
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
Jobangebote

Nehmen Sie an dieser Diskussion teil! SAP FORUM - SAP Community LoginHier registrieren.

Offline ScriptMan  
#2 Geschrieben : Mittwoch, 4. November 2020 13:35:55(UTC)
ScriptMan

Beiträge: 284
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



Offline rlorenz8  
#3 Geschrieben : Mittwoch, 4. November 2020 15:43:10(UTC)
rlorenz8

Beiträge: 2
Switzerland
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...
Benutzer, die gerade dieses Thema lesen
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.

- Impressum / Datenschutz -