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

IDOC change pointer key filtering

Former Member
0 Likes
3,058

Hi Experts,

I have created a message type ( ymatmas_xxxx ) and activated change pointers for this message type.

So now may requriement is :

If I have activated 10 fields in chanage pointer , so IDOC should trigger only if any of the 10 fields are changed in material master ;

But my problem is;

there should be another filtering done for MAKTX-SPRAS = "E". so that only when description of materail in English language is changed then IDOC should trigger. ( For same material if some other language is triggered then idoc should not trigger )

I have checked customer exit and restricted the MAKTX-spras = 'EN' but what happens is even if other language is changed IDOC is getting triggered for english language; how do SAP know for which language is material description has changed.

Please advice is any other way to overcome this situation

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,417

Hi,

You can not do selective value based filtters on change pointers. Instead you can use ALE filters.

Also, instead of making code change you can achieve it via configuration. You can create filter in your distribution model. As E1MAKTM is a mandatory segment in the IDOC, the IDOC generation will need atleast one E1MAKTM segment. If you filter all the languages <> "EN" then SAP IDOC genration process will remove ALE segment, E1MAKTM where language <> "EN". Once it deletes segment, it atleast need one E1NAKTM segment to genearte the IDOC, if there is one change for EN then only system will generate the IDOC. You can configure the filters per receiver so that you dont have to apply filters for some other receiver.

To configure the filters you can use transaction BD64 and change the distibution model. If you do not have field for E1MAKTM segment then you have to add the fields via transaction "BD59". Also you can create your own ALE object type using "BD95".

I hope this resolves your issue.

Cheers,

3 REPLIES 3
Read only

Former Member
0 Likes
1,418

Hi,

You can not do selective value based filtters on change pointers. Instead you can use ALE filters.

Also, instead of making code change you can achieve it via configuration. You can create filter in your distribution model. As E1MAKTM is a mandatory segment in the IDOC, the IDOC generation will need atleast one E1MAKTM segment. If you filter all the languages <> "EN" then SAP IDOC genration process will remove ALE segment, E1MAKTM where language <> "EN". Once it deletes segment, it atleast need one E1NAKTM segment to genearte the IDOC, if there is one change for EN then only system will generate the IDOC. You can configure the filters per receiver so that you dont have to apply filters for some other receiver.

To configure the filters you can use transaction BD64 and change the distibution model. If you do not have field for E1MAKTM segment then you have to add the fields via transaction "BD59". Also you can create your own ALE object type using "BD95".

I hope this resolves your issue.

Cheers,

Read only

0 Likes
1,417

Thank You Himanshu...my problem is solved now...

Please can u explain me the purpose of BD95

Read only

0 Likes
1,417

Hi,

Its to maintain the relationship between ALE Object and the value allowed to that object. (like a foreign key/value table).

Another transaction BD59 tell SAP which field in the IDOC (e.g. E1MAKTM-SPRAS) to check against the what values( EN, DE etsc. which is assigned to the object via above transaction).

I hope this answers your query.

Cheers,