JELR87
18/11/10, 22:21:39
buenas tardes Abapers
Tengo el siguiente problema espero que alguien me pueda apoyar estoy dando de alta pedidos de ventas con la bapi BAPI_SALESDOCUMENT_CREATFROMDAT2 para esto claro todo funciona de maravilla si el pedido tiene un item, pero si tiene dos pues ahi es donde camina, la carga es desde un archivo csv separado por lineas y despues por campos en cada coma, el detalle es que aun no encuentro la manera de ordenar la informacion para que para un mismo pedido se agregen dos o mas items a la bapi, tratare de imitar el archivo de carga de la siguiente manera:
Clase Org div canal Solicitante N.pedido Fecha Material cantidad
ZTA 2200 1 1 100000000 190 13.17.2010 300000000 1
ZTA 2200 1 1 100000000 190 13.17.2010 400000000 10
ZTA 2200 1 1 100000000 190 13.17.2010 800000000 15
ZTA 2200 1 1 100000000 20 25.10.2010 300000000 6
ZTA 2200 1 1 100000000 30 05.5.2010 300000000 9
ZTA 2200 1 1 100000000 800 26.01.2009 300000000 17
ZTA 2200 1 1 100000000 100 02.10.2008 300000000 90
ZTA 2200 1 1 100000000 10 27.01.1987 300000000 100
hasta el momento tengo todo en una Tabla Interna pero al momento de meterlo a la bapi, no encuentro la manera de enviarle varios materiales en un solo Loop porque el loop me lee linea por linea de la TI, alguien que tenga alguna recomendacion, me dijeorn que podia usar Loop At End y con eso quedaba pero aun no encuentro ejemplos consisos a mi escenario, pero sigo investigando, ovbio no hace falta mencionar que soy Jr y novato en el Lenguaje ABAP.
Este es parte del codigo que llevo:
Form para llenar la TI.
Form llenatabla_pedido.
LOOP AT it_datatab ASSIGNING <fs_string>.
SPLIT <fs_string> AT c_comma INTO
wa_record-p_auart
wa_record-p_vkorg
wa_record-p_vtweg
wa_record-p_spart
wa_record-p_sold
"wa_record-p_ship
wa_record-p_ordnum
wa_record-p_pdate
wa_record-p_matnr
wa_record-p_menge.
MOVE sy-tabix TO wa_record-llave.
MOVE sy-tabix TO wa_error-llave.
MOVE 0 TO wa_record-estatus.
*Cambia el formato fecha de DD.MM.AAAA a AAAAMMDD.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
DATE_EXTERNAL = wa_record-p_pdate
IMPORTING
DATE_INTERNAL = wa_record-p_pdate
EXCEPTIONS
DATE_EXTERNAL_IS_INVALID = 1
OTHERS = 2.
*Rellena con ceros a la izquierda el campo de solicitante.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_record-p_sold
IMPORTING
OUTPUT = wa_record-p_sold.
*Rellena con ceros a la izquierda el campo de material.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_record-p_matnr
IMPORTING
OUTPUT = wa_record-p_matnr.
APPEND wa_record to it_record.
endloop.
sort it_record by p_ordnum.
ENDFORM.
y con lo que estoy trabado es el form para pasar lOS DIFERENTES ITEMS A UNA BAPI.
Saludos
PD si no me explique bien diganme para re-plantearlo.
Tengo el siguiente problema espero que alguien me pueda apoyar estoy dando de alta pedidos de ventas con la bapi BAPI_SALESDOCUMENT_CREATFROMDAT2 para esto claro todo funciona de maravilla si el pedido tiene un item, pero si tiene dos pues ahi es donde camina, la carga es desde un archivo csv separado por lineas y despues por campos en cada coma, el detalle es que aun no encuentro la manera de ordenar la informacion para que para un mismo pedido se agregen dos o mas items a la bapi, tratare de imitar el archivo de carga de la siguiente manera:
Clase Org div canal Solicitante N.pedido Fecha Material cantidad
ZTA 2200 1 1 100000000 190 13.17.2010 300000000 1
ZTA 2200 1 1 100000000 190 13.17.2010 400000000 10
ZTA 2200 1 1 100000000 190 13.17.2010 800000000 15
ZTA 2200 1 1 100000000 20 25.10.2010 300000000 6
ZTA 2200 1 1 100000000 30 05.5.2010 300000000 9
ZTA 2200 1 1 100000000 800 26.01.2009 300000000 17
ZTA 2200 1 1 100000000 100 02.10.2008 300000000 90
ZTA 2200 1 1 100000000 10 27.01.1987 300000000 100
hasta el momento tengo todo en una Tabla Interna pero al momento de meterlo a la bapi, no encuentro la manera de enviarle varios materiales en un solo Loop porque el loop me lee linea por linea de la TI, alguien que tenga alguna recomendacion, me dijeorn que podia usar Loop At End y con eso quedaba pero aun no encuentro ejemplos consisos a mi escenario, pero sigo investigando, ovbio no hace falta mencionar que soy Jr y novato en el Lenguaje ABAP.
Este es parte del codigo que llevo:
Form para llenar la TI.
Form llenatabla_pedido.
LOOP AT it_datatab ASSIGNING <fs_string>.
SPLIT <fs_string> AT c_comma INTO
wa_record-p_auart
wa_record-p_vkorg
wa_record-p_vtweg
wa_record-p_spart
wa_record-p_sold
"wa_record-p_ship
wa_record-p_ordnum
wa_record-p_pdate
wa_record-p_matnr
wa_record-p_menge.
MOVE sy-tabix TO wa_record-llave.
MOVE sy-tabix TO wa_error-llave.
MOVE 0 TO wa_record-estatus.
*Cambia el formato fecha de DD.MM.AAAA a AAAAMMDD.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
DATE_EXTERNAL = wa_record-p_pdate
IMPORTING
DATE_INTERNAL = wa_record-p_pdate
EXCEPTIONS
DATE_EXTERNAL_IS_INVALID = 1
OTHERS = 2.
*Rellena con ceros a la izquierda el campo de solicitante.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_record-p_sold
IMPORTING
OUTPUT = wa_record-p_sold.
*Rellena con ceros a la izquierda el campo de material.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_record-p_matnr
IMPORTING
OUTPUT = wa_record-p_matnr.
APPEND wa_record to it_record.
endloop.
sort it_record by p_ordnum.
ENDFORM.
y con lo que estoy trabado es el form para pasar lOS DIFERENTES ITEMS A UNA BAPI.
Saludos
PD si no me explique bien diganme para re-plantearlo.