Bug 6131 - Upload mit Arbeitsverzeichnis schlägt fehl
Summary: Upload mit Arbeitsverzeichnis schlägt fehl
Status: VERIFIED FIXED
Alias: None
Product: VMI
Classification: SCX/Suite
Component: Daten-Transfer (show other bugs)
Version: 7.30
Hardware: All All
: P5 normal
Assignee: Hopmann, Peter
QA Contact: Tilli, Benedikt
URL:
Whiteboard:
Keywords: Vorabkorrektur
Depends on: 5982
Blocks: 6392
  Show dependency tree
 
Reported: 2016-05-10 11:30 CEST by Hopmann, Peter
Modified: 2016-07-13 09:21 CEST (History)
0 users

Kundennummer:
Bestellnummer:
PV Übergabe: ---
Phase Roadmap: ---
Erledigt mit: Lupus
SAP Release: ---
Transport: M27K900084, P16K900047
CRM-ID/Ticket:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hopmann, Peter intern 2016-05-10 11:30:22 CEST
vereinzelt kann es vorkommen, dass beim Einsatz eines Arbeitsverzeichnisses für Upload der Upload mit "fehlerhaftes Sub-Kommando" fehlschlägt.
Comment 4 Hopmann, Peter intern 2016-05-12 14:13:33 CEST
.
Comment 3 Hopmann, Peter intern 2016-05-12 14:12:58 CEST
/GIB/CL_DCV_FTP_CONNECTION
neues Instanz-Attribut mf_logout type xfeld, protected.

METHOD ftp_logout.
  DATA: lf_exit TYPE xfeld,
        lf_handle TYPE i,                                 "6131
        lr_ftp TYPE REF TO /gib/cl_dcv_ftp_connection.    "6131

  FIELD-SYMBOLS: <ls_connection> TYPE /gib/dcv_obj_instance_s.   "6131

  lf_exit = call_badi_logout( ).
  IF lf_exit = 'X'.
    EXIT.
  ENDIF.
*# vom FTP-Server abmelden
*#6131 erst dann abmelden, wenn alle Verbindungen nicht mehr benötigt werden.
*# sonst funktioniert FTP_COMMAND nicht mehr.
  IF mf_logout = space.
    mf_logout = 'X'.
    READ TABLE gt_connection ASSIGNING <ls_connection> WITH KEY
      data_r = me.
    IF sy-subrc = 0.
      <ls_connection>-keyval = 'LOGOUT'.
    ENDIF.
    READ TABLE gt_connection TRANSPORTING NO FIELDS WITH KEY
      keyval = space.
    IF sy-subrc <> 0.
*# dies war die letze Verbindung, jetzt sind alle Verbindungen inaktiv
      LOOP AT gt_connection ASSIGNING <ls_connection>.
        lr_ftp ?= <ls_connection>-data_r.
        lr_ftp->ftp_logout( ).
      ENDLOOP.
    ENDIF.
  ELSE.
    READ TABLE gt_connection TRANSPORTING NO FIELDS WITH KEY
      keyval = space.
    IF sy-subrc <> 0.
*##6131
      CALL FUNCTION 'FTP_DISCONNECT'
...
      CLEAR: ms_vmi020.
    ENDIF.                              "6131
  ENDIF.                              "6131

ENDMETHOD.
Comment 2 Hopmann, Peter intern 2016-05-12 11:22:04 CEST
Bei einer Verbindung per Badi tritt der Fehler nicht auf.

Der Fehler tritt beim Einsatz von native FTP in Kombination mit einem Arbeitsverzeichnis auf. Das Arbeitsverzeichnis dient dazu, die Datei im UTF-8-Format zu erzeugen. Der Baustein FTP_R3_TO_SERVER versagt diesbezüglich. Der Baustein FTP_COMMAND wird deshalb mit dem entsprechenden PUT-Befehl aufgerufen.
Wenn jedoch zwischendurch eine 2. FTP-Verbindung aufgebaut und anschließend abgebaut wird (Logout), dann funktioniert FTP_COMMAND auf der 1. Verbindung, die ja eigentlich noch aktiv sein sollte, nicht mehr.