#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 |
#2
|
|||
|
|||
sigo con el mismo problema alguien me puede echar una mano por favor...
|
#3
|
|||
|
|||
Estuve viendo el ejemplo; yo trabajé varias veces con la BAPI pero nunca con Activos Fijos...
Pregunta: ¿nunca le asignás Material? |
#4
|
|||
|
|||
No nunca se le asigna material, va en blanco.
Gracias |
#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... |
#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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|