PDA

Ver la Versión Completa : Bapi_salesorder_change


hardrake
28/12/07, 06:26:43
Muy buenas a todos, tengo un problemilla con esta BAPI, el tema es que tengo que hacer un programa que metiendo un numero de pedido me modifique las lineas del pedido. Pues bien, el problema es que no me lo modifica sino que me lo crea debajo, de tal modo que me deja dos lineas. Tengo el flag de itemx = 'I'. Pero aun asi nada. Dejo el codigo para ver si os puede ayudar:

* items
* Meto tambien el material
p_items-material = vbap-matnr.
p_itemsx-material = vbap-matnr.
* Hasta aqui
p_items-itm_number = vbap-posnr.
p_itemsx-itm_number = vbap-posnr.
p_items-net_weight = i_importes-ntgew.
p_itemsx-net_weight = 'X'.
*

*
p_itemsx-updateflag = 'I'.

** p_items-zzbweight = i_importes-zzbweight.
** p_itemsx-zzbweight = 'X'.

APPEND: p_items, p_itemsx.
CLEAR: p_items, p_itemsx.


CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = vbak-vbeln
* ORDER_HEADER_IN =
order_header_inx = p_headerx
* SIMULATION =
* BEHAVE_WHEN_ERROR = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* LOGIC_SWITCH =
TABLES
return = p_return
order_item_in = p_items
order_item_inx = p_itemsx
* PARTNERS =
* PARTNERCHANGES =
* PARTNERADDRESSES =
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CFGS_BLOB =
* ORDER_CFGS_VK =
* ORDER_CFGS_REFINST =
* SCHEDULE_LINES =
* SCHEDULE_LINESX =
* ORDER_TEXT =
* ORDER_KEYS =
conditions_in = p_cond
conditions_inx = p_condx
* EXTENSIONIN =
.

El resto lo hace bien. Un saludo y gracias.

Mauricio Hidalgo
28/12/07, 14:19:03
La estructura termiandas en X son para indicar que campos se debe tomar u omitir durante la ejecución de las BAPI.

extrcto de codigo que ocupa campo para indicar que no inserte nueves filas sino que actualze.

E_ORDERMX-UPDATEFLAG = 'U'.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = E_HEAD-PEDIDO
ORDER_HEADER_IN = E_ORDERM
ORDER_HEADER_INX = E_ORDERMX
TABLES
RETURN = T_RETURN
ORDER_ITEM_IN = T_ITEMS
ORDER_ITEM_INX = T_ITEMSX
* ORDER_PARTNERS = T_PARTNER
SCHEDULE_LINES = T_SCHE
SCHEDULE_LINESX = T_SCHEX
CONDITIONS_IN = T_CONDI
CONDITIONS_INX = T_CONDIX.