Difference between revisions of "SAP ABAP UNIX"

From SapWiki
Line 1: Line 1:
 +
==Ejecutar comando de sistema operativo==
 +
(Los comandos se definen en la tran. SM69)
 +
Función SXPG_COMMAND_EXECUTE
 +
 +
ejemplo:
 +
 +
  FORM mueve_ficheros USING p_file p_dir p_dire CHANGING p_subrc.
 +
 +
    DATA: BEGIN OF lt_btcxpm OCCURS 0.
 +
        INCLUDE STRUCTURE btcxpm.
 +
    DATA: END OF lt_btcxpm.
 +
    DATA: l_para LIKE sxpgcolist-parameters,
 +
          l_aux_dir1(200),
 +
          l_aux_dir2(200),
 +
          l_string TYPE string.
 +
 +
    CONCATENATE p_dir  '/' p_file INTO l_aux_dir1.
 +
    CONCATENATE  p_dire '/' p_file INTO l_aux_dir2.
 +
    CONCATENATE l_aux_dir1 l_aux_dir2 INTO l_para SEPARATED BY space.
 +
 +
    IF sy-subrc <> 0.
 +
* Implement suitable error handling here
 +
    ENDIF.
 +
 +
    CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
 +
      EXPORTING
 +
        commandname                  = 'ZMV'
 +
        additional_parameters        = l_para
 +
      TABLES
 +
        exec_protocol                = lt_btcxpm
 +
      EXCEPTIONS
 +
        no_permission                = 1
 +
        command_not_found            = 2
 +
        parameters_too_long          = 3
 +
        security_risk                = 4
 +
        wrong_check_call_interface    = 5
 +
        program_start_error          = 6
 +
        program_termination_error    = 7
 +
        x_error                      = 8
 +
        parameter_expected            = 9
 +
        too_many_parameters          = 10
 +
        illegal_command              = 11
 +
        wrong_asynchronous_parameters = 12
 +
        cant_enq_tbtco_entry          = 13
 +
        jobcount_generation_error    = 14
 +
        OTHERS                        = 15.
 +
    p_subrc = sy-subrc.
 +
 +
    IF sy-subrc <> 0.
 +
      CASE sy-subrc.
 +
        WHEN 1.
 +
          MESSAGE e010(0t) WITH 'Sin autorizacion para comando OS ZMV' INTO l_string. "#EC NOTEXT
 +
        WHEN 2.
 +
          MESSAGE e010(0t) WITH 'Comando OS ZMV no existe' INTO l_string. "#EC NOTEXT
 +
        WHEN OTHERS.
 +
          MESSAGE e010(0t) WITH 'ZMV errorcode: ' sy-subrc INTO l_string. "#EC NOTEXT
 +
      ENDCASE.
 +
 +
      WRITE:/ l_string.
 +
    ENDIF.
 +
  ENDFORM.
 +
 +
 +
 
==PUT/GET archivos a/desde servidor FTP==
 
==PUT/GET archivos a/desde servidor FTP==
 
 
  Funciones: FTP_CONNECT, FTP_COMMAND, FTP_R3_TO_CLIENT, FTP_SERVER_TO_R3
 
  Funciones: FTP_CONNECT, FTP_COMMAND, FTP_R3_TO_CLIENT, FTP_SERVER_TO_R3
 
  Programa ejemplo: RSFTP003
 
  Programa ejemplo: RSFTP003

Revision as of 14:43, 2 April 2020

==Ejecutar comando de sistema operativo==
(Los comandos se definen en la tran. SM69)
Función SXPG_COMMAND_EXECUTE
ejemplo:
  FORM mueve_ficheros USING p_file p_dir p_dire CHANGING p_subrc.

    DATA: BEGIN OF lt_btcxpm OCCURS 0.
        INCLUDE STRUCTURE btcxpm.
    DATA: END OF lt_btcxpm.
    DATA: l_para LIKE sxpgcolist-parameters,
          l_aux_dir1(200),
          l_aux_dir2(200),
          l_string TYPE string.

    CONCATENATE p_dir   '/' p_file INTO l_aux_dir1.
    CONCATENATE  p_dire '/' p_file INTO l_aux_dir2.
    CONCATENATE l_aux_dir1 l_aux_dir2 INTO l_para SEPARATED BY space.

    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.

    CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
      EXPORTING
        commandname                   = 'ZMV'
        additional_parameters         = l_para
      TABLES
        exec_protocol                 = lt_btcxpm
      EXCEPTIONS
        no_permission                 = 1
        command_not_found             = 2
        parameters_too_long           = 3
        security_risk                 = 4
        wrong_check_call_interface    = 5
        program_start_error           = 6
        program_termination_error     = 7
        x_error                       = 8
        parameter_expected            = 9
        too_many_parameters           = 10
        illegal_command               = 11
        wrong_asynchronous_parameters = 12
        cant_enq_tbtco_entry          = 13
        jobcount_generation_error     = 14
        OTHERS                        = 15.
    p_subrc = sy-subrc.

    IF sy-subrc <> 0.
      CASE sy-subrc.
        WHEN 1.
          MESSAGE e010(0t) WITH 'Sin autorizacion para comando OS ZMV' INTO l_string. "#EC NOTEXT
        WHEN 2.
          MESSAGE e010(0t) WITH 'Comando OS ZMV no existe' INTO l_string. "#EC NOTEXT
        WHEN OTHERS.
          MESSAGE e010(0t) WITH 'ZMV errorcode: ' sy-subrc INTO l_string. "#EC NOTEXT
      ENDCASE.

      WRITE:/ l_string.
    ENDIF.
  ENDFORM.


PUT/GET archivos a/desde servidor FTP

Funciones: FTP_CONNECT, FTP_COMMAND, FTP_R3_TO_CLIENT, FTP_SERVER_TO_R3
Programa ejemplo: RSFTP003

Unix Varios

Trn. SM69 : Comandos Sistema Operativo

FM. BRAN_DIR_CREATE : crear directorio (ojo con las validaciones internas pero se puede usar de base)

Trn. CG3Z / Reporte RC1TCG3Z : Upload fichero a servidor
Trn. CG3Y / Reporte RC1TCG3Y : Download fichero desde servidor

FM. CACS_FILE_COPY : copiar de servidor a PC y viceversa

Rep. RSBDCOS0 : Ejecutar comando SO (grabado en log sistema y ficheros Trace)