Application Development and Automation 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: 
Read only

BAPI_PR_CREATE

Former Member
0 Likes
7,054

Hi all,

Iam trying to create Purchase requisition with BAPI_PR_CREATE with Account assignment and Item category in ECC 6.0. when i execute the bapi it throwing up message 'MAINTAIN SERVICES OR LIMITS' . when i check it in BAPI_PR_CREATE structure fields , services field is not there

could any body please let me know how to handle the scenario.

thanks in advance

prasanna kumar

3 REPLIES 3
Read only

Former Member
0 Likes
2,131

Try to debug your bapi from se37. Check where is the message populated.

You will definitely help yourself finding the reason of error.

Regards,

Lalit Mohan Gupta.

Read only

Former Member
0 Likes
2,131

Hi,

Try this sample code

DATA : T_REQUISITION_ITEMS LIKE BAPIEBANC OCCURS 0 WITH HEADER LINE,

T_RETURN LIKE BAPIRETURN OCCURS 0 WITH HEADER LINE .

DATA : E_NUMBER LIKE BAPIEBANC-PREQ_NO.

T_REQUISITION_ITEMS-DOC_TYPE &H3D 'NB'.

T_REQUISITION_ITEMS-DEL_DATCAT &H3D '1'.

T_REQUISITION_ITEMS-DELIV_DATE &H3D '20020626'.

T_REQUISITION_ITEMS-PLANT &H3D 'P1'.

T_REQUISITION_ITEMS-STORE_LOC &H3D '01'.

T_REQUISITION_ITEMS-PUR_GROUP &H3D 'P01'.

T_REQUISITION_ITEMS-MAT_GRP &H3D '01'.

T_REQUISITION_ITEMS-PREQ_ITEM &H3D 1.

T_REQUISITION_ITEMS-MATERIAL &H3D '1MAT1'.

T_REQUISITION_ITEMS-QUANTITY &H3D 10.

T_REQUISITION_ITEMS-PREQ_NAME &H3D '123456'.

T_REQUISITION_ITEMS-PURCH_ORG &H3D '1000'.

T_REQUISITION_ITEMS-ACCTASSCAT &H3D 'U' .

T_REQUISITION_ITEMS-VEND_MAT &H3D 'G'.

APPEND T_REQUISITION_ITEMS.

CALL FUNCTION 'BAPI_REQUISITION_CREATE'

  • EXPORTING

  • SKIP_ITEMS_WITH_ERROR &H3D

IMPORTING

NUMBER &H3D E_NUMBER

TABLES

REQUISITION_ITEMS &H3D T_REQUISITION_ITEMS

REQUISITION_ACCOUNT_ASSIGNMENT &H3D T_REQ_ACCOUNT_ASSIGNMENT

  • REQUISITION_ITEM_TEXT &H3D

  • REQUISITION_LIMITS &H3D

  • REQUISITION_CONTRACT_LIMITS &H3D

  • REQUISITION_SERVICES &H3D

  • REQUISITION_SRV_ACCASS_VALUES &H3D

RETURN &H3D T_RETURN

  • REQUISITION_SERVICES_TEXT &H3D

  • EXTENSIONIN &H3D

  • REQUISITION_ADDRDELIVERY &H3D

.

IF NOT E_NUMBER IS INITIAL .

WRITE:/ 'REQ NO:' , E_NUMBER , 'CREATED'.

ELSE.

LOOP AT T_RETURN.

WRITE T_RETURN-MESSAGE.

ENDLOOP.

ENDIF.

Regards

Krishna

Read only

Former Member
0 Likes
2,131

Hi Prasana,

see the sample code and correct the msiing..


FORM bapi_pr_create   USING    pwa_purreq_ib TYPE zce2o_purreq_ib
                               pw_notes      TYPE string
                      CHANGING pw_pr_number  TYPE bapimereqheader-preq_no
                               pw_msg        TYPE sxdp_message"dar013009
                               pw_flag       TYPE char1.

  DATA : t_item        TYPE TABLE  OF bapimereqitemimp,
         t_itemx       TYPE TABLE OF bapimereqitemx,
         t_itext       TYPE TABLE OF bapimereqitemtext,
         t_itemsource  TYPE TABLE OF bapimereqsource,
         t_return      TYPE TABLE OF bapiret2,
         wa_return     TYPE bapiret2,                       "dar013009
         wa_itemsource TYPE bapimereqsource,
         wa_item       TYPE bapimereqitemimp,
         wa_itemx      TYPE bapimereqitemx,
         wa_header     TYPE bapimereqheader,
         wa_headerx    TYPE bapimereqheaderx,
         wa_itext      TYPE bapimereqitemtext.

  CLEAR : pw_flag.

* Assigns the item details
  wa_item-preq_item  = c_item_1.
  wa_item-pur_group  = pwa_purreq_ib-purch_group.
  wa_item-preq_name  = pwa_purreq_ib-requisitioner_n.
  wa_item-material   = pwa_purreq_ib-material_number.
  wa_item-plant      = pwa_purreq_ib-plant.
  wa_item-store_loc  = pwa_purreq_ib-storage_loc.
  wa_item-quantity   = pwa_purreq_ib-quantity.
  wa_item-unit       = pwa_purreq_ib-uom.
  wa_item-preq_date  = w_date.
  wa_item-fixed_vend = pwa_purreq_ib-vendor_number.
  wa_item-purch_org  = pwa_purreq_ib-purch_org.
  wa_item-agreement  = pwa_purreq_ib-agrmnt_no.
  wa_item-agmt_item  = pwa_purreq_ib-agrmnt_line_item.
  wa_item-deliv_date = pwa_purreq_ib-request_date + pwa_purreq_ib-lead_time_offset.

* If the part class is in foundry assign the ship to oa number to supplying vendor, else it is blank
  IF pwa_purreq_ib-part_class IN r_foundry.
    wa_item-supp_vendor = pwa_purreq_ib-shipto_oa_number.
  ENDIF.

*** DELETE: Removed per Ravi --------------------------- dar101708 ---v
** Assigns the account assignment for the generic part
*  IF pwa_purreq_ib-part_class = c_part_gen.
*    wa_item-acctasscat = c_knttp_7.                         "'7'.
*  ENDIF.
*** DELETE: Removed per Ravi --------------------------- dar101708 ---^

  APPEND wa_item TO t_item.

* Assigns the fields to be updated
  wa_itemx-preq_item   = c_item_1.
  wa_itemx-preq_itemx  = c_check.
  wa_itemx-pur_group   = c_check.
  wa_itemx-preq_name   = c_check.
  wa_itemx-material    = c_check.
  wa_itemx-plant       = c_check.
  wa_itemx-store_loc   = c_check.
  wa_itemx-quantity    = c_check.
  wa_itemx-unit        = c_check.
  wa_itemx-preq_date   = c_check.
  wa_itemx-fixed_vend  = c_check.
  wa_itemx-purch_org   = c_check.
  wa_itemx-agreement   = c_check.
  wa_itemx-agmt_item   = c_check.
  wa_itemx-deliv_date  = c_check.
  wa_itemx-acctasscat  = c_check.
  wa_itemx-supp_vendor = c_check.

  APPEND wa_itemx TO t_itemx.

* Assigns the header
  wa_header-pr_type    = c_bsart_mrp.
  wa_headerx-pr_type   = c_check.

* Assigns the item source
  wa_itemsource-preq_item = c_item_1.
  wa_itemsource-info_rec  = pwa_purreq_ib-pir_no.
  APPEND wa_itemsource TO t_itemsource.

* Assigns the notes if the notes is not blank
  IF pw_notes IS NOT INITIAL.
    wa_itext-text_id   = 'B01'.
    wa_itext-text_line = pw_notes.
    wa_itext-preq_item = c_item_1.
    APPEND wa_itext TO t_itext.

* Begin of addition BRB040309
* Since item text can only be 132 characters, append new lines
* to text table for each 132 characters.
    DO.
      IF STRLEN( pw_notes ) > 132.
        SHIFT pw_notes LEFT BY 132 PLACES.
        wa_itext-text_line = pw_notes.
        APPEND wa_itext TO t_itext.
      ELSE.
        EXIT.
      ENDIF.
    ENDDO.
* End of addition BRB040309

  ENDIF.

* Create the PR with the above data's.
  CALL FUNCTION 'BAPI_PR_CREATE'                            "#EC *
    EXPORTING
      prheader     = wa_header
      prheaderx    = wa_headerx
    IMPORTING
      number       = pw_pr_number
    TABLES
      return       = t_return
      pritem       = t_item
      pritemx      = t_itemx
      pritemsource = t_itemsource
      pritemtext   = t_itext
    EXCEPTIONS
      OTHERS       = 1.

* Check whether any error exist. If not commit the changes else rollback the changes.
  READ TABLE t_return
*             TRANSPORTING NO FIELDS                         dar013009
             INTO wa_return                                 "dar013009
             WITH KEY type = c_msgty_e.
  IF sy-subrc = 0.
    pw_flag = c_error.
    pw_msg  = wa_return-message.                            "dar013009
  ELSE.
    pw_flag = c_success.

  ENDIF.


ENDFORM.                    " BAPI_PR_CREATE


regards,

Prabhudas