BAPI_PO_CHANGE no aplica por posicion

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • beginabap
    Junior Member
    • jul
    • 20

    #1

    BAPI_PO_CHANGE no aplica por posicion

    Hola todos! Tengo una BAPI que deberia modificar solamente una posicion de la tabla ekpo pero no esta funcionando y esta modificando el campo BSGRU de las posiciones que repiten el material. el Codigo es el siguiente:
    -----------------------
    DATA:
    t_POITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
    t_POITEMx LIKE BAPIMEPOITEMx OCCURS 0 WITH HEADER LINE,
    l_flag(1),
    flag_exebapi(1),
    g_text(50) TYPE c.


    LOOP AT it_ekpo.

    READ TABLE it_ekbe WITH KEY ebeln = it_ekpo-ebeln
    ebelp = it_ekpo-ebelp.

    flag_exebapi = 'N'.

    IF SY-SUBRC = 4.
    WRITE: / ' NINGUN REGISTRO ENCONTRADO ', it_ekpo-ebeln, ' POSICION: ', it_ekpo-ebelp, ' MAT.: ',it_ekpo-matnr.
    flag_exebapi = 'S'.

    ELSE.
    IF it_ekpo-menge > it_ekbe-menge.
    WRITE: / ' REGISTRO CON DIFERENCIA: ', it_ekpo-ebeln, ' POSICION: ', it_ekpo-ebelp, ' cant_ekpo: ',it_ekpo-MENGE, ' vrs Cant_ekbe: ', it_ekbe-menge.
    flag_exebapi = 'S'.
    ELSE.
    WRITE: / ' REGISTRO ENCONTRADO: ', it_ekpo-ebeln, ' POSICION: ', it_ekpo-ebelp, ' cant ',it_ekpo-MENGE, ' versus ', it_ekbe-menge.
    flag_exebapi = 'N'.
    ENDIF.
    ENDIF.

    IF flag_exebapi = 'S'. " Ejecuta la bapi para actualizar el registro.
    *-------------------------------------------------
    clear t_poitem.
    * * perform move_to_bapi.
    t_POITEM-po_item = it_ekpo-ebelp.
    t_POITEM-order_reason = '100'.
    APPEND t_poitem.

    clear t_poitemx.
    t_POITEMx-po_item = it_ekpo-ebelp.
    t_POITEMx-po_itemx = 'X'.
    t_POITEMx-order_reason = '100'.
    APPEND t_poitemx.

    CALL FUNCTION 'BAPI_PO_CHANGE'
    EXPORTING
    purchaseorder = it_ekpo-ebeln
    TABLES
    POITEM = t_POITEM
    POITEMx = t_POITEMx.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    wait = 'X'.
    *------------------------------------------------
    ENDIF.
    ENDLOOP.
    Que tendre malo que no modifica por posicion?
  • beginabap
    Junior Member
    • jul
    • 20

    #2
    Alguien que sepa como resolver este problema?

    Comentario

    • Fabian leonardo velasquez
      Member
      • sep
      • 62

      #3
      Buena tarde
      En la asignacion de valor que estas haciendo
      para el campo
      t_POITEMx-order_reason = '100'. esta mal. en esta tabla informas que campo es el que se modifica
      debes enviarlo
      t_POITEMx-order_reason = 'X'.

      Intenta y me comentas si no te funciona.
      Cordialmente
      Fabián Leonardo Velásquez P.
      Consultor SAP ABAP
      Bogota - Colombia

      Comentario

      Trabajando...