• 35 User online von 18,705 Mitgliedern
  • 49,904 Beiträge zu 13,684 Themen
  • 35 User online von 18,705 Mitgliedern
  • 49,904 Beiträge zu 13,684 Themen
02196 7066-717
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 commander-bln  
#1 Geschrieben : Montag, 11. September 2017 12:17:42(UTC)
commander-bln

Beiträge: 6
Germany
Wohnort: Berlin
Hallo

Ich versuche momentan aus Excell heraus dem QM Modul, einige Felder aus
zu füllen, und ein generiertes txt File (access memo) in den Langtext einzufügen, bzw. den langtext auszulesen.

mit dem Script Recorder bekommen ich es nicht wirklich hin
die letzte Zeile die er aufnimmt, verstehe ich nicht und passieren tut auch nicht das gwünschte.

mein fehler liegt im bereich ---> zusatz langtext

eor = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
For Zeile = 2 To eor
BF = Cells(Zeile, 1)
session.findById("wnd[0]/usr/ctxtRIWO00-QMNUM").Text = BF 'BF eintragen
session.findById("wnd[0]").sendVKey 0 'Enter
'Gerätenr. löschen
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_3:SAPLIQS0:7901/subUSER0001:SAPLXQQM:0300/txtVIQMEL-EQFNR").Text = Cells(Zeile, 4)
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10").Select 'Tab Positionen
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/btnF24").press
For i = 0 To 99
'On Error Resume Next
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/ctxtVIQMFE-OTEIL[2," & Trim(i) & "]").SetFocus
' On Error GoTo 0
If session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/ctxtVIQMFE-OTEIL[2," & Trim(i) & "]").Text = "" Then
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/tblSAPLIQS0POSITION_VIEWER/ctxtVIQMFE-OTEIL[2," & Trim(i) & "]").Text = Cells(Zeile, 2)
Exit For
End If
Next i
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB10/ssubSUB_GROUP_10:SAPLIQS0:7210/tabsTAB_GROUP_20/tabp20\TAB01/ssubSUB_GROUP_20:SAPLIQS0:7110/btnDETAIL").press
session.findById("wnd[1]/usr/txtVIQMFE-FETXT").Text = Cells(Zeile, 9)
session.findById("wnd[1]/usr/ctxtVIQMFE-BAUTL").Text = Cells(Zeile, 5)
session.findById("wnd[1]/usr/ctxtVIQMFE-FECOD").Text = Cells(Zeile, 3)
session.findById("wnd[1]/usr/subUSER0002:SAPLXQQM:0400/ctxtVIQMFE-ZZEINORT").Text = Cells(Zeile, 6)
session.findById("wnd[1]/usr/subUSER0002:SAPLXQQM:0400/txtVIQMFE-ZZERGAEN").Text = Cells(Zeile, 7)
session.findById("wnd[1]/usr/subUSER0002:SAPLXQQM:0400/txtVIQMFE-ZZARBPL").Text = Cells(Zeile, 8)
session.findById("wnd[1]/usr/subUSER0002:SAPLXQQM:0400/ctxtVIQMFE-ZZPRDATE").Text = Cells(Zeile, 10)
session.findById("wnd[1]/usr/subUSER0002:SAPLXQQM:0400/txtVIQMFE-ZZSERIAL").Text = Cells(Zeile, 11)

'zusatz Langtext

langtext = Cells(Zeile, 15)
session.findById("wnd[1]/usr/btnQMICON-LTFEHLER").press
session.findById("wnd[0]/usr/cntlSCMSW_CONTAINER_2102/shellcont/shell").SetFocus
' session.findById("wnd[0]/usr/cntlSCMSW_CONTAINER_2102/shellcont/shell").setdocument 1, langtext
' session.findById("wnd[0]/usr/cntlSCMSW_CONTAINER_2102/shellcont/shell").setDocument 1, "jkagha ögha öghölh hgö"
' session.findById("wnd[1]/usr/btnQMICON-LTFEHLER").text = langtext

session.findById("wnd[0]/tbar[0]/btn[3]").press
'zusatz Langtext

session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[0]").sendVKey 11
If session.findById("wnd[0]/sbar").Text = "Meldung " & Cells(Zeile, 1) & " gesichert" Then Cells(Zeile, 12) = "ok" Else Cells(Zeile, 12) = "error"
Next Zeile

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

Offline ScriptMan  
#2 Geschrieben : Dienstag, 12. September 2017 06:44:49(UTC)
ScriptMan

Beiträge: 223
Hallo commander-bln,

mein Workaround in diesem Fall war und ist:

1. Abspeichern des Langtextes in einer Datei

2. Über den Skriptrecorder eine Aufzeichnung zum Upload aus einer Datei erstellen

3. Fertig

Grüße,
ScriptMan
Offline commander-bln  
#3 Geschrieben : Mittwoch, 13. September 2017 11:18:50(UTC)
commander-bln

Beiträge: 6
Germany
Wohnort: Berlin
Hallo Script Man.

Pos.1 become ich hin.
aber zu Pos2. kriege ich einfach den Script Recorder nicht dazu
einen Upload aufzuzeichnen.

Bei uns taucht ja , wenn man in den Langtext wechselnt, der Word Editor als Plugin auf.Normales crtl+C und Crtl+V funktioniert

nehme ich diesen Vorgang auf bekommen ich wieder die zeile
session.findById("wnd[0]/usr/cntlSCMSW_CONTAINER_2102/shellcont/shell").setDocument 1,"gjlg<högh<ögj<ögjö<gj<ögj<ögjdöl" -> dieser Tel ist aber eine DIN4 seite an text (vielleicht BIN File)

vielleicht ahst du noch einen Tipp für mich

MFG commander-bln


Offline ScriptMan  
#4 Geschrieben : Mittwoch, 13. September 2017 12:15:56(UTC)
ScriptMan

Beiträge: 223
Hallo commander-bln,

wir haben bei uns kein QM Modul und daher kann ich es nicht direkt ausprobieren. Wenn ich mich aber woanders im Langtext befinde, sehe ich im Menü Kommandos wie folgt:

Text Bearbeiten Springen Format Einbinden System Hilfe

Unter dem Kommando "Text" verbirgt sich bei mir die nächste Kommandoebene, aus der ich dann "Upload" auswähle.

Ist es bei deinem Word Plugin anders? Muss man vielleicht zuerst den Editor wechseln?

Grüße,
ScriptMan

Offline commander-bln  
#5 Geschrieben : Mittwoch, 13. September 2017 12:35:09(UTC)
commander-bln

Beiträge: 6
Germany
Wohnort: Berlin

Ich kann leider keine Hardcopy einfügen.
bei mir erscheint sofort der Editor , von WORD2007
dort könnte ich alles machen, markieren, einfügen.

Dazu müsste ich wohl aus dem Script heraus
die Tastenkompinationen senden.
Leider zeichnet das der Script recorder nichts auf !!

also kenne ich nicht die Vkeys
z.b. für
crtl+A (alles markieren)
crtl+V (einfügen aus Tastaturpuffer)

vielleicht kann ich so tricksen??

LG
Offline commander-bln  
#6 Geschrieben : Mittwoch, 13. September 2017 12:44:19(UTC)
commander-bln

Beiträge: 6
Germany
Wohnort: Berlin
sorry (man sieht den wald vor......)

ganz oben im Menü steht natürlich "text"
Da blendet sich bei uns immer die Info zeile drüber.

dort auch ein Upload, auf ein txt File kann ich zugreifen,
soweit so gut, kommt acuh im Langtext an. Fast Perfekt (in der Theorie)

hast du eventuell einen Codeschnipsel für den Upload
aus einer Txt datei??

LG Commander-Bln

Offline ScriptMan  
#7 Geschrieben : Mittwoch, 13. September 2017 13:35:02(UTC)
ScriptMan

Beiträge: 223
Wie gesagt, deinen eigenen Upload musst du selbst aufzeichnen. Mein Beispiel sieht wie folgt aus:

. . .
Set fso = CreateObject("Scripting.FileSystemObject")
For Zeile = 2 to eor
. . .

langtext = Cells(Zeile, 15)
session.findById("wnd[1]/usr/btnQMICON-LTFEHLER").press
session.findById("wnd[0]/usr/cntlSCMSW_CONTAINER_2102/shellcont/shell").SetFocus

set myfile =fso.opentextfile("c:\tmp\langtext.txt", 2, true,0)
myfile.writeline langtext
myfile.close

session.findById("wnd[0]/mbar/menu[0]/menu[3]").select
session.findById("wnd[1]/usr/radITCTK-TDASCII").select
session.findById("wnd[1]/usr/radITCTK-TDASCII").setFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[2]/usr/ctxtITCTK-TDFILENAME").text = "c:\tmp\langtext.txt"
session.findById("wnd[2]/usr/ctxtITCTK-TDCODEPAGE").text = "4110"
session.findById("wnd[2]/usr/ctxtITCTK-TDCODEPAGE").setFocus
session.findById("wnd[2]/tbar[0]/btn[0]").press

session.findById("wnd[0]/tbar[0]/btn[3]").press



thanks 1 Benutzer dankte ScriptMan für diesen Nützlichen Beitrag.
commander-bln am 14.09.2017(UTC)
Offline commander-bln  
#8 Geschrieben : Donnerstag, 14. September 2017 04:44:21(UTC)
commander-bln

Beiträge: 6
Germany
Wohnort: Berlin
danke dir

werde das nachher mal gleich ausprobieren.

Gestern hatte ich aber schon gemerkt, das ich problem mit den umlauten
ÜÄÖ bekomme, im Text File ist alle OK, aber nach dem Upload nicht mehr.

Hat das etwas mit der CodePage zu tun???

LG Commander-bln
Offline ScriptMan  
#9 Geschrieben : Donnerstag, 14. September 2017 06:05:26(UTC)
ScriptMan

Beiträge: 223
Guten Morgen,

schau dir diesen Link an:

https://wiki.scn.sap.com...cter+encoding+conversion

Demnach müsste man CODEPAGE = 1160 setzen.

Grüße,
ScriptMan
thanks 1 Benutzer dankte ScriptMan für diesen Nützlichen Beitrag.
commander-bln am 14.09.2017(UTC)
Offline commander-bln  
#10 Geschrieben : Donnerstag, 14. September 2017 07:21:14(UTC)
commander-bln

Beiträge: 6
Germany
Wohnort: Berlin
perfekt, beides hat funktioniert
dein Code schnipsel für upload und auch die Codepage function!!

Vielen lieben dank.

Gibt es noch einen Trick, wenn man will das SAP wartet bis der Befehl ausgeführt wurde.

manchmal habe ich hanger, wo ich denke das SAP zu lange benötigt zum öffen,
und der rest des Codes ins leere läuft.

LG Commander-bln
Offline ScriptMan  
#11 Geschrieben : Donnerstag, 14. September 2017 07:31:04(UTC)
ScriptMan

Beiträge: 223
Manchmal hilft schon eine feste Pause im Skript.

z.B.
wscript.sleep 1000 '1000 Millisekunden = 1 Sekunde

Wenn es aber eine dynamische Pause sein muss, muss man schon wissen, wo sie stattfinden soll.

Grüße,
ScriptMan
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 -