SAP Jobsuche bei DV-Treff
newgui
  • newgui
  • SAP Forum - Experte Thema Starter
vor 8 Jahre
Hallo Forumsgemeinde,

bräuchte da mal eure Hilfe.

Bei uns wurde ein zentraler Ordner angelegt. Darunter haben Kollegen eigene Ordner angelegt in die sie PDF's mit einer Auftragsnummer speichern. Soweit so gut.

Ich habe nun ein Inputfield in SAP und über dieses soll die jeweilige Datei geöffnet werden.

Grundsätzlich schaffe ich es ja die Datei mit einer Variable aus guixt zu öffnen.

start "D:\Auftraege\&V[X_Auftrag].pdf"

Das wäre ja nicht das Problem nur liegen die Dateien halt nicht direkt unter diesem Ordner sondern unter Unterordnern also zB D:\Auftraege\user1\bestaetigt\ und hier erst die Datei, natürlich je User unterschiedlich.

Gibt es eine Möglichkeit über guixt oder auch über gui scripting den Ordner und die Unterordner zu durchsuchen und die Datei zu öffen (soferne nat. vorhanden). Ev. auch noch mit *Dateiname*?

Wäre echt toll wenn mir da jemand weiterhelfen könnte.

mfg

newgui

ScriptMan
vor 8 Jahre
Hallo newgui,

bekanntlich führen immer mehrere Wege nach Rom... Daher sollte meine Lösung nur eine reine Anregung sein:

z.B.

1. InputField (4,80) "@9E\QGeben Sie hier einen Dateinamen ein@Dateiname: " (4,92) Size=15 name="myDateiname"

2.Pushbutton (Toolbar) "@9E\QTest für einen Dateinamen@Dateiname" Process="c:\skripts\Dateiname.txt"

3. GuiXT-Skript: Dateiname.txt

if not V[myDateiname=]

start "c:\scripts\dateiname.bat.lnk" parameters="&V[myDateiname]"

endif

4. BAT-Datei: Dateiname.bat

d:

cd \Auftraege

dir *%1* /B /S >c:\tmp\myDateiname.txt

start c:\scripts\dateiname.vbs

5. Verknüpfung zu Dateiname.bat als Dateiname.bat.lnk

- Datei markieren

- über Kontextmenü -> Verknüpfung erstellen

- Dateinamen in Dateiname.bat.lnk ändern

- Verknüpfung markieren

- über Kontextmenü -> Eigenschaften -> Ausführen -> Minimiert

6. VB-Skript: Dateiname.vbs

Set fso = CreateObject("Scripting.FileSystemObject")

set wshell = CreateObject("Wscript.Shell")

If fso.fileExists("c:\tmp\myDateiname.txt") then

set myfile = fso.opentextfile("c:\tmp\myDateiname.txt")

on error resume next

myDateiname = myfile.readline

myDateiname_1 = myfile.readline

on error goto 0

myfile.close

end if

'msgbox myDateiname

if myDateiname = "" then

msgbox "Es existiert keine Datei mit dem gewählten Teilstring.", vbinformation , "Hinweis"

else

wshell.run chr(34) & myDateiname & chr(34)

end if

if myDateiname_1 <> "" then

if msgbox("Wollen Sie noch andere Dateien mit dem gewählten Teilstring anzeigen.", vbYesNo , "Frage") = vbYes then

set myfile = fso.opentextfile("c:\tmp\myDateiname.txt")

myDateiname = myfile.readline

do Until myfile.AtEndOfStream

myDateiname = myfile.readline

wshell.run chr(34) & myDateiname & chr(34)

loop

myfile.close

end if

end if

7. Fertig

Wenn ich keinen Fehler beim Ändern der Pfade gemacht habe, müsste alles funktionieren.

Viel Spaß beim Testen!

ScriptMan

newgui
  • newgui
  • SAP Forum - Experte Thema Starter
vor 8 Jahre
Hi scriptman,

herzlichen Dank für deine ausführliche Anleitung. Hoffe ich komme n. Woche mal dazu das zu testen. Das das ganze so umfangreich wird hätte ich nicht gedacht 😲

mfg

newgui

gerd
  • gerd
  • SAP Forum - Neuling
vor 8 Jahre
Alternatv:

CopyText toText="dir" fromDirectory="..."

Und dann die zurückgelieferte Langtextvariable "dir" verarbeiten.

ScriptMan
vor 8 Jahre

Ich vermute aber, dass sich damit die Option "/S" vom MS-DOS-Kommando dir nicht ohne weiteres simulieren lässt. Es sei denn, man geht das Ergebnis von "-subdirectories" einzeln nochmals durch, bis keine Unterverzeichnisse mehr vorkommen, was entsprechend zu programmieren wäre.

ScriptMan
vor 8 Jahre
Hallo newgui,

mich würde nun interessieren, ob Gerd mit seinem Vorschlag recht hatte. Konntest du das Thema irgendwie lösen?

Grüße,

ScriptMan

newgui
  • newgui
  • SAP Forum - Experte Thema Starter
vor 8 Jahre
Hallo scriptman,

leider bin ich noch gar nicht dazu gekommen, das überhaupt umzusetzen. 😢 Bin momentan mit soviel anderen Dingen (die leider wichtiger/dringender sind) zugekleistert, dass ich einfach keine Zeit finde. Ich hoffe ja doch, dass ich es demnächst mal schaffe. Also das Thema ist nicht tot sondern hat sich nur in der Prio verschoben. Werde mich aber dann natürlich umgehendst melden.

mfg

newgui

P.S.: zum Glück bleibt aber noch soviel Zeit, dass ich ins Forum schauen und ein wenig posten kann 😁