Today I meet with this issue as title. I followed the steps in blog Step by step to send IDOC data into external receiver via XIF adapter to try to send the changed Service Order to file via XIF adapter. Although the IDOC generation works perfectly for BusinessPartner, unfortunately after I make changes to a given Service Order, no IDOC is generated at all.
There is a well-written note by SAP: CRM outbound IDOC is not created after data is changed which contains all the necessary system configuration for IDOC generation.
I compared my system setting with it and everything is configured correctly.
As the last solution I have to debug to understand what has happened. Via debugging I found out that the FM CRMXIF_ORDER_IDOC_SEND is actually not executed so no IDOC is generated.
This FM is maintained in table CRMXIF_BDOCIF for BUS_TRANS_MSG.
So I check why is_data_mapped is initial. The mapping function module CRMXIF_ORDER_MAP_TO also configured in the table above is responsible for actuall mapping, which will call CRMXIF_BT_IO_MAP_TO_DATA.
Inside this FM, the possibility about whether the status changes into process “XIF” is evaluated.
For the Service Order being edited by me, it has system status I1030 – contains errors,
and according to system status settings, only the following system status supports the status transition to XIF.
After I resolve all errors of this Service Order, IDOC is then generated as expected: