Ver Mensaje Individual
  #1  
Viejo 22/04/18, 02:31:03
amam2605 amam2605 is offline
Senior Member
 
Fecha de Ingreso: ene 2009
Mensajes: 150
Leer varios Textos con Read_text en sapscript

Hola, necesito leer varios textos de cabecera y enviar a sapscript. Estoy utilizando la funcion READ_TEXT pero me esta repitiendo en las lineas vacias el ultimo valor encontrado. Anexo las pantallas del debuger y codigo:
FORM textos_cab_varios TABLES zin STRUCTURE itcsy
zout STRUCTURE itcsy.

DATA: vbeln(10),
vtext(132),
vbtyp.
DATA: vtline LIKE TABLE OF tline WITH HEADER LINE.
DATA: v_beln LIKE thead-tdname.

DATA: BEGIN OF salida OCCURS 0,
vtext1(45),
vtext2(45),
vtext3(45),
vtext4(45),
vtext5(45),
* vtext6(45),
* vtext7(45),
END OF salida.


READ TABLE zin WITH KEY name = 'VBDKR-VBELN'.
vbeln = zin-value.

* Funcion para completar campo con ceros
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = vbeln
IMPORTING
output = vbeln.

SELECT SINGLE vbtyp INTO vbtyp
FROM vbrk
WHERE vbeln = vbeln.

v_beln = vbeln.

IF vbtyp = 'N'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'Z010'
language = 'S'
name = v_beln
object = 'VBBK'
TABLES
lines = vtline
EXCEPTIONS
id = 1
not_found = 4
OTHERS = 8.

ENDIF.

* Lectura de valores de texto de facturas y NC/ND
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'Z009'
language = 'S'
name = v_beln
object = 'VBBK'
TABLES
lines = vtline
EXCEPTIONS
id = 1
not_found = 4
OTHERS = 8.

IF sy-subrc <> 0.
* Lectura de valores de texto de notas de credito allegri
CONCATENATE v_beln '000010' INTO v_beln.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'Z001'
language = 'S'
name = v_beln
object = 'VBBP'
TABLES
lines = vtline
EXCEPTIONS
id = 1
not_found = 4
OTHERS = 8.

ENDIF.

* Salida del texto de cabecera
IF vtline[] IS NOT INITIAL.
READ TABLE vtline INDEX 1.
salida-vtext1 = vtline-tdline.
READ TABLE zout WITH KEY name = 'VTEXT1'.
zout-value = salida-vtext1.
MODIFY zout INDEX sy-tabix.

READ TABLE vtline INDEX 2.
salida-vtext2 = vtline-tdline.
READ TABLE zout WITH KEY name = 'VTEXT2'.
zout-value = salida-vtext2.
MODIFY zout INDEX sy-tabix.
salida-vtext2 = vtline-tdline.

READ TABLE vtline INDEX 3.
salida-vtext3 = vtline-tdline.
READ TABLE zout WITH KEY name = 'VTEXT3'.
zout-value = salida-vtext3.
MODIFY zout INDEX sy-tabix.
salida-vtext3 = vtline-tdline.

READ TABLE vtline INDEX 4.
salida-vtext4 = vtline-tdline.
READ TABLE zout WITH KEY name = 'VTEXT4'.
zout-value = salida-vtext4.
MODIFY zout INDEX sy-tabix.
salida-vtext4 = vtline-tdline.

READ TABLE vtline INDEX 5.
salida-vtext5 = vtline-tdline.
READ TABLE zout WITH KEY name = 'VTEXT5'.
zout-value = salida-vtext5.
MODIFY zout INDEX sy-tabix.
salida-vtext5 = vtline-tdline.

APPEND salida.
ENDIF.
ENDFORM.
Muchas Gracias en lo que me pueden recomendar.

Ana
Imágenes Adjuntas
Tipo de Archivo: jpg pantalla_formu.jpg (48.4 KB, 6 visitas)
Tipo de Archivo: jpg debug_001.jpg (30.5 KB, 6 visitas)
Tipo de Archivo: jpg debug_002.jpg (46.0 KB, 5 visitas)
Tipo de Archivo: jpg debug_003.jpg (54.8 KB, 5 visitas)
Responder Con Cita