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"