MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Problemas con CALL FUNCTION 'SAVE_TEXT' (foro/showthread.php?t=14781)

BY_MY 08/07/08 09:16:29

Problemas con CALL FUNCTION 'SAVE_TEXT'
 
Buenos dias a todos compañeros.

Se que sobre este tema se ha hablado por el foro y lo he mirado pero no consigo hacer lo que pretendo.

Yo trabajo en el modulo PS y necesitaria incorporar unos textos largos a los objetos que creo (pep's, cabeceras de Grafo, operaciones de Grafo, etc). Para ello si no me equivoco se usa la funcion CALL FUNCTION 'SAVE_TEXT'.

El caso es que he debbugeado el codigo y parece que el standart lo hace asi pero yo pongo los mismos campos o similares y aunque no da errores no modifica el texto que yo quiero. ¿Alguien sabe porque, alguna sugerencia o manual?.


mi codigo es:



DATA: header TYPE TABLE OF thead WITH HEADER LINE.
DATA: lines TYPE TABLE OF tline WITH HEADER LINE.



header-TDOBJECT = 'PMS'.
header-TDNAME = 'E00003732'.
header-TDID = 'LTXT'.
header-TDSPRAS = 'S'.
*TDTITLE
*header-TDFORM = 'SYSTEM'.
*TDSTYLE
header-TDVERSION = 00001.
header-TDFUSER = 'IBM14'.
header-TDFRELES = 700.
header-TDFDATE = 20080708.
*TDFTIME
*TDLUSER
*TDLRELES
*TDLDATE
header-TDLTIME = 095235.
header-TDLINESIZE = 072.
header-TDTXTLINES = 00004.
*TDHYPHENAT
*TDOSPRAS
header-MANDT = SY-MANDT.
append header.
lines-TDFORMAT = '*'.
lines-TDLINE = 'AAAAAAAAAAAAAAABBBBBBBBBBBBCCCCCC'.
append lines.
lines-TDFORMAT = '*'.
lines-TDLINE = 'AAAAAAAAAAAAAAABBBBBBBBBBBBCCC'.
append lines.
lines-TDFORMAT = '*'.
lines-TDLINE = 'AAAAAAAAAAAAAAABBBBBBBBBBBBCCCCC'.
append lines.
lines-TDFORMAT = '*'.
lines-TDLINE = 'AAAAAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCD'.
append lines.

CALL FUNCTION 'SAVE_TEXT'
EXPORTING
CLIENT = SY-MANDT
HEADER = HEADER
INSERT = ' I '
SAVEMODE_DIRECT = ' X '
OWNER_SPECIFIED = ' SAPUSER '


LOCAL_CAT = ' '
IMPORTING
*FUNCTION =
NEWHEADER = HEADER
TABLES
LINES = 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.

COMMIT WORK.









Un saludo y gracias de antemano. ;) ;) ;) ;)

chivi82 08/07/08 12:53:02

Save_text
 
¿Has probado a llamar al módulo de función COMMIT_TEXT después de hacer el SAVE_TEXT?

BY_MY 08/07/08 13:11:27

Es cierto, era eso. Lo que pasa es que no habia dicho que lo solucione, gracias. Ahora el problema va a ser leer textos planos sin un limite de caracteres ni de lineas pero supongo que habra alguna funcion o manera de hacerlo.


un saludo y gracias. ;-)

aldape 09/07/08 23:30:01

pues, creo que seria con la funcion READ_TEXT...

no pense que hubiera una funcion SAVE_TEXT jeje...
la ultima vez que quice agregar un texto a un objeto, hice un batch-input que lo agregaba, :P... voy a investigar esta funcion

Saludos!

BY_MY 15/07/08 09:26:15

Problema con Activacion de textos
 
Buenas a todos.

Seguimos con la funcion SAVE_TEXT. El caso es que cuando en el pep (es el modulo PS) se ha modificado el texto mediante el standart pues luego lanzo mi report y me modifica los textos perfectamente, hata aqui todo correcto pero.... El problema viene cuando creo el pep y voy a insertar el texto (que realmente es lo que necesito) pues no me lo genera, le pongo el campo 'insert' y me devuelve error al intentar abrirlo, por lo que intuyo que es algun bloqueo que pueda tener que al entrar por el standart a mano desbloquea y ya no necesita mas.


¿Alguien sabe Algo de esto? podrian echarme una mano, ahora si me corre prisa.

Muchas gracias.

ibecerra 15/07/08 14:18:30

Al parecer hay campos que no estas llenando correctamente
por ejemplo
SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}LS_THEAD-TDNAME = XLIPS-VBELN. --> aquie deberia ir el nuevo codigo que se ha generado en este caso estoy poniendo el nro de pedido

te paso el codigo que tengo que funciona bien cuando creo o modificio una entrega , guardo un texto.
SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L0S32 {color: #3399FF;}.L0S33 {color: #4DA619;}.L0S52 {color: #0000FF;}LS_THEAD-TDOBJECT = 'VBBK'.
LS_THEAD-TDNAME = XLIPS-VBELN.
LS_THEAD-TDID = '0001'.
LS_THEAD-TDSPRAS = SY-LANGU.
LS_THEAD-TDFORM = 'SYSTEM'.
LS_THEAD-TDVERSION = '00001'.
LS_THEAD-TDFUSER = SY-UNAME.
LS_THEAD-TDFRELES = SY-SAPRL.
LS_THEAD-TDFDATE = SY-DATUM.
LS_THEAD-TDFTIME = SY-UZEIT.
LS_THEAD-TDLUSER = SY-UNAME.
LS_THEAD-TDLRELES = SY-SAPRL.
LS_THEAD-TDLDATE = SY-DATUM.
LS_THEAD-TDLTIME = SY-UZEIT.
LS_THEAD-TDLINESIZE = '072'.
LS_THEAD-TDTXTLINES = '00001'.
LS_THEAD-TDMACODE1 = 'VL02SAPMV50A'.
LS_THEAD-MANDT = SY-MANDT.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
HEADER = LS_THEAD
IMPORTING
NEWHEADER = LS_THEAD
TABLES
LINES = TLINETAB
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
OBJECT = 4
OTHERS = 5.

BY_MY 15/07/08 14:28:16

Hola Ibecerra.

Revisare lo que me cuentas pero creo que no es cuestion de campos ya que esta sacado del standar y funcionan pero como intente explicar solo funciona si antes modifico el texto por la transaccion cj20n a mano y a partir de ahi va perfecto.

Este modulo el PS creo que en eso es algo peculiar ya que a la hora de llamar ha bapis hay que inicializarlas en algunas ocasiones, etc.

Intullo que es como si necesitara generar el texto antes de modificarlo ya que aunque visualmente parezca creado me da la sensacion de que no es asi.

Alguna sugerencia? Como digo una vez hecha una modificacion a mano del texto en la cj20n, la bapi funciona perfectamente pero hasta entonces no.

De hecho si fuerzo el insert al intentar hacer la funcion commit me dice que no puede abrirlo.


saludos y gracias por todo, agradezco cualquier ayuda porque me corre mucha prisa.

bisonye 15/07/08 16:24:13

Prueba con la funcion CREATE_TEXT. Es muy parecida, la utilicé hace mucho (No en PS) y me funcionó.

Saludos

BY_MY 15/07/08 16:47:20

YA HE PROBADO Y TAMPOCO FUNCIONA.

La verdad espiezo a desesperar un poco porque debe ser alguna tonteria pero se me escapa ahora mismo. Tambien es cierto que parece propio PS.

SAludos y gracias por el interes. ;)

bisonye 16/07/08 06:51:31

¿Has probado a meter el texto directamente desde la se37?
Yo le pasaría solo los estos campos de cabecera :
¿Estas seguro que el tdname es correcto?
Si te dice esto:
yo utilizaría la función create_text, el save creo que es para modificar.

A ver si sacamos algo en claro.

Saludos


Husos Horarios son GMT. La hora en este momento es 15:21:11.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web