As Intercompany transactions are very likely to cross systems they are a good candidate for integration in a 'Hub' of some sort.
In R12 the Financials Services Accounting Hub (FSAH) allows integration of third party systems to Oracle and is incredibly powerful and flexible.
Let's use a simple example:
Company A and B both use two different Ledgers. A Sales Invoice is issued by Company A (to Company B) for $5,000
The accounting needs to be created as below, they need to be booked with the same accounting date in the same period.
In Company A
Debit Intercompany AR $5,000
Credit Intercompany sales $5,000
In Company B
Debit Expense or inventory (per content), $5,000
Credit Intercompany AP, $5,000
So there's a number of options that come to mind (in no particular order).
1) Using Oracle Accounting Hub you can account for transactions form third party systems, it uses the Subledger accounting engine to process accounting events defined for the third party system. If your invoice systems are third party applications, you could create 2 events (one for each company/ledger/party to the transaction) for the sales invoice and get the full accounting out of the single system integration.
2) Enter these transactions in AGIS, the specific accounting will be entered/generated and approvals from company A and B obtained before AGIS either books it direct to GL or generates the Invoice for company A and B if required.
3) It may not be ideal to force users to navigate to a different screen (or change some import process, EDI, XML feed etc) to issue Intercompany invoices from other invoices as in 2) above. So continue to enter in your regular sales invoice system but run a process which detects an invoice is Intercompany and cancels it, then generates a transaction for it in AGIS (via the Open Interfaces) or FSAH.
I don't think any one of these is right for all situations, detailed analysis of the particular implementation environment and requirements needs to be done to figure out the best approach. If you have any thoughts, better suggestions or experience then please share them in the comments.