cancel
Showing results for 
Search instead for 
Did you mean: 

Account Shift in SAP BPC

Mohamme_Habib
Explorer
0 Kudos

Hello Experts,

I have a requirement in SAP BPC 10.0 NW.

Suppose Vendor accounts has debit balance and that should reflect under Assets in a particular period and in subsequent periods, if the balance changes to credit balance then again naturally it will be in liability side in Balance sheet. Similarly, there are customer accounts also for which, I am looking how to implement this account changes in BPC.

We have Account shift functionality in SAP ERP, but I need some help in how to achieve this functionality in BPC reports.

Thanks in advance & Kr,

Mohammed Habeeb

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

Hi Mohammed,

Not clear - do you want to do accounting in BPC? In general you upload data from ERP with already correct accounts...

If you want to do this in BPC you can use script logic with ternary operator:

*XDIM_MEMBERSET ACCOUNT=ACC1

...

*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0, ACCOUNT=ACC2)

*REC(EXPRESSION=%VALUE%>0 ? 0 : %VALUE%)

...

Vadim

Mohamme_Habib
Explorer
0 Kudos

Hi Vadim,

Thank you for reply.

I need to show the account in a Balance Sheet Report based upon its balance if vendor account has debit balance it should appear in Asset side and if it has credit balance then it should appear in Liability side, same is the case with customer accounts also.

I want this behavior to be automatic based upon the account balance ( debit or credit balance).

Thanks & Kr,

Mohammed Habeeb

former_member186338
Active Contributor
0 Kudos

Please explain "Account shift functionality in SAP ERP" implemented in your system.

Vadim

Mohamme_Habib
Explorer
0 Kudos

To be more correct it is Debit/Credit shift, which we define for Accounts in Financial Statement versions in SAP.

Currently, I am extracting the data from legacy system into BPC.

SAP implementation project is under process in our organization.

former_member186338
Active Contributor
0 Kudos

Then you have to CLEARLY specify you real requirements...

Former Member
0 Kudos

Hi Mohammed,

to replicate this behaviour in BPC you need to accounts for each account that requires this behaviour. Let's say your source system delivers data on one account which is either an asset or a liability. You will need two accounts in BPC, one an asset account and one a liability account. You can then either use a conversion file to load the data based on it's sign directly to either of the two accounts. Or you load the data always to one account and then use a script with the ternary operator as described by Vadim above.

An account in BPC cannot change it's position in the hierarchy depending on an amount.

BR,

Arnold

Mohamme_Habib
Explorer
0 Kudos

Hi Vadim,

Please help more on the Script logic part.

I am getting error on this line

*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0, ACCOUNT=ACC2)

Are there any operator missing.

Thanks & Kr,

Mohammed Habeeb

former_member186338
Active Contributor
0 Kudos

Hi Mohammed,

How can I help you if you are not providing UJKT log?? Error message???

There is nothing wrong in the provided line... ACCOUNT=ACC2 do you have dimesion ACCOUNT??? do you have member ACC2???


Vadim

Mohamme_Habib
Explorer
0 Kudos

Hi Vadim,

ACC2 is an Account dimension member.

I am getting the error in UJKT :

UJK_VALIDATION_EXCEPTION:Line 2: Unknown or unimplemented keyword

"*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0; ACCOUNT=A"

Thanks & Kr,

Habeeb

former_member186338
Active Contributor
0 Kudos

Incorrect syntax:

*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0; ACCOUNT=A...

have to be at least

*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0, ACCOUNT=A...

Provide a screenshot of UJKT!!!

Vadim

Mohamme_Habib
Explorer
0 Kudos

I replaced the semicolon with comma also, but the error is same.

Pls advise.

Thanks & Kr,

Habeeb

former_member186338
Active Contributor
0 Kudos

Incorrect syntax, you can't use REC without WHEN/ENDWHEN - please read help about script logic operators and statements. Basic knowledge is required for script writing.

Vadim

P.S. correct code will be like:

*XDIM_MEMBERSET ACCOUNT=ACC1

*WHEN ACCOUNT

*IS * //scoped already to ACC1

*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0, ACCOUNT=ACC2)

*REC(EXPRESSION=%VALUE%>0 ? 0 : %VALUE%)

*ENDWHEN

Vadim

Former Member
0 Kudos

Dear Vadim,

When I applied the Logic script in my case it is validating the script successfully, but this balance shift is not happening, after data load, I have added *Include filename in default logic but still it is not working..

Does, I am missing any thing, please suggest.

Thanks,

SAIF

former_member186338
Active Contributor
0 Kudos

Hi SAIF,

Please, open a new discussion and explain the details.

Vadim

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Habeeb,

This is normally based on an IFRS Consolidation Reporting requirement stating that the Balance Sheet accounts having balances contrary to their original nature(Asset accounts=positive balance, Liability = negative ) have to now be represented correctly. For instance if the Account Receivable account shows a credit or negative balance, the same has to be classified under Liabilities instead of Assets and vice versa.

In my opinion and as far as my knowledge is concerned, BPC will not be able to handle this requirement directly and any workarounds are going to be messy if you take in all scenarios. I will be definitely happy to be proved wrong in this case!

As Arnold explained above, you can definitely push the balance to specially created accounts on opposite sides of the balance sheet through conversion files while the data is getting loaded. But this might be tricky and messy later on because of the following:

1. After data upload, any business rules/script logic/journal adjustments or reversals tend to make a positive balance into negative balance or vice versa.

2. The unposting of a journal entry - If for some reason, the journal you posted under step 1 needs to be unposted, your script would need to restore the balance back to the original account.

3. Reconciliation of data will be a headache if it is handled through script logic automatically even though you might use a separate auditID.

The clean and best approach would be to perform a one time reclassification of the balances for these accounts to the assets/liabilities side under a separate audit trail using journal template. This will also handle point 2 above and can also be shown as a post consolidation adjustment. I am sure that once this has been explained properly, this solution would be appreciated and adopted.

Will be happy to know if anyone has a better solution than the above.

Regards

Shiraj Jahafar.

Former Member
0 Kudos

Hi,

instead of reclassifying during the load process we often use a script and a separate datasource. So we load to the original account and then on a separate datasource we move the data from the original account to the new technical account. Neither of those two datasources would be open for journals and we will perform a carry forward of opening balances on both. So far this has worked quite well for us even on accounts where we load/use flows instead of just a balance.

BR,

Arnold

Former Member
0 Kudos

Hi Mohammed,

Is it working for you, I checked the above code it is not working for me.

Dear Vadim,

When I applied the Logic script in my case it is validating the script successfully, but this balance shift is not happening.

Does, I am missing any thing, please suggest.

Thanks,

SAIF

Mohamme_Habib
Explorer
0 Kudos

HI Saif,

The logic code is validating,  but the D/C shift is not happening.

Thanks & Kr,

Habeeb

former_member186338
Active Contributor
0 Kudos

"but the D/C shift is not happening" - can you explain/demonstrate some data?

Vadim

cecilia_petersson2
Active Participant
0 Kudos

Hi Mohammed,

It depends on the look of your report and your account setup (signs etc), but maybe this could give you an idea. Create two reports with all B/S accounts. Then apply filtering so that in the first report you exclude negative numbers and in the second one you exclude positive ones.

/Cecilia