Completar variables con espacios a la izquierda

16 08 2008

Es común que en nuestras tareas diarias nos pidan generar archivos con algún formato en particular. Para luego ser levantado por un aplicativo fuera de SAP.

Y  es probable que nos pidan que ciertos campos los completemos con espacios en blanco adelante (a la izquierda). Por lo tanto acá dejo una sentencia ABAP para completar con espacios:


DATA: lv_dato(14) TYPE C.

lv_dato = ‘HOLA’.

*-> Con esta sentencia la variable lv_dato queda con 10 espacios en blanco y luego la palabra HOLA
SHIFT lv_dato RIGHT DELETING TRAILING SPACE.

 

Para saber más sobre la sentencia SHIFT…


Technorati tags:





Función SAVE_TEXT – Crear y guardar Textos en SAP

15 08 2008

Con la función SAVE_TEXT vamos a poder crear y completar campos de textos en SAP. Podremos llenar, por ejemplo, textos de cabecera y posición en forma masiva.


Vamos a necesitar algo de información previa. Para eso hay que ir al lugar donde ponemos el texto y clickeamos en el menú Pasar a —> Cabecera…

 

El código que tenemos que agregar es:

*Declaraciones para los textos.
DATA: it_header  TYPE thead,
           it_lines      TYPE TABLE OF tline.

         REFRESH it_lines.
         CLEAR it_header.

*—–>Texto para agregar       
        it_lines-tdline = ‘Este es un texto de cabecera’.
        APPEND wa_lines TO it_lines.

*—–>Completamos con los datos que obtuvimos arriba 
        it_header-tdobject = ‘VBBK’.  “VG_OBJ
        it_header-tdname = ‘0000000057′.  “VG_NAME
        it_header-tdid   = ‘ZCER’.  “VG_ID
        it_header-tdspras = ‘E’.  “VG_LANG
        it_header-tdlinesize = ‘072′.

*—->Llamamos a la función que nos completa el texto
        CALL FUNCTION ‘SAVE_TEXT’
          EXPORTING
            header          = it_header
            insert          = ‘X’
            savemode_direct = ‘X’
          TABLES
            lines           = it_lines
          EXCEPTIONS
            id              = 1
            language        = 2
            name            = 3
            object          = 4
            OTHERS          = 5.
        IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.

Como resultado obtenemos:


Technorati tags:





Función RZL_READ_DIR_LOCAL – Conocer contenido de un directorio

14 08 2008

Con la función RZL_READ_DIR_LOCAL podemos saber cuál es el contenido de un directorio del servidor en SAP.

Este es el código:

*-Declaro un parameter en el cual se completa la ruta del servidor del que queremos conocer su contenido
PARAMETERS:
            p_file TYPE rlgrap-filename OBLIGATORY DEFAULT ‘/data/’.

*-Variable para pasarle la ruta a la función
DATA: lv_name TYPE salfile-longname.

*->Levanto la lista de directorios
    lv_name = p_file.
    CALL FUNCTION ‘RZL_READ_DIR_LOCAL’
      EXPORTING
        name           = lv_name
      TABLES
        file_tbl       = it_filedir
      EXCEPTIONS
        argument_error = 1
        not_found      = 2
        OTHERS         = 3.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

*Como resultado en la tabla interna it_filedir obtenemos todo el contenido, *ya sean subcarpetas o archivos, de la ruta del servidor que ingresamos *por parámetro.


Technorati tags:





Matchcode Browser Server (buscador de directorios del servidor)

13 08 2008

Con la siguiente función vamos a poder habilitar el matchcode para que abra un browser file (explorador de directorios) del servidor. Esto nos va a servir para hacer upload y download de archivos.

Acá el código que debemos ingresar en nuestros programas:

* Constantes locales
  CONSTANTS:lc_p TYPE c VALUE ‘P’,
                      lc_a TYPE dxfields-location VALUE ‘A’.

* Variables locales
  DATA: li_host TYPE STANDARD TABLE OF msxxlist,
             lw_host TYPE msxxlist,
             lv_path TYPE dxfields-longpath,
             lv_ubicacion(1) TYPE c,
             lv_abend  TYPE c.

*En P_FILE va a quedar guardada la ruta del archivo del servidor
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME.

*- Machcode busqueda de archivo del servidor
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

*-Nombre del servidor
  CALL FUNCTION ‘RFC_GET_LOCAL_SERVERS’
    TABLES
      hosts         = li_host
    EXCEPTIONS
      not_available = 1
      OTHERS        = 2.

  IF sy-subrc IS INITIAL.

*-Nombre del servidor a la estructura
    CLEAR lw_host.
    READ TABLE li_host
               INTO lw_host
               INDEX 1.

*-Obtengo el path
    CALL FUNCTION ‘F4_DXFILENAME_TOPRECURSION’
      EXPORTING
        i_location_flag = lc_a
        i_server        = lw_host-name
      IMPORTING
        o_location_flag = lv_ubicacion
        o_path          = lv_path
        abend_flag      = lv_abend
      EXCEPTIONS
        rfc_error       = 1
        error_with_gui  = 2
        OTHERS          = 3.

*-Si se obtiene un path
    IF sy-subrc    IS INITIAL AND
       NOT lv_path IS INITIAL AND
       lv_abend    IS INITIAL.

*-Devuelvo ruta al parametro de selección
      p_file = lv_path.

    ENDIF.

  ENDIF.


Technorati tags:





Transacción CG3Y – Copiar archivo del servidor a nuestra computadora

12 08 2008

Con la transacción CG3Y vamos a poder copiar un archivo alojado en el servidor en nuestra computadora.

Es muy sencillo, basta con pasar la ruta completa de origen y la de destino. Y elegir el formato de transferencia que puede ser ASC o BIN

image


Technorati tags: