Ayuda con bapi para actualizar cantidad del pedido en una posicion

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • vamp_01
    Senior Member
    • jun
    • 109

    #1

    Ayuda con bapi para actualizar cantidad del pedido en una posicion

    Hola amigo, una vez mas recurro a ustedes, necesito una ayuda, estoy trabajando en un reporte Z, la primera parte la tengo lista pero ahora me piden que ejecute una actualizacion del pedido, en una posicion especifica, y no se cual es la bapi que hace eso....
    en el fondo estoy haciendo un traslado de materiales desde la transaccion MIGO, es decir pasar de libre disposicion a stock especial E

    Favor su ayuda, de ante mano Gracias
  • calanis
    Senior Member
    • oct
    • 147

    #2
    Hola Vamp_01

    La BAPI que te puede servir es la BAPI_GOODSMVT_CREATE.
    La Trx MIGO no es más que una intrefaz de unas transacciones viejas de SAP, ahora se aúnan en una sola, la MIGO.
    La Bapi BAPI_GOODSMVT_CREATE es usada por el IDOC MBGMCR.MBGMCR03 para los movimientos, que se encuentran en la serie de tablas
    T158*
    Ej:
    T158G-MMIM: códigos posibles p.BAPI movimiento mcía.
    Cód Trx
    01 MB01
    02 MB31
    03 MB1A
    04 MB1B
    05 MB1C
    06 MB11
    07 MB04
    Campo GM_CODE para emular la transacción que necesitas, y después en otro campo move_type le pones el movimiento correspondiente, pero de otra estructura.

    Código:
    Por Ejemplo:
    goodsmvt_header-pstng_date = sy-datum.
    goodsmvt_header-doc_date = sy-datum.
    
    goodsmvt_code-gm_code = '04'."[B]MB1B[/B]
    
    *goodsmvt_item-material = 'OB-000006-1441'.
    goodsmvt_item-plant = 'Z001'.
    goodsmvt_item-stge_loc = 'A001'.
    goodsmvt_item-move_type = '351'.
    *goodsmvt_item-sales_ord = '4300002609'.
    *goodsmvt_item-s_ord_item ='10'.
    *goodsmvt_item-sched_line ='0001'.
    *goodsmvt_item-spec_stock ='E'.
    goodsmvt_item-entry_qnt ='5'.
    *goodsmvt_item-batch ='0000156779'. " 
    goodsmvt_item-po_number = '4300002609'.
    goodsmvt_item-po_item = '10'.
    
    
    APPEND goodsmvt_item.
    
    goodsmvt_item-plant = 'Z001'.
    goodsmvt_item-stge_loc = 'A001'.
    [B]goodsmvt_item-move_type = '351'.[/B]
    goodsmvt_item-entry_qnt ='5'.
    goodsmvt_item-po_number = '4300002609'.
    goodsmvt_item-po_item = '20'.
    
    
    APPEND goodsmvt_item.
    
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
        goodsmvt_header       = goodsmvt_header
        goodsmvt_code         = goodsmvt_code
        testrun               = testrun
      IMPORTING
        goodsmvt_headret      = goodsmvt_headret
        materialdocument      = materialdocument
        matdocumentyear       = matdocumentyear
      TABLES
        goodsmvt_item         = goodsmvt_item
        goodsmvt_serialnumber = goodsmvt_serialnumber
        return                = return
        afs_goodsmvt_sku      = afs_goodsmvt_sku.
    
    
    IF sy-subrc = 0.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    ENDIF.
    Espero que la data te sirva, igual te paso unos link's por si buscas más.

    Saludos
    Carlos D. Alanis
    Editado por última vez por calanis; 11/08/2010, 01:47:21.
    Carlos D. Alanis
    <=<< Compartir conocimiento es una manera de innovar >>=>

    Comentario

    • vamp_01
      Senior Member
      • jun
      • 109

      #3
      Originalmente publicado por calanis
      Hola Vamp_01

      La BAPI que te puede servir es la BAPI_GOODSMVT_CREATE.
      La Trx MIGO no es más que una intrefaz de unas transacciones viejas de SAP, ahora se aúnan en una sola, la MIGO.


      Campo GM_CODE para emular la transacción que necesitas, y después en otro campo move_type le pones el movimiento correspondiente, pero de otra estructura.

      Código:
      Por Ejemplo:
      goodsmvt_header-pstng_date = sy-datum.
      goodsmvt_header-doc_date = sy-datum.
      
      goodsmvt_code-gm_code = '04'."[B]MB1B[/B]
      
      *goodsmvt_item-material = 'OB-000006-1441'.
      goodsmvt_item-plant = 'Z001'.
      goodsmvt_item-stge_loc = 'A001'.
      goodsmvt_item-move_type = '351'.
      *goodsmvt_item-sales_ord = '4300002609'.
      *goodsmvt_item-s_ord_item ='10'.
      *goodsmvt_item-sched_line ='0001'.
      *goodsmvt_item-spec_stock ='E'.
      goodsmvt_item-entry_qnt ='5'.
      *goodsmvt_item-batch ='0000156779'. " 
      goodsmvt_item-po_number = '4300002609'.
      goodsmvt_item-po_item = '10'.
      
      
      APPEND goodsmvt_item.
      
      goodsmvt_item-plant = 'Z001'.
      goodsmvt_item-stge_loc = 'A001'.
      [B]goodsmvt_item-move_type = '351'.[/B]
      goodsmvt_item-entry_qnt ='5'.
      goodsmvt_item-po_number = '4300002609'.
      goodsmvt_item-po_item = '20'.
      
      
      APPEND goodsmvt_item.
      
      CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
        EXPORTING
          goodsmvt_header       = goodsmvt_header
          goodsmvt_code         = goodsmvt_code
          testrun               = testrun
        IMPORTING
          goodsmvt_headret      = goodsmvt_headret
          materialdocument      = materialdocument
          matdocumentyear       = matdocumentyear
        TABLES
          goodsmvt_item         = goodsmvt_item
          goodsmvt_serialnumber = goodsmvt_serialnumber
          return                = return
          afs_goodsmvt_sku      = afs_goodsmvt_sku.
      
      
      IF sy-subrc = 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait = 'X'.
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      ENDIF.
      Espero que la data te sirva, igual te paso unos link's por si buscas más.



      Saludos
      Carlos D. Alanis
      Muchas gracias Carlos, pero esta parte ya la tengo solucionada, estoy ocupando esata misma bapi, la parte que me falta es la de sd para ir a modificar la cantidad de un pedido-posicion

      Comentario

      Trabajando...