IDocs are not reaching SAP BC

Hello all,

yet another weird problem !!! i’m sending INVOIC idoc to the sap bc… i set up the rfc destination in SAP and listners in SAP BC and all working fine… even if i test from sap rfc destination it’s successfull… but when i send idoc it’s not reaching SAP BC… i’m able to see the idoc in the sap sytem (we02 transaction) but it’s not reaching BC…
Could anyone throw some light on this ?

Thanks in advance

Do try checking the following

SAP : Tx : BD87 will list any problems related to the RFC connectivity.
SAP BC : Does this message appears in the transaction log? Has the correct routing rule been picked up ?
Bhavani Shankar

Just want to add up something.

In case there was a SAP Connectivity problem, your IDoc would be in SAP and this will be listed in BD87 transaction.

If the IDoc has reached SAP BC, then the transaction log will list the message. However, depending on the availability of the Routing rule, will it be processed further.

Bhavani Shankar

Check idoc status also thru sm58. You also need a routing rule within SAP BC to handle the idoc. First time send will create the routing rule. You will then need to update the rule to point to the processing flow. Also make sure that your idoc has a status of 30 meaning that it was sent to the partner port within SAP.


statsu of idoc is 03 (sent to external system). When i initially sent first idoc it didn’t reach SAP BC ‘coz it didn’t create any default routing rule.
Even in the transactions’ log no messages are turning up…
i’m really stuck with this…
BD87 shows 03 status for the idocs means it’s successfull…

any clues pls?

did u setup your partner and ports in SAP via WE20 and WE21 ?

Yes Pat. Idoc was sent from SAP successfully atlaest by it’s status (03) i can make sure of it…

In SAP BC, dont you find the transaction log for this message !

If you dont find the log, then please confirm, whether you have sent it to the same SAP BC where you are checking the log?

The log will explain more on the status of the message !

one logical sequence i found - when i send the idoc through the program, it’s not reaching … but when i resend teh same sent idoc from WE19 transaction it’s reaching SAP BC and it’s creating a default routing rule as per expectation !!! not able to comprehend why this is happening …

btw in SAP i created partner profile of type ‘KU’ (customers)… and in ooutbound parameters only one message type is INVOIC…

in order to verify this, go into We20 and select the partner for whom the idoc is being sent. Under outbound params, change the output mode of the idoc to collect idocs and send another idoc. Now goto WE05 and u should see that the idoc has a status of 30. If it does not have a status of 30 - then your partner profile is wrong or your output determiniation in SD is wrong.
hope that helps. -Pat

Pat thanks for the suggestion… I did as u said, and as expected the idoc has 30 status(ready for dispatch)…


U should now be able to send the status 30 idoc to sap bc via we14. Just for kicks try this. I know you tested via we19 but the two transactions work slightly differently. Prior to sending delete the routing rule that was created via we19 so that the routing rule is then recreated. If the routing rule is then created, edit it so that it is setup to be a B2B service and then properly identify your folder and exact flow. remember case counts!! To test, create a one step flow that saves pilepline
Running out of suggestions here - but it has to be something silly

Sorry to say that it didn’t work… I did exactly… after editing newly created rule to B2B and executing we14 and i changed we20 to ‘Tranfer immediately’ and shot one idoc but it didn’t reach SAP BC.

as you said there’s something silly in it…


Have u checked security at SAP BC level ? Make sure your access mode is set properly for the folder/flow and your http port. for testing set http port to allow by default Otherwise you will need to turn detail logging at the SAP BC level - silly i am sure.
keep me posted - i’ll keep thinking

Is the IDOC still there in sm58, or gone?

If gone, you may have a second BC instance picking up IDOCs. Turn you SAP Listener off in BC, then check RFC Destination again from sm59. Is there still a connection?

brilliant… loooks like still idocs are going SOMEWHERE even after rfc listeners are turned OFF…
sometihng dodgy about this - in we02 idoc status is 03 and in sm58 no entries and if i do rfc connection test IT’S FAILING …!!!
any clues here pls ?


which is the port you are sending the IDOCs to. Check this port is the same program id that is been defined in SAP BC !


I’m using the funciton module MASTER_IDOC_DISTRIBUTE with control record as follows :

g_control_rec-mestyp = ‘INVOIC’ .
g_control_rec-idoctp = ‘INVOIC02’.
g_control_rec-rcvprt = ‘KU’ .
g_control_rec-rcvprn = ‘17’ . "SAME AS IN WE20 Entry
g_control_rec-rcvpor = ‘A000000016’.

Receiver port (A000000016) is not necessary to fill, but still i tried with it, still it’s going as successfull idoc (status 03).

one thing i observed is when i resend the same idoc by WE19 or by program RSEOUT00(or tcode WE14) some how the system is validating the RFC Port(which is not operational as of now) and so the idoc is stuck in RFC Queues (SM58). But when the idoc is created from the program it’s just passing through SM58 aswell (bit strange)… added to this i turned off all the RFC Listenres in SAP BC !!!

i’m really stuck with this…
any clues pls?


Hi All,

Thanks for all ur inputs. Presently we are thinking of setting up RSEOUT00 program in bakcground to kick idocs out of SAP and so the problem would be resolved in reaching SAP BC.
But another problem now
idoc is of INVOIC02 idoc type and is reaching SAP BC.
created routing rule and and is triggering as per expected.
in the service in which i’m trying to convert idoc to XML , i’m using following services :


few mappings …


but to my surprise after the execution of transformFlatToHierarchy service the BOUND NODE seems to be empty, despite the idoc from SAP is FILLED with data so recordToDocument is raising an exception for empty node…

i’m pointing the BOUND NODE of transformFlatToHierarchy service to the INVOIC02 record which i created from interface repository

Any clues where i’m messing up pls ?


Hope the conformsTo is filled properly with the name space of the IDOC record definition.

Sometimes this causes problem too