2011 Mar 22 10:26 AM
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?
2011 Mar 23 2:32 AM
2011 Mar 23 2:32 AM
2011 Mar 23 6:22 AM
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 ?
2011 Mar 23 8:31 AM
>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.
2011 Mar 23 8:37 AM
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 ?
2011 Mar 23 9:32 AM
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.
2011 Mar 23 9:52 AM
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.
2011 Mar 24 7:56 AM
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 FNGDAs 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.
2011 Mar 24 8:17 AM
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.
2011 Mar 26 8:56 AM
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.
2011 Apr 06 4:46 AM
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.
2011 Apr 06 9:30 AM
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
2011 Apr 06 12:39 PM
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.
2011 Apr 06 12:59 PM
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.
2011 May 24 5:54 AM
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.
2013 Jan 23 1:36 PM
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
2011 Mar 23 7:18 AM
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
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |