Sie wollen alle Ihre GuiXT Scripte aus dem WebRepository auf einen lokalen Pfad extrahieren
Sie speichern Ihre Scripte im WebRepository und möchten diese zwecks Weiterentwicklung / Anpassungen auf einen lokalen Pfad extrahieren. Für einzelne Scripte kann man dies von Hand machen. Steigt jedoch die Anzahl der Scripte so wird dies mühsam.
Aus diesem Grund habe ich untenstehende Scripte entwickelt um diese Arbeit zu vereinfachen.

Die nun vorliegende Version der Scripte ( vom 23.06.2004 ) funktioniert ab Rel. 46C incl. Enterprise 4.70
sapmwww0.d0200.txt
Pos T[Table] (8,0) Tablewidth T[Table] 100 Box (3,0) (7,100) "Exportieren" inputfield (4,1) "zu selektierende Dateien" (4,25) Name="Selekt_Dat" Size="30" inputfield (5,1) "Zielverzeichnis" (5,25) Name="Zielverzeichnis" Size="60" Pushbutton (4,60) "Exportieren starten" Process="Export.txt"
Export.txt
// Script zum Exportieren der Files im Web Repository
// 23.06.2004 / Gérald Koehn / Koehn Consulting / www.guixt.ch
// Feststellen wieviele Zeichen in dem Feld zu selektierende Dateien drin stehen
set V[i] 1
set V[k] 0
Set V[Anz_Files] 0
Label Next
set V[Kontrolle] "&V[Selekt_Dat](&[i]-&[i])"
if V[Kontrolle]
set V[k] &[k] + 1
set V[i] &[i] + 1
goto Next
endif
// Loop über Tablecontrol
// Variables
Set V[absrow] 1 // Absolute row number
Set V[relrow] 1 // Relative row number
Screen SAPMWWW0.0200
GetTableAttribute T[Table] FirstVisibleRow=FVisRow LastVisibleRow=LVisRow LastRow=LastRow
// First row on screen?
if V[FVisRow=1]
goto new_row
endif
// scroll to first line
Enter "/ScrollToLine=1" Table="T[Table]"
label new_screen
Screen SAPMWWW0.0200
GetTableAttribute T[Table] FirstVisibleRow=FVisRow LastVisibleRow=LVisRow LastRow=LastRow
Set V[relrow] 1
label new_row
// end of table?
if V[absrow>&V[LastRow]]
goto end_of_table
endif
// end of screen?
if V[absrow>&V[LVisRow]]
Enter "/ScrollToLine=&V[absrow]" Table="T[Table]"
goto new_screen
endif
Set V[C1] "&cell[Table,Objektname,&V[relrow]]"
// Abschneiden des Pfades gemäss Eingabe in zu selektierende Dateien
set V[m] &[k] + 1 // Anzahl Zeichen um eins erhöhen, so dass erst ab dem nächsten Zeichen gelesen wird
set V[Kontrolle_Pfad] "&[C1](1-&[k])"
if V[Kontrolle_Pfad=&V[Selekt_Dat]]
// Feststellen wieviel Zeichen der Objektname Total beeinhaltet
set V[l] 1
Label Next_Zaehler
set V[Zaehler] "&[C1](&[l]-&[l])"
if V[Zaehler]
set V[l] &[l] + 1
goto Next_Zaehler
endif
// Jetzt steht in der Variable V[l] die Anzahl der Zeichen von Objektname
// Da die Endung immer 3 Zeichen abgetrennt mit einem . (Punkt) werden diese von der Variable &[l] abgezählt
Set V[j] &[l] - 5 // Minus 5 und nicht minus 4 => Gartenzaunproblem
// Im Objektnamen drin müssen jetzt allfällige . (Punkte) durch \ersetzt werden
Set V[n] 1
Set V[o] &[m]
Set V[Filename_Extrakt] " "
Label Next_Extrakt
if not V[o>&[j]] // Dann beginnt die Endung des Objektnamen und daher kann dann abgebrochen werden
Set V[Kontrolle_Punkt] "&V[C1](&[o]-&[o])"
// if V[Kontrolle_Punkt=.]
// set V[Filename_Extrakt](&[n]-&[n]) "\"
// Set V[n] &[n] + 1
// Set V[o] &[o] + 1
// goto Next_Extrakt
// else
Set V[Filename_Extrakt](&[n]-&[n]) "&V[C1](&[o]-&[o])"
Set V[n] &[n] + 1
Set V[o] &[o] + 1
goto Next_Extrakt
// endif
endif
Set V[p] &[j] + 1 // Bei P beginnt die Endung
set V[Filename] "&V[Filename_Extrakt]&[C1](&[p]-&[l])"
Set cell[Table,0,&V[relrow]] "X" // entsprechende Zeile markieren
set V[Pfad] "&V[Zielverzeichnis]\&V[Filename]" // das \steht weil man davon ausgeht, dass bei der Variable Zielverzeichnis das abschliessende \nicht eingegeben wird
Set V[line] ""
CopyText toText=query fromString=line
// Line 1
Set V[line] "_FUNCTION"
Set V[line](31-120) "WWW_GET_MIME_OBJECT"
CopyText toText=query fromString=line -appendline
// Line 2
Set V[line] "_OBJECT_ID"
Set V[line](31-120) "&V[C1]"
CopyText toText=query fromString=line -appendline
Call "WWW_DISPATCH_REQUEST" table.QUERY_STRING=query table.MIME=s1
Set V[Anz_Files] &[Anz_Files] + 1
copytext fromText="s1" toFile="&V[Pfad]"
StatusMessage Title="Exportierte Files"
StatusMessage Position=(9,0)
StatusMessage Size=(20,100)
StatusMessage AddString="&V[Pfad]"
endif
Set V[absrow] &V[absrow] + 1
Set V[relrow] &V[relrow] + 1
goto new_row
label end_of_table
// Back to line 1
Enter "/ScrollToLine=1" Table="T[Table]"
StatusMessage -Remove
Message "&V[Anz_Files] Files wurden erfolgreich auf Zielverzeichnis &V[Zielverzeichnis] exportiert"
