Bapi_salesorder_change

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • hardrake
    Member
    • oct
    • 37

    #1

    Bapi_salesorder_change

    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
    Senior Member
    • may
    • 481

    #2
    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.

    Comentario

    Trabajando...