Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to create SERVICE PR using BAPI_PR_CREATE

Former Member
0 Kudos

Hi everyone,

How to create SERVICE PR using BAPI_PR_CREATE

Regards,

My Code(it doesn't work,I don't know what's wrong.):

*&---------------------------------------------------------------------*
*& Report  ZWTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zwtest.

DATA: header TYPE bapimereqheader,
      headerx TYPE bapimereqheaderx,
      item LIKE TABLE OF bapimereqitemimp WITH HEADER LINE,
      itemx LIKE TABLE OF bapimereqitemx WITH HEADER LINE,
      account  LIKE TABLE OF bapimereqaccount WITH HEADER LINE,
      accountx LIKE TABLE OF bapimereqaccountx WITH HEADER LINE,
      service LIKE TABLE OF bapi_srv_service_line WITH HEADER LINE,
      servicex LIKE TABLE OF bapi_srv_service_linex WITH HEADER LINE,
      serviceaccount LIKE TABLE OF  bapi_srv_acc_data WITH HEADER LINE,
      serviceaccountx  LIKE TABLE OF bapi_srv_acc_datax WITH HEADER LINE,

      preq_no LIKE  bapimereqheader-preq_no,
      lt_return LIKE TABLE OF bapiret2 WITH HEADER LINE,
      wa_return LIKE bapiret2.


header-pr_type = 'NB'."订单类型(采购)
headerx-pr_type = 'X'.

CLEAR: item.
item-preq_item = '00010'.
item-pur_group = '426'."采购组
item-short_text = '服务类PR'."短文本
item-plant = '1051'."工厂
item-matl_group = 'AS07'."物料组
item-item_cat = '9'."项目类别
item-acctasscat = 'K'."科目分配类别
item-pckg_no = '0000000001'."软件包编号
APPEND item.

CLEAR: itemx.
itemx-preq_item = '00010'.
itemx-preq_itemx = 'X'.
itemx-pur_group = 'X'."采购组
itemx-short_text = 'X'."短文本
itemx-plant = 'X'."工厂
itemx-matl_group = 'X'."物料组
itemx-item_cat = 'X'."项目类别
itemx-acctasscat = 'X'."科目分配类别
itemx-pckg_no = 'X'."软件包编号
APPEND  itemx.

************************************

CLEAR: account.
account-preq_item = '00010'.
account-serial_no = '01'.
*account-quantity = '0.955'.
*account-distr_perc = '95.5'.
account-gl_account = '4205020000'.
account-costcenter = '1042000001'.
*account-co_area = 'CNOC'.
*account-profit_ctr = '9999999999'.
APPEND account.

CLEAR: accountx.
accountx-preq_item = '00010'.
accountx-serial_no = '01'.
accountx-preq_itemx = 'X'.
accountx-serial_nox = 'X'.
*accountx-quantity = 'X'.
*accountx-distr_perc = 'X'.
accountx-gl_account = 'X'.
accountx-costcenter = 'X'.
*accountx-co_area = 'X'.
*accountx-profit_ctr = 'X'.
APPEND accountx.

************************************

CLEAR: service.
service-doc_item = '00010'.
service-outline = '0000000001'.
service-srv_line = '0000000010'.
service-short_text = 'service test'.
service-quantity = '10.000'.
service-uom = 'AU'.
service-gross_price = '10.00'.
service-currency = 'CNY'.
*service-matl_group = 'AS07'."物料组
APPEND service.

CLEAR: servicex.
servicex-doc_item = '00010'.
servicex-outline = '0000000001'.
servicex-srv_line = '0000000010'.
servicex-short_text = 'X'.
servicex-quantity = 'X'.
servicex-uom = 'X'.
servicex-gross_price = 'X'.
servicex-currency = 'X'.
*servicex-matl_group = 'X'.
APPEND servicex.

************************************

CLEAR: serviceaccount.
serviceaccount-doc_item = '00010'.
serviceaccount-outline = '0000000001'.
serviceaccount-srv_line = '0000000010'.
serviceaccount-serial_no = '01'.
serviceaccount-serial_no_item = '01'.
serviceaccount-percent = '100'.
APPEND serviceaccount.

CLEAR: serviceaccountx.
serviceaccountx-doc_item = '00010'.
serviceaccountx-outline = '0000000001'.
serviceaccountx-srv_line = '0000000010'.
serviceaccountx-serial_no = '01'.
serviceaccountx-serial_no_item = 'X'.
serviceaccountx-percent = 'X'.
APPEND serviceaccountx.



CALL FUNCTION 'BAPI_PR_CREATE'
  EXPORTING
    prheader               = header
    prheaderx              = headerx
*   TESTRUN                =
  IMPORTING
    number                 = preq_no
*   PRHEADEREXP            =
  TABLES
    return                 = lt_return
    pritem                 = item
    pritemx                = itemx
*   PRITEMEXP              =
*   PRITEMSOURCE           =
    praccount              = account
*   PRACCOUNTPROITSEGMENT  =
    praccountx             = accountx
*   PRADDRDELIVERY         =
*   PRITEMTEXT             =
*   PRHEADERTEXT           =
*   EXTENSIONIN            =
*   EXTENSIONOUT           =
*   PRVERSION              =
*   PRVERSIONX             =
*   ALLVERSIONS            =
*   PRCOMPONENTS           =
*   PRCOMPONENTSX          =
*   SERVICEOUTLINE         =
*   SERVICEOUTLINEX        =
    servicelines           = service
    servicelinesx          = servicex
*   SERVICELIMIT           =
*   SERVICELIMITX          =
*   SERVICECONTRACTLIMITS  =
*   SERVICECONTRACTLIMITSX =
    serviceaccount         = serviceaccount
    serviceaccountx        = serviceaccountx
*   SERVICELONGTEXTS       =
*   SERIALNUMBER           =
*   SERIALNUMBERX          =
  .

* 处理错误消息:通过判断消息的类型,来判断BAPI是否成功
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'.

  WRITE: / '成功创建采购申请', preq_no.
ENDIF.

LOOP AT lt_return INTO wa_return.
  WRITE: / wa_return-message, wa_return-type, wa_return-id, wa_return-number.
ENDLOOP.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

see note:

1950319 - How to create service PR with BAPI_PR_CREATE.pdf

3 REPLIES 3

Former Member
0 Kudos

see note:

1950319 - How to create service PR with BAPI_PR_CREATE.pdf

gary07a
Explorer
0 Kudos

Hi,

Does Creation of Service PR is solved? Please send the working code?

I am able to create PR with Item and With Services List it's not working.

Thanks

Gary

moshenaveh
Community Manager
Community Manager
0 Kudos

Hello,

Please post a new question.

Regards,

Moshe