Upload einer CSV von APP in interne Tabelle

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Upload einer CSV von APP in interne Tabelle

Beitrag von Stephan-KKH (ForumUser / 12 / 3 / 0 ) »
Hallo Miteinander,

ich habe eine Frage zum Thema CSV Upload von unserem Applikationsserver in eine interne Tabelle.
Im Forum bin ich schon auf den FB 'FILE_READ_AND_CONVERT_SAP_DATA' gestoßen und habe diesen nach besten Wissen und Gewissen mit parametern gefüttert:

Code: Alles auswählen.

 datei type FILENAME-FILEINTERN.

*Pfad der zu uploadenden Datei auf Verzeichnis j: auf dem APP.
datei = 'j:/.../HEP.csv'.

CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
  EXPORTING
   I_FILENAME                 = datei
   I_SERVERTYP                = 'APP'
   I_FILEFORMAT               = 'csv'
   I_FIELD_SEPERATOR          = ';'
*   I_LINE_HEADER              =
* IMPORTING
*   E_BIN_FILELENGTH           =
 TABLES
   I_TAB_RECEIVER             = hep
 EXCEPTIONS
   FILE_NOT_FOUND             = 1
   CLOSE_FAILED               = 2
   AUTHORIZATION_FAILED       = 3
   OPEN_FAILED                = 4
   CONVERSION_FAILED          = 5
   OTHERS                     = 6


meine interne Tabelle hep habe ich mit der gleichen Anzahl der Spalten aufgebaut, wie meine csv-Datei.

Bei Ausführen bekomme ich einen Sy-Subrc von 3. (Heißt das dann "AUTHORIZATION_FAILED" ? wäre quatsch, da ich Lese und Schreibrechte auf dem Verzeichnis habe)

Kann mir jemand helfen? Wäre toll!

Grüße

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Upload einer CSV von APP in interne Tabelle

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
Stephan-KKH hat geschrieben:Heißt das dann "AUTHORIZATION_FAILED" ? wäre quatsch, da ich Lese und Schreibrechte auf dem Verzeichnis habe)
Nicht zwingend, der FILE Zugriff läuft nicht unter deinem User, sondern unter dem "SAP-User" des ApplikationServers.

Hast du Zugriff über die Transaktion AL11 auf die Datei?
Gruß Hendrik

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Stephan-KKH (ForumUser / 12 / 3 / 0 ) »
Guten Morgen,
vielen Dank für deine Nachricht und entschuldige die späte Antwort.

Unter der Transaktion AL11 habe ich vollen Zugriff auf die Datei. Ich kann Sie anschauen und auch ändern.
Kann ich in der Syntax noch was ändern?

Grüße!

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Welche Fehlermeldung kommt den genau??? .. ganz genau???? Copy & Paste mit allen Angaben oder Screenshot waeren empfehlenswert.

Debuggen waere evtl. eine Loesung.

Auf den ersten Blick gibt es naemlich zwei Stellen im FuBa die die Ausnahme " RAISING authorization_failed." ausloesen:

Ich vermute, dass durch Deinen Aufruf:

Code: Alles auswählen.

CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
  EXPORTING
   I_FILENAME                 = datei
   I_SERVERTYP                = 'APP'
Der erste Code durchlaufen wird, und dort die Exception durch "WHEN OTHER." ausgeloest wird.

Code: Alles auswählen.

* Read data from application server
  IF i_servertyp = c_application_server.

*   derive log.filenames
    CASE sy-cprog.
      WHEN 'RFTR_INTF_MAINFLOWS_UPLOAD'.
        l_filename_logical = 'FTRM_FTR_DEALDATA_AMORTIZATION_SCHEDULES_IMPORT'.
      WHEN 'RFTS6510'.
        l_filename_logical = 'FCLM_CM_MEMO_RECORD_IMPORT'.
      WHEN 'RFVOBJ01'.
        l_filename_logical = 'CML_MIGRATION_OBJECTS_PHYSFILE_IN'.
      WHEN 'RFVSIC01'.
        l_filename_logical = 'CML_MIGRATION_COLLATERALS_PHYSFILE_IN'.
      WHEN OTHERS.
        MESSAGE ID 'SG' TYPE 'E' NUMBER '809'
          WITH 'SPACE'
          RAISING authorization_failed.
    ENDCASE.

Code: Alles auswählen.

*   note 1509869: File validation
    CALL FUNCTION 'FILE_VALIDATE_NAME'
      EXPORTING
        logical_filename  = l_filename_logical
*       any parameters defined for that logical file name
      CHANGING
        physical_filename = l_file_name
      EXCEPTIONS
        OTHERS            = 1.

    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
      RAISING authorization_failed.
    ENDIF.

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Stephan-KKH (ForumUser / 12 / 3 / 0 ) »
Hallo und danke für die Antwort!

Du hast genau recht! Der erste Durchlauf bringt die Exception. Hätte mir im Debugging echt auffallen müssen...

Heißt das, dass logischer und physischer Filename nicht übereinstimmen oder wie kann ich das deuten?

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Guter Tipp:
Hatte auch gerade ein ähnliches Problem. Der Dateinamen darf bei der Berechtigungs-Prüfung nicht länger als 60 Zeichen sein.
FuBa AUTHORITY_CHECK_DATASET, Berechtigungsobjekt S_DATASET bzw. Datenelement FILEEXTERN
Wir haben uns da intern mit "symbolischen Links" beholfen.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Hi,

also ich deute das so:

Wenn Du den FuBa mit:

Code: Alles auswählen.

    CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
      EXPORTING
       I_FILENAME                 = datei
       I_SERVERTYP                = 'APP'
aufrufst, muss Dein aufrufendes Programm einer dieser vier in diesem Code genannten sein: (RFTR_INTF_MAINFLOWS_UPLOAD, RFTS6510, RFVSIC01 oder RFVSIC01)
D.h. der Aufruf mit Servertyp 'APP' funktioniert nur fuer diese 4 Programme, alle anderen haben keine Authorization. Es liegt hier also nicht am User, sondern am Aufrufprogramm.

Code: Alles auswählen.

  * Read data from application server
      IF i_servertyp = c_application_server.

    *   derive log.filenames
        CASE sy-cprog.
          WHEN 'RFTR_INTF_MAINFLOWS_UPLOAD'.
            l_filename_logical = 'FTRM_FTR_DEALDATA_AMORTIZATION_SCHEDULES_IMPORT'.
          WHEN 'RFTS6510'.
            l_filename_logical = 'FCLM_CM_MEMO_RECORD_IMPORT'.
          WHEN 'RFVOBJ01'.
            l_filename_logical = 'CML_MIGRATION_OBJECTS_PHYSFILE_IN'.
          WHEN 'RFVSIC01'.
            l_filename_logical = 'CML_MIGRATION_COLLATERALS_PHYSFILE_IN'.
          WHEN OTHERS.
            MESSAGE ID 'SG' TYPE 'E' NUMBER '809'
              WITH 'SPACE'
              RAISING authorization_failed.
        ENDCASE.
Ich weiss allerdings nicht, was passiert, wenn Du den Servertyp einfach mal weglaesst. Versuch es einfach mal und sag was passiert. Probieren geht ueber studieren.

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ich glaube fast, an ein OPEN DATASET ... kommst Du so schnell nicht vorbei.

Ich kann mich nicht erinnern, dass ich jemals einen FuBa fuer einen Upload einer Datei vom Applikationserver benutzt habe.

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Stephan-KKH (ForumUser / 12 / 3 / 0 ) »
Hey,
danke für die Antwort.

Wenn ich den Servertyp weglasse, ist als default auch 'APP' hinterlegt, d.h. es kommt zum gleichen Ergebnis.
Könnte ich mein Programm zu den zugelassenen Programmen hinzufügen?

Grüße.

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Du musst explizit SPACE (oder einfach AAA) mitgeben, ansonsten wird als default 'AAP' genommen.

Ich vermute auch, dass die Uebergabe von 'CSV' Probleme macht.
Versuch auch statt 'CSV' ein ''ASC' als Filetype.
In diesem FuBa wird der Servertyp abgefragt und das Dateiformat. Bei CSV geht der FuBa davon aus, dass die Datei vom Presentationsserver 'PRS' geuploadet werden soll.

Es wird aber wahrscheinlich trotzdem nicht funktionieren.

Du koenntest versuchen den FuBa zu kopieren und dann anzupassen, was ich persoenlich nicht machten wuerde, auch erst gar nicht versuchen.

Ich wuerde aber das OPEN DATASET vorziehen, da das Umschreiben des FuBas wohl mehr Zeit in Anspruch nehmen wird, als ein einfaches OPEN DATENSET...

Re: Upload einer CSV von APP in interne Tabelle

Beitrag von Stephan-KKH (ForumUser / 12 / 3 / 0 ) »
Es ist eine OPEN DATASET variante geworden.

Danke für alle Hinweise und Hilfen!!

Grüße!

Seite 1 von 1

Vergleichbare Themen

4
Antw.
7879
Views
Upload aus Excel in interne Tabelle
von manuk » 30.05.2005 08:39 • Verfasst in ABAP® Core
4
Antw.
227
Views
5
Antw.
1247
Views
Inhalt interne Tabelle an andere interne Tabelle übergeben
von L0w-RiDer » 30.01.2020 16:28 • Verfasst in ABAP® für Anfänger
5
Antw.
3004
Views
interne Tabelle in andere interne Tabelle (Format)
von Gast » 20.10.2004 14:44 • Verfasst in ABAP® Core
1
Antw.
1089
Views
ALV Tabelle durch GUI UPLOAD in Programmtabelle
von holderda » 12.05.2014 13:34 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 42 Minuten von msfox 2 / 34
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 42 Minuten von msfox 2 / 34
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141