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: 

Bapi BAPI_CONTRACT_CREATE return Error

0 Kudos

When I created a MM contract using BAPI_CONTRACT_CREATE, I got a return error like this:

" No instance of object type PurchasingContract has been created. External reference: # 1

# 1 System error (error in method CL_API_MASTER_CONDITION_MM=>PROCESS) "

I can't understand the error.

Can anybody help me?

6 REPLIES 6

FredericGirod
Active Contributor

You probably have a dump, could you check the ST22 transaction ?

0 Kudos

I don't see any dump in ST22

vipinsaraika
Participant
0 Kudos

I hope you are passing all the required data in structure as well as condition records. Please compare your code with the below code(already running perfectly in our production environment)

 REFRESH :  gt_item_condx , gt_item_cond  ,  gt_item_cond_valx , gt_item_cond_val ,
              gt_return , gt_item , gt_itemx , gt_account ,
              gt_accountx , gt_item_cond_val , gt_item_cond_valx  .

  CLEAR : gs_return , gs_item  , gs_itemx  ,  gs_account , gs_item_cond_val , gs_item_cond_valx ,
          gs_accountx , gs_item_cond_val , gs_item_cond_valx , gs_item_condx ,
          gs_item_cond , gs_item_cond_valx ,  gs_item_cond_val .


  CLEAR : ls_header , ls_headerx , lv_connum  , gs_updata_final_sr .

  DATA : lv_item TYPE i .

  LOOP AT gt_updata_final_sr INTO gs_updata_final_sr .
    CLEAR : lv_stdate , lv_ststr ,lv_enddate ,lv_endstr , gs_item , gs_itemx , gs_updata_final .
    CLEAR lv_item .
    REFRESH :  gt_item_condx , gt_item_cond  ,  gt_item_cond_valx , gt_item_cond_val ,
              gt_return , gt_item , gt_itemx , gt_account ,
              gt_accountx , gt_item_cond_val , gt_item_cond_valx  .


    IF gs_updata_final_sr IS NOT INITIAL .
      CONCATENATE gs_updata_final_sr-st_date+6(4) gs_updata_final_sr-st_date+3(2) gs_updata_final_sr-st_date+0(2) INTO lv_ststr .
      lv_stdate = lv_ststr .
    ENDIF .

    IF gs_updata_final_sr-en_date IS NOT INITIAL .
      CONCATENATE gs_updata_final_sr-en_date+6(4) gs_updata_final_sr-en_date+3(2) gs_updata_final_sr-en_date+0(2) INTO lv_endstr.
      lv_enddate = lv_endstr .
    ENDIF .


    LOOP AT gt_updata_final INTO gs_updata_final WHERE slno = gs_updata_final_sr-slno .
      COMPUTE  lv_item =   lv_item + 1 .
      gs_item-item_no =  lv_item .
      gs_item-material = gs_updata_final-matnr  .
      gs_item-plant = gs_updata_final-werks .
      gs_item-stge_loc = gs_updata_final-lgort  .
      gs_item-target_qty = gs_updata_final-menge .
      gs_item-po_unit = gs_updata_final-meins .
     gs_item-net_price = gs_updata_final-netpr . "Net price
*      gs_item-PRICE_UNIT = gs_updata_final- .
      gs_item-acctasscat = gs_updata_final-knttp .

      gs_itemx-item_no = lv_item .
      gs_itemx-material = 'X'.
      gs_itemx-plant = 'X' .
      gs_itemx-stge_loc = 'X' .
      gs_itemx-target_qty = 'X' .
      gs_itemx-po_unit = 'X' .
      gs_itemx-net_price = 'X' .             " Net Price
*      gs_itemx-price_unit = 'X' .
      gs_itemx-acctasscat = 'X' .

      gs_item_cond-item_no = lv_item .
      gs_item_cond-serial_id = lv_item .
      gs_item_cond-cond_count = 01 .

      gs_item_cond-cond_type = 'PB00' .
      gs_item_cond-cond_value = gs_updata_final-netpr .
*      CURRENCY

      gs_item_condx-item_no = lv_item .
      gs_item_condx-serial_id = lv_item.
      gs_item_condx-cond_count = 01 .

      gs_item_condx-item_nox = 'X' .
      gs_item_condx-serial_idx = 'X' .
      gs_item_condx-cond_type = 'X' .
*      gs_item_condx-CURRENCY
      gs_item_condx-cond_value = 'X' .


      gs_item_cond_val-item_no = lv_item.
      gs_item_cond_val-serial_id = lv_item .
      gs_item_cond_val-valid_from = lv_stdate.
      gs_item_cond_val-valid_to = lv_enddate.


      gs_item_cond_valx-item_no = lv_item.
      gs_item_cond_valx-serial_id = lv_item .

      gs_item_cond_valx-item_nox = 'X'.
      gs_item_cond_valx-serial_idx = 'X'.
      gs_item_cond_valx-valid_from = 'X'.
      gs_item_cond_valx-valid_to = 'X'.


      APPEND gs_item_cond_val TO gt_item_cond_val .
      APPEND gs_item_cond_valx TO gt_item_cond_valx .

      APPEND gs_item_cond TO gt_item_cond .
      APPEND gs_item_condx TO gt_item_condx .



      gs_item_cond-item_no = lv_item .
      gs_item_cond-serial_id = lv_item .
      gs_item_cond-cond_count = 02 .
      gs_item_cond-cond_type = 'Z000' .
      gs_item_cond-cond_value = 10 .
*      CURRENCY

      gs_item_condx-item_no = lv_item .
      gs_item_condx-serial_id = lv_item .
      gs_item_condx-cond_count = 02 .

      gs_item_condx-item_nox = 'X' .
      gs_item_condx-serial_idx = 'X' .
      gs_item_condx-cond_type = 'X' .
*      gs_item_condx-CURRENCY
      gs_item_condx-cond_value = 'X' .

      APPEND gs_item_cond TO gt_item_cond .
      APPEND gs_item_condx TO gt_item_condx .



      APPEND gs_item TO gt_item .
      APPEND gs_itemx TO gt_itemx .

      CLEAR : gs_updata_final  , gs_item_cond ,  gs_item_condx ,
              gs_item , gs_itemx .
    ENDLOOP .




    ls_header-comp_code = '1000' .
    ls_header-doc_type = gs_updata_final_sr-bsart .
    ls_header-vendor = gs_updata_final_sr-lifnr .
    ls_header-pmnttrms = gs_updata_final_sr-zterm  .
    ls_header-purch_org = gs_updata_final_sr-ekorg  .
    ls_header-pur_group = gs_updata_final_sr-ekgrp  .
    ls_header-vper_start = lv_stdate  .     "gs_updata_final_sr- .
    ls_header-vper_end =  lv_enddate   .  "gs_updata_final_sr- .
    ls_header-incoterms1 = gs_updata_final_sr-inco1 .
    ls_header-incoterms2 = gs_updata_final_sr-inco2 .
    ls_header-acum_value = gs_updata_final_sr-ktwrt .

    ls_header-currency = 'INR' .
    ls_headerx-currency = 'X' .
    ls_headerx-comp_code = 'X' .
    ls_headerx-doc_type = 'X'.
    ls_headerx-vendor = 'X' .
    ls_headerx-pmnttrms = 'X' .
    ls_headerx-purch_org = 'X' .
    ls_headerx-pur_group = 'X' .
    ls_headerx-vper_start = 'X' .
    ls_headerx-vper_end = 'X' .
    ls_headerx-incoterms1 = 'X' .
    ls_headerx-incoterms2 = 'X' .
    ls_headerx-acum_value = 'X' .


    PERFORM call_bapi_contract_create .


    CLEAR : gs_updata_final_sr .
  ENDLOOP .
*&---------------------------------------------------------------------*
*&      Form  CALL_BAPI_CONTRACT_CREATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM call_bapi_contract_create .
  DATA : gw_com_ret  LIKE bapiret2 .

  REFRESH : gt_return .
  CALL FUNCTION 'BAPI_CONTRACT_CREATE'
    EXPORTING
      header             = ls_header
      headerx            = ls_headerx
*     VENDOR_ADDRESS     =
*     TESTRUN            =
*     TECHNICAL_DATA     =
    IMPORTING
      purchasingdocument = lv_connum
*     EXP_HEADER         =
    TABLES
      return             = gt_return
      item               = gt_item
      itemx              = gt_itemx
*     ACCOUNT            =
*     ACCOUNTPROFITSEGMENT        =
*     ACCOUNTX           =
*     DELIVERY_ADDRESS   =
*     ITEM_COND_VALIDITY = gt_item_cond_VAL
*     ITEM_COND_VALIDITYX         = gt_item_cond_VALX
      item_condition     = gt_item_cond
      item_conditionx    = gt_item_condx
*     ITEM_COND_SCALE_VALUE       =
*     ITEM_COND_SCALE_QUAN        =
*     ITEM_TEXT          =
*     HEADER_TEXT        =
*     HEAD_COND_VALIDITY =
*     HEAD_COND_VALIDITYX         =
*     HEAD_CONDITION     =
*     HEAD_CONDITIONX    =
*     HEAD_COND_SCALE_VAL         =
*     HEAD_COND_SCALE_QUAN        =
*     PARTNER            =
*     PARTNERX           =
*     EXTENSIONIN        =
*     EXTENSIONOUT       =
    .
  IF sy-subrc EQ 0 .
    READ TABLE gt_return INTO gs_return WITH KEY type = 'E' .
    IF sy-subrc EQ 0 .

      gs_output-msg_typ = 'E' .
      gs_output-slno = gs_updata_final_sr-slno .
*      GS_OUTPUT-PO = lv_connum .
      gs_output-lifnr = gs_updata_final_sr-lifnr .

      LOOP AT gt_return INTO gs_return_e WHERE type = 'E' .
        gs_output-text = gs_return_e-message .
        APPEND gs_output TO gt_output .
        CLEAR gs_return_e .
      ENDLOOP .
      CLEAR gs_output .

    ELSE .
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait   = 'X'
        IMPORTING
          return = gw_com_ret.

      gs_output-msg_typ = 'S' .
      gs_output-slno = gs_updata_final_sr-slno .
      gs_output-po = lv_connum .
      gs_output-lifnr = gs_updata_final_sr-lifnr .
      gs_output-text = 'Contract Successfully Created'.

      APPEND gs_output TO gt_output .
      CLEAR gs_output .


    ENDIF .





  ENDIF .


ENDFORM

0 Kudos

Hi, I have checked. All the requirements are mentioned, it's actually coming for any file I try to upload

0 Kudos

Can you share the entire error that you are getting?

Thanks, Ramya Kothamasu

vipinsaraika
Participant
0 Kudos

Hi Simantini,

Please check the below URL, it might help.

Condition update process - Debugging Guide