Peido Con 'bapi_po_create1' Y Activo Fijo

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Paola79
    Member
    • oct
    • 62

    #1

    Peido Con 'bapi_po_create1' Y Activo Fijo

    Hola a todos,

    Estoy intentando crear un pedido con activo fijo, el cual creo mediante la bapi 'BAPI_FIXEDASSET_CREATE1', me lo crea perfectamente pero a la hora de crear el pedido con la 'BAPI_PO_CREATE1', me dice que dicho activo fijo no existe. Qué puede ser, aqui os dejo el codigo.



    gracias de antemano
    DATA: key TYPE bapi1022_key.
    DATA: generaldata TYPE bapi1022_feglg001. " OCCURS 0 WITH HEADER LINE.
    DATA: generaldata_x TYPE bapi1022_feglg001x.
    DATA: timedependentdata TYPE bapi1022_feglg003." OCCURS 0 WITH HEADER LINE.
    DATA: timedependentdata_x TYPE bapi1022_feglg003x.
    DATA: assetmaino TYPE bapi1022_1-assetmaino.
    DATA: assetsubno TYPE bapi1022_1-assetsubno.
    DATA: return1 TYPE bapiret2 OCCURS 0 WITH HEADER LINE.

    DATA: wait TYPE bapita-wait VALUE 'X'.
    DATA return2 LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
    *--- Rellenamos los datos para crear activo FIJO
    key-companycode = 'BT10'.

    generaldata-assetclass = 'MOBIL'.
    generaldata_x-assetclass = 'X'.

    generaldata-descript = 'PRUEBA'.
    generaldata_x-descript = 'X'.

    generaldata-quantity = '1'.


    timedependentdata-costcenter = 'BT10'.
    timedependentdata_x-costcenter = 'X'.

    *--- Llamamos a la BAPI

    CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1'
    EXPORTING
    key = key
    generaldata = generaldata
    generaldatax = generaldata_x
    timedependentdata = timedependentdata
    timedependentdatax = timedependentdata_x

    IMPORTING
    asset = assetmaino
    subnumber = assetsubno
    return = return1.
    break pfernandez.
    IF assetmaino IS NOT INITIAL.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    wait = wait
    IMPORTING
    return = return2.

    ENDIF.

    LOOP AT return1.
    WRITE: / return1-message.
    ENDLOOP.

    DATA: header TYPE bapimepoheader.
    DATA: headerx TYPE bapimepoheaderx.

    DATA: account TYPE TABLE OF bapimepoaccount,
    wa_account LIKE LINE OF account.

    DATA: accountx TYPE TABLE OF bapimepoaccountx,
    wa_accountx LIKE LINE OF accountx.

    *Internal Tables to hold PO ITEM DATA
    DATA: item TYPE TABLE OF bapimepoitem,
    wa_item LIKE LINE OF item.

    DATA: itemx TYPE TABLE OF bapimepoitemx,
    wa_itemx LIKE LINE OF itemx.

    *Internal table to hold messages from BAPI call
    DATA: return TYPE TABLE OF bapiret2,
    wa_return LIKE LINE OF return.

    DATA: return3 TYPE TABLE OF bapiret2,
    wa_return2 LIKE LINE OF return.


    DATA: item_num TYPE bapimepoitem-po_item.

    DATA: purchaseorder TYPE bapimepoheader-po_number.
    DATA: precio_net TYPE bapimepoitem-net_price.
    PARAMETER: vendor TYPE bapimepoheader-vendor DEFAULT '0002000046'.
    *--- Seleccionamos el proveedor SAP correspondiente al proveedor amasis


    header-comp_code = 'BT10' .
    header-doc_type = 'ROTA' .
    header-vendor = '0002000046' .
    header-purch_org = 'BC10' .
    header-creat_date = sy-datum .
    header-created_by = sy-uname .
    header-pur_group = '109' .
    header-langu = 'S'.
    header-currency = 'EUR' .


    headerx-comp_code = 'X'.
    headerx-doc_type = 'X'.
    headerx-vendor = 'X'.
    headerx-creat_date = 'X'.
    headerx-created_by = 'X'.
    headerx-purch_org = 'X'.
    headerx-pur_group ='X'.
    headerx-langu = 'X'.
    headerx-sales_pers = 'X'.
    headerx-currency = 'X'.

    ADD 10 TO item_num.
    precio_net = '1.20'.
    wa_item-po_item = item_num.
    wa_item-quantity = '1'.
    wa_item-short_text = 'prueba bapi_po_create1'.
    wa_item-acctasscat = 'A' .
    wa_item-matl_group = 'A_AM_MOTO' .
    wa_item-plant = 'BT10' .
    wa_item-quantity = '1' .
    wa_item-po_unit = 'EA'.
    wa_item-net_price = precio_net.
    wa_item-price_unit = '1'.
    wa_item-gr_pr_time = '0'.
    wa_item-gr_ind = 'X'.
    wa_item-ir_ind = 'X'.
    wa_item-gr_basediv = 'X'.
    APPEND wa_item TO item.

    **&---------------------------------------------------------------------*
    **POPULATE ITEM FLAG TABLE
    **&---------------------------------------------------------------------*
    wa_itemx-po_item = item_num.
    wa_itemx-po_itemx = 'X'.
    wa_itemx-short_text = 'X'.
    wa_itemx-quantity = 'X'.
    wa_itemx-tax_code = 'X'.
    wa_itemx-acctasscat = 'X'.
    wa_itemx-item_cat ='X'.
    wa_itemx-matl_group = 'X'.
    wa_itemx-plant = 'X'.
    wa_itemx-trackingno = 'X'.
    wa_itemx-agreement = 'X'.
    wa_itemx-agmt_item = 'X'.
    wa_itemx-stge_loc = 'X'.
    wa_itemx-quantity = 'X'.
    wa_itemx-po_unit = 'X'.
    wa_itemx-conv_num1 = 'X'.
    wa_itemx-conv_den1 = 'X'.
    wa_itemx-net_price = 'X'.
    wa_itemx-price_unit = 'X'.
    wa_itemx-gr_pr_time = 'X'.
    wa_itemx-prnt_price = 'X'.
    wa_itemx-unlimited_dlv = 'X'.
    wa_itemx-gr_ind = 'X'.
    wa_itemx-ir_ind = 'X'.
    wa_itemx-gr_basediv = 'X'.
    wa_itemx-pckg_no = 'X'.
    wa_itemx-gr_ind = 'X'.
    wa_itemx-ir_ind = 'X'.
    wa_itemx-gr_basediv = 'X'.
    APPEND wa_itemx TO itemx.

    **&---------------------------------------------------------------------*
    **POPULATE ACCOUNT DATA.
    **&---------------------------------------------------------------------*
    wa_account-po_item = item_num .
    wa_account-creat_date = sy-datum .
    wa_account-asset_no = assetmaino.
    wa_account-costcenter = 'BC10T0200' .
    wa_account-sub_number = '0'.
    APPEND wa_account TO account.
    *
    **&---------------------------------------------------------------------*
    **POPULATE ACCOUNT FLAG TABLE.
    **&---------------------------------------------------------------------*
    wa_accountx-po_item = item_num.
    wa_accountx-po_itemx = 'X'.
    wa_accountx-serial_nox = 'X'.
    wa_accountx-creat_date = 'X'.
    wa_accountx-costcenter = 'X'.
    wa_accountx-gl_account = 'X'.
    wa_accountx-co_area = 'X'.
    wa_accountx-tax_code ='X'.
    wa_accountx-asset_no = 'X'.
    wa_accountx-sub_number = 'X'.
    APPEND wa_accountx TO accountx.

    CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
    poheader = header
    poheaderx = headerx
    IMPORTING
    exppurchaseorder = purchaseorder
    TABLES
    return = return
    poitem = item
    poitemx = itemx
    poaccount = account
    poaccountx = accountx.

    IF purchaseorder IS NOT INITIAL.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    wait = 'X'
    IMPORTING
    return = wa_return2 .

    WAIT UP TO 2 SECONDS.
    ENDIF.


    LOOP AT return INTO wa_return.
    WRITE: / wa_return-message.
    ENDLOOP
  • Paola79
    Member
    • oct
    • 62

    #2
    sigo con el mismo problema alguien me puede echar una mano por favor...

    Comentario

    • Abaunus
      Senior Member
      • nov
      • 119

      #3
      Estuve viendo el ejemplo; yo trabajé varias veces con la BAPI pero nunca con Activos Fijos...
      Pregunta: ¿nunca le asignás Material?

      Comentario

      • Paola79
        Member
        • oct
        • 62

        #4
        No nunca se le asigna material, va en blanco.

        Gracias

        Comentario

        • Abaunus
          Senior Member
          • nov
          • 119

          #5
          Hola Paola:
          No quiero decir cosas que no son, pero hasta donde tengo entendido la función BAPI_PO_CREATE1 genera pedidos de compra (a proveedor), por lo tanto siempre requiere un material...

          Una posibilidad es que creer la orden de compra con material y después modifiques lo que necesites en esa orden con la función BAPI_PO_CHANGE.

          No sé, es una posibilidad...

          Comentario

          • fenix_gold2k
            Junior Member
            • abr
            • 1

            #6
            si funciona con esta solucion

            yo tengo la solucion a este problema, como el campo del activo es de 12 caracteres debes acompletar con 0 al principio ejemplo.

            si tu activo es '123456789'
            debe quedar asi '000123456789'.

            pare ello puedes utilizar CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'.

            saludos

            Comentario

            Trabajando...