cancel
Showing results for 
Search instead for 
Did you mean: 

Contract IDOC error.

Former Member
0 Kudos

Hello All!

I create the contract from SRM in R/3.

Idoc is executed with error:

BLAORD

Please enter Plant.

COND_A

ISO unit PCE cannot be converted unambiguously to an SAP unit for E1KONP.

Please help to correct error.

Accepted Solutions (0)

Answers (11)

Answers (11)

Former Member
0 Kudos

Claudia

The Segment for Code of the Companies is filled(E1EDK14 014-ORGID=2000).

The Segment is not filled on plant(E1EDP01-WERKS=' ').

Former Member
0 Kudos

Give the Idoc a plant and it should be possible to post the Idoc.

First hard code a valid plant into the segment and try to post the

Idoc, then define the logic.

Thanks,

Claudia

Former Member
0 Kudos

Hi Claudia

You speak of method MODIFY_IDOC_DATA_CTR.

I must here indicate Plant?

Former Member
0 Kudos

Hi Ivan,

yes, I refer to method MODIFY_IDOC_DATA_CTR.

With this you are able to manipulate the IDOC information in R/3.

The segment for the Company Code is possibly empty. Have a

look on the IDOC in R/3 and hardcode a plant and corresponding

company code. When that is working, create the logic you need

for your scenario.

Thanks,

Claudia

Former Member
0 Kudos

Hi

<u>Please refer to few SAP OSS notes, which might help.</u>

<b>Note 855975 - Bid Invitation - R/3 Contract does not have PLANT

Note 1022928 - Unit of measure for calculation type C must be completed

Note 1033458 Item level Tolerance values in GOA not transferred to R/3

726167 Contract: Vendor data not carried over to R/3 IDOC

Note 793694 - Global master agreement - long text format specific. missing

Note 739688 - ISO code for unit of measurm. missing (correct. Note 737891)

Note 747422 Replace internal units with ISO codes - modification

Note 737891 - Unit of measurement not transferred to backend as ISO code

Note 694516 System message:Unit of meas./currency does not have ISO code</b>

Incase it does not help, also raise an OSS message with SAP.

Regards

- Atul

Former Member
0 Kudos

Nishant Rajan

I am created contract from Bids, and add Locations can not.

former_member195032
Active Contributor
0 Kudos

Hi Ivan,

Try creating the contract using Process Global outline agreement transaction.

If you are in position to create it with information given above you can try creating using BID process.

Regards,Nishant

Former Member
0 Kudos

Hi Ivan,

do you have Purchasing Orgs dedicated per Company Code or are the Purchasing

Orgs defined accross Company Codes?

When the later is the case, you need to derive the Company Code using BADI

BE_CTR and enhance the Idoc with this information in the corresponding Segment.

Thanks,

Claudia

Former Member
0 Kudos

Claudia Michaels

My example BADI BBP_CTR_BE_CREATE:

method IF_EX_BBP_CTR_BE_CREATE~CONTRACT_INTERFACE_FILL.

TYPES : BEGIN OF ls_mapping,

cond_type_old TYPE kscha,

cond_type_new TYPE kscha,

END OF ls_mapping.

DATA : lw_ct_be_text TYPE bbps_ctr_text.

DATA: ls_be_items TYPE bbps_ctr_item,

ls_be_cnd_ct TYPE bbpbapicondct,

ls_cnd_hd TYPE bbpbapicondhd,

ls_cnd_it TYPE bbpbapicondit,

ls_cnd_qs TYPE bbpbapicondqs,

ls_cnd_vs TYPE bbpbapicondvs,

ls_mapping TYPE ls_mapping,

lt_mapping TYPE TABLE OF ls_mapping,

lv_tabix_ct TYPE sy-tabix,

lv_tabix_hd TYPE sy-tabix,

lv_tabix_it TYPE sy-tabix.

  • Condition Type mapping from SRM to ERP system.

ls_mapping-cond_type_old = '01CT'.

ls_mapping-cond_type_new = 'PB00'.

APPEND ls_mapping TO lt_mapping.

ls_mapping-cond_type_old = '01RA'.

ls_mapping-cond_type_new = 'RB00'.

APPEND ls_mapping TO lt_mapping.

ls_mapping-cond_type_old = '01RH'.

ls_mapping-cond_type_new = 'RA01'.

APPEND ls_mapping TO lt_mapping.

ls_mapping-cond_type_old = '01RP'.

ls_mapping-cond_type_new = 'RA00'.

APPEND ls_mapping TO lt_mapping.

  • go through all service items (product_type 01 = normal material,

  • product_type 02 = service)

LOOP AT ct_be_items INTO ls_be_items.

  • additional loop on local condition table if product_type = 02

  • if 02 --> change SRM condition 01CT to PRS

  • only valid with services !

IF ls_be_items-product_type = 02.

LOOP AT lt_mapping INTO ls_mapping

WHERE cond_type_old = '01CT'.

ls_mapping-cond_type_new = 'PRS'.

MODIFY lt_mapping FROM ls_mapping.

ENDLOOP.

ENDIF.

LOOP AT ct_be_cnd_ct INTO ls_be_cnd_ct.

lv_tabix_ct = sy-tabix.

LOOP AT lt_mapping INTO ls_mapping

WHERE cond_type_old = ls_be_cnd_ct-cond_type.

CLEAR ls_be_cnd_ct-cond_type.

MOVE ls_mapping-cond_type_new TO ls_be_cnd_ct-cond_type.

ENDLOOP.

MODIFY ct_be_cnd_ct FROM ls_be_cnd_ct.

ENDLOOP.

LOOP AT ct_be_cnd_hd INTO ls_cnd_hd.

LOOP AT lt_mapping INTO ls_mapping

WHERE cond_type_old = ls_cnd_hd-cond_type.

CLEAR ls_cnd_hd-cond_type.

MOVE ls_mapping-cond_type_new TO ls_cnd_hd-cond_type.

MODIFY ct_be_cnd_hd FROM ls_cnd_hd.

ENDLOOP.

ENDLOOP.

LOOP AT ct_be_cnd_it INTO ls_cnd_it.

LOOP AT lt_mapping INTO ls_mapping

WHERE cond_type_old = ls_cnd_it-cond_type.

CLEAR ls_cnd_it-cond_type.

MOVE ls_mapping-cond_type_new TO ls_cnd_it-cond_type.

MODIFY ct_be_cnd_it FROM ls_cnd_it.

ENDLOOP.

ENDLOOP.

ENDLOOP.

endmethod.

Former Member
0 Kudos

Sorry:)

at a header level of the contract no Position(the Plant). I can not understand why.

former_member195032
Active Contributor
0 Kudos

Go to Header data ->Distrubution tab ,location field .That correspond to Plant.

Former Member
0 Kudos

Rajan

&#1085;&#1072; &#1091;&#1088;&#1086;&#1074;&#1085;&#1077; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1082;&#1072; &#1082;&#1086;&#1085;&#1090;&#1088;&#1072;&#1082;&#1090;&#1072; &#1085;&#1080;&#1082;&#1072;&#1082;&#1072;&#1103; &#1055;&#1086;&#1079;&#1080;&#1094;&#1080;&#1103;(&#1047;&#1072;&#1074;&#1086;&#1076;). &#1071; &#1085;&#1077; &#1084;&#1086;&#1075;&#1091; &#1087;&#1086;&#1085;&#1080;&#1084;&#1072;&#1090;&#1100; why.

Former Member
0 Kudos

Hi Ivan,

seems, that you are missing the condition mapping between SRM and in R/3.

Have a look at the following thread for example:

https://forums.sdn.sap.com/click.jspa?searchID=2017609&messageID=1946925

Additionally, do you get the same error when entering a plant?

Background: the system derives the comp code based on the plant. Without that

information the system is not able to post the IDOC.

Thanks,

Claudia

Former Member
0 Kudos

Hi Rajan!

I make sure that the units of measure, currencies, and exchange rates in the SAP Enterprise Buyer system correspond to those in the backend system.

SAP_ABA 700 0010 SAPKA70010

SAP_BASIS 700 0010 SAPKB70010

PI_BASIS 2005_1_700 0011 SAPKIPYJ7B

ST-PI 2005_1_700 0003 SAPKITLQI3

SAP_BW 700 0011 SAPKW70011

SAP_AP 700 0007 SAPKNA7007

SRM_PLUS 550 0007 SAPKIBK007

SRM_SERVER 550 0007 SAPKIBKT07

former_member195032
Active Contributor
0 Kudos

Hi Ivan,

Have you maintained Location(Plant) at header level in distribution tab? if yes,then

At item level Conditions tab maintain condition type with inventory location.

Otherwise donot give location at header level and donot maintain condition at item level with Inventory location and see ..

I hope this will help.

Regards,Nishant

former_member195032
Active Contributor
0 Kudos

Hi Ivan,

Just maintain the same unit of measure while creating contract as unit of measure in backend (R/3) material unit of measure.

Give me the support pack level at which you are doing this.

Regards,Nishant

Former Member
0 Kudos

Hi

<b><u>Configuartion data problem</u> -> Please maintain the same and similar configuartion data both in the SRM and R/3 system</b>

<u>Seems like the Unit is missing in R/3 system.</u>

<b>Use the SPRO transaction - <u>CUNI</u> to replicate the same configuration of the SRM system - especially - Units in R/3 system.</b>

Refer these links ->

<b>

http://help.sap.com/saphelp_srm50/helpdata/en/e0/<b>db7b3c6dc13f2ee10000000a114084/frameset.htm</b>;

<i>Another good links of interest -></i>

<u>Processing Contracts</u>

http://help.sap.com/saphelp_srm50/helpdata/en/43/0f234a9e242a8be10000000a1553f6/frameset.htm

<u>Upload and Download of Purchasing Documents</u>

http://help.sap.com/saphelp_srm50/helpdata/en/e5/2c85403e1b6e1de10000000a1550b0/frameset.htm

Regards

- Atul