|
#1
|
|||
|
|||
Bapi- Bapi_contract_change
Saludos a tod@s!
estoy intentando actualizar el net_price a través de la bapi BAPI_CONTRACT_CHANGE. Todos los valores me los informa bien y me crea las posiciones nuevas, sin embargo, me deja el net_price sin informar. ls_item-item_no = '000080'. "EBELP posicion ls_item-material = '4038306'. "MATNR material ls_item-target_qty = '105'. "KTMNG "Ctd.prevista ls_item-net_price = '333'. " NETPR Precio neto APPEND ls_item TO lt_item. ls_itemx-item_no = '000080'. "EBELP posicion ls_itemx-target_qty = abap_true. " ls_itemx-net_price = abap_true. APPEND ls_itemx TO lt_itemx. CALL FUNCTION 'BAPI_CONTRACT_CHANGE' EXPORTING purchasingdocument = '4600000029' TABLES item = lt_item itemx = lt_itemx return = lt_return. COMMIT WORK AND WAIT. PD: Si ejecuto el programa Z dos veces si que cambia el NET_PRICE. ¿Alguna idea de por qué no informa el net_price? Muchas gracias!! Úlima edición por Raulalsan fecha: 26/03/18 a las 11:50:20. |
#2
|
|||
|
|||
Finalmente lo resolví de una manera no muy óptima pero que funciona...
Básicamente lanzo la BAPI dos veces y limpiando las tablas después de cada ejecución. De esta manera si que lo cambia. Dejo la solución por si a alguien le ayuda DO 2 TIMES. CLEAR ls_item. ls_item-item_no = 'XXXXX'. ls_item-material = 'XXXXXX'. ls_item-material = |{ ls_item-material ALPHA = IN }|. ls_item-target_qty = X. ls_item-net_price = 'XXX.XX'. APPEND ls_item TO lt_item. CLEAR ls_itemx. ls_itemx-item_no = 'XXXXX'. ls_itemx-material = abap_true. ls_itemx-target_qty = abap_true. ls_itemx-net_price = abap_true. APPEND ls_itemx TO lt_itemx. CALL FUNCTION 'BAPI_CONTRACT_CHANGE' EXPORTING purchasingdocument = 'XXXXXXXX' * testrun = lv_salida TABLES item = lt_item itemx = lt_itemx return = lt_return. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. CLEAR: lt_item, lt_itemx, lt_return. REFRESH: lt_item, lt_itemx, lt_return. ENDDO. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|