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: 

Creating Idoc filter for MATMAS

Former Member
0 Kudos

Hi ,

I have created an Idoc filter for a customer message type through BD64 and wanna assign a field object with value not equal to Blank. But it seems there is no option to implement this. Any pointer to this?

Thanks for your input in advance.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

You could identify a field which is not being used or have a custom field in another segment.

Now based on that you can populate it in the user exit with a particular value depending on its blank or not and then add this field as a filter object in BD59 and BD95.

Then in BD64 you can have the corresponding filter object set.

I had done that for a customer master where I was blocking all customers blocked for billing and the field does not take blank values in BD64.

Hope this helps.

Regards,

Siddharth

18 REPLIES 18

Former Member
0 Kudos

Hi,

Can you tell me briefly what message type you are using and you scenario

Warm Regards,

Shobhan

0 Kudos

It's a Customer message type used in BD10 to control sending material master data. We have assigned a field object to the message type and wanna filter some segment data based on the field value. The field value should be not equal to blank. I have created a filter through BD64 for the message type. But can't assign value in that way to the field but only a single value.

0 Kudos

Hi Vindy, There has to be some Value which you can specify in filter group. We can not just specify value not equal to BLANK there.

Regards

Shital

0 Kudos

Hi vindya,

for the BD10 the message type is matmas01 nad Matmas02..

for idoc type MATMAS

the user exit is MGV00001( in smod t-code) Material master

the function module is IDOC_INPUT_MATMAS01..

serach the user exit and try to write your own code to resrict the field segment data.

Regards,

Prabhudas

0 Kudos

HI

I also need to do the same.Some of my collegues have tried setting the filters using BD59 but were unsuccesful

so they want to set the filters using ABAP Code .

Can some one suggest me a way to do that and if thats the case which function module is used .

Thanks

Anjali

0 Kudos

Hi,

Filtering at the Idoc level creates a communication Idoc in which an objects views are filtered out,based on the filtered specified in the distribution model.

HOW FILTERING AT THE IDOC LEVEL WORKS:

Whena master Idoc is created,The Idoc consults the distribution model and determination whether any filter objects are specified for a receiver.If so, value in the filter object is compared to values in the master idoc's data records.If the values do not match,the data record is stopped.It is also possible to filter out a whole idoc using a single value filter.This might happen if the concern field is being filtered our belongs to a mandatory segment and the hierarchy in which this mandatory segment resides at the top of the Idoc structure.

Configaration:

1.Identify the Filter Object in TC : BD59

Refer Some OSS notes : 208716,339622,197215

Warm Regards,

Shobhan.

0 Kudos

Try response from Prabhu. seems it will solve the purpose.

0 Kudos

Hi ,

Could you please tell me how to view OSS note such as 208716 etc.?

Regards

Vindy He

0 Kudos

Hi,

Go to service.sap.com. Click the link SAP notes search under SAP support portal .

Enter the username and password. Then give your OSS number.

Thanks,

Asit Purbey.

Former Member
0 Kudos

I dont think you can do this. However, if you know what values are expected for this object then you can include all these values in filter group.

Former Member
0 Kudos

Try searching in BD64. You can create filters there against values for fields

Former Member
0 Kudos

Hello ,

You can add filter to MATMAS using following steps

1: port definition : we21

2.Partner profile :we20

Now double click on MATMAS and enter message type , receiver port.pack size , basic type and select the radio button 'transfer Idoc'.

3. then go to distribution model through BD64,

, When the master Idoc got created , the IDOCconsulta the distribution model and have to check whether any filter objects specified for the receiver, If so value of the filter object is comapred with master data record and if dont match then its dropped.

Regards

Sathish

Former Member
0 Kudos

hi

as u know tcode : BD64 is to create a distribution model and have filters to it.

but what field to act as a filter ?

for this go to tcode : BD59 enter the message type (eg : MATMAS)

click on new entries and then enter the field that u want as a filter and the corresponding

segment type and save it.

go again to tcode : BD64 to create the filters then at last save it.

Regards

Former Member
0 Kudos

Hi,

You could identify a field which is not being used or have a custom field in another segment.

Now based on that you can populate it in the user exit with a particular value depending on its blank or not and then add this field as a filter object in BD59 and BD95.

Then in BD64 you can have the corresponding filter object set.

I had done that for a customer master where I was blocking all customers blocked for billing and the field does not take blank values in BD64.

Hope this helps.

Regards,

Siddharth

0 Kudos

Hi Siddharth,

We have a mandatory customer segment. Then the subsequent higher segments are also mandatory. Can I add an additional field in the customer segment for setting value based on BISMT blank or not? Does it effect the receiver side(XI) for the IDOC type is changed in the sender side? Any configuration need in Receiver side?

Regards

Edited by: Vindy_he on Jun 3, 2009 4:02 AM

0 Kudos

Hi Vindy,

If I understand your requirement correctly, you are trying to stop material IDocs which would not have the Old Material Number field (MARA-BISMT) populated.

You can add another custom segment field and then add that as a ALE object in BD95 and then add it to your message type in BD59.

This will ensure it would be visible in your distribution model filter for your message.

Since you would be changing the IDoc structure, it would mean refreshing the XSD structure in XI.

Alternately you can make use of any unused field in the existing IDoc structure which would then not require any refresh of the idoc structure in the receiving system

Regards,

Siddharth

Former Member
0 Kudos

hi,

in filter u can specify a condition only,but in u r case filters will not solve u r issue,

so,the exits also wont work,beacuse this exist will triggerr at tha time of zsegments only,

so best opt is go for badi,

there is badi BADI_MATMAS_ALE_CRE, just check it out,now in this badi read u r idoc with segements and put condition on which field u want ..

if any probs let me know...........

Former Member
0 Kudos

Hi,

plz  check the screen shots where i have made the idoc filter for material type matmas