#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
Hola Ana,
Luego los READ TABLE vtline INDEX nnn verifica el sy-subrc para asegurarte que cuando hagas el MODIFY sea con el valor correcto. Ejemplo READ TABLE vtline INDEX 1. IF SY-SUBRC EQ 0 salida-vtext1 = vtline-tdline. READ TABLE zout WITH KEY name = 'VTEXT1'. zout-value = salida-vtext1. MODIFY zout INDEX sy-tabix. ENDIF Saludos
__________________
Sebastián Chiavia |
Herramientas | Buscar en Tema |
Desplegado | |
|
|