BAPI_PO_CREATE1 assign po_number
Hi, i use the BAPI_PO_CREATE1 function for creating po documents from legacy data.
When i try the bapi in test mode, the function assigns the po_number (for example 100), when i run the function in effective mode the function assigns the number 101, so the number 100 appears to be lost.
If i try to force the po_number field in poheader structure choosing a free number in the ekko-ebeln the function returns an error "invalid number range".
Is anyone here who haves an idea ?
Thanks in advance.
Hi,
"Invalid number range" error is because the current number range for PO doesn't accept what you are specifying. To get a number acceptable to the system, check in txn SNUM (object EINK/BELEG). Display the number ranges specified, and choose a valid no from any of the range. Please check that the checkbox for 'External' is checked for such range.
To your original problem: When you say running the BAPI in test mode, where do you run it?
With number ranges used by the system (to auto-generate next no), it could happen that certain numbers are 'lost' because these were generated and subsequently not written to the DB for whatever reason. This is a normal thing (if system is assigning numbers, it shall not matter whether it is '100' or '101', if the user accepts that system may have gaps in the numbers).
cheers,
cheers,
Similar Messages
-
BAPI_PO_CREATE1 (Assign Sch Ln Level Price)
I am using BAPI_PO_CREATE1 to convert CCSTR to CCSTO and new price and quantity may be assigned to every schedule line item. The qty in PO always follow PR I just have no idea how to solve this.
Following is part of codes. Flag table and loops are omitted
item-po_item = l_item.
item-material = w_report-matnr.
item-plant = w_report-req_werks.
item-preq_no = w_report-ccstr_no.
item-preq_item = w_report-ccstr_line.
item-stge_loc = '0001'.
item-tax_code = 'J0'.
item-qual_insp = l_qual_insp.
item-acctasscat = 'M'.
item-quantity = 3.
APPEND item.
pocond-itm_number = l_item.
pocond-cond_st_no = l_step.
pocond-cond_count = l_sch_ln.
pocond-cond_type = 'J3AX'.
pocond-cond_value = w_konv-kbetr.
pocond-currency = w_konv-waers.
pocond-cond_p_unt = w_konv-kpein.
pocond-change_id = 'I'.
APPEND pocond.
afs_pocond-itm_number = l_item.
afs_pocond-sched_line = l_sch_ln.
afs_pocond-cond_st_no = l_step.
afs_pocond-cond_count = l_sch_ln.
APPEND afs_pocond.
afs_poschedule-po_item = l_item.
afs_poschedule-sched_line = l_sch_ln.
afs_poschedule-ordered_qty = w_report-iss_qty.
afs_poschedule-quantity_s = w_report-iss_qty.
afs_poschedule-afs_ref_doc = w_report-sc_no.
afs_poschedule-afs_ref_pos = w_report-sc_line.
APPEND afs_poschedule.
afs_poschedulex-po_item = l_item.
afs_poschedulex-sched_line = l_sch_ln.
afs_poschedulex-po_itemx = c_x.
afs_poschedulex-sched_linex = c_x.
afs_poschedulex-quantity_s = c_x.
afs_poschedulex-afs_ref_doc = c_x.
afs_poschedulex-afs_ref_pos = c_x.
APPEND afs_poschedulex.Second part
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = header
poheaderx = headerx
no_authority = 'X'
IMPORTING
exppurchaseorder = g_purchaseorder
expheader = expheader
exppoexpimpheader = exppoexpimpheader
TABLES
return = return
poitem = item
poitemx = itemx
pocond = pocond
pocondx = pocondx
afs_poitem = afs_poitem
afs_poitemx = afs_poitemx
afs_poschedule = afs_poschedule
afs_poschedulex = afs_poschedulex
afs_pocond = afs_pocond
afs_pocondx = afs_pocondx -
Hi,
Currently I'm facing an error "In case of account assignment, please enter acc. assignment data for item" when create a Purchase Order using BAPI_PO_CREATE1. The condition of the data that need to pump into the system is that this PO is an open item PO where does not require a metarial code for input, but it will pump in Short Text and Material Group. Other than that, the account assignment category is "K" and the item category is "9".
Below is the coding that I have implemented.
IF wa_temp_upr1-waers IS NOT INITIAL.
MOVE wa_temp_upr1-waers TO wa_header-currency.
wa_headerx-currency = abap_true.
ENDIF.
MOVE: wa_temp_upr1-lifnr TO wa_header-vendor,
wa_temp_upr1-unsez TO wa_header-collect_no,
wa_temp_upr1-bukrs TO wa_header-comp_code,
sy-datum TO wa_header-doc_date,
sy-langu TO wa_header-langu,
'KTN1' TO wa_header-purch_org,
wa_temp_upr1-bkgrp TO wa_header-pur_group,
wa_temp_upr1-zterm TO wa_header-pmnttrms.
wa_headerx-collect_no = abap_true.
wa_headerx-po_number = abap_true.
wa_headerx-comp_code = abap_true.
wa_headerx-vendor = abap_true.
wa_headerx-doc_date = abap_true.
wa_headerx-langu = abap_true.
wa_headerx-purch_org = abap_true.
wa_headerx-pur_group = abap_true.
wa_headerx-pmnttrms = abap_true.
IF wa_temp_upr1-meins IS NOT INITIAL.
MOVE wa_temp_upr1-meins TO zunit_e.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = zunit_e
LANGUAGE = 'E'
IMPORTING
OUTPUT = zunit_e.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ELSE.
MOVE zunit_e TO wa_temp_upr1-meins.
ENDIF.
MODIFY it_upr1 FROM wa_temp_upr1.
ENDIF.
ADD 10 TO line_item.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = '01'
OBJECT = 'SERVICE'
IMPORTING
NUMBER = pckg_no.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_temp_upr1-matnr
IMPORTING
OUTPUT = wa_po_item-material.
MOVE: line_item TO wa_po_item-po_item,
wa_temp_upr1-ewerks TO wa_po_item-plant,
wa_temp_upr1-lgort TO wa_po_item-stge_loc,
wa_temp_upr1-matnr TO wa_po_item-material,
wa_temp_upr1-menge TO wa_po_item-quantity,
wa_temp_upr1-peinh TO wa_po_item-price_unit,
wa_temp_upr1-netpr TO wa_po_item-net_price,
wa_temp_upr1-meins TO wa_po_item-po_unit,
wa_temp_upr1-afnam TO wa_po_item-preq_name,
wa_temp_upr1-eeind TO wa_po_item-price_date,
' ' TO wa_po_item-gr_ind,
'X' TO wa_po_item-ir_ind,
'X' TO wa_po_item-prnt_price,
' ' TO wa_po_item-distrib.
wa_po_item-acctasscat = 'K'.
MOVE pckg_no TO wa_po_item-pckg_no.
wa_po_itemx-pckg_no = abap_true.
IF wa_temp_upr1-bismt IS INITIAL.
MOVE: wa_temp_upr1-short_text TO wa_po_item-short_text,
wa_temp_upr1-matl_group TO wa_po_item-matl_group,
'9' TO wa_po_item-item_cat.
wa_po_itemx-short_text = abap_true.
wa_po_itemx-matl_group = abap_true.
wa_po_itemx-item_cat = abap_true.
wa_potext-po_item = wa_po_item-po_item.
wa_potext-text_id = 'F01'.
APPEND wa_potext TO it_potext.
ENDIF.
MOVE wa_po_item-po_item TO wa_po_itemx-po_item.
wa_po_itemx-plant = abap_true.
wa_po_itemx-po_itemx = abap_true.
wa_po_itemx-stge_loc = abap_true.
IF wa_po_item-material IS NOT INITIAL.
wa_po_itemx-material = abap_true.
ENDIF.
wa_po_itemx-quantity = abap_true.
wa_po_itemx-price_unit = abap_true.
wa_po_itemx-net_price = abap_true.
wa_po_itemx-po_unit = abap_true.
wa_po_itemx-preq_name = abap_true.
wa_po_itemx-price_date = abap_true.
wa_po_itemx-acctasscat = abap_true.
wa_po_itemx-gr_ind = abap_true.
wa_po_itemx-distrib = abap_true.
wa_po_itemx-part_inv = abap_true.
APPEND wa_po_item TO it_item.
APPEND wa_po_itemx TO it_itemx.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_temp_upr1-kostl
IMPORTING
OUTPUT = wa_temp_upr1-kostl.
wa_account-costcenter = wa_temp_upr1-kostl.
ADD 1 TO l_acc.
ADD 10 TO v_po_item.
MOVE v_po_item TO wa_account-po_item.
MOVE '01' TO wa_account-serial_no.
APPEND wa_account TO it_account.
wa_accountx-costcenter = abap_true.
MOVE v_po_item TO wa_accountx-po_item.
MOVE '01' TO wa_accountx-serial_no.
wa_accountx-SERIAL_NOX = abap_true.
wa_accountx-po_itemx = abap_true.
APPEND wa_accountx TO it_accountx.
*********** services
wa_services-pckg_no = pckg_no.
wa_services-line_no = '0000000001'.
wa_services-outl_ind = 'X'.
wa_services-subpckg_no = pckg_no + 1.
wa_services-quantity = wa_temp_upr1-menge.
wa_services-base_uom = wa_temp_upr1-meins.
wa_services-price_unit = wa_temp_upr1-peinh.
wa_services-gr_price = wa_temp_upr1-netpr.
IF wa_temp_upr1-short_text IS NOT INITIAL.
wa_services-short_text = wa_temp_upr1-short_text.
ENDIF.
APPEND wa_services TO it_services.
CLEAR: wa_services,
val_lin.
wa_services-pckg_no = pckg_no + 1.
wa_services-line_no = '0000000002'.
wa_services-quantity = wa_temp_upr1-menge.
wa_services-base_uom = wa_temp_upr1-meins.
wa_services-price_unit = wa_temp_upr1-peinh.
wa_services-gr_price = wa_temp_upr1-netpr.
IF wa_temp_upr1-short_text IS NOT INITIAL.
wa_services-short_text = 'SERVICE 1'.
ENDIF.
IF NOT wa_temp_upr1-matl_group IS INITIAL.
wa_services-matl_group = wa_temp_upr1-matl_group.
ENDIF.
APPEND wa_services TO it_services.
************* service account assignment
wa_services_acc-pckg_no = pckg_no + 1.
wa_services_acc-line_no = '0000000002'.
wa_services_acc-serno_line = '01'.
wa_services_acc-quantity = wa_temp_upr1-menge.
wa_services_acc-serial_no = '01'.
wa_services_acc-net_value = wa_temp_upr1-netpr.
APPEND wa_services_acc TO it_services_acc.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = wa_header
POHEADERX = wa_headerx
TESTRUN = pa_test
NO_PRICE_FROM_PO = 'X'
IMPORTING
EXPPURCHASEORDER = va_ebeln
EXPHEADER = wa_expheader
TABLES
RETURN = it_return
POITEM = it_item
POITEMX = it_itemx
POACCOUNT = it_account
POACCOUNTX = it_accountx
POSERVICES = it_services
POSRVACCESSVALUES = it_services_acc
POTEXTITEM = it_potext.
I have done some search regarding this error and try to implemented it, but still does not working.
example website that i found for this error is:
David Klein's Corner: SAP Purchase Order Creation Error via BAPI - "In case of account assignment, please enter acc…
PO Upload through BAPI_PO_CREATE1 - Problem in Service Item
Currently my system is using: SAP_APPL SAPKH60604
I am really stuck on this error. Hope you all can help me on this matter.
Thanks.Hi,
Filling the service line have the problem,
while filling the services we must follow correct order,
Here You entering the new services, first manually create purchase order after that observe the table
'ESLL' and use the FM;-' MS_FETCH_SPEC_FOR_LIST' how the services are inserting after that you also follow the same order.
if service entries are created before the creation of the PO.
then follow as bellow....
SELECT * FROM esll INTO TABLE lt_esll WHERE packno = wa_tmp_spec-packno.
IF sy-subrc = '0'.
LOOP AT lt_esll.
CLEAR : lt_poservices.
lt_poservices-pckg_no = lt_esll-packno .
lt_poservices-line_no = lt_esll-introw .
lt_poservices-ext_line = lt_esll-extrow .
lt_poservices-outl_level = lt_esll-rang .
lt_poservices-outl_no = lt_esll-extgroup .
lt_poservices-outl_ind = lt_esll-del .
lt_poservices-subpckg_no = lt_esll-sub_packno .
lt_poservices-service = lt_esll-srvpos .
lt_poservices-edition = lt_esll-ausgb .
lt_poservices-ssc_item = lt_esll-stlvpos .
lt_poservices-ext_serv = lt_esll-extsrvno.
lt_poservices-quantity = lt_esll-menge .
lt_poservices-base_uom = lt_esll-meins .
lt_poservices-ovf_tol = lt_esll-uebto .
lt_poservices-ovf_unlim = lt_esll-uebtk .
lt_poservices-gr_price = lt_esll-tbtwr .
lt_poservices-from_line = lt_esll-frompos .
lt_poservices-to_line = lt_esll-knt_introw.
lt_poservices-short_text = lt_esll-ktext1 .
lt_poservices-distrib = lt_esll-vrtkz .
lt_poservices-pers_no = lt_esll-pernr .
lt_poservices-wagetype = lt_esll-lgart .
lt_poservices-con_pckg = lt_esll-knt_packno.
lt_poservices-con_line = lt_esll-knt_introw .
lt_poservices-matl_group = lt_esll-matkl .
lt_poservices-taxjurcode = lt_esll-txjcd.
lt_poservices-tax_code = lt_esll-mwskz .
lt_poservices-date = lt_esll-sdate .
APPEND lt_poservices TO lt_poservices[].
CLEAR lt_esll.
ENDLOOP.
ENDIF.
CALL FUNCTION 'MS_FETCH_SPEC_FOR_LIST'
EXPORTING
spec_packno = wa_tmp_spec-packno
* ONLINE_DATA = ' '
* IMPORTING
* LIMIT =
TABLES
servicetab = lt_ml_esll1
* LIMITTAB =
EXCEPTIONS
no_specification_exist = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT lt_ml_esll1 INTO DATA(ls_ml_esll1).
CLEAR : lt_poservices.
lt_poservices-pckg_no = ls_ml_esll1-packno .
lt_poservices-line_no = ls_ml_esll1-introw .
lt_poservices-ext_line = ls_ml_esll1-extrow .
lt_poservices-outl_level = ls_ml_esll1-rang .
lt_poservices-outl_no = ls_ml_esll1-extgroup .
lt_poservices-outl_ind = ls_ml_esll1-del .
lt_poservices-subpckg_no = ls_ml_esll1-sub_packno .
lt_poservices-service = ls_ml_esll1-srvpos .
lt_poservices-edition = ls_ml_esll1-ausgb .
lt_poservices-ssc_item = ls_ml_esll1-stlvpos .
lt_poservices-ext_serv = ls_ml_esll1-extsrvno.
lt_poservices-quantity = ls_ml_esll1-menge .
lt_poservices-base_uom = ls_ml_esll1-meins .
lt_poservices-ovf_tol = ls_ml_esll1-uebto .
lt_poservices-ovf_unlim = ls_ml_esll1-uebtk .
lt_poservices-gr_price = ls_ml_esll1-tbtwr .
lt_poservices-from_line = ls_ml_esll1-frompos .
lt_poservices-to_line = ls_ml_esll1-knt_introw.
lt_poservices-short_text = ls_ml_esll1-ktext1 .
lt_poservices-distrib = ls_ml_esll1-vrtkz .
lt_poservices-pers_no = ls_ml_esll1-pernr .
lt_poservices-wagetype = ls_ml_esll1-lgart .
lt_poservices-con_pckg = ls_ml_esll1-knt_packno.
lt_poservices-con_line = ls_ml_esll1-knt_introw .
lt_poservices-matl_group = ls_ml_esll1-matkl .
lt_poservices-taxjurcode = ls_ml_esll1-txjcd.
lt_poservices-tax_code = ls_ml_esll1-mwskz .
lt_poservices-date = ls_ml_esll1-sdate .
APPEND lt_poservices TO lt_poservices[].
CLEAR ls_ml_esll1.
ENDLOOP.
CLEAR : lt_poservices.
*& Filling the po service values internal table from service internal table
LOOP AT lt_poservices[] INTO lt_poservices WHERE gr_price GT 0.
READ TABLE lt_ml_esll1 INTO wa_msll WITH KEY packno = lt_poservices-pckg_no
introw = lt_poservices-line_no
extrow = lt_poservices-ext_line..
IF sy-subrc EQ 0.
CLEAR lt_posvalues.
lt_posvalues-pckg_no = wa_msll-packno.
lt_posvalues-line_no = wa_msll-introw.
lt_posvalues-quantity = wa_msll-menge.
* lt_posvalues-net_value = wa_msll-netwr.
lt_posvalues-serno_line = '01'.
lt_posvalues-serial_no = '01'.
* lt_posvalues-percentage = '100'.
APPEND lt_posvalues TO lt_posvalues[].
CLEAR : wa_msll.
ENDIF.
ENDLOOP.
note:- if it is correct give points -
hi,
Hello all, please help!! I used function BAPI_PO_CREATE1 to create PO with limit item but function returned message error '518 No account assignment exist for service line 0000000000'. Can anyone give me an idea to slove this problem?
i am passing po header, po headerx, po item , po itemx, po account, po accountx, po limits, po services, po service values, to bapi. if i comment package number in po limits structure , po was creating but limits data not updating in po., if i pass package number i am getting above error.
Thanks In Advance,
regardshi Dinesh,
am also having same error for bap po create1 . did it get resolved for you? please help its urgently needed for me here -
'BAPI_PO_CREATE1' Multiple account assignment is not possible for AFS item
'BAPI_PO_CREATE1' -> This BAPI works perfectly without the 'account assignment' option . But for purchase requisitions which have account assignments BAPI returns the error - E|8W |185 |Multiple account assignment is not possible for AFS items.
Can somebody please help me to get this error resoleve .
My coding I have done like below.
DATA: pohead TYPE bapimepoheader.
DATA: poheadx TYPE bapimepoheaderx.
CONSTANTS : c_x VALUE 'X'.
DATA: exp_head TYPE bapimepoheader.
DATA: return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA: poitem TYPE TABLE OF bapimepoitem WITH HEADER LINE.
DATA: poitemx TYPE TABLE OF bapimepoitemx WITH HEADER LINE.
DATA: posched TYPE TABLE OF bapimeposchedule WITH HEADER LINE.
DATA: poschedx TYPE TABLE OF bapimeposchedulx WITH HEADER LINE.
DATA: POACCOUNT TYPE TABLE OF BAPIMEPOACCOUNT WITH HEADER LINE.
DATA: POACCOUNTX TYPE TABLE OF BAPIMEPOACCOUNTx WITH HEADER LINE.
pohead-comp_code = '1000'. "IEQ1 plant. "'1000'.
pohead-doc_type = 'NB' .
pohead-creat_date = sy-datum .
pohead-vendor = EKKO-LIFNR. "'0000500004'.
pohead-purch_org = purch_org.
pohead-pur_group = purch_grp.
pohead-langu = sy-langu .
pohead-doc_date = sy-datum.
poheadx-comp_code = c_x.
poheadx-doc_type = c_x.
poheadx-creat_date = c_x.
poheadx-vendor = c_x.
poheadx-langu = c_x.
poheadx-purch_org = c_x.
poheadx-pur_group = c_x.
poheadx-doc_date = c_x.
poitem-po_item = iLineItem. "1.
poitem-material = req_item-MATERIAL. " '000000000040000234'.
poitem-plant = req_item-PLANT.
poitem-quantity = req_item-QUANTITY.
poitem-net_price = NET_PRICE.
poitem-price_unit = PRICE_UNIT.
poitem-shipping = 'Z1'.
poitem-preq_no = req_item-PREQ_NO.
poitem-preq_item = req_item-PREQ_ITEM.
poitem-acctasscat = 'K'.
APPEND poitem.
poitemx-po_item = iLineItem. "1.
poitemx-po_itemx = c_x.
poitemx-material = c_x.
poitemx-plant = c_x .
poitemx-quantity = c_x .
poitemx-tax_code = c_x .
poitemx-item_cat = c_x .
poitemx-acctasscat = c_x .
poitemx-net_price = c_x.
poitemx-price_unit = c_x.
poitemx-shipping = c_x.
poitemx-preq_no = c_x.
poitemx-preq_item = c_x.
poitemx-acctasscat = c_x.
APPEND poitemx.
POACCOUNT-PO_ITEM = iLineItem.
POACCOUNT-SERIAL_NO = iLineItem.
POACCOUNT-GL_ACCOUNT = '0000211010'.
POACCOUNT-SD_DOC = '0001001056'.
POACCOUNT-ITM_NUMBER = '000100'.
POACCOUNT-CO_AREA = '1000'.
APPEND POACCOUNT.
POACCOUNTX-PO_ITEM = '00001'.
POACCOUNTX-SERIAL_NO = '01'." '01'.
POACCOUNTX-PO_ITEMX = 'X'.
POACCOUNTX-SERIAL_NOX = 'X'.
POACCOUNTX-GL_ACCOUNT = 'X'.
POACCOUNTX-SD_DOC = 'X'.
POACCOUNTX-ITM_NUMBER = 'X'.
APPEND POACCOUNTX.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = pohead
poheaderx = poheadx
IMPORTING
exppurchaseorder = ex_po_number
expheader = exp_head
TABLES
return = return
poitem = poitem
poitemx = poitemx
POACCOUNT = POACCOUNT
POACCOUNTX = POACCOUNTX.I found the answer
-
Using BAPI_PO_CREATE1 : Linking service, and account assignment
Hello,
I have trouble when using BAPI_PO_CREATE1. When creating PO using BAPI_PO_CREATE1, I need to input service for each po item and the service itself need to have account assignment. I simplify the code below.
**PO item
t_poitem-po_item = '10'. "for item 10
t_poitem-PCKG_NO = '20'. "link with service
t_poitemx-po_item = 'X'.
t_poitemx-PCKG_NO = 'X'.
**Account Assignment
t_poaccount-po_item = '10'. "link with PO Item
t_poaccount-SERIAL_NO = '01'.
t_poaccount-DISTR_PERC = 1.
t_poaccountx-po_item = '10'.
t_poaccountx-SERIAL_NO = '01'.
t_poaccountx-po_itemx = 'X'.
t_poaccountx-SERIAL_NOx = 'X'.
t_poaccountx-DISTR_PERC = 'X'.
**PO Services
**1st row
t_poservices-PCKG_NO = '20'.
t_poservices-LINE_NO = '0000000001'.
t_poservices-SUBPCKG_NO = '21'.
APPEND t_poservices.
clear t_poservices.
**2nd row
t_poservices-PCKG_NO = '21'.
t_poservices-LINE_NO = '0000000002'.
t_poservices-EXT_LINE = '0000000010'.
**fill account assignment for services
t_POSRVACCESSVALUES-pckg_no = '21'.
t_POSRVACCESSVALUES-LINE_NO = '0000000002'.
T_POSRVACCESSVALUES-SERNO_LINE = '01'.
t_POSRVACCESSVALUES-SERIAL_NO = '01'. "acct. assign. link
t_POSRVACCESSVALUES-PERCENTAGE = '100'.
Every time i execute BAPI_PO_CREATE1 using entry similar like above, i always found error message in t_return like this:
No account assignment exists for service line 0000000010
I feel sure that i have fill every field needed to link services and account assignment which is using serial_no, but somehow it does not link correctly. Can anyone advise me if there is some thing missing or incorrect with my ABAP code above? Thank you in advance for your help. For sure, first helpful answer will receive my rewards point.
Regards,
AbrahamThank you for the code. Actually i have fill the required field as you told but i did not put it in my code here to focus the problem on service and account assignment. After checking out your code, i found that the different between your code and mine is in services table.
<u><b>your code :</b></u>
<b>POSERVICES:structure</b>
PCKG_NO : 0000000001
LINE_NO :0000000001
SUBPCKG_NO : 0000000002
SERVICE :3000000000017
QUANTITY :5
BASE_UOM :AU
GR_PRICE :20000
<b>POSRVACCESSVALUES: structure name</b>
PCKG_NO :0000000002
LINE_NO :0000000002
<u><b>my code are:</b></u>
<b>POSERVICES:structure</b>
PCKG_NO : 0000000001
LINE_NO :0000000001
SUBPCKG_NO : 0000000002
PCKG_NO : 0000000002
LINE_NO :0000000002
SERVICE :3000000000017
QUANTITY :5
BASE_UOM :AU
GR_PRICE :20000
<b>POSRVACCESSVALUES: structure name</b>
PCKG_NO :0000000002
LINE_NO :0000000002
SERIAL_NO :0000000001
The other difference are in account assignment table, you didn't fill SERIAL_NO field.
my code will be like below:
<b>POACCOUNT: structure name</b>
PO_ITEM :10
SERIAL_NO : 0000000001
If using your version, the error message will be:
<i>In case of account assignment, please enter acc. assignment data for item</i>
If using my version, the error message will be:
<i>No account assignment exists for service line 0000000010</i>
Please advise what was wrong with my code. Thank you.
Regards,
Abraham -
Multiple Account Assignment issue with BAPI_PO_CREATE1 for service POs
Whle creating service PO through BAPI_PO_CREATE1, The account assignments at the service line items were not being added correctly at the item level, instead they are getting split further wrt tax jurisdiction. This is occuring when an item have multiple service line items with mutltiple account assignments.
The sample code is below, and the all the internal tables and structure were related to BAPI_PO_CREATE1. Tried with BADI ME_TAX_FROM_ADDRESS and User Exit enhancement SAPL2012, which were not helpful for this particular scenario.
Item Details
W_BAPI_ITEM-PO_ITEM = 1.
W_BAPI_ITEMX-PO_ITEM = 1.
W_BAPI_ITEM-ITEM_CAT = D.
W_BAPI_ITEMX-ITEM_CAT = 'X'.
W_BAPI_ITEM-ACCTASSCAT = K.
W_BAPI_ITEMX-ACCTASSCAT = 'X'.
W_BAPI_ITEM-PLANT = USMP. Tax Jurisdiction code 3604931001
W_BAPI_ITEMX-PLANT = 'X'.
W_BAPI_ITEM-MATL_GROUP = IT37.
W_BAPI_ITEMX-MATL_GROUP = 'X'.
W_BAPI_ITEM-QUANTITY = 1.
W_BAPI_ITEMX-QUANTITY = 'X'.
W_BAPI_ITEM-PRICE_UNIT = 1.
W_BAPI_ITEMX-PRICE_UNIT = 'X'.
W_BAPI_ITEM-PO_UNIT = LE.
W_BAPI_ITEMX-PO_UNIT = 'X'.
W_BAPI_ITEM-NET_PRICE = 100.
W_BAPI_ITEMX-NET_PRICE = 'X'.
W_BAPI_ITEM-PCKG_NO = 3456.
W_BAPI_ITEMX-PCKG_NO = 'X'.
W_BAPI_ITEM-PREQ_NAME = RTPTS02.
W_BAPI_ITEMX-PREQ_NAME = 'X'.
APPEND W_BAPI_ITEM TO IT_BAPI_ITEM.
APPEND W_BAPI_ITEMX TO IT_BAPI_ITEMX.
Delivery address details - Tax Jurisdiction 3305923401
W_BAPI_ADDRDEL-PO_ITEM = 1.
W_BAPI_ADDRDEL-NAME = COR.
W_BAPI_ADDRDEL-NAME_2 = Chairman.
W_BAPI_ADDRDEL-BUILD_LONG = 1001R
W_BAPI_ADDRDEL-CITY = plainview.
W_BAPI_ADDRDEL-STREET = old country road.
W_BAPI_ADDRDEL-POSTL_COD1 = 11803.
W_BAPI_ADDRDEL-COUNTRY = US.
W_BAPI_ADDRDEL-REGION = NY.
APPEND W_BAPI_ADDRDEL TO IT_BAPI_ADDRDEL.
First Account Assignment - 3310300441
W_BAPI_POACNT-SERIAL_NO = 1.
W_BAPI_POACNTX-SERIAL_NO = 1.
W_BAPI_POACNTX-SERIAL_NOX = 'X'.
W_BAPI_POACNT-CREAT_DATE = 11/03/2010.
W_BAPI_POACNTX-CREAT_DATE = 'X'.
W_BAPI_POACNT-QUANTITY = 0.75.
W_BAPI_POACNTX-QUANTITY = 'X'.
W_BAPI_POACNT-DISTR_PERC = 75.
W_BAPI_POACNTX-DISTR_PERC = 'X'.
W_BAPI_POACNT-NET_VALUE = 75 .
W_BAPI_POACNTX-NET_VALUE = 'X'.
W_BAPI_POACNT-PO_ITEM = 1.
W_BAPI_POACNTX-PO_ITEM = 1.
W_BAPI_POACNTX-PO_ITEMX = 'X'.
W_BAPI_POACNT-GL_ACCOUNT = 641099.
W_BAPI_POACNTX-GL_ACCOUNT = 'X'.
W_BAPI_POACNT-COSTCENTER = 10010394.
W_BAPI_POACNTX-COSTCENTER = 'X'.
W_BAPI_POACNT-CO_AREA = 1234.
W_BAPI_POACNTX-CO_AREA = 'X'.
APPEND W_BAPI_POACNT TO IT_BAPI_POACNT.
APPEND W_BAPI_POACNTX TO IT_BAPI_POACNTX.
Second Account Assignment
W_BAPI_POACNT-SERIAL_NO = 2.
W_BAPI_POACNTX-SERIAL_NO = 2.
W_BAPI_POACNTX-SERIAL_NOX = 'X'.
W_BAPI_POACNT-CREAT_DATE = 11/03/2010.
W_BAPI_POACNTX-CREAT_DATE = 'X'.
W_BAPI_POACNT-QUANTITY = 0.25.
W_BAPI_POACNTX-QUANTITY = 'X'.
W_BAPI_POACNT-DISTR_PERC = 25.
W_BAPI_POACNTX-DISTR_PERC = 'X'.
W_BAPI_POACNT-NET_VALUE = 25 .
W_BAPI_POACNTX-NET_VALUE = 'X'.
W_BAPI_POACNT-PO_ITEM = 1.
W_BAPI_POACNTX-PO_ITEM = 1.
W_BAPI_POACNTX-PO_ITEMX = 'X'.
W_BAPI_POACNT-GL_ACCOUNT = 641099.
W_BAPI_POACNTX-GL_ACCOUNT = 'X'.
W_BAPI_POACNT-COSTCENTER = 10010393.
W_BAPI_POACNTX-COSTCENTER = 'X'.
W_BAPI_POACNT-CO_AREA = 1234.
W_BAPI_POACNTX-CO_AREA = 'X'.
APPEND W_BAPI_POACNT TO IT_BAPI_POACNT.
APPEND W_BAPI_POACNTX TO IT_BAPI_POACNTX.
Service Item detials
W_BAPI_SERVICE-OUTL_IND = 'X'.
W_BAPI_SERVICE-SUBPCKG_NO = 3457.
W_BAPI_SERVICE-LINE_NO = 1.
W_BAPI_SERVICE-PCKG_NO = 3456.
W_BAPI_SERVICE-EXT_LINE = 0000000000.
W_BAPI_SERVICE-QUANTITY = 0.
W_BAPI_SERVICE-BASE_UOM = 0.
W_BAPI_SERVICE-PRICE_UNIT = 0.
W_BAPI_SERVICE-GR_PRICE = 0.
W_BAPI_SERVICE-SHORT_TEXT = 0.
W_BAPI_SERVICE-MATL_GROUP = 0.
W_BAPI_SERVICE-DISTRIB = 0.
APPEND W_BAPI_SERVICE TO IT_BAPI_SERVICE.
W_BAPI_SERVICE-OUTL_IND = 'X'.
W_BAPI_SERVICE-LINE_NO = 2.
W_BAPI_SERVICE-PCKG_NO = 3457.
W_BAPI_SERVICE-EXT_LINE = 0000000010.
W_BAPI_SERVICE-QUANTITY = 10.
W_BAPI_SERVICE-BASE_UOM = STD.
W_BAPI_SERVICE-PRICE_UNIT = 0.
W_BAPI_SERVICE-GR_PRICE = 5.
W_BAPI_SERVICE-SHORT_TEXT = Cabling Services1.
W_BAPI_SERVICE-MATL_GROUP = IT37.
W_BAPI_SERVICE-DISTRIB = 2.
APPEND W_BAPI_SERVICE TO IT_BAPI_SERVICE.
W_BAPI_SERVICE-OUTL_IND = 'X'.
W_BAPI_SERVICE-LINE_NO = 3.
W_BAPI_SERVICE-PCKG_NO = 3457.
W_BAPI_SERVICE-EXT_LINE = 0000000020.
W_BAPI_SERVICE-QUANTITY = 10.
W_BAPI_SERVICE-BASE_UOM = STD.
W_BAPI_SERVICE-PRICE_UNIT = 0.
W_BAPI_SERVICE-GR_PRICE = 5.
W_BAPI_SERVICE-SHORT_TEXT = Cabling Services2.
W_BAPI_SERVICE-MATL_GROUP = IT37.
W_BAPI_SERVICE-DISTRIB = 2.
APPEND W_BAPI_SERVICE TO IT_BAPI_SERVICE.
Service Account assignment details
W_ACC_SERVICE-PCKG_NO = 3457.
W_ACC_SERVICE-LINE_NO = 2.
W_ACC_SERVICE-SERNO_LINE = 1.
W_ACC_SERVICE-SERIAL_NO = 1. "Account Assignment Link
W_ACC_SERVICE-NET_VALUE = .
W_ACC_SERVICE-QUANTITY = 50 .
W_ACC_SERVICE-PERCENTAGE = 100 .
APPEND W_ACC_SERVICE TO IT_ACC_SERVICE.
W_ACC_SERVICE-PCKG_NO = 3457.
W_ACC_SERVICE-LINE_NO = 3.
W_ACC_SERVICE-SERNO_LINE = 1.
W_ACC_SERVICE-SERIAL_NO = 1. "Account Assignment Link
W_ACC_SERVICE-NET_VALUE = .
W_ACC_SERVICE-QUANTITY = 50 .
W_ACC_SERVICE-PERCENTAGE = 50 .
APPEND W_ACC_SERVICE TO IT_ACC_SERVICE.
W_ACC_SERVICE-PCKG_NO = 3457.
W_ACC_SERVICE-LINE_NO = 3.
W_ACC_SERVICE-SERNO_LINE = 1.
W_ACC_SERVICE-SERIAL_NO = 2. "Account Assignment Link
W_ACC_SERVICE-NET_VALUE = .
W_ACC_SERVICE-QUANTITY = 50 .
W_ACC_SERVICE-PERCENTAGE = 50 .
APPEND W_ACC_SERVICE TO IT_ACC_SERVICE.
EKKN table entries:
When created thru ME21N with the same set of data,which is expected
ZEKKN MENGE NETWR SAKTO KOSTL
01 0.750 75.00 0000641099 0010010394
02 0.250 25.00 0000641099 0010010393
But through BAPI_PO_CREATE1, the below split is being done with respect to Tax Jurisdiction code.
01 0.500 50.00 0000641099 0010010394
02 0.250 25.00 0000641099 0010010394
03 0.250 25.00 0000641099 0010010393
Please advice the solution.
PS: there were different tax jurisdiction codes were being determined.
Plant, Cost Center and Delivery Address.Hi,
To commit BAPI or to run it properly , you need to fulfill all required data for BAPI.
You can go to BAPI documentation to check for mandetory parameters and also check with Function consultant for more data and confifuration/
Reward if useful! -
BAPI_PO_CREATE1 - E 06 436 In case of account assignment
Please, I need your help...
I am trying to create the PO´s since last week, but is imposible. I try to search posts about this same case but, nothing good to me.
Well, I am creating a Service PO using an agreement and buying to cost center.
When I execute the BAPI generate this messege:
E 06 436 In case of account assignment, please enter acc. assignment data for item .
I put the agreement and item in POITEM and checked in POITEMX. The system bring to me all fields of agreement, but don´t bring the account. In PO ITEM bring the ACCTASSCAT = K.
What I must to do to bring the Account Itens that are inside of my agreement?
Please, help me. I am with problems because I can´t do it.
Thanks a lot ,
Victoria.Hi,
When we create Purchase Order using "BAPI_PO_CREATE1", it works for all cases but we can have problems when we create Service Items in PO. Either we get an error u201CPlease maintain services or limitsu201D or u201CIn case of Account assignment, please enter acc. assignment data for itemu201D.
Service PO occurs when we enter item category u2018Du2019 (Service) and Account category u2018Ku2019 (Cost Center).
When we use BAPI_PO_CREATE1 to create service PO, following tables are populated at item level:
a) POITEM
b) POITEMX
c) POACCOUNT
d) POACCOUNTX
e) POSERVICES
f) POSRVACCESSVALUES
For service items: POITEM-PCKG_NO = u20180000000001u2019. (assign package no as a dummy number)
Set PCKG_NO flag in POITEMX table as u2018Xu2019.
Package No is the link that connect POITEM table to POACCOUNT table through tables POSERVICES and POSRVACCESSVALUES.
Set POACCOUNT-SERIAL_NO to u201801u2019.
Set same PCKG_NO to u20180000000001u2019 in POSERVICES table. Maintain two entries in POSERVICES table like this:
WA_POSERVICES-PCKG_NO = u20180000000001u2019.
WA_POSERVICES-LINE_NO = u20180000000001u2019.
WA_POSERVICES-OUTL_IND = u2018Xu2019.
WA_POSERVICES-SUBPCKG_NO = u20180000000003u2019. (Dummy No.)
WA_POSERVICES-QUANTITY = u2018100.000u2019.
WA_POSERVICES-BASE_UOM = u2018EAu2019.
WA_POSERVICES-PRICE_UNIT = u20181u2019.
WA_POSERVICES-GR_PRICE = u2018100.000u2019.
WA_POSERVICES-SHORT_TEXT = u2018SERVICE TESTu2019.
APPEND WA_POSERVICES TO IT_POSERVICES.
WA_POSERVICES- PCKG_NO = u20180000000003u2019.
WA_POSERVICES- LINE_NO = u20180000000002u2019.
WA_POSERVICES-QUANTITY = u201810.000u2019.
WA_POSERVICES- BASE_UOM = u2018EAu2019.
WA_POSERVICES--PRICE_UNIT = u20181u2019.
WA_POSERVICES-GR_PRICE = u2018100.000u2019.
WA_POSERVICES-SHORT_TEXT = u2018SERVICE 1u2019.
WA_POSERVICES-MATL_GROUP = u20180012u2019.
APPEND WA_POSERVICES TO IT_POSERVICES.
Set PCKG_NO as SUB_PCKG_NO in table POSRVACCESSVALUES this:
WA_POSRVACCESSVALUES-PCKG_NO = u20180000000003u2019.
WA_POSRVACCESSVALUES-LINE_NO = u20180000000002u2019.
WA_POSRVACCESSVALUES-SERNO_LINE = u201801u2019.
WA_POSRVACCESSVALUES-SERIAL_NO = u201801u2019.
WA_POSRVACCESSVALUES-QUANTITY = u201910.000u2019.
APPEND WA_POSRVACCESSVALUES TO IT_ POSRVACCESSVALUES.
This logic will work definitely and PO Service Items will be created. -
Please, I need your help...
I am trying to create the PO´s since last week, but is imposible. I try to search posts about this same case but, nothing good to me.
Well, I am creating a Service PO using an agreement and buying to cost center.
When I execute the BAPI generate this messege:
E 06 436 In case of account assignment, please enter acc. assignment data for item .
I put the agreement and item in POITEM and checked in POITEMX. The system bring to me all fields of agreement, but don´t bring the account. In PO ITEM bring the ACCTASSCAT = K.
What I must to do to bring the Account Itens that are inside of my agreement.
Please, help me. I am with problems because I can´t do it.
Thanks a lot ,
Victoria.Hi,
When we create Purchase Order using "BAPI_PO_CREATE1", it works for all cases but we can have problems when we create Service Items in PO. Either we get an error u201CPlease maintain services or limitsu201D or u201CIn case of Account assignment, please enter acc. assignment data for itemu201D.
Service PO occurs when we enter item category u2018Du2019 (Service) and Account category u2018Ku2019 (Cost Center).
When we use BAPI_PO_CREATE1 to create service PO, following tables are populated at item level:
a) POITEM
b) POITEMX
c) POACCOUNT
d) POACCOUNTX
e) POSERVICES
f) POSRVACCESSVALUES
For service items: POITEM-PCKG_NO = u20180000000001u2019. (assign package no as a dummy number)
Set PCKG_NO flag in POITEMX table as u2018Xu2019.
Package No is the link that connect POITEM table to POACCOUNT table through tables POSERVICES and POSRVACCESSVALUES.
Set POACCOUNT-SERIAL_NO to u201801u2019.
Set same PCKG_NO to u20180000000001u2019 in POSERVICES table. Maintain two entries in POSERVICES table like this:
WA_POSERVICES-PCKG_NO = u20180000000001u2019.
WA_POSERVICES-LINE_NO = u20180000000001u2019.
WA_POSERVICES-OUTL_IND = u2018Xu2019.
WA_POSERVICES-SUBPCKG_NO = u20180000000003u2019. (Dummy No.)
WA_POSERVICES-QUANTITY = u2018100.000u2019.
WA_POSERVICES-BASE_UOM = u2018EAu2019.
WA_POSERVICES-PRICE_UNIT = u20181u2019.
WA_POSERVICES-GR_PRICE = u2018100.000u2019.
WA_POSERVICES-SHORT_TEXT = u2018SERVICE TESTu2019.
APPEND WA_POSERVICES TO IT_POSERVICES.
WA_POSERVICES- PCKG_NO = u20180000000003u2019.
WA_POSERVICES- LINE_NO = u20180000000002u2019.
WA_POSERVICES-QUANTITY = u201810.000u2019.
WA_POSERVICES- BASE_UOM = u2018EAu2019.
WA_POSERVICES--PRICE_UNIT = u20181u2019.
WA_POSERVICES-GR_PRICE = u2018100.000u2019.
WA_POSERVICES-SHORT_TEXT = u2018SERVICE 1u2019.
WA_POSERVICES-MATL_GROUP = u20180012u2019.
APPEND WA_POSERVICES TO IT_POSERVICES.
Set PCKG_NO as SUB_PCKG_NO in table POSRVACCESSVALUES this:
WA_POSRVACCESSVALUES-PCKG_NO = u20180000000003u2019.
WA_POSRVACCESSVALUES-LINE_NO = u20180000000002u2019.
WA_POSRVACCESSVALUES-SERNO_LINE = u201801u2019.
WA_POSRVACCESSVALUES-SERIAL_NO = u201801u2019.
WA_POSRVACCESSVALUES-QUANTITY = u201910.000u2019.
APPEND WA_POSRVACCESSVALUES TO IT_ POSRVACCESSVALUES.
This logic will work definitely and PO Service Items will be created. -
Hello!
While using bapi_po_create1 and making it account assignment in services case
i get an error
E 06 436 In case of account assignment, please enter acc. assignment data for item
Thanks!Hello,
When we create Purchase Order using "BAPI_PO_CREATE1", it works for all cases but we can have problems when we create Service Items in PO. Either we get an error u201CPlease maintain services or limitsu201D or u201CIn case of Account assignment, please enter acc. assignment data for itemu201D.
Service PO occurs when we enter item category u2018Du2019 (Service) and Account category u2018Ku2019 (Cost Center).
When we use BAPI_PO_CREATE1 to create service PO, following tables are populated at item level:
a) POITEM
b) POITEMX
c) POACCOUNT
d) POACCOUNTX
e) POSERVICES
f) POSRVACCESSVALUES
For service items: POITEM-PCKG_NO = u20180000000001u2019. (assign package no as a dummy number)
Set PCKG_NO flag in POITEMX table as u2018Xu2019.
Package No is the link that connect POITEM table to POACCOUNT table through tables POSERVICES and POSRVACCESSVALUES.
Set POACCOUNT-SERIAL_NO to u201801u2019.
Set same PCKG_NO to u20180000000001u2019 in POSERVICES table. Maintain two entries in POSERVICES table like this:
WA_POSERVICES-PCKG_NO = u20180000000001u2019.
WA_POSERVICES-LINE_NO = u20180000000001u2019.
WA_POSERVICES-OUTL_IND = u2018Xu2019.
WA_POSERVICES-SUBPCKG_NO = u20180000000003u2019. (Dummy No.)
WA_POSERVICES-QUANTITY = u2018100.000u2019.
WA_POSERVICES-BASE_UOM = u2018EAu2019.
WA_POSERVICES-PRICE_UNIT = u20181u2019.
WA_POSERVICES-GR_PRICE = u2018100.000u2019.
WA_POSERVICES-SHORT_TEXT = u2018SERVICE TESTu2019.
APPEND WA_POSERVICES TO IT_POSERVICES.
WA_POSERVICES- PCKG_NO = u20180000000003u2019.
WA_POSERVICES- LINE_NO = u20180000000002u2019.
WA_POSERVICES-QUANTITY = u201810.000u2019.
WA_POSERVICES- BASE_UOM = u2018EAu2019.
WA_POSERVICES--PRICE_UNIT = u20181u2019.
WA_POSERVICES-GR_PRICE = u2018100.000u2019.
WA_POSERVICES-SHORT_TEXT = u2018SERVICE 1u2019.
WA_POSERVICES-MATL_GROUP = u20180012u2019.
APPEND WA_POSERVICES TO IT_POSERVICES.
Set PCKG_NO as SUB_PCKG_NO in table POSRVACCESSVALUES this:
WA_POSRVACCESSVALUES-PCKG_NO = u20180000000003u2019.
WA_POSRVACCESSVALUES-LINE_NO = u20180000000002u2019.
WA_POSRVACCESSVALUES-SERNO_LINE = u201801u2019.
WA_POSRVACCESSVALUES-SERIAL_NO = u201801u2019.
WA_POSRVACCESSVALUES-QUANTITY = u201910.000u2019.
APPEND WA_POSRVACCESSVALUES TO IT_ POSRVACCESSVALUES.
This logic will work definitely and PO Service Items will be created.
Thanks,
Jayarama Krishna -
Error After BAPI_PO_CREATE1 with multiple Lines "Enter Account Assignment"
Hi,
I am trying to Post Purchase Orders with Multiple lines using BAPI_PO_CREATE1 and got error
"Enter Account Assignment". This is happening when I post PO with multiple line items.
I am trying the same PO with one record, PO is creating successfully. Do I need to put any additional data.
I am creating PO with Item Category 'D' and Account Assignment 'N' and external number range and internal number range.
Pls let me know, Do i need any additional flags for this.
Thanks,
nainiHello all,
please help!!
I used function BAPI_PO_CREATE1 to create PO with limit item but function returned message error '518 No account assignment exist for service line 0000000000'. Can anyone give me an idea to slove this problem? for your information, I used parameters below to run this function.
POHEADER
POHEADER-COMP_CODE = '1205'
POHEADER-DOC_TYPE = 'GZPO'
POHEADER-VENDOR = '8000001313'
POHEADER-PMNTTRMS = '0001'
POHEADER-PURCH_ORG = '1222'.
POHEADER-PUR_GROUP = 'K05'
POHEADER-CURRENCY = 'THB'
POHEADER-EXCH_RATE = '1.00000'
POHEADER-EX_RATE_FX = ' X'
POHEADER-DOC_DATE = '10.06.2008'
POHEADERX
POHEADERX-COMP_CODE = 'X'
POHEADERX-DOC_TYPE = 'X'
POHEADERX-VENDOR = 'X'
POHEADERX-PMNTTRMS= 'X'
POHEADERX-DSCNT1_TO = 'X'
POHEADERX-PURCH_ORG= 'X'
POHEADERX-PUR_GROUP = 'X'
POHEADERX-CURRENCY= 'X'
POHEADERX-EXCH_RATE= 'X'
POHEADERX-EX_RATE_FX= 'X'
POHEADERX-DOC_DATE= 'X'
POHEADERX-INCOTERMS1= 'X'
POHEADERX-INCOTERMS2= 'X'
POITEM
POITEM-SHORT_TEXT = 'TEST'
POITEM-PLANT = '5005'
POITEM-MATL_GROUP = '606100001'
POITEM-QUANTITY = '1.000'
POITEM-PO_UNIT = 'AU'
POITEM-ITEM_CAT = 'B'
POITEM-ACCTASSCAT = 'K'
POITEM-DISTRIB = ' '
POITEM-PART_INV = ' '
POITEM-PCKG_NO = '0000100001'
POITEMX
POITEMX-SHORT_TEXT = 'X'
POITEMX-PLANT = 'X'
POITEMX-MATL_GROUP = 'X'
POITEMX-QUANTITY = 'X'
POITEMX-PO_UNIT = 'X'
POITEMX-ITEM_CAT = 'X'
POITEMX-ACCTASSCAT = 'X'
POITEMX-DISTRIB = 'X'
POITEMX-PART_INV = 'X'
POITEMX-PCKG_NO = 'X'
POSCHEDULE
POSCHEDULE-PO_ITEM = '00001'
POSCHEDULE-SCHED_LINE = '0001'
POSCHEDULE-DEL_DATCAT_EXT = 'D'
POSCHEDULE-DELIVERY_DATE = '01.09.2006'
POSCHEDULE-QUANTITY = ' 1.000'
POSCHEDULEX
POSCHEDULEX-PO_ITEM= '00001'
POSCHEDULEX-SCHED_LINE = '0001'
POSCHEDULEX-PO_ITEMX = 'X'
POSCHEDULEX-SCHED_LINEX = 'X'
POSCHEDULEX-DEL_DATCAT_EXT = 'X'
POSCHEDULEX-DELIVERY_DATE = 'X'
POSCHEDULEX-QUANTITY = 'X'
POACCOUNT
POACCOUNT-PO_ITEM = '00001'
POACCOUNT-SERIAL_NO = '01'
POACCOUNT-GL_ACCOUNT = '0065903020'
POACCOUNT-BUS_AREA = '70'
POACCOUNT-COSTCENTER = '0010700003'
POACCOUNT-ORDERID = ' '
POACCOUNTX
POACCOUNTX-PO_ITEM = '00001'
POACCOUNTX-SERIAL_NO = '01'
POACCOUNTX-PO_ITEMX = 'X'
POACCOUNTX-SERIAL_NOX = 'X'
POACCOUNTX-GL_ACCOUNT = 'X'
POACCOUNTX-BUS_AREA = 'X'
POACCOUNTX-COSTCENTER = 'X'
POACCOUNTX-ORDERID = 'X'
POSERVICES
POSERVICES-PCKG_NO = '0000100001'
POSERVICES-LINE_NO = '0000000001'
POSERVICES-OUTL_IND = 'X'
POSERVICES-SUBPCKG_NO = '0000100002'
POSERVICES-QUANTITY = ' '
POSERVICES-BASE_UOM = ' '
POSERVICES-GR_PRICE = ' '
POSERVICES-FROM_LINE = '000001'
POSERVICES-TO_LINE = '999999'
POSERVICES-SHORT_TEXT = ' '
POSERVICES-MATL_GROUP = ' '
APPEND POSERVICES
POSERVICES-PCKG_NO = '00100002'
POSERVICES-LINE_NO = '0000002'
POSERVICES-OUTL_IND = ' '
POSERVICES-SUBPCKG_NO = ' '
POSERVICES-QUANTITY = '1.000'
POSERVICES-BASE_UOM = 'AU'
POSERVICES-GR_PRICE = '43,486.21'
POSERVICES-FROM_LINE = ' '
POSERVICES-TO_LINE = ' '
POSERVICES-SHORT_TEXT = 'Demurrage'
POSERVICES-MATL_GROUP = '606100001'
POSRVACCESSVALUES
POSRVACCESSVALUES-PCKG_NO = '0000100001'
POSRVACCESSVALUES-LINE_NO = '0000000001'
POSRVACCESSVALUES-SERIAL_NO = ' '
POSRVACCESSVALUES-QUANTITY = ' '
APPEND POSRVACCESSVALUES
POSRVACCESSVALUES-PCKG_NO = '0000100002'
POSRVACCESSVALUES-LINE_NO = '0000000002'
POSRVACCESSVALUES-SERIAL_NO = '01'
POSRVACCESSVALUES-QUANTITY = '1.000'
POLIMITS
POLIMITS-PCKG_NO = '0000100001'
POLIMITS-LIMIT = '1.00'
POLIMITS-EXP_VALUE = '1.00'
APPEND POLIMITS
POLIMITS-PCKG_NO = '0000100002'
POLIMITS-LIMIT = ' '
POLIMITS-EXP_VALUE = ' '
please help
Thank you for advance -
BAPI_PO_CREATE1-No account assignment exists for service line 0000000000
Hi guys
I'm trying to use the above BAPI to create purchase orders from legacy system. I have populated ALL of the required tables (including the Xs) but I was returned the above error: No account assignment exists for service line 0000000000.
I have populated fields in the POLIMITS structure
POLIMITS-PCKG_NO
POLIMITS-LIMIT
POLIMITS-EXP_VALUE.
Any solutions?
Thanks in advance.
Cheers!hi Dinesh,
am also having same error for bap po create1 . did it get resolved for you? please help its urgently needed for me here -
BAPI_PO_CREATE1 - PO not created due to wrong account assignment
Hello,
I'm trying to use this BAPI for a PO that I can create with ME21n, so I'm asking you what can be wrong with my input data. Here are the facts:
A - Message returned: KI / 265: Cost Center 1000 / 1000 does not exist;
B - Account Assignment Category = 'K' (Cost Center);
C - G/L account exists and is valid for the PO date;
D - Cost center exists and is valid for the PO date;
Here's how I'm filling the POACCOUNT table (one item only)
PO_ITEM = 00010
SERIAL_NO = 01
CREAT_DATE = 20.10.2009
GL_ACCOUNT = 614000
COSTCENTER = 1000
CO_AREA = 1000
In the POACCOUNTX table I filled the appropriate fields
Please remind that the PO enters fine with ME21n.
Any clues?
Regards,
JoãHi,
do you get the same error Ki265 also in the online transaction ME21N?
Maybe you need to specify POACCOUNT-COSTCENTER with leading zeros; like
"0000001000".
Please check In your test data POHEADER-COMP_CODE and POHEADERX-COMP_CODE, these should be filled as well.
If you still have a problem with the BAPI creation, please create a SAP ticket and use the notes 375886 and 539978
to prive us with a test data to check in SE37.
Regards,
Edit -
BAPI_PO_CREATE1 for blocked item and account assignment category Q
Hi,
I am facing an issue while creating PO with items which are blocked ie LOEKZ = 'S', and account assignment category 'Q'.
Though I fill wbs element in POACCOUNT and POACCOUNTX structures, after execution it is being erased and am getting an error: "Enter WBS Element" with an information message "Change G/L Account could not be effected".
Please help.
Thanks in advance.
Regards
KalyaniHi Ravi,
Below is the code:
POITEM-PO_ITEM = '00010'
POITEM-DELETE_IND = 'S'
POITEM-ACCTASSCAT = 'Q'
POACCOUNT-PO_ITEM = '00010'
POACCOUNT-SERIAL_NO = '01'
POACCOUNT-CO_AREA = '1000'
POACCOUNT-WBS_ELEMENT = 'XXXX'
I filled POITEMX, POACCOUNTX structures too.
When I dont pass POITEM-DELETE_IND = 'S', the PO is being created.
But my requirement is to make the item blocked.
Thanks in advance.
Regards
Kalyani -
Error in PO using BAPI_PO_CREATE1
Hi ,
I got a error in the po that in my template the netpr is 8.00 but in the output always displaying the amount 1.00 only in POITEM-NET_PRICE.even i change in the template different values but no change in the output.why like this and how to solve this.
Thanks,
Regards,
Rajendra.Hi Eswar,
Below is the code,
tables: T100.
DATA : POHEADER LIKE BAPIMEPOHEADER ,
POHEADERX LIKE BAPIMEPOHEADERX,
POITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
POITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
POSCHEDULE LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,
POSCHEDULEX LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE,
POACCOUNT LIKE BAPIMEPOACCOUNT OCCURS 0 WITH HEADER LINE,
POACCOUNTX LIKE BAPIMEPOACCOUNTX OCCURS 0 WITH HEADER LINE,
POCOND LIKE BAPIMEPOCOND OCCURS 0 WITH HEADER LINE,
POCONDX LIKE BAPIMEPOCONDX OCCURS 0 WITH HEADER LINE,
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER.
POHEADER-COMP_CODE = '2006'.
DATA : BEGIN OF DATA_TAB OCCURS 0,
BSART(4) TYPE C,
LIFNR(10) TYPE C,
EKORG(4) TYPE C,
EKGRP(3) TYPE C,
EBELP(5) TYPE C,
MATNR(18) TYPE C,
MAKTX(40) TYPE C,
WERKS(4) TYPE C,
CHARG(10) TYPE C,
BEDNR(10) TYPE C,
PSTYP(1) TYPE C,
KNTTP(1) TYPE C,
ANLN1(12) TYPE C,
ANLN2(4) TYPE C,
AUFNR(12) TYPE C,
PS_PSP_PNR(8) TYPE C,
EINDT(8) TYPE C,
WAERS(5) TYPE C,
NETPR(11) TYPE C,
WKURS(9) TYPE C,
BEDAT(8) TYPE C,
SAKTO(10) TYPE C,
KOSTL(10) TYPE C,
MENGE(13) TYPE C,
MEINS(3) TYPE C,
KWERT(13) TYPE C,
KSCHL(4) TYPE C,
END OF DATA_TAB.
Data
DATA : wc_file type string,
wc_tabix like sy-tabix,
wc_fl(40) type c,
wc_tot(19) type n.
data: i_tab1 like alsmex_tabline occurs 0 with header line,
w_Data_tab like Data_tab occurs 0 with header line,
w_Data_tab like Data_tab,
w_totlines type i,
w_end_col type i.
DATA : C_X(1) TYPE c VALUE 'X'.
DATA : W_ERRSTAT(18) TYPE C.
DATA : W_ERRMSG(18) TYPE C.
DATA : I_EKKO LIKE EKKO OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF I_RETURN OCCURS 0.
DATA : EBELN LIKE EKKO-EBELN.
INCLUDE STRUCTURE DATA_TAB.
DATA : MESSAGE LIKE RETURN-MESSAGE.
DATA : END OF I_RETURN.
ALV
type-pools: slis.
data: txt_report like dokhl-object. "Reportname für Erläuterungsaufruf
data: gt_fieldcat type slis_t_fieldcat_alv,
gt_events type slis_t_event,
gt_sort type slis_t_sortinfo_alv,
gt_list_top_of_page type slis_t_listheader,
gs_layout type slis_layout_alv.
*Parameters
selection-screen begin of block mysel1 with frame.
parameters: pc_file like rlgrap-filename. " obligatory default 'C:'." default 'C:mat.xls'.
selection-screen end of block mysel1.
*AT SELECTION-SCREEN
at selection-screen on pc_file.
call function 'WS_QUERY'
exporting
query = 'FL'
filename = pc_file
importing
return = wc_fl.
condense wc_fl no-gaps.
if wc_fl eq space.
message e009 raising pc_file.
exit.
endif.
at selection-screen on value-request for pc_file.
wc_file = pc_file.
call function 'WS_FILENAME_GET'
exporting
mask = ' '
title = text-001
importing
filename = pc_file
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5.
SELECTION-SCREEN
start-of-selection.
perform 1000_getfile.
perform 2000_process_bapi.
perform fieldcat_init using gt_fieldcat[].
perform layout_init using gs_layout.
perform comment_build using gt_list_top_of_page[].
perform eventtab_build using gt_events[].
PERFORM sort_build USING gt_sort[].
perform 3000_updation_log.
end-of-selection.
*& Form 1000_getfile
text
--> p1 text
<-- p2 text
FORM 1000_getfile .
*w_data_tab = data_tab.
Get the No of Rows in the file
CALL FUNCTION 'AA_FILE_UPLOAD_EXCEL'
EXPORTING
I_FILENAME = pc_file
I_TEST =
I_UCOMM =
I_MAXCOLS =
I_DELIMITER = ','
TABLES
ET_FILECONTENT = DATA_TAB
EXCEPTIONS
ERROR_ACCESSING_FILE = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
describe table Data_tab lines w_totlines.
w_end_col = 27.
w_totlines = 1.
Upload the data from file to Internal Table
refresh Data_tab.
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
filename = pc_file
i_begin_col = 1 " Starting col on each row from the upload excel file
i_begin_row = 4 " Starting row from the upload excel file
i_end_col = w_end_col " No. of columns in the upload excel file
i_end_row = w_totlines " Possible no. of rows in the upload excel file
tables
intern = i_tab1
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
endif.
sort i_tab1 by row col.
loop at i_tab1.
case i_tab1-col.
when 1.
clear w_Data_tab.
move i_tab1-value to w_Data_tab-bsart.
when 2.
move i_tab1-value to w_Data_tab-lifnr.
when 3.
move i_tab1-value to w_Data_tab-ekorg.
when 4.
move i_tab1-value to w_Data_tab-ekgrp.
when 5.
move i_tab1-value to w_Data_tab-ebelp.
when 6.
move i_tab1-value to w_Data_tab-matnr.
when 7.
move i_tab1-value to w_Data_tab-maktx.
when 8.
move i_tab1-value to w_Data_tab-werks.
when 9.
move i_tab1-value to w_Data_tab-charg.
when 10.
move i_tab1-value to w_Data_tab-bednr.
when 11.
move i_tab1-value to w_Data_tab-pstyp.
when 12.
move i_tab1-value to w_Data_tab-knttp.
when 13.
move i_tab1-value to w_Data_tab-anln1.
when 14.
move i_tab1-value to w_Data_tab-anln2.
when 15.
move i_tab1-value to w_Data_tab-aufnr.
when 16.
move i_tab1-value to w_Data_tab-ps_psp_pnr.
when 17.
move i_tab1-value to w_Data_tab-eindt.
when 18.
move i_tab1-value to w_Data_tab-waers.
when 19.
move i_tab1-value to w_Data_tab-netpr.
when 20.
move i_tab1-value to w_Data_tab-wkurs.
when 21.
move i_tab1-value to w_Data_tab-bedat.
when 22.
move i_tab1-value to w_Data_tab-sakto.
when 23.
move i_tab1-value to w_Data_tab-kostl.
when 24.
move i_tab1-value to w_Data_tab-menge.
when 25.
move i_tab1-value to w_Data_tab-meins.
when 26.
move i_tab1-value to w_Data_tab-kwert.
when 27.
move i_tab1-value to w_Data_tab-kschl.
endcase.
at end of row.
append w_Data_tab to Data_tab.
clear w_Data_tab.
endat.
endloop.
clear wc_tot.
describe table Data_tab lines wc_tot.
ENDFORM. " 1000_getfile
*& Form 2000_process_bapi
text
--> p1 text
<-- p2 text
FORM 2000_process_bapi .
LOOP AT DATA_TAB.
POHEADER-DOC_TYPE = DATA_TAB-BSART.
POHEADER-VENDOR = DATA_TAB-LIFNR.
POHEADER-PURCH_ORG = DATA_TAB-EKORG.
POHEADER-PUR_GROUP = DATA_TAB-EKGRP.
POHEADER-DOC_DATE = DATA_TAB-BEDAT.
POHEADER-EXCH_RATE = DATA_TAB-WKURS.
POHEADER-CURRENCY = DATA_TAB-WAERS.
APPEND POHEADER.
POHEADERX-DOC_TYPE = 'X'.
POHEADERX-VENDOR = 'X'.
POHEADERX-PURCH_ORG = 'X'.
POHEADERX-PUR_GROUP = 'X'.
POHEADERX-DOC_DATE = 'X'.
POHEADERX-EXCH_RATE = 'X'.
POHEADERX-CURRENCY = 'X'.
APPEND POHEADERX.
POITEM-PO_ITEM = DATA_TAB-EBELP.
POITEM-MATERIAL = DATA_TAB-MATNR.
POITEM-SHORT_TEXT = DATA_TAB-MAKTX.
POITEM-PLANT = DATA_TAB-WERKS.
POITEM-BATCH = DATA_TAB-CHARG.
POITEM-TRACKINGNO = DATA_TAB-BEDNR.
POITEM-ITEM_CAT = DATA_TAB-PSTYP.
POITEM-ACCTASSCAT = DATA_TAB-KNTTP.
POITEM-NET_PRICE = DATA_TAB-NETPR.
POITEM-QUANTITY = DATA_TAB-MENGE.
POITEM-PO_UNIT = DATA_TAB-MEINS.
APPEND POITEM.
POITEMX-PO_ITEM = DATA_TAB-EBELP.
POITEMX-PO_ITEM = 'X'.
POITEMX-MATERIAL = 'X'.
POITEMX-SHORT_TEXT = 'X'.
POITEMX-PLANT = 'X'.
POITEMX-BATCH = 'X'.
POITEMX-TRACKINGNO = 'X'.
POITEMX-ITEM_CAT = 'X'.
POITEMX-ACCTASSCAT = 'X'.
POITEMX-NET_PRICE = 'X'.
POITEMX-QUANTITY = 'X'.
POITEMX-PO_UNIT = 'X'.
APPEND POITEMX.
POACCOUNT-PO_ITEM = DATA_TAB-EBELP.
POACCOUNT-ASSET_NO = DATA_TAB-ANLN1.
POACCOUNT-SUB_NUMBER = DATA_TAB-ANLN2.
POACCOUNT-ORDERID = DATA_TAB-AUFNR.
POACCOUNT-WBS_ELEMENT = DATA_TAB-PS_PSP_PNR.
POACCOUNT-GL_ACCOUNT = DATA_TAB-SAKTO.
POACCOUNT-COSTCENTER = DATA_TAB-KOSTL.
POACCOUNT-QUANTITY = DATA_TAB-MENGE.
APPEND POACCOUNT.
POACCOUNTX-PO_ITEM = DATA_TAB-EBELP.
POACCOUNTX-ASSET_NO = 'X'.
POACCOUNTX-SUB_NUMBER = 'X'.
POACCOUNTX-ORDERID = 'X'.
POACCOUNTX-WBS_ELEMENT = 'X'.
POACCOUNTX-GL_ACCOUNT = 'X'.
POACCOUNTX-COSTCENTER = 'X'.
APPEND POACCOUNTX.
POCOND-ITM_NUMBER = DATA_TAB-EBELP.
POCOND-COND_VALUE = DATA_TAB-KWERT.
POCOND-CURRENCY = DATA_TAB-WAERS.
POCOND-COND_TYPE = DATA_TAB-KSCHL.
POCOND-CHANGE_ID = ' I '.
APPEND POCOND.
POCONDX-ITM_NUMBER = DATA_TAB-EBELP.
POCONDX-COND_VALUE = 'X'.
POCONDX-CURRENCY = 'X'.
POCONDx-COND_TYPE = 'X'.
POCONDx-CHANGE_ID = ' I '.
APPEND POCONDX.
POSCHEDULE-PO_ITEM = DATA_TAB-EBELP.
POSCHEDULE-DELIVERY_DATE = DATA_TAB-EINDT.
POSCHEDULE-QUANTITY = DATA_TAB-MENGE.
APPEND POSCHEDULE.
POSCHEDULEX-PO_ITEM = DATA_TAB-EBELP.
POSCHEDULEX-DELIVERY_DATE = 'X'.
POSCHEDULEx-QUANTITY = 'X'.
APPEND POSCHEDULEX.
ENDLOOP.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = POHEADER
POHEADERX = POHEADERX
IMPORTING
EXPPURCHASEORDER = EXPPURCHASEORDER
EXPHEADER =
EXPPOEXPIMPHEADER =
TABLES
RETURN = RETURN
POITEM = POITEM
POITEMX = POITEMX
POADDRDELIVERY =
POSCHEDULE = POSCHEDULE
POSCHEDULEX = POSCHEDULEX
POACCOUNT = POACCOUNT
POACCOUNTPROFITSEGMENT =
POACCOUNTX = POACCOUNTX
POCONDHEADER =
POCONDHEADERX =
POCOND = POCOND
POCONDX = POCONDX
POPARTNER =
IF SY-SUBRC = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = C_X
ENDIF.
data : w_ekko like ekko-ebeln.
LOOP AT DATA_TAB.
READ TABLE RETURN index 1.
MOVE-CORRESPONDING RETURN TO I_RETURN.
MOVE-CORRESPONDING DATA_TAB TO I_RETURN.
TO GET THE PO NUMBER *************
SELECT single EBELN FROM EKKO INTO w_EKKO
WHERE BSART EQ DATA_TAB-BSART
AND LIFNR EQ DATA_TAB-LIFNR
AND EKORG EQ DATA_TAB-EKORG
AND EKGRP EQ DATA_TAB-EKGRP.
MOVE w_EKKO TO I_RETURN-EBELN.
APPEND I_RETURN.
CLEAR I_RETURN.
ENDLOOP.
ENDFORM. " 2000_process_bapi
*& Form fieldcat_init
FORM fieldcat_init USING lt_fieldcat type slis_t_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'EBELN'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_l = text-001.
ls_fieldcat-seltext_m = text-001.
ls_fieldcat-seltext_s = text-001.
ls_fieldcat-reptext_ddic = text-001.
ls_fieldcat-outputlen = '10'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_l = text-002.
ls_fieldcat-seltext_m = text-002.
ls_fieldcat-seltext_s = text-002.
ls_fieldcat-reptext_ddic = text-002.
ls_fieldcat-outputlen = '4'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'KNTTP'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_l = text-003.
ls_fieldcat-seltext_m = text-003.
ls_fieldcat-seltext_s = text-003.
ls_fieldcat-reptext_ddic = text-003.
ls_fieldcat-outputlen = '4'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_l = text-004.
ls_fieldcat-seltext_m = text-004.
ls_fieldcat-seltext_s = text-004.
ls_fieldcat-reptext_ddic = text-004.
ls_fieldcat-outputlen = '18'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'MENGE'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_l = text-005.
ls_fieldcat-seltext_m = text-005.
ls_fieldcat-seltext_s = text-005.
ls_fieldcat-reptext_ddic = text-005.
ls_fieldcat-outputlen = '10'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'NETPR'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-seltext_l = text-006.
ls_fieldcat-seltext_m = text-006.
ls_fieldcat-seltext_s = text-006.
ls_fieldcat-reptext_ddic = text-006.
ls_fieldcat-outputlen = '11'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'MESSAGE'.
ls_fieldcat-datatype = 'C'.
ls_fieldcat-seltext_l = text-007.
ls_fieldcat-seltext_m = text-007.
ls_fieldcat-seltext_s = text-007.
ls_fieldcat-reptext_ddic = text-007.
ls_fieldcat-outputlen = '50'.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ENDFORM. " fieldcat_init
*& Form layout_init
text
-->P_GS_LAYOUT text
FORM layout_init USING ls_layout type slis_layout_alv.
ls_layout-zebra = 'X'.
ENDFORM. " layout_init
*& Form comment_build
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM comment_build USING Lt_top_of_page type slis_t_listheader.
field-symbols: .
data: ls_line type slis_listheader.
data: i_sel like textpool occurs 0 with header line.
read textpool sy-repid into i_sel language sy-langu.
delete i_sel where id ne 'S'.
LIST HEADING LINE: TYPE H
clear ls_line.
ls_line-typ = 'H'.
ls_line-info = text-020.
append ls_line to lt_top_of_page.
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = text-021.
append ls_line to lt_top_of_page.
Selection-screen
loop at i_sel.
assign (i_sel-key) to .
append ls_line to lt_top_of_page.
endloop.
ENDFORM. " comment_build
*& Form eventtab_build
text
-->P_GT_EVENTS[] text
FORM eventtab_build USING lt_events type slis_t_event.
data: ls_event type slis_alv_event.
move 'PF_STATUS_SET' to ls_event-name.
move 'Z2006RMMPOUPLOAD' to ls_event-form.
append ls_event to lt_events.
clear ls_event.
ENDFORM. "eventtab_build
FORM PF_STATUS_SET
form Z2006RMMPOUPLOAD using extab type slis_t_extab. "#EC CALLED
set pf-status 'Z2006RMMPOUPLOAD'. "EXCLUDING extab.
endform. "Z2006RMMPOUPLOAD
FORM TOP_OF_PAGE *
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
i_logo = 'MECOMB'
it_list_commentary = gt_list_top_of_page.
endform. "top_of_page
*& Form 3000_updation_log
FORM 3000_updation_log .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'Z2006RMMPOUPLOAD'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = gs_layout
IT_FIELDCAT = gt_fieldcat[]
IT_EVENTS = gt_events[]
TABLES
T_OUTTAB = I_RETURN
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " 3000_updation_log
*& Form sort_build
FORM sort_build USING lt_sort type slis_t_sortinfo_alv.
data: ls_sort type slis_sortinfo_alv.
ls_sort-fieldname = 'EBELN'.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
append ls_sort to lt_sort.
clear ls_sort.
ls_sort-fieldname = 'MATNR'.
ls_sort-up = 'X'.
append ls_sort to lt_sort.
clear ls_sort.
ENDFORM. " sort_build
Thanks,
Rajendra.
Maybe you are looking for
-
Dear Experts: What I am trying to do is to convert PO smartform to PDF file and then launch the PDF file in a new window on Webgui. I am using function BBP_OUTUT_PO_PREVIEW_SMART, in which the function BBP_ALEWEB_DOWNLOAD is invoked. This program has
-
Creating a recursive HTree for class...please help!
Hey, Our instructions were rather easy...to make a recursive H tree that when finished, would look like whats in this link. http://www.cs.usm.maine.edu/~macleod/courses/cos161/Spring2007/assign6.html After writing a good bit of code of what I thought
-
I have ben searching for this answer and cannot find it so I will post here. In my editing suite I have two side by side monitors but I want to ad a third just for the canvas playback. I used to work at a studio and we had the same set up but I don't
-
HT1222 Can the iPad 1 be updated to iOS 6
Is it possible to install iOS 5 or iOS 6 on an iPad 1?
-
Buying WinQuickTimeMPEG2.qup Plugin where is the file
Hi, I'm buying today the WinQuickTimeMPEG2.qup plugin online but where is this file? I tried to update my quicktime but it always said- no updates available. In the invoice are written that it comes automatically. But I need it also offline for reins