BAPI_PO_CREATE1 con condiciones de cabecera

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • AJAA
    Junior Member
    • nov
    • 12

    #1

    BAPI_PO_CREATE1 con condiciones de cabecera

    Buenas tardes estoy utilizando la bapi BAPI_PO_CREATE1 para crear pedidos, pero tengo un problema a la hora de pasarle las condiciones de cabecera. He visto que el estandar crear como una especie de distribución de las condiciones de cabecera y se las asocia a los item. Y efectivamente cuando las condiciones son de porcentaje la bapi se comporta como el estandar, el problema resulta cuando las condiciones son de montos no logro hacer que distribuya el monto de la condición entre los items.

    Esto es lo que estoy haciendo:


    Código:
    * Acá tengo los materiales que estoy ingresando al pedido.
    
      LOOP AT ZIF_MM_ALV_APROVI~I_ALV ASSIGNING <WA_MAT>.
    
        CLEAR LV_CONT.
    
    * Acá tengo las condiciones de cabecera que le paso al pedido.
    
        LOOP AT  ZIF_MM_ALV_APROVI~I_CONCOS ASSIGNING <WA_CON>
        WHERE KBETR NE 0.
    
          ADD 1 TO LV_CONT.
    
          APPEND INITIAL LINE TO IT_POCONH ASSIGNING <WA_CONDH>.
          MOVE: <WA_MAT>-ITEM   TO <WA_CONDH>-ITM_NUMBER,
                    '50'                      TO <WA_CONDH>-COND_ST_NO,
                    LV_CONT              TO <WA_CONDH>-COND_COUNT,
                    <WA_CON>-KSCHL TO <WA_CONDH>-COND_TYPE,
                    WA_LFM1-WAERS   TO <WA_CONDH>-CURRENCY,
                    'X'                       TO <WA_CONDH>-STAT_CON,
                   GS_DATSEL-LIFNR   TO <WA_CONDH>-VENDOR_NO,
                   'I'                         TO <WA_CONDH>-CHANGE_ID.
    
    * Si la condición es de tipo porcentaje simplemente le paso el monto y la 
    * Bapi hace la distribución de ese monto dependiendo de la cantidad y
    * precio del material.
     
          IF <WA_CON>-KOEIN EQ '%'.
            <WA_CONDH>-CALCTYPCON = 'A'.
            <WA_CONDH>-COND_VALUE = <WA_CON>-KBETR * 10.
          ELSE.
    
    * Si la condición es de monto le paso igual el monto y en teoría la bapi debería 
    * hacer la distribución igual, pero no lo hace.
            <WA_CONDH>-CALCTYPCON = 'B'.
            <WA_CONDH>-COND_VALUE = <WA_CON>-KBETR.
          ENDIF.
    
    * Acá lleno mi tabla de 'X'.
    
          MOVE: <WA_CONDH> TO WA_CONDH.
          APPEND INITIAL LINE TO IT_POCONHX ASSIGNING <WA_CONDHX>.
          ME->FILL_X( EXPORTING  W1 = WA_CONDH
                                           WS1 = 'WA_CONDH'
                                             W2 = WA_CONDHX
                                           WS2 = 'WA_CONDHX' ).
    
          MOVE: <WA_MAT>-ITEM TO WA_CONDHX-ITM_NUMBER,
                    '50'                    TO WA_CONDHX-COND_ST_NO,
                    'X'                      TO WA_CONDHX-ITM_NUMBERX,
                    'X'                      TO WA_CONDHX-COND_ST_NOX.
          MOVE WA_CONDHX TO <WA_CONDHX>.
    
        ENDLOOP.
      ENDLOOP.
    
    * Así llamo a la BAPI.
    
      CALL FUNCTION 'BAPI_PO_CREATE1'
        EXPORTING
          POHEADER       = WA_POHEADER
          POHEADERX     = WA_POHEADERX
        IMPORTING
          EXPHEADER     = WA_EXPHEADER
        TABLES
          RETURN        = IT_RETURN
          POITEM        = IT_POITEM
          POITEMX       = IT_POITEMX
          POCONDHEADER  = IT_POCONH
          POCONDHEADERX = IT_POCONHX
          POCOND        = IT_PCONDI
          POCONDX       = IT_PCONDIX
          POCOMPONENTS  = IT_COMP
          POCOMPONENTSX = IT_COMPX
          POTEXTHEADER  = IT_TEXTHEADER.
    
    He intentado no asociar las condiciones de cabecera a los items omitiendo esto:
             <WA_MAT>-ITEM   TO <WA_CONDH>-ITM_NUMBER,
    pero cuando es así no me toma nada de las condiciones.
    
    Igualmente he tratado de recrear mi propia distribución  
          IF <WA_CON>-KOEIN EQ '%'.
               ...
          ELSE.
               ...
            <WA_CONDH>-COND_VALUE = ( <WA_CON>-KBETR / LV_MENGE ) * 
                                                        <WA_MAT>-MENGE.
    * Pero al hacer esto me crear tantas condiciones en la cabecera como las que
    * tengo en el detalle.
    * Cosa que no ve que pasa en el estándar por mas que los montos de las 
    * condiciones en el detalle son diferentes a la hora de consultar el pedido
    * en las condiciones de cabecera me parece solo una por tipo sumándolas a todas.        
    
          ENDIF.

    Muchas gracias por su ayuda.
    Consultor Técnico B1/ABAP
Trabajando...