I recently posted a blog about how to implement field-level IDOC reduction for the HRMD_A message type. In short, the standard SAP transaction to reduce IDOC segments and fields (transaction BD53) can’t be used because the field-level reduction is ignored by SAP. My solution leveraged TVARV as a repository for the fields to clear. Read the whole solution here. A colleague of mine was very quick to point out that instead of using TVARV as the method for controlling which fields are cleared, I should have continued to leverage transaction BD53 for the IDOC reduction maintenance and changed my code to look up field level reductions in table TBD24.
What a great idea! Too bad I hate this suggestion… and it’s all SAP’s fault!!
You see, SAP transaction BD53 just does not play well with others. My full HRMD_A solution used a custom filter object (transactions BD95 and BD59) and a custom outbound IDOC formatting function module to convert change pointers into IDOCs (transaction BD60). The dirty little secret of transaction BD53 is that every time you save and update the IDOC reduction in transaction BD53, SAP goes and screws up a bunch of configuration displaying a message that says “Interface changed for message type <your_message_type>: Settings reset”
What does that message even mean? Well, that message is telling you in very cryptic language that SAP has gone and reset the settings in BD59 and BD60 to the SAP standard! So, every time the field reductions were updated, kiss your custom filter assignments and custom IDOC processing function goodbye!
Why couldn’t the message say:
Hey Buddy! You know all that custom configuration you did to get your interface working just so? Well, its gone and you’re going to have to redo it all in the following transactions:
I guess SAP is just far too polite.
So, be very cautious when you pair IDOC reduction with custom filter assignments and custom IDOC formatting function modules and be aware that every time the IDOC reduction is updated, you will need to go back in to reconfigure transactions BD59 and BD60.
For more information, see SAP OSS Note 655321