Inter Company Booking Guide
Inter Company Booking Guide
Inter Company Booking Guide
Page
Table of Contents
Intercompany Booking Procedures ................................................................................. 4
SPICDATA....................................................................................................................................................4 DataSrc Dimension ......................................................................................................................................5 Account Dimension ......................................................................................................................................6 SPICBOOKING ............................................................................................................................................. 8 clcICBooking_{app} table .............................................................................................................................9 DIFF_TYPE field..........................................................................................................................................9 DIMENSION field ....................................................................................................................................... 10 MAX_AMOUNT field .................................................................................................................................. 10 How SPICBOOKING Works ....................................................................................................................... 10
Page
SPICDATA
You can use this procedure to copy the declarations of all entities versus a given entity by the inter-company account. It concentrates into a single entity the declarations of all other entities. This mechanism allows you to run a report matching all of an entitys declarations against the declarations involving it from other entities, without the need to assign to each owner read permits into other entities. Launch this procedure using the following logic statement: *RUN_STORED_PROCEDURE = SPICDATA( parameters list ) Example: *RUN_STORED_PROCEDURE = SPICDATA([%APP%], [%CATEGORY_SET%], [%TIME_SET%], [EUR], [CGF], [BalanceSheet], [F_CLO], [INPUT],[], [%LOGTABLE%]) The stored procedure requires several parameters that must be passed in the correct order and format, as described in the following table:
Parameter Application
Description The Application ID. The name of the MAIN application where the SPICDATA must be performed. A valid member of the category dimension. The name of the data category to process. We currently support the handling of only one category at a time. Alternatively, the SPICDATA can be invoked multiple times in a loop of categories within the logic file. A valid member or members of the time dimension. The name of the time members to process. Time must be entered in the format 2009.JAN, not as 20090100. A valid member of reporting currency. The name of the currency to process. The parameter Currency is able to take any of currency in the Fact tables. A valid member or members of the entity dimension. The name of the entities to process. The parameter Entity is able to take valid base level or parent member IDs from the entity dimension. When this parameter is blank, all entities are processed. A valid member or members of the account dimension. The name of the accounts to process. The parameter Account is able to take valid base level or parent member IDs from the account dimension.
Can Be Blank No
Category
No
Single
Time
No
Multi
Currency
No
Single
Entity
Yes
Multi
Account
Yes
Multi
Page
Parameter Flow
Description A valid member or members of the flow dimension. The name of the flow members to process. The parameter Flow is able to take valid base level or parent member IDs from the flow dimension. When this parameter is blank, all flow members are processed. A valid member or members of the data source dimension. The name of the data source members to process. The parameter Data Source is able to take valid base level or parent member IDs from the data source dimension. When this parameter is blank, all data sources are processed. Note: Only base level members that have I in IC_ORIGINE will be taken as its source data.
Data Source
Yes
Multi
Property
A valid value that is a property name or values of the AccType property name of the account dimension. The valid value of AccType property of the account dimension. If blank, the procedure searches for all values in the AccType property. This keyword is used internally by the procedure to identify the name of a table where the procedure writes logging information. At the end, this information is copied into the logic log file and the table is deleted.
Yes
Single
%LOGTABLE%
No (Keyword)
Single
DataSrc Dimension
The property IC_ORIGINE is used to define the debit and credit where the calculated difference is to be written. Property Name IC_ORIGINE Length 2 Description I - These members are for ICData. M - Exchange entity and intercompany without touching data D or D1 - Debit for Balance Entity Debtor C or C1 - Credit for Balance Entity Debtor D or D2 - Debit for Balance Entity Creditor C or C2 - Credit for Balance Entity Creditor
The following is an example showing how to set the IC_ORIGINE property value in the DataSrc dimension: INPUT and IC_INPUT have I in IC_ORIGINE as the input value. Debit1, Credit1, Debit2, and Credit2 are set for the calculation of Debit and Credit.
Page
ICDIFF is going to be used for booking the difference by SPICBOOKING, which should be set in the ICBooking rule table. See SPICBOOKING for more information.
ID INPUT IC_INPUT ICDIFF Balance Balance1 Debit1 Credit1 Balance2 Debit2 Credit2 EVDESCRIPTION Company Input Company Input for IC Diff - Intercompany Balance Balance Entity Debtor Debit1 Credit1 Balance Entity Creditor Debit2 Credit2 PARENTH1 CONTRIB CONTRIB IC_ORIGINE I I I IS_CONVERTED Y Y G IS_CONSOL Y Y Y DATASRC_TYPE I I M
D1 C1 D2 C2
Note: IC_ORIGINE is a mandatory property in DataSrc to use Intercompany Booking, SPICDATA and SPICBOOKING.
Account Dimension
Accounts for Receivable and Payable should belong to the same parent for SPICBOOKING.
ID IC_ACT NEWID EVDESCRIPTION Rec/Pay Interests Receivable Interests Payable Interests PARENTH1 IC_ACT IC_ACT RATETYPE ENDFLOW ENDFLOW ENDFLOW ACCTYPE AST AST LEQ
Receivable Payable
Example: Assume there are transactions among entities as shown in the following figure:
Page
As shown in this example, there are differences in the transactions among the Receivable and Payable accounts among the entities. Assume you have permissions for only CGD, but you need to know whether there are differences from other entities or not. Generally, finding this out is impossible because of security, but you can calculate them by SPICDATA. After running SPICDATA, DEBIT, and CREDIT, which have transactions generated to the property DataSrc such as Debit1, Credit1, Debit2 and Credit2, the following appears: Calculated result between CGD and CGI
Page
SPICBOOKING
This procedure can be used to automatically generate the bookings which will make the inter-company declarations to match. Launch this procedure using the following logic statement: *RUN_STORED_PROCEDURE = SPICBOOKING( parameters list ) Example: *RUN_STORED_PROCEDURE = SPICBOOKING([%APP%], [%CATEGORY_SET%], [%TIME_SET%], [EUR], [], [%LOGTABLE%]) The stored procedure requires several parameters that must be passed in the correct order and format, as described in the following table:
Parameter Application
Description The Application ID. The name of the MAIN application where the SPICDATA must be performed. A valid member of the category dimension. The name of the data category to process. We currently support the handling of only one category at a time. Alternatively, the SPICBOOKING can be invoked multiple times in a loop of categories within the logic file. A valid member or members of the time dimension. The name of the time members to process. Time must be entered in the format 2009.JAN, not as 20090100. A valid member of reporting currency. The name of the currency to process. The parameter Currency is able to take any of currency in the Fact tables. A valid member or members of the data source dimension. The name of the data source members to process. The parameter Data Source is able to take valid base level or parent member IDs from the data source dimension. When this parameter is blank, all data sources are processed. Note: Only base level members that do not have D, D1, D2, C, C1 or C2 in IC_ORIGINE will be taken as source data. In other words, ICBooking does not take only data source whose IC_ORIGINE equals to I as its source data.
Can Be Blank No
Category
No
Single
Time
No
Multi
Currency
No
Single
Data Source
Yes
Multi
%LOGTABLE%
This keyword is used internally by the procedure to identify the name of a table where the procedure writes logging information. At the end, this information is copied into the logic log file and the table is deleted.
No (Keyword)
Single
Page
clcICBooking_{app} table
The clcICBooking_{app} table defines the original DataSrc and destination DataSrc.
Length 250 1
Parent matching account Other destination dimension member Booking destination data source Max booking amount Debit account Debit flow
MATCHING_ID
20
Parent of debit and credit accounts where difference to be booked. No longer used. A valid data source member to be booked. Maximum amount of authorize of booking. A valid account member to be booked in debit. Cannot be blank. Destination flow to be booked in debit. Can be blank. If not, destination intercompany to be booked in debit. A valid account member to be booked in credit. Cannot be blank. Destination flow to be booked in credit. Can be blank. If not, destination intercompany to be booked in credit.
20 20 20 20 20
Debit intco
DEBIT_INTCO
20
CREDIT_ACCOUNT CREDIT_SUBTABLES
20 20
Credit intco
CREDIT_INTCO
20
DIFF_TYPE field
This field may contain the following values: Seller Rule: Calculate differences between Receivable and Payable and make corrections to the Buyer side. Buyer Rule: Calculate differences between Receivable and Payable and make correction to the Sellers side. Greatest Amount: Not currently supported.
Page
DIMENSION field
No longer supported
MAX_AMOUNT field
This field identifies the maximum amount to be calculated. For example, if MAX_AMOUNT is set to 100, then values smaller than 100 are calculated.
In the case of <Buyer Rule>, fixed differences are booked on the sellers accounts. Rule Type Buyer Rule Buyer Rule Sellers account B/S P/L Sellers Debit Booking Balance Sellers Credit Balance Booking
In this case, SPICBOOKING for DEBIT and CREDIT of CGI (Buyer) on the Sellers rule generates two journal entries in DEBIT and CREDIT of CGI as showing in the following figure:
Page
10
Example: Seller Rule Normally, the balance must be zero. However, this example shows a case which involves a Sellers rule with B/S except P/L. This is an example used in SPICDATA. Assume there are the following transactions among entities:
Since ICBOOKING is performed on the Sellers rule, the calculated differences between Seller and Buyer are booked to the DEBIT and CREDIT accounts with ICDIFF DataSrc on the Buyer side. In this example, CGF is the buyer against CGD, and CGD is the buyer against CGI.
Page
11
As illustrated, the two journal entries in ICDIFF are generated to each Buyer. After the booking, we must run the SPICDATA procedure again, which results in the following:
Page
12
Limitation
If you are using flow type dimension in your application, then you may meet unexpected results according to the structure of flow type dimension since ICBooking does not filter flow type dimension during the process of calculation. Under the structure of flow type dimension that has Total (F_TOT) and Close (F_CLO) as the following Figure 1, if source amounts exist in children of F_TOT and F_CLO, then ICBooking will calculate amounts from all of flow members, and the calculated results from F_TOT and F_CLO will be booked.
(Figure 1)
Symptom: Assume there are transactions among entities on F_TOT and F_CLO as follows:
Page
13
And if ICBooking is run for SourceData data source member from the following DataSrc:
Then all of children of F_TOT and F_CLO amounts from children of SourceData are calculated and booked according to ICBooking rule as follows:
Page
14
Solution: To avoid the limitation, add data source members for F_CLO as the following Figure 3 from the following Figure 2, and then it is possible to classify amounts from F_TOT and F_CLO through data source members.
(Figure 2)
(Figure 3)
To make it work correctly, you have to set input value for F_TOT to IC_INPUT and F_CLO to IC_INPUT_CLO as follows:
After then, if ICBooking is run for SourceData_CLO data source member, then calculated amounts of F_CLO will be booked without F_TOT intervention.
Page
15
Note: If you are meeting this limitation and want to apply the solution to your system, you may have to consider how to move existing amounts on F_CLO under SourceData after adding data source members for F_CLO. To move existing amount on F_CLO under SourceData, please refer to Appendix.
Page
16
Appendix
Step 1: Add data source members for F_CLO like Figure 3 on page 15 through processing dimension of Admin console. Step 2: Change DataSource parameter of SPICBOOKING from SourceData to SourceData_CLO.
Step 3: Move all of amounts on SourceData/F_CLO to SourceData_CLO/F_CLO through DM Move package. Please refer to the following steps for details. Select Move package and click Run button.
Page
17
Select members of Flow and DataSrc dimension of source and destination. And click next button.
Select Run now option and click finish button to run move package.
Page
18