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"

Empfehlen