Bug 6131

Summary: Upload mit Arbeitsverzeichnis schlägt fehl
Product: [SCX/Suite] VMI Reporter: Hopmann, Peter <Peter.Hopmann>
Component: Daten-TransferAssignee: Hopmann, Peter <Peter.Hopmann>
Status: VERIFIED FIXED QA Contact: Tilli, Benedikt <Benedikt.Tilli>
Severity: normal    
Priority: P5 Keywords: Vorabkorrektur
Version: 7.30   
Hardware: All   
OS: All   
Whiteboard:
Kundennummer: Bestellnummer:
PV Übergabe: --- Phase Roadmap: ---
Erledigt mit: Lupus SAP Release: ---
Transport: M27K900084, P16K900047 CRM-ID/Ticket:
Bug Depends on: 5982    
Bug Blocks: 6392    

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.