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

Filter conditions for Standard Idoc processing

Former Member
0 Likes
4,875

Hi Experts,

In BD64 - Distribution model , I have created filters for MATMAS based on Division, Sales Organization, Distribution channel and Material Type.

when I process the IDoc through BD10 - Send material it is not getting filtered based on the conditions set in BD64.

eg) I have created a material in a particular sales organization for which the data should not be processed through Idoc based on the filter condition set for sales org in BD64.

But now that the condition is not been checked and the Idoc is processed when i send it through BD10.

whether BD10 will not check for the filter conditions?

1 ACCEPTED SOLUTION
Read only

DavidLY
Product and Topic Expert
Product and Topic Expert
3,514

Hello,

Check SAP note 1398380.

Regards,

David

16 REPLIES 16
Read only

DavidLY
Product and Topic Expert
Product and Topic Expert
3,515

Hello,

Check SAP note 1398380.

Regards,

David

Read only

Former Member
0 Likes
3,514

Hi David,

Thanks for the reply..

I understand that 1398380 note is an update for "1353548 Note " , which is not been implemented in our server.

And I understand that the filter set in BD64 acts as a segment filter which does not stop processing the Idoc as a whole.

Can Anyone suggest me , how to Stop processing an Idoc when a condition is not met.

eg) when a mtrl is created in sales org " ABCD" , the IDoc should not be processed . how to attain it ?

Read only

0 Likes
3,514

>And I understand that the filter set in BD64 acts as a segment filter which does not stop processing the Idoc as a whole.

WRONG! It is for Idoc Filter not for Segment Filter. Segment Filter has different procdure to do.

>Can Anyone suggest me , how to Stop processing an Idoc when a condition is not met.

Unfortunately there is no "NOT EQUAL" operator in IDoc filter. You can give the rest of Sales Org in the filter in order to filter it.

Read only

Former Member
0 Likes
3,514

Hi Asik,

I had tried that way too , I gave all the sales organizations for which the Idoc has to be processed in the filtering condition defined in BD64. but then too the Idoc gets processed for those sale org not given in the filtering condition.

how to go about it ?

Read only

0 Likes
3,514

Hi,

Did you check the partner in the generated idoc? Is it the same which you gave it in BD64 as a Receiver? It can be generated for some other partner too.

Did you check the other filter conditions which may also satisfies the conditions of your data.

Read only

Former Member
0 Likes
3,514

hi asik,

partner in the generated idoc and in BD64 as a Receiver are the same.

I am using single filter group in BD64 ( Matmas ) for Division , Sales Org, Distribution channel and material type.

The filter group comprises the following filters:

Division - 01

Division - 02

Sale org - ABCD

Sale org - EFGH

Distribution channel - AA

Distribution channel - BB

Mtrl Type - SPAR

Mtrl Type - FNGD

These result in the filter conditions should be like

(Division 01 OR division 02)

and

(sale org ABCD or EFGH)

and

(Dst Channel AA or BB)

and

(mtrl type SPAR or FNGD )

Scenario for idoc processing

Division 01

sale org xxxx

dst channel AA

mtrl type FNGD

the Idoc should not be processed for the above scenario

but its triggering an Idoc when I test it through BD10.

Read only

0 Likes
3,514

Hi Satish,

As per your post, what I understand is

 - Only One filter group created (Assuming that there is no other filter group)
 - Inside the filter group, conditions are like
    (Division    01   OR 02)   AND
    (sale org    ABCD or EFGH) AND
    (Dst Channel AA   or BB)   AND
    (mtrl type   SPAR or FNGD)
 - Now processing material has the following data
     Division    01
     sale org    xxxx (which not equal to ABCD, EFGH)
     dst channel AA
     mtrl type   FNGD

As per my understanding, the above IDoc should not be processed because it is failing in second condition (Sales Org).

It can be processed if your Sales Org is equal to ABCD or EFGH.

Please revert back if my understanding was wrong.

Read only

Former Member
0 Likes
3,514

As Asik mentioned, there no 'NOT EQUAL TO' operator in BD64 Filtering. Alternate option is to use the Business Transaction Event MGV00100. Refer to the Wiki Post [Business Transaction Events for Filtering Outbound Master IDOCs|http://wiki.sdn.sap.com/wiki/display/ABAP/BusinessTransactionEventsforFilteringOutboundMaster+IDOCs] which narrates the use BTEs for controlling Outbound IDOC processing.

The example mentioned in the Wiki post matches your requirement to certain extent.

Read only

Former Member
0 Likes
3,514

Hi Asik,

U have understood correctly.

I have found the reason why the Idoc is getting Processed, the problem is that sales organization field is present in a segment which is not a required segment in Matmas - while processing the system elminates the segment which is having sales org and processing the main segment i.e) required segment.

Through BD64 filter Group , complete filtering is possible only when the Required Segment is suppressed.

I think as Vinod suggested I need to put filtering conditions in BTE while processing outbound Idoc.

Read only

Former Member
0 Likes
3,514

Hi Vinod,

I have created a custom function module and assigned to BTE for "MATMAS" and tried to send an Outbound IDOC through

BD10 placing a breakpoint in the function module, but the process is not stopped at the break point

Details:

EVENT

MGV00100 - MATMAS : Outbound processing for ALE Distribn Unit

BTE Fn module used : SAMPLE_INTERFACE_MGV00100

Link Reffered.

http://wiki.sdn.sap.com/wiki/display/ABAP/BusinessTransactionEventsforFilteringOutboundMaster+IDOCs

kindly let me know is there any other configurations to be done for this scenario.

Read only

Former Member
0 Likes
3,514

Hope you had followed all the steps mentioned (Transaction code FIBF) in the WiKi Post. Put a break-point in the function module "OPEN_FI_PERFORM_MGV00100_E" and execute the transaction BD10 ,Check whether it stops at the break-point. This function module reads the Configuration done in FIBF (Get the Z function module attached to the Event and execute the code written in the FM).

Edit : Execute the function module BF_FUNCTIONS_FIND with MGV00100 as parameter, and check whether the output of FM (internal table structure T_FMRFC) shows the FM which is attached to BTE using FIBF.

Edited by: Vinod Kumar on Apr 6, 2011 2:19 PM

Read only

Former Member
0 Likes
3,514

Hi Vinod,

I had followed all the steps mentioned (Transaction code FIBF) in the WiKi Post.

when I Put a break-point in the function module "OPEN_FI_PERFORM_MGV00100_E" and execute the transaction BD10 ,

It is not stopping .

where as when i execute the function module BF_FUNCTIONS_FIND with MGV00100 as parameter,

internal table structure T_FMRFC shows the Function Module assigned in FIBF.

Is there any other way to check ?

Or is it possible to make a segment mandatory in standard Idoc - MATMAS such that the data flow will be taken care by the standard filtering conditions put in BD64.

Read only

Former Member
0 Likes
3,514

This BTE is called from function module MASTERIDOC_CREATE_MATMAS (Line number 2074), Function module MASTERIDOC_CREATE_MATMAS is called from MASTERIDOC_CREATE_REQ_MATMAS. Check whether you are getting the program flow by putting a break-point in function module MASTERIDOC_CREATE_MATMAS.

Read only

Former Member
0 Likes
3,514

Hi Vinod,

Thanks for your reply. I solved the problem using BTE.

I need a small clarification, will this BTE filter the IDOC's which are created through Change Pointers.

Read only

0 Likes
3,514

Hello! The Wiki Link doesn't work any longer and I was not able to find it.

Any ideas where I can get the information or the link?

Thanks

Matthias

Read only

Former Member
0 Likes
3,514

Hi

Check this BAdI definition IDOC_CREATION_CHECK, create an implementation and do your validations here along with the message type as MATMAS.

At the end, set CREATE_IDOC to X if all the conditions are met otherwise make it blank.

Best Regards,

Nikhil Patil