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:





Transacción SU01 – Actualización de usuarios

17 04 2008

Con la transacción SU01 podemos crear, copiar, eliminar o modificar la clave de cualquier usuario.

También se puede modificar un usuario:

  • los datos personales
  • los datos logon
  • los parámetros
  • los roles

 


Technorati tags:





Creación de Field Exit

8 11 2007

Una field exit es como una user exit que se utiliza para relacionar un campo determinado de una dynpro (pantalla) con un programa determinado.

A una FIELD EXIT se le llama también EXIT DE CAMPO. Se hace a nivel del elemento de datos. En ella puedes poner tus comprobaciones para un campo en el programa que quieras. Puedes tener varias field exit para un mismo campo en distintas pantallas.

Una FIELD EXIT es una función que tiene la particularidad de que sólo tiene un parámetro de entrada INPUT y uno de salida OUTPUT.

A priori no puedes conocer ningún dato más, aunque siempre puedes utilizar otras field exits para guardar el contenido de otros campos en variables globales al grupo de función, o utilizar la función DYNP_VALUES_READ para leer valores de otros campos de la misma pantalla.

En un Field exit NO podemos usar ninguna de las siguientes instrucciones:

  • BREAK-POINT

  • CALL SCREEN

  • CALL DIALOG

  • CALL TRANSACTION

  • SUBMIT

  • COMMIT WORK

  • ROLLBACK WORK

  • MESSAGE I

NOTA: Para poder activar los Field Exits debemos tener el parámetro
abap/fieldexit = YES seteado en el servidor (Transacción RZ10).


A continuación voy a mostrar un ejemplo completo de cómo crear una field exit para el campo «Clave de periodificación» de la solapa Control de la transacción CJ20N. Donde validaremos que ese campo no este vacío.

image

image

1º) Lo primero que hay que hacer es crear un grupo de función. Para eso vamos a la transacción SE80 y creamos un nuevo grupo de función, por ejemplo: Z_ABGR_SCHL

image

2º) Luego debemos crear nuestra función FIELD EXIT desde la transacción SE37 con el nombre FIELD_EXIT_* ( * = nombre que queramos ) y asociándole el grupo de función que creamos en el paso anterior. Por ejemplo:

image

Con esto ya vamos a tener nuestra función creada con el parámetro INPUT creado en la solapa Import y con el parámetro OUTPUT en la solapa Export.

Para terminar este paso sólo resta poner nuestro código en la solapa Cód.fte. y ACTIVAR.
Como en este caso sólo queremos validar que nuestro campo no quede vacío, el código sería así:

IF INPUT IS INITIAL.

MESSAGE ‘Complete el campo Clv.periodifica’ TYPE ‘E’.

ENDIF.

3º) En este paso volvemos a la transacción SE80 para ACTIVAR y verificar que aparezca la función que creamos:

image

4º) El último paso es crear nuestra FIELD EXIT. Esto es muy sencillo, simplemente ejecutamos el reporte RSMODPRF sin parámetros desde la transacción SE38.

Allí se listarán todas las field exits existentes. Para crear la nuestra clickeamos en el menú «Exit campo» –> «Crear« e ingresamos nuestro elemento de datos, en este caso ABGR_SCHL. Veremos que nuestra field exit se agrega a la lista.

Finalmente, seleccionamos la field exit que acabamos de crear y clickeamos en el botón «Asignar prog./dynpro«. Debemos llenar los campos con el nombre del programa y el número de dynpro que queremos que nuestra field exit este asociada (Ver la primera imagen – Datos dynpro):

image

Nuestra field exit nos debería quedar así:

image

Como vemos el Status de la field es INACTIVO. Por lo tanto nos resta simplemente volver al menú «Exit campo» y clickear en la opción Activar

Con esto ya tenemos nuestra field exit creada y podemos verificar en la transacción CJ20N que si NO llenamos el campo «Clave de periodificación» nos saldrá el mensaje de error que pusimos en el paso 2º


Technorati tags: