jueves, 7 de abril de 2016

Form para escribir un archivo respetando n espacios en blanco a la izquierda. (SAP-ABAP- TRANSFER ... TO...)

*&---------------------------------------------------------------------*
*&      Form  F_TRANSFER_FILE
*&---------------------------------------------------------------------*
FORM f_transfer_file 
TABLES  pt_outtab LIKE  t_ot           " Tabla con datos a tranferir
USING    pv_target TYPE eps2path  " Ruta concatenada con nombre de archivo
                                                           " (ej. \\10.170.80.101\BANCO\ARCHIVO_BANCO.txt )
CHANGING pv_subrc.

  FIELD-SYMBOLS:
  <ot> LIKE LINE OF pt_outtab.
  DATA:
  lv_len TYPE VALUE 300" Largo de líne a escribir

  OPEN DATASET pv_target FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

  IF pt_outtab[] IS NOT INITIAL.
    UNASSIGN<ot>.
    LOOP AT pt_outtab ASSIGNING <ot>.
      " Si la línea contiene 200 caracteres, en el archivo generado, lo restante (100) será con       " espacios en blanco
      TRANSFER <ot> TO pv_target LENGTH lv_len.
    ENDLOOP.
  ENDIF.

  CLOSE DATASET pv_target.

  MOVE sy-subrc TO pv_subrc.

ENDFORM.                    " F_TRANSFER_FILE