2024 Jan 06 6:59 PM
How to create Service PR using BAPI_PR_CREATE?
Please send the complete working code as I am able to create the PR with ITem but for PR, it is giving error "Enter only one true account assignment Message no. KI249".
2024 Jan 06 7:09 PM
Here is how to work with BAPI, usually you have one BAPI_*_GETDETAIL and one BAPI_*_CREATE:
Good luck!
2024 Jan 06 7:10 PM
And of course, refer to the SAP documentation and to SAP notes like 1950319 - BAPI_PR_CREATE: Template for creating service PR - SAP for Me.
2024 Jan 06 7:32 PM
Hi Sandra,
Can you please help where I am doing wrong in the below code.. I am getting this error - "Enter only one true account assignment"
gs_header-pr_type = 'NB'."
gs_headerx-pr_type = 'X'.
CLEAR: ls_item.
ls_item-preq_item = '00010'.
ls_item-PURCH_ORG = wa_output-ekorg.
ls_item-pur_group = wa_output-ekgrp."
ls_item-short_text = 'PR Text'.
ls_item-plant = wa_output-werks.
ls_item-quantity = wa_output-menge.
ls_item-DES_VENDOR = wa_output-lifnr.
ls_item-FIXED_VEND = wa_output-lifnr.
ls_item-matl_group = wa_output-matkl."
ls_item-item_cat = '9'.
ls_item-acctasscat = 'N'.
ls_item-pckg_no = '0000000001'."
APPEND ls_item to lt_item.
CLEAR: ls_itemx.
ls_itemx-preq_item = '00010'.
ls_itemx-PURCH_ORG = 'X'.
ls_itemx-preq_itemx = 'X'.
ls_itemx-pur_group = 'X'."
ls_itemx-short_text = 'X'."
ls_itemx-plant = 'X'."
ls_itemx-quantity = 'X'.
ls_itemx-DES_VENDOR = 'X'.
ls_itemx-FIXED_VEND = 'X'.
ls_itemx-matl_group = 'X'."
ls_itemx-item_cat = 'X'."
ls_itemx-acctasscat = 'X'."
ls_itemx-pckg_no = 'X'."
APPEND ls_itemx to lt_itemx.
CLEAR: ls_account.
ls_account-preq_item = '00010'.
ls_account-serial_no = '01'.
*account-quantity = '0.955'.
ls_account-CO_AREA = 'SBCC'.
*ls_account-gl_account = wa_output-kstar.
*ls_account-costcenter = wa_output-kstar.
ls_account-NETWORK = wa_output-aufnr.
ls_account-activity = wa_output-vornr.
ls_account-wbs_element = wa_output-posid.
*account-profit_ctr = '9999999999'.
APPEND ls_account to lt_account.
CLEAR: ls_accountx.
ls_accountx-preq_item = '00010'.
ls_accountx-serial_no = '01'.
ls_accountx-preq_itemx = 'X'.
ls_accountx-serial_nox = 'X'.
ls_accountx-CO_AREA = 'X'.
*accountx-quantity = 'X'.
*accountx-distr_perc = 'X'.
*ls_accountx-gl_account = 'X'.
ls_accountx-wbs_element = 'X'.
*ls_accountx-costcenter = 'X'.
ls_accountx-NETWORK = 'X'.
ls_accountx-activity = 'X'.
*accountx-co_area = 'X'.
*accountx-profit_ctr = 'X'.
APPEND ls_accountx to lt_accountx.
CLEAR: ls_service.
ls_service-doc_item = '00010'.
*ls_service-outline = '0000000001'.
ls_service-srv_line = '0000000010'.
ls_service-short_text = wa_output-ktext1.
ls_service-quantity = wa_output-menge.
ls_service-uom = wa_output-meins.
ls_service-gross_price = wa_output-tbtwr.
ls_service-currency = 'SAR'.
*service-matl_group = 'AS07'."物料组
APPEND ls_service to lt_service.
CLEAR: ls_servicex.
ls_servicex-doc_item = '00010'.
*ls_servicex-outline = '0000000001'.
ls_servicex-srv_line = '0000000010'.
ls_servicex-short_text = 'X'.
ls_servicex-quantity = 'X'.
ls_servicex-uom = 'X'.
ls_servicex-gross_price = 'X'.
ls_servicex-currency = 'X'.
*servicex-matl_group = 'X'.
APPEND ls_servicex to lt_servicex.
CLEAR: ls_serviceaccount.
ls_serviceaccount-doc_item = '00010'.
ls_serviceaccount-outline = '0000000001'.
ls_serviceaccount-srv_line = '0000000010'.
ls_serviceaccount-serial_no = '01'.
ls_serviceaccount-serial_no_item = '01'.
ls_serviceaccount-percent = '100'.
APPEND ls_serviceaccount To lt_serviceaccount.
CLEAR: ls_serviceaccountx.
ls_serviceaccountx-doc_item = '00010'.
ls_serviceaccountx-outline = '0000000001'.
ls_serviceaccountx-srv_line = '0000000010'.
ls_serviceaccountx-serial_no = '01'.
ls_serviceaccountx-serial_no_item = 'X'.
ls_serviceaccountx-percent = 'X'.
APPEND ls_serviceaccountx To lt_serviceaccountx.
CALL FUNCTION 'BAPI_PR_CREATE'
EXPORTING
prheader = gs_header
prheaderx = gs_headerx
* TESTRUN =
IMPORTING
number = lv_preq_no
* PRHEADEREXP =
tables
return = lt_return
pritem = lt_item
PRITEMX = lt_itemx
* PRITEMEXP =
* PRITEMSOURCE =
PRACCOUNT = lt_account
* PRACCOUNTPROITSEGMENT =
PRACCOUNTX = lt_accountx
SERVICELINES = lt_service
SERVICELINESX = lt_servicex
SERVICEACCOUNT = lt_serviceaccount
SERVICEACCOUNTX = lt_serviceaccountx
.
READ TABLE lt_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
2024 Jan 06 7:48 PM