#1
|
||||
|
||||
Read Table
Buenas tardes, estoy haciendo un programita de prueba de entregas vs pedidos pero no se bien como linkear las llaves de mi read table. Cuando hago el join de la likp y lips se me trae datos mas sin embargo en el read no.
Hasta ahorita, el código que llevo: *&---------------------------------------------------------------------* *& Include YPRUEBA1_TOP *&---------------------------------------------------------------------* TYPE-POOLS: slis. TABLES: vbak, "pedidos: cabecera. vbap, "pedidos: posiciones. likp, "factura: cabecera. lips, "factura: posiciones. kna1. "clientes. TYPES: BEGIN OF ty_pedido, vbeln LIKE vbak-vbeln, "pedido. posnr LIKE vbap-posnr, "posicion. erdat LIKE vbak-erdat, "fecha de creacion. auart LIKE vbak-auart, "clase doc. vtas. augru LIKE vbak-augru, "motivo de separacon. vkorg LIKE vbak-vkorg, "org. vtas. vtweg LIKE vbak-vtweg, "canal distrib. spart LIKE vbak-spart, "sector. netwr LIKE vbak-netwr, "valor neto. waerk LIKE vbak-waerk, "moneda. kunnr LIKE vbak-kunnr, "cliente. matnr LIKE vbap-matnr, "no. material. arktx LIKE vbap-arktx, "descrip. pedido. vrkme LIKE vbap-vrkme, "umv. END OF ty_pedido, BEGIN OF ty_cliente, kunnr LIKE kna1-kunnr, "cliente. land1 LIKE kna1-land1, "pais. name1 LIKE kna1-name1, "nombre 1. name2 LIKE kna1-name2, "nombre 2. ort01 LIKE kna1-ort01, "poblacion. pstlz LIKE kna1-pstlz, "c.p. END OF ty_cliente, BEGIN OF ty_entrega, vbeln1 LIKE likp-vbeln, "no. entrega. posnr1 LIKE lips-posnr, "posiciones. inco1 LIKE likp-inco1, "intercoms. route LIKE likp-route, "ruta. werks LIKE lips-werks, "moneda. lgort LIKE lips-lgort, "almacen. lfimg LIKE lips-lfimg, "cant. entregada en umv. vgbel LIKE lips-vgbel, "no. doc. del doc. modelo. vgpos LIKE lips-vgpos, "no. doc. de posicion modelo. END OF ty_entrega, BEGIN OF ty_salida, vbeln LIKE vbak-vbeln, "pedido. posnr LIKE vbap-posnr, "posición pedido. erdat LIKE vbak-erdat, "fecha de cración. auart LIKE vbak-auart, "clase doc. augru LIKE vbak-augru, "motivo de operación. vkorg LIKE vbak-vkorg, "org. vtas. vtweg LIKE vbak-vtweg, "canal de distribución. spart LIKE vbak-spart, "sector. netwr LIKE vbak-netwr, "valor neto. waerk LIKE vbak-waerk, "moneda. kunnr LIKE vbak-kunnr, "cliente. matnr LIKE vbap-matnr, "no. material. arktx LIKE vbap-arktx, "descrip. pedido. vrkme LIKE vbap-vrkme, "umv. * kunnr LIKE kna1-kunnr, "cliente. land1 LIKE kna1-land1, "país. name1 LIKE kna1-name1, "nombre 1. name2 LIKE kna1-name2, "nombre 2. ort01 LIKE kna1-ort01, "población. pstlz LIKE kna1-pstlz, "c.p. vbeln1 LIKE likp-vbeln, "no. entrega. posnr1 LIKE lips-posnr, "posición-entrega inco1 LIKE likp-inco1, "intercoms 1. route LIKE likp-route, "ruta. werks LIKE lips-werks, "centro. lgort LIKE lips-lgort, "almacén. lfimg LIKE lips-lfimg, "cantidad entregada en UMV. vgbel LIKE lips-vgbel, "no. doc. del doc. modelo. vgpos LIKE lips-vgpos, "no. doc. de posición modelo. END OF ty_salida. DATA: lt_pedido TYPE STANDARD TABLE OF ty_pedido WITH HEADER LINE. DATA: lt_cliente TYPE STANDARD TABLE OF ty_cliente WITH HEADER LINE. DATA: lt_entrega TYPE STANDARD TABLE OF ty_entrega WITH HEADER LINE. DATA: lt_salida TYPE STANDARD TABLE OF ty_salida WITH HEADER LINE. DATA: lt_catalog TYPE slis_t_fieldcat_alv, ls_catalog TYPE slis_fieldcat_alv, ls_layout TYPE slis_layout_alv, st_header TYPE slis_listheader, t_header TYPE slis_t_listheader, t_events TYPE slis_t_event. DATA: lv_meins LIKE mara-meins, lv_meins2 LIKE mara-meins, "umb lv_menge LIKE ekpo-menge, lv_menge2 LIKE ekpo-menge. SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. SELECT-OPTIONS: so_vbeln FOR vbak-vbeln," DEFAULT '10', so_erdat FOR vbak-erdat, so_vkorg FOR vbak-vkorg, so_vtweg FOR vbak-vtweg, so_spart FOR vbak-spart, so_matnr FOR vbap-matnr. SELECTION-SCREEN: END OF BLOCK b1. *&---------------------------------------------------------------------* *& Include YPRUEBA1_FORMS *&---------------------------------------------------------------------* FORM obtener_datos . * Extracción de datos: pedidos. SELECT vbak~vbeln vbap~posnr vbak~erdat vbak~auart vbak~augru vbak~vkorg vbak~vtweg vbak~spart vbak~netwr vbak~waerk vbak~kunnr vbap~matnr vbap~arktx vbap~vrkme FROM vbak INNER JOIN vbap ON vbak~vbeln EQ vbap~vbeln INTO TABLE lt_pedido WHERE vbak~vbeln IN so_vbeln AND vbak~erdat IN so_erdat AND vbak~vkorg IN so_vkorg AND vbak~vtweg IN so_vtweg AND vbak~spart IN so_spart AND vbap~matnr IN so_matnr. IF lt_pedido[] IS NOT INITIAL. * Extracción de datos: cliente. SELECT kunnr land1 name1 name2 ort01 pstlz FROM kna1 INTO TABLE lt_cliente FOR ALL ENTRIES IN lt_pedido WHERE kunnr EQ lt_pedido-kunnr. ENDIF. * Extracción de datos: entrega. * Add 07.04.2016 SELECT likp~vbeln lips~posnr likp~inco1 likp~route lips~werks lips~lgort lips~lfimg lips~vgbel lips~vgpos FROM likp INNER JOIN lips ON likp~vbeln EQ lips~vbeln INTO TABLE lt_entrega FOR ALL ENTRIES IN lt_pedido WHERE lips~vgbel EQ lt_pedido-vbeln AND lips~vgpos EQ lt_pedido-posnr AND likp~kunnr EQ lt_pedido-kunnr. * End 07.04.2016 ENDFORM. " OBTENER_DATOS *&---------------------------------------------------------------------* *& Form IMPRIME_DATOS *&---------------------------------------------------------------------* FORM imprime_datos . LOOP AT lt_pedido. * Lectura de datos: pedido. MOVE-CORRESPONDING lt_pedido TO lt_salida. "07.04.2016. * Lectura de datos: cliente. READ TABLE lt_cliente WITH KEY kunnr = lt_salida-kunnr. IF sy-subrc EQ 0. lt_salida-land1 = lt_cliente-land1. lt_salida-name1 = lt_cliente-name1. lt_salida-name2 = lt_cliente-name2. lt_salida-ort01 = lt_cliente-ort01. lt_salida-pstlz = lt_cliente-pstlz. ENDIF. * Lectura de datos: entregas. READ TABLE lt_entrega WITH KEY vgbel = lt_pedido-vbeln vgpos = lt_pedido-posnr. lt_salida-vbeln1 = lt_entrega-vbeln1. lt_salida-posnr1 = lt_entrega-posnr1. lt_salida-inco1 = lt_entrega-inco1. lt_salida-route = lt_entrega-route. lt_salida-werks = lt_entrega-werks. lt_salida-lgort = lt_entrega-lgort. lt_salida-lfimg = lt_entrega-lfimg. APPEND lt_salida. ENDLOOP. ENDFORM. " IMPRIME_DATOS *&---------------------------------------------------------------------* ¿Alguna sugerencia, por favor? Saludos.
__________________
Es más fácil encontrar el final del arcoíris que el de un estándar SAP. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|