Ich muß derzeit aus 7 Verzeichnissen txt-files einlesen und in die DB schubsen.
Das geht ja auch schon ganz gut, nur mit 2 verzeichnissen habe ich ein Problem:
Die Auftragsnummer is nicht im txt-File abgespeichert, sondern ein Unterverzeichnis. In diesem Wiederum steht das Protokoll, welches ich einlesen soll.
Die Daten werden automatisch von Prüfrechnern erstellt und auf den Server geschoben.
Lösung 1
Auftragsnummer in Datei schreiben lassen - geht nicht, kostet Geld, schon abgelehnt.
Lösung 2:
Uvz-Liste einlesen, loopen und wie in den anderen Programmen Dateien einlesen - nur wie?
Wenn ich einmal den Uvz-Namen habe, hab ich ja auch die Auftragsnummer im wa-Bereich.
Weiss wer was dazu?
Um präziser zu sein, gibt es einen Baustein wie TMP_GUI_DIRECTORY_LIST_FILES
auch für den Applikationsserver?
na ja, einen Fuba hab ich nicht gefunden, aber Du kannst Dir leicht selber einen basteln:
Guck Dir mal FuBa F4_DXFILENAME an, Form fill_gt_file_list. Dort wird ein Verzeichnis des Applikationservers ausgelesen und das Ergebnis in die globale Tabelle g_file gestellt. Die Tabelle enthält u.a. das Feld dir_flag, welches bei Directories auf 'X' sitzt.
Zwar keine fertige Lösung, aber vielleichts hilfts...
Mein DB-Kollege hat mir folgendes gegeben, falls es dich interessiert ...
*---------------------------------------------------------------------*
* Topic: File Manager for UNIX environment *
* *
* Description: With internal system command you can get access to *
* the UNIX. The program list files in the Unix *
* environment and by using at line selecttion you are*
* able to browse datasets. *
* *
* Authorization: None, be careful you have unlimited access to Unix.*
* Check that you are able to use the internal system *
* command. *
* *
* Parameters: Filename and path. *
* *
* Change of Check that you are able to use the internal system *
* release command. *
* *
* Release: 4.6b *
* *
***********************************************************************
REPORT ZTEST2 MESSAGE-ID Z1
NO STANDARD PAGE HEADING
LINE-COUNT 65
LINE-SIZE 132.
*---------------------------------------------------------------------*
* Global Variables. *
*---------------------------------------------------------------------*
DATA: BEGIN OF TABL OCCURS 0,
LINE(2000),
END OF TABL.
DATA: PARCOM_LOC LIKE RS37A-LINE.
DATA: SIZE(10) TYPE C,
LINE LIKE TABL-LINE,
SUM(16) TYPE C.
DATA: FILE LIKE RS37A-LINE.
DATA: PATH(255) TYPE C.
*********************************************************************
*AT LINE-SELECTION.
AT LINE-SELECTION.
CLEAR FILE.
FILE = SY-LISEL+55.
REPLACE '|' WITH SPACE INTO FILE.
IF SY-LISEL+1(1) = 'd'.
PATH = FILE.
PATH+200 = '/*'.
CONDENSE PATH NO-GAPS.
SUBMIT ZUNIXFILES
WITH PARCOM = PATH
AND RETURN.
ENDIF.
SUBMIT ZBROWSEFILE "Call the browse program
WITH PARCOM = FILE
AND RETURN.
*---------------------------------------------------------------------*
* FORM MAKE_LOC. *
*---------------------------------------------------------------------*
FORM MAKE_LOC.
CLEAR: PARCOM_LOC.
PARCOM_LOC(7) = 'ls -ld '.
PARCOM_LOC+7(45) = PARCOM.
ENDFORM.
*---------------------------------------------------------------------*
* FORM COLLECT_DATA. *
*---------------------------------------------------------------------*
FORM COLLECT_DATA.
REFRESH TABL.
CALL 'SYSTEM' ID 'COMMAND' FIELD PARCOM_LOC
ID 'TAB' FIELD TABL-*SYS*.
ENDFORM.
*-------------------------------------------------------------------*
* FORM FILE_LIST. *
*-------------------------------------------------------------------*
FORM FILE_LIST.
FORMAT RESET.
CLEAR SUM.
LOOP AT TABL.
CLEAR LINE.
LINE = TABL-LINE.
WRITE /2 LINE.
PERFORM VERTICAL_LINES.
SUM = SUM + SIZE.
ENDLOOP.
WRITE:/1(132) SY-ULINE.
ENDFORM.
*-------------------------------------------------------------------*
* FORM WRITE_PAGE_HEADING. *
*-------------------------------------------------------------------*
FORM WRITE_PAGE_HEADING.
WRITE:/1(132) SY-ULINE.
PERFORM VERTICAL_LINES.
FORMAT INTENSIFIED.
WRITE: /2(131) SPACE COLOR 1.
WRITE: 2 SY-DATUM COLOR 1.
WRITE: 35 'File Manager' COLOR 1.
PERFORM VERTICAL_LINES.
WRITE:/1(132) SY-ULINE.
PERFORM VERTICAL_LINES.
FORMAT INTENSIFIED.
WRITE: /2(131) SPACE COLOR 3.
PERFORM VERTICAL_LINES.
FORMAT RESET.
WRITE:/1(132) SY-ULINE.
ENDFORM.
*-------------------------------------------------------------------*
* FORM VERTICAL_LINES. *
*-------------------------------------------------------------------*
FORM VERTICAL_LINES.
PERFORM WRITE_VLINE USING ' ' 1.
PERFORM WRITE_VLINE USING ' ' 132.
ENDFORM.
*-------------------------------------------------------------------*
* WRITE_VLINE. *
*-------------------------------------------------------------------*
FORM WRITE_VLINE USING MODE POS.
IF MODE NE 'T'.
FORMAT INTENSIFIED.
ENDIF.
POSITION POS.
WRITE: SY-VLINE.
IF MODE NE 'T'.
FORMAT RESET.
ENDIF.
ENDFORM.