You are on page 1of 8

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 TTXIT TTXOB TTXOT STXH STXL

ID textos pendientes Textos para id de textos Objetos de texto permitidos Textos breves para objetos de textos Cabecera de fichero de textos Lneas de fichero de texto

Los dos ms importantes son STXH y STXL, que es donde se guardan fsicamente los textos: Campos de la tabla STXH

Campo TDOBJECT TDNAME TDID TDSPRAS TDTXTLINES

Contenido KNA1

Descripcin Deudores Cdigo deudor

Lneas de texto Contenido TX KNA1 0002 S x x x Descripcin Versin de SAP R/3 Deudores Cdigo deudor Nota de Contabilidad Idioma x x Long Binary

Campos de la tabla STXL

Campo RELID TDOBJECT TDNAME TDID TDSPRAS SRTF2 CLUSTR CLUSTD

Cmo s que parmetros usar para un texto determinado? Se necesitan 4 parmetros para poder leer/escribir textos por cdigo, lo pueden chequear as: 1. Ir al campo del texto y hacerle doble click al rectngulo 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 nmero de documento, sino es la unin entre el nmero de documento y la posicin. Idioma (sy-langu): yo uso el sy-langu ID Texto (lc_id): es el identificador del texto en cuestin (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 Posicin 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.

Existen otras funciones para ver si el texto est creado, etc. Recomiendo ver por la SE80 el grupo de funciones STXD que contiene todo. Sin embargo el CREATE_TEXT mostrado ac aparece en SD, en el grupo de funciones V75T.

VF02 (Modificar facture)

Hacer doble clic en el texto.

Los datos que se muestran sern los datos que se pasan a la funcin.

NAME: 0917726302000010 (10 pos. del documento + 6 pos. de la posicin No. de partida)

El texto en el iDoc (Trans. we19)