‎2011 Nov 29 2:38 PM
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
‎2011 Nov 29 11:30 PM
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,
‎2011 Nov 29 11:30 PM
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,
‎2011 Nov 30 9:28 AM
Thank You Himanshu...my problem is solved now...
Please can u explain me the purpose of BD95
‎2011 Dec 01 12:25 AM
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,