Textos estándar SO10

En este artículo explicaremos qué son y para qué se utilizan los textos estándar SO10 de SAP, una utilidad muy recomendada para el tratamiento de textos, sobre todo si son reutilizados.

Qué son y cómo se crean

Los textos fijos se utilizan mucho en SAP, ya sea para para mostrar un aviso al usuario o para mandarle un email. Para los primeros, tenemos la transacción SE91, que nos permite:

  • Crear mensajes,
  • Agrupar mensajes
  • Traducir
  • Reutilizar mensajes
  • etc

Pero estos mensajes tienen unas limitaciones, tanto en longitud como en estilo, que hacen su uso más complicado en el caso de los segundos (los emails, los formularios impresos, …). Es para estos casos, para los que nos serán muy útiles los textos estándar SAP.

La creación es sencilla: accedemos a la transacción SO10 e introducimos el nombre del texto, un ID (que sería el equivalente a la clase de mensaje y se crea desde la transacción SE75) y el idioma. Se puede crear el mismo texto en distintos idiomas, y luego leer el que queramos en el momento de la ejecución (más adelante se explica cómo).

Textos estándar so10 de SAP

Dándole a crear accederemos al editor gráfico dónde deberemos introducir el texto tal y como queremos que se muestre después.

SAP HCM, modificación de textos estándar

Si ves un editor distinto, entra en las opciones del usuario, en la pestaña ‘SAPscript‘, y selecciona la opción “Editor PC gráfico”.

Cómo se puede ver en la imagen, tendremos muchas opciones para configurar el texto a nuestro gusto, desde crear formatos hasta insertar comandos personalizados o añadir variables dinámicas que se informarán a la hora de leer el texto con los datos en ejecución.

Cómo se leen

Para leer los textos utilizaremos el módulo de funciones estándar READ_TEXT, al que le pasaremos los mismos datos que hemos utilizado en la creación del texto.

******************************************************************************
* Leer el texto
******************************************************************************
DATA: lt_lineas TYPE STANDARD TABLE OF tline,
ls_header TYPE thead.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id                      = 'ST'             "ID del texto
language                = sy-langu         "Idioma
name                    = 'TEXTO_EJEMPLO'  "Texto
object                  = 'TEXT'           "Esto es constante
IMPORTING
header                  = ls_header
TABLES
lines                   = lt_lineas
EXCEPTIONS
id                      = 1
language                = 2
name                    = 3
not_found               = 4
object                  = 5
reference_check         = 6
wrong_access_to_archive = 7
OTHERS                  = 8.

El resultado obtenido, tal y como se puede ver en la imagen a continuación, será una tabla con las líneas del texto y los formatos de cada una de ellas.

SAP HCM, función read_text

A partir de aquí, dependiendo de la finalidad del texto y del nivel de detalle que se quiera obtener, se seguirán unos pasos u otros. Si es un mensaje de aviso sin formato, puede que concatenar las líneas de la tabla en una variable de texto y mostrarla sea suficiente. Pero, si queremos mantener el formato, necesitaremos de más desarrollo.

Caso práctico

Como comentábamos, una vez leído el texto lo podemos tratar a nuestro antojo, en función de cuál sea el requerimiento concreto. A continuación tenemos un ejemplo de uno de sus usos más comunes: el envío de emails.

Partiendo del código anterior, vamos a convertir primero el texto a formato HTML y después lo enviaremos utilizando para ello la clase estándar CL_BCS de SAP.

******************************************************************************
* Convertir el texto
******************************************************************************
DATA: lt_html_text    TYPE STANDARD TABLE OF htmlline,
lt_cuerpo_email TYPE soli_tab.
CALL FUNCTION 'CONVERT_ITF_TO_HTML'
EXPORTING
i_header       = ls_header
TABLES
t_itf_text     = lt_lineas
t_html_text    = lt_html_text
EXCEPTIONS
syntax_check   = 1
replace        = 2
illegal_header = 3
OTHERS         = 4.
APPEND LINES OF lt_html_text TO lt_cuerpo_email.
******************************************************************************
* Enviar el email
******************************************************************************
DATA: lo_bcs        TYPE REF TO cl_bcs,
lo_sender     TYPE REF TO if_sender_bcs,
lo_recip      TYPE REF TO if_recipient_bcs,
lo_document   TYPE REF TO cl_document_bcs.
* Crer objetos necesarios
lo_bcs    = cl_bcs=>create_persistent( ). "Objeto principal
lo_sender = cl_sapuser_bcs=>create( sy-uname ). "Emisor
lo_recip  = cl_cam_address_bcs=>create_internet_address( gc_email ). "Receptor
lo_document = cl_document_bcs=>create_document(
i_type    = 'HTM'
i_text    = lt_cuerpo_email
i_subject = 'Email de prueba' ). "Cuerpo email
* Asignar elementos creados
lo_bcs->set_sender( lo_sender ).
lo_bcs->add_recipient( i_recipient = lo_recip ).
lo_bcs->set_document( lo_document ).
* Enviar el email
lo_bcs->send( ).
COMMIT WORK.

Con este caso práctica ya sabemos qué son y cómo utilizar los textos estándar SO10. En próximos artículos se explicará cómo transportar textos estándar de SAP.

Esta entrada fue publicada en SAP, SAP HCM - Recursos Humanos. Guarda el enlace permanente.
Si te ha gustado...Compártelo!

Deja un comentario

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