Como guardar desde ABAP un Texto/Nota en el Infotipo.

Facebooktwittergoogle_pluslinkedinmail

Hola a todos, hoy explicaré como guardar información desde un programa ABAP en la información del texto del infotipo.

Lo primero que debemos saber es que ¿Cómo sabe SAP si el registro de ese infotipo tiene Texto?

En todo infotipo existe un campo que indica a SAP que existe texto para ese infotipo, ese campo es PAXXXX-ITXEX, donde XXXX es el número del infotipo, veamos un ejemplo.

EIT_1

Este es un ejemplo de un infotipo para cliente, en este ejemplo podemos ver que hay una columna que se llama “Tx”, esa es la columna que indica a SAP si existe o no texto en ese registro en concreto de ese infotipo.

Por tanto, si entramos en el infotipo y entramos en ese registro veremos el siguiente botón EIT_1, indicando que existe texto en el infotipo.

EIT_3

En caso de que no haya, para introducir texto, podemos pulsar F9 o ir a tratar => Visualizar Texto, ahí podemos encontrar el texto del infotipo.

Lo segundo que debemos saber es ¿Dónde y cómo guarda la información de este texto SAP?

Donde guarda la información de este texto SAP es en un Cluster. El cluster es llamado PC11 y para acceder a la información concreta de un registro lo haremos con una clave, esta la llamaremos “PSKEY” y es estructurada de la siguiente forma:

  • PERNR  = Número de personal
  • INFTY   = Infotipo
  • SUBTY  = Subtipo
  • OBJPS   = Identificación de objeto
  • SPRPS   = Indicador de bloqueo para registro de maestro de personal
  • ENDDA = Fin de la validez
  • BEGDA = Inicio de la validez
  • SEQNR = Número de un registro de infotipo para misma clave

Para su definición usaremos:

  • data: pskey  like pskey.

¿Cómo leer y guardar información en el cluster?

Para las dos cosas hay métodos y programas estándar con los que acceder al cluster.

Para leer la información es más simple, ya que solo tendremos que obtenerla de la siguiente forma:

 DATA: it_text TYPE  IT_NOTES.CALL FUNCTION ‘HR_READ_INFTY_NOTE’
EXPORTING
key                  = pskey
*   TCLAS                = ‘A’
TABLES
TEXT                 = it_text
* EXCEPTIONS
*   NOT_FOUND            = 1
*   NOT_AUTHORIZED       = 2
*   OTHERS               = 3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

Donde la PSKEY es la que hemos definido anteriormente.

Para grabar el proceso es un poco más complejo, en este caso voy a mostrar una sobrescritura de lo que sería el texto de un registro de un infotipo.

“ Definición de las Variables
data: i9001  like p9001 occurs 0 with header line.
data: i9001_2  like p9001 occurs 0 with header line.
data: pskey  like pskey.
data: subrc  like sy-subrc.
data: text type hrpad_text_tab.
data: asset_rec like line of text.“ Lectura de la información de un infotipo“NOTA: Hay que tener en cuenta que esta función te obtiene todos los registros de ese empleado para ese infotipo
call function ‘HR_READ_INFOTYPE’
exporting
pernr           = ’64’
infty           = ‘9001’
importing
subrc           = subrc
tables
infty_tab       = i9001
exceptions
infty_not_found = 1
others          = 2.
“Como nosotros queremos modificar un registro en concreto, guardamos la información de ese registro de la siguiente forma“Recorro la estructura
LOOP at i9001.“Busco mi registro
if i9001-BEGDA = ‘20130101’.“Añado la información tanto al indice (que lo usare para la PSKEY) como a la tabla
APPEND i9001 to i9001_2.
i9001_2 = i9001.
ENDIF.
ENDLOOP.“Creo mi PSKEY
pskey = i9001_2.

“Agrego las lineas para la nota
asset_rec = ‘Prueba de linea 1’.
append asset_rec to text.
asset_rec = ‘Prueba de linea 33333333’.
append asset_rec to text.
asset_rec = ‘Prueba de linea 2’.
append asset_rec to text.

“Llamo al metodo estandar para sobrescribir la información de la nota con la siguiente información
call method cl_hrpa_text_cluster=>update
exporting
tclas         = ‘A’
histo         = space
pgmid         = space
pskey         = pskey
no_auth_check = ‘X’
text_tab      = text.

De esta forma sobrescribiremos la nota de un registro en concreto de un infotipo.

Recuerda:

Si quieres esta página siga en pié pudiendote ayudar en el día a día, dona, cualquier donativo hará que pueda ayudarte más.

 








4 pensamientos sobre “Como guardar desde ABAP un Texto/Nota en el Infotipo.”

  1. Hola.

    Excelente articulo sobretodo para manejo de texto en Workflows que se requiere para los envios de mails. Me gustaria saber si cuenta con articulos semejantes que refieran a los procesos de Worflows que es el tema que en este momento estoy tratando.

    Felicidades por el Blog.

    1. Hola William,

      Primeramente gracias por su comentario, es un placer para mí que gente lea mi blog y le sirva de ayuda, aunque sea un poco. Respecto a lo que comentas, la verdad que no he escrito nada sobre workflows, pero en caso de que escriba algo, le enviaré un email indicando este tema si le parece bien.

      Muchas gracias y que tenga muy buen día!

  2. Hola,
    muchas gracias por la informacion. me ha servido de mucho.
    M epodrias indicar como hacerlo cuando el texto no existe?? es decir, cuando el infotipo no tiene texto creado??. Solo me funciona si ya lo tiene.

    saludos y gracias

    1. Buenos días,

      si, es un placer poder ayudarte, por favor, regístrate en nuestra web y comunícate con nuestros consultores, ellos te enviarán la ayuda que necesitas directamente.

      Muchas gracias por confiar en solutionssap
      Un saludo,
      David Hernández

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

uno × uno =