Está en la página 1de 4

Manejo de Textos en SAP

Para poder tomar los textos de los documentos de compras/ventas, etc. hay que leer con
funciones los datos de distintas tablas:

TTXID ID textos pendientes


TTXIT Textos para id de textos
TTXOB Objetos de texto permitidos
TTXOT Textos breves para objetos de textos
STXH Cabecera de fichero de textos
STXL Líneas de fichero de texto
Los dos más importantes son STXH y STXL, que es donde se guardan físicamente los
textos:
Campos de la tabla STXH
Campo Conteni Descripci
do ón
TDOBJECT KNA1 Deudores
TDNAME Código
deudor
TDID
TDSPRAS
TDTXTLIN Líneas de
ES texto
Campos de la tabla STXL
Campo Contenido Descripción
RELID TX Versión de
SAP R/3
TDOBJECT KNA1 Deudores
TDNAME Código
deudor
TDID 0002 Nota de
Contabilidad
TDSPRAS S Idioma
SRTF2 x x
CLUSTR x x
CLUSTD x Long Binary
¿Cómo sé que parámetros usar para un texto determinado?
Se necesitan 4 parámetros para poder leer/escribir textos por código, lo pueden chequear así:

1. Ir al campo del texto y hacerle doble click al rectángulo blanco donde se ingresa el texto.
Se verá una pantalla similar a esta:
1. Ir al menú “Pasar a-Cabecera” . Vemos los 4 primeros campos que son los necesarios
para llamar a las funciones y recuperar/escribir en el texto correcto.

 Nombre de texto (lc_name): en caso de ser un texto de cabecera es el número de


documento, sino es la unión entre el número de documento y la posición.
 Idioma (sy-langu): yo uso el sy-langu
 ID Texto (lc_id): es el identificador del texto en cuestión (para el caso es F04)
 Objeto Texto (lc_object): es el indicador del tipo de documento u objeto al cual
pertenece este texto.
¿Qué funciones se usa para grabar o leer un texto?

Yo uso estas funciones:

1. Para leer un texto guardado, por ejemplo del pedido de compras recien mostrado:

DATA: lc_tabix TYPE sy-tabix,


 
lc_id TYPE thead-tdid,
 
lc_object TYPE thead-tdobject,
 
lc_name TYPE thead-tdname,
 
lt_lines TYPE TABLE OF tline WITH HEADER LINE.
 
* Busco el texto de destinatario
 
REFRESH lt_lines.
 
lc_id = 'F04'. " Texto donde está el STRING buscado
 
lc_object = 'EKPO'. " Tabla de textos
 
lc_name = ‘450003235800010’. “ Respetar ceros a la izquierda (si hubiere) y entre el
Pedido y la Posición
 
CALL FUNCTION 'READ_TEXT'
 
EXPORTING
 
id = lc_id
 
language = sy-langu
 
name = lc_name
 
object = lc_object
 
TABLES
 
lines = lt_lines
 
EXCEPTIONS
 
id = 1
 
language = 2
 
name = 3
 
not_found = 4
 
object = 5
 
reference_check = 6
 
wrong_access_to_archive = 7
 
OTHERS = 8.
 
* El resultado es devuelto en la tabla lt_lines que tiene dos campos:
 
* TDFORMAT (CHAR 2)
 
* TDLINE (CHAR132)
 
IF sy-subrc EQ 0.
 
READ TABLE lt_lines INDEX 1.
 
wa_salida-texto_recuperado = lt_lines-tdline.
 
ENDIF.
1. Para grabar un texto guardado, se usan las mismas variables, llenando la tabla lt_lines:
Refresh lt_lines.
 
lt_lines-tdformat = '*'.
 
lt_lines-tdline = ‘Ejemplo de texto!!!’.
 
APPEND lt_lines. CLEAR lt_lines.
 
CALL FUNCTION 'CREATE_TEXT'
 
EXPORTING
 
fid = lc_id
 
flanguage = sy-langu
 
fname = lc_name
 
fobject = lc_object
 
save_direct = 'X'
 
TABLES
 
flines = lt_lines
 
EXCEPTIONS
 
no_init = 1
 
no_save = 2
 
OTHERS = 3.
 
IF sy-subrc EQ 0.
 
MESSAGE s001(00) WITH 'Permiso Modificado OK'.
 
ENDIF.

También podría gustarte