Monday, November 26, 2007

Intercompany Vs Intracompany

When I present about Oracle Intercompany products I always start with a couple of slides explaining the difference between Intercompany and Intracompany and why we might care about the difference. This is sometimes obvious but often the two terms are used interchangeably or the term Intercompany is used generically to discuss Inter and Intra company (Oracle Apps is certainly guilty of the latter). So here goes...

InterCompany Transactions are between two or more related internal legal entities with common control, i.e. in the same enterprise (Inter = Latin for "BETWEEN")

IntraCompany Transactions are between two or more entities within the same legal entity (Intra = Latin for "WITHIN")

So that's it then and a free latin lesson to boot. No? Want more?

get-out-of-jail.jpg

Well the real difference is that Intracompany processing is determined by company management, whereas Intercompany has to follow the law.

The amount the R&D department pays the manufacturing department of the same LE for some test chips(of the silicon kind) is to be sorted out between themselves. However when my manufacturing company in Ireland sell chips to their sister company in Germany you can imagine the tax authorities care about how much they charge because they get a % of it in taxes. This what transfer pricing is all about, it is important to get it right and you need to follow the rules and be prepared to open up your books to the tax people to demonstrate you followed the rules.

In R12 we have changed the way you set up the accounts formerly known as Intercompany accounts. You can enter Intercompany Accounts which are between pairs of Legal Entities, regardless of the ledger, chart of accounts, etc they are on. There is also the Intracompany Accounts screen where the accounts are defined from BSV to BSV with all the options that are available in 11i. More on this in later posts.

UPDATE: I have written a number of new related posts

34 comments:

Jake said...

Dude, snap shot has to go.

Thanks for covering a feature that I designed. I feel that I need to at least attempt to prove that I did actually work in the past.

davidhaimes said...

I can confirm Jake designed this, I remember many, many whiteboard sessions figuring out some of the fine details.

Jake's 'complex journal' use case is infamous and we carried into our fusion designs and managed to make it way more complex - come check it out some time jake?

Ahmad Bilal said...

David you are doing a gr8 job keep it up.

i would suggest if you elaborate this by using snapshots or by using example from any module / business.


Anyways gr8.

regards.........Ahmad Bilal

David Haimes said...

Ahmad,

Thanks for your feedback - I have updated this post to links to some I have done since with a little more detail or examples.

I need to keep working to get more detailed examples as you suggest... watch this space I'm working on it.

Navneeth said...

Hi!!
I have a problem with Bank Account Transfer functionality between 2 banks in the same legal entity.

I have defined Intracompany balancing rules - one for my legal entity and one dummy legal entity called 'No Legal Entity'. I did these setups according to Metalink: Bug No. 6113591.
Also, Assigned the Legal Entity to Cash Management User to enable Bank Transfer. But Still I am getting the following message when I try to validate the Bank Transfer:

1. FUN_INTRA_RULE_NOT_ASSIGNED
2. Intercompany balancing was unable to generate the intercompany account.

Can you help me.

Eric Van Cleve said...

I know that AGIS is able to use data promotion to the subledgers. Is it capable of data extraction from the subledgers?

David Haimes said...

Eric,

AGIS itself will not extract data from the subledgers, but it does have interfaces to accept data from any source.

I have talked to customers who do extracts from subledgers and push it through AGIS for allocations and rebilling type scenarios. It is pretty straightforward to do.

Bill said...

David, when complying with CEM requiring intercompany sales at arms length thus ' markup' and, accordingly, 'profit in inventory' the documentaion states that using the Oracle Transfer Price solution results in devalued inventory. It is frustrating to think that it is an either or thing. Can't we facilitate elimination entries for consolidation while yet complying with 'arms lenght' dealings - markups that don't dissappear (devalued inventory)?

Bill said...

Does anyone have a good handle on setting up global consolidation eliminations while yet keeping an arms lenght interfompany markup with related profit in inventory? The Oracle documentation states that if you use Transfer Pricing and Profit in Inventory functionality you lose the marked up value of inventory on the receiver's books, which is not what we want.

Bill said...

How do you eliminate the markup at the receiving org for inventory intercompany when you don't know if it is still in Inv or in COGS? Don't inventory turns have a place in this determination?

Gearoid O C said...

Hi David,

I need some reading material on best practise on intercompany eg transactions should be matched to contracts...balances should not be netted and transfered...tranactions should be settled every quarter. I really need to read up all I can and I am also looking at doing some oracle courses. Can you recommend any books....thanks

Raghavendra said...

Hi all,

i have a doubt in Inter company Transactions , Can We migrate 11i Intercompany Transaction Data to R12 AGIS. If there is a way please let me know. It's an urgent requirement.

Thanks in Advance
Raghavendra Prasad

David Haimes said...

The 11i to R12 upgrade migrates the transactions. So just apply the upgrade and you'll see the 11i GIS transactions in AGIS, there is nothing for you to do the upgrade is automatic.

Raghavendra said...

Hi David,

Thanks for your kind reply.

However due to some customer requirements we are required to use interface and the API to post interface data into applications.

Is it possible for you to kindly feedback as how can we select the 11i GIS (base tables) data to be posted into R12 instance AGIS.

Please help,

Regards,

Raghavendra

David Haimes said...

You will not be able to take the completed 11i GIS transactions, bring them into the AGIS open interface, import them, process them and then send to GL easily. For one those old GL periods would be closed, so you can't post to them and also you'll mess up your migrated GL balances.

Is the requirement to move completed GIS transactions, or is it just for open/in process transactions?

For completed transactions, the migration scripts for teh upgrade are shipped with R12 so you could consider running those scripts, you may need to set up a dblink from the 11i to the R12 instance but it should be easy enough to do. Of course this would not be supported by Oracle as you're updating tables via SQL, so take care with it.

Raghavendra said...

Hi David,

Thanks for your kind reply.

We don't need to bring in the completed transactions, but the in process or incomplete transactions. As written earlier it is our customer requirement, and it will be hard for them to enter so many pending / incomplete transactions manually.

Please help to provide the table names, which will store this master data for incomplete or inprocess intercompany transactions, so that we can prepare queries and bring in the data to release 12 interface tables using the DB link, from 11i to R12.

Regards,

Raghav

Raghavendra said...

Hi David,

I have done all the required AGIS setups required to process the transactions between two legal entity. I am posting a trasaction in the following way.

From Initiator login for eg. BCR_S am creating an Outbound transaction and doing teh accounting from initiator side also. when i query the transaction after submitting it shows status as "SUBMITTED".

The i logged in as Recipient for eg. BCR_J i am getting a notification that BCR_J has "RECEIVED" a trasaction from BCR_S. I did recipient side accounting and i Approved teh trasaction. when i requery the batch number ststus comes as "ERROR". In the home page it show error message like " OutBound Batch 112, Transaction 1encountered errors deriving intercompany Accounts" I am not to locate in part its getting errored out exactly. please help me to find the problem behind this.

Thanks in Advance,
Raghavendra.

David Haimes said...

Raghavendra

The order of processing is as follows

1 - Initiator enters trx and submits
2 - Recipient receives trx, they may add distribution accounts and approved
3 - The workflow background processes will then validate the trx and add the Intercompany clearing accounts

Seems that during step 3, a valid intercompany account could not be found. These are set up in the Intercompany/Intracompany Accounts set up pages. See this post or this post for details on setting up the accounts

David Haimes said...

Raghav

I would still recommend reviewing the upgrade scripts shipped with R12 at least they will confirm the source tables to pull from and also an idea of how the transaction stucture changes to allow for 1:M trx in AGIS.

The 11i GIS trx are stored in the following tables

GL_IEA_TRANSACTIONS
GL_IEA_TRANSACTION_LINES

Raghavendra said...

Hi David,

Thanks for your support,

As you mentioned above in step 3. Teh workflow background processes will validate teh trx. Can you help me with teh workflow name and there will be an item key associated With this work flow. May i know in table details regadings AGIS workflow gets stored up.

Thanks in Advance,

Dinesh.

David Haimes said...

If you use the Workflow administrator responsibility you can search for the Workflows, just search for product code 'FUN' and you should find them all there. No need to go digging around in the Workflow tables.

Lalitha said...

Hi David,

My client does not want the Intercompany lines to be generated in SLA. They want the old 11i functionality and want the Intercompany lines to be generated in GL. Honestly I do not know why they did not like this wonderful new feature in R12. Please let me know if there is any setup available to acheive the same.

Advacned Thanks,

Lalitha.

Bill said...

Lalitha, I am a bit confused at the requirement. First of all, is the AGIS transaction with or without an invoice? I with an invoice, GL will have journals imported from AR and AP as with other transactions and invoices.

If just GL journals are used then you still have GL journals as in 11i. So where are these Subledger lines you are talking about? Is SLA is the correct term?I think SLA applies to the module where you update standard events to modify journal entries. The subledger accounting entries are just a view of the journals from the subledgers and I don'tm know that there are any for AGIS. Are there? If you are talking about subleger journals from AP and AR, those are there for all transactions as mentione before.

So in light of these words, do you have any additional information?

David Haimes said...

The only way to do this is to by pass SLA and post directly to GL - Clearly this is and invasive customization and of no value.

SLA is the new accounting engine for subledgers in R12 and it needs to produce balanced accounts, like a good engine should.

What reason do they give for wanting the balancing lines generated at GL post time ?

David Haimes said...

Bill

I assume Lalitha is referring to the IC balancing that occurs when a journal out of balance by BSV is accounted in SLA or posted in GL. Not AGIS manual transactions, which as you state do not create SLA accounting.

Lalitha said...

Bill

Thanks for your reply. Yes, David is correct. I was talking about the IC balancing entries.

Thanks,
Lalitha

Lalitha said...

Thanks David for your kind reply.

Yes, I agree with you, I think the SLA Accounting engine will always generate the IC Balancing entires and I think there is no simple Setup option available to switch off this functionality.

The client doesn't want this functionality, because they have many existing programs which sends the Journals entries to various legacy systems on daily basis and they have specific logic in place to process these Intercompany lines. But since in R12 Intercompany lines are generated at both in GL and in SLA all the existing programs need to be modified to handle these two types of IC balancing entries. So, to avoid re modification of the existing programs the client is looking to switch off the IC balancing entries in SLA and want them to be generated in GL.

Thanks,
Lalitha.

Lokesh said...

Hi David,

I will be glad if you could answer to my problem

The problem is, we have observed that in R12, when the Journals are transferred from SLA to GL, seperate Journal Header is being created for each AP Invoice. This is going to have huge negative performance impact on our existing custom programs.

What we want is when we transfer the Journals from AP to GL at day end every day, we need only one Journal Header(like in 11i) to be generated for all the Invoices.

Also, what we have observed is that by default the Journal Header name is in the following format

'AE_HEADER_ID+' '+Purchase Invoices+' '+SOBCurreny.

Example Journal name is '5250003 Purchase Invoices USD'.

We are not sure weather a seperate Journal Header is being created because of the default naming convenstion. Is this happening because, by default the AE_HEADER_ID is part of the Journal Header name?. If we modify the Subledger Accounting method and remove the AE_HEADER_ID from the Journal Entry name will Oracle generate a signle Journal Entry for all the Invoices??

Please let me know if you have any idea on how to achieve this.


Thanks,
Lokesh.

David Haimes said...

Lalitha,

One possibility is you could look at changing the seeded rules SLA to include some of the processing logic that the legacy systems provides for these lines.

Nick Carroll said...

David,

I find it baffling that Intracompany needs to be enabled in order for Intercompany to work. Is there any logical reason for it?

David Haimes said...

Nick

What enabling are you referring to? You enable Inter/Intra company balancing at the ledger level - this is enables balancing across BSV, whatever those BSV may represent (company, cost centre or other) and you cannot turn inter or intra off independently.

I'm not sure I'm understanding your question correctly.

Nick Carroll said...

David, thanks for your reply.
I am using 12.1. Accounting Setup Manager shows Intercompany and Intracompany as distinct setups and Intracompany can be left disabled, which still allows Intercompany accounts to be entered. If we have one BSV per LE, only Intercompany gets called and so why require that Intracompany also be enabled, if it would never be called?

Another issue of interest to many is whether to have the separate intercompany segment. You have recommended doing so, because it simplifies reconciliation. Could you give some more details on that?

Burton said...

David,

I have a very in-depth intercompany balancing question for you:

When creating a transaction that deals with one balancing segment from a legal entity (LE A) to two balancing segments from a different legal entity (LE B), I am receiving excessive and unwanted balancing entries.

The following example is one from the FA subledger, but this issue occurs in similar trnansactions made in all other subledgers, as well as topside journal entries made directly in GL.

Asset BW1007 was added to the XXGEN_CORP book with a value of $8000, 2 units, and an expense account assigned to BSV 200200. A transfer was then made, with one unit going to BSV 100100 and the other unit going to BSV 100200.

Expected journal entries occurring from the transfer:
DR: (asset cost) 100100 $4,000.00
DR: (asset cost) 100200 $4,000.00
CR: (asset cost) 200200 $8,000.00

DR: (intercompany receivables) 200200 $4000.00
CR: (intercompany payables) 100100 $4000.00

DR: (intercompany receivables) 200200 $4000.00
CR: (intercompany payables) 100200 $4000.00

Actual journal entries occurring from the transfer:
DR: (asset cost) 100100 $4,000.00
DR: (asset cost) 100200 $4,000.00
CR: (asset cost) 200200 $8,000.00

DR: (intracompany receivables) 200200 $8000.00
CR: (intracompany payables) 200000 $8000.00

DR: (intercompany receivables) 200000 $8000.00
CR: (intercompany payables) 100000 $8000.00

DR: (intracompany receivables) 100000 $4000.00
CR: (intracompany payables) 100100 $4000.00

DR: (intracompany receivables) 100000 $4000.00
CR: (intracompany payables) 100200 $4000.00

intercompany rules have been defined for all of the relationships above, intracompany balancing is enabled, and an intrcompany balancing rule of 'other-other' has been created.

It appears that the intercompany rules are immediately going to the 'all-other' rule for each LE, for which the default balancing segment value is 100000,20000 - which is what the balancing entries are 'clearing' through.

I have logged an SR (7679294.992) for it but none of the support representatives who have handled this issue can come up with an explanation, let alone a solution.

Do you have any idea why this is happening and how to prevent it?

Elahe said...

Dear friends

I have a problem in designing my ERP structure, I hope you guys can help me.
Problem is we have a customer that has 2 different ledgers with 2 different COA, So I have to define 2 LEs, 2 OUs and 2 COAs. But there is only 1 Bssiness Group.
As you know in BG group we can assign only one Cost Allocation FlexField. Now we don't know which COA should be assigned to BG???
we need to run Payroll for both Ledgers from one Payroll system and should be able to see both COA in HR. but when we assign one of COA to BG we are not able to see the other one's values.

I hope I could explain clearly and looking forward to your help.

Thanks in advance.
Elahe