cancel
Showing results for 
Search instead for 
Did you mean: 

SIGNEDDATA movement

Former Member
0 Kudos

Hi Experts,

I explained my query  bellow with an example:

During the Transaction data upload form BW Infoprovider.

Here i am taking three GLs for explanation

GL_1

GL_2

GL_3

If GL_1 have negative 0Balance in BI cube so....

In BPC cube amount should comes under GL_2 else if positive 0Balance  then amount should comes under GL_3.

how can i achieve this task........can i use Default logic run at the time of Run package if yes then pls share syntax for the script.

Please share your inputs.........

Regards,

Sam

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Sam

You may use the *IF statement in your transformation file to achinve this.

It will looking somthing like this;

Account=*IF(0Balance< 0 then GL_2;0Balance> 0 then GL_3)

Hope this helps.

Regards,

Kalyan.

Former Member
0 Kudos

Thanks Kalyan for quick reply.

For your information in CoA i have more then 1000 GLs and i want to apply this logic of data movement only for some specific GLs for example logic should run only for 50 specific GLs.

1000 GLs in BI cube under 0Account

same GLs I have maintained in BPC  under C_Account Dimension.

all GLs are mapped and Transection data uploaded in BPC same as in BW...but as per requirement some GLs those have negative values should add up in other GL of CoA.

Hope i explained my query.

please let me know how can i achieve this.......

Former Member
0 Kudos

Hi Sam,

For that you have to either use script logic or BADI. You have to maintain three properties to identify the accounts for which the checking rule applies and also the destination account if  the amount is positive or negative.

If you use script logic you can put the logic in Default.LGF. But remember if you put the logic it will be execute post data send. So you have to negate the value posted in the GL for which you are checking.

If you use BADI you can use start routine and end routine within the *OPTIONS section of your transformation file and refer to the filter value of the relevant BAdi. The general syntax is as follows:

STARTROUTINE=BADI_FILTER1

ENDROUTEINE=BADI_FILTER2

Hope this helps.

Regards,

Kalyan.

Former Member
0 Kudos

Hi Kalyan,

I am new to BADI, Before this i didn't use BADI, Can you please guide me how can i do this task with the help of BADI......what  would be the code for this....

Please share relevant docx regarding this task...it would be great help..:)

Regards,

Sam

Former Member
0 Kudos

Hi Sam,

I too do not know much of BADI, so mostly I get in touch with an ABAPer to get the logic written, besides you would also need the developer's key.

Here are few link you may refer,

http://scn.sap.com/docs/DOC-35054

Also check how to guides, I guess there is one document there as well.

Regards,

Kalyan.

Former Member
0 Kudos

Hi Kalyan,

can we do this without BADI......... ?

Regards,

Sam

Former Member
0 Kudos

Hi Sam,

Script logic is anothre option you can explore, but in terms of performance I guess BADI will be best for you since you have 1000 IDs (GLs) to check.

A sample script would look like this
//assuming you have maintained property ACN_CHK as Y for accounts to be checked

// Also assuming you have maintained property DEST_POS and DEST_NEG containing values as GL IDs to which values has to be posted if signed data is positive or negative respectively.

*WHEN ACCOUNT.ACN_CHK

*IS "Y"

*IIF (%VALUE%>0;*REC(ACCOUNT=ACCOUNT.DEST_POS);*REC(ACCOUNT=ACCOUNT.DEST_NEG))

*ENDWHEN

I have not tested the above, and not sure whether *IIF is allowed within *WHEN/*ENDWHEN block. Give it a try and let us know the results.

Regards,

Kalyan.

former_member186338
Active Contributor
0 Kudos

Hi All,

IIF can't be used this way!

The correct script have to be like:

1. It's enough to have 2 properties DEST_POS and DEST_NEG. Both have to be maintained for the accounts that require transformation.

2. It's better to load data with on DATASRC/Audit member and then copy all data to another DATASRC/Audit member with account transformation.

*SELECT(%TRASF%,"[ID]",ACCOUNT,"[DEST_POS]<>''")

*WHEN DATASRC

*IS FROMBW

  *WHEN ACCOUNT

  *IS %TRANSF%

    *REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0,ACCOUNT=ACCOUNT.DEST_POS,DATASRC=TRANSF)

    *REC(EXPRESSION=%VALUE%<0 ? %VALUE% : 0,ACCOUNT=ACCOUNT.DEST_NEG,DATASRC=TRANSF)

  *ELSE

    *REC(EXPRESSION=%VALUE%,DATASRC=TRANSF)

  *ENDWHEN

*ELSE

  //Some code for other DEFAULT.LGF calculations

*ENDWHEN

B.R. Vadim

Former Member
0 Kudos

Hi Vadim,

I have tried this logic in DEFAULT and run at the time of Transaction data upload  as suggested.......Data upload from BW has been completed Successfully....

but i have received an error "Members invalid On Dimension(ACCOUNT)" Then I tried to execute this logic With UJKT, 

I have maintained Y under Property DEST_POS  for specific GLs from where i Want to send data

Logic:

*SELECT(%TRASF%,"[ID]",ACCOUNT,"[DEST_POS]='Y'")

*WHEN AUDITTRAIL

*IS Other

*WHEN ACCOUNT

*IS %TRANSF%

*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0,ACCOUNT=ACCOUNT.DEST_POS,AUDITTRAIL=Other)

*REC(EXPRESSION=%VALUE%<0 ? %VALUE% : 0,ACCOUNT=ACCOUNT.DEST_NEG,AUDITTRAIL=Other)

*ELSE

*REC(EXPRESSION=%VALUE%,AUDITTRAIL=Other)

*ENDWHEN

*ELSE

*ENDWHEN

  • UJKT Output:

LGX:

*WHEN AUDITTRAIL

*IS Other

*WHEN ACCOUNT

*IS %TRANSF%

*REC(EXPRESSION=%VALUE%>0 ? %VALUE% : 0,ACCOUNT=ACCOUNT.DEST_POS,AUDITTRAIL=Other)

*REC(EXPRESSION=%VALUE%<0 ? %VALUE% : 0,ACCOUNT=ACCOUNT.DEST_NEG,AUDITTRAIL=Other)

*ELSE

*REC(EXPRESSION=%VALUE%,AUDITTRAIL=Other)

*ENDWHEN

*ELSE

*ENDWHEN

-------------------------------------------------------------------------------------------------------------------------------------

LOG:

FILE:\ROOT\WEBFOLDERS\C_APPSET \ADMINAPP\Consolidation\TEST.LGF

USER:BPCADMIN

APPSET:C_APPSET

APPLICATION:Consolidation

[INFO] GET_DIM_LIST(): I_APPL_ID="Consolidation", #dimensions=10

ACCOUNT,AUDITTRAIL,CATEGORY,ENTITY,FLOW,INTERCO,MEASURES,RPTCURRENCY,SCOPE,TIME

#dim_memberset=0

REC :%VALUE%>0 ? %VALUE% : 0

REC :%VALUE%<0 ? %VALUE% : 0

CALCULATION BEGIN:

QUERY PROCESSING DATA

UJO_READ:Members invalid On Dimension(ACCOUNT)

Regards,

Sam

former_member186338
Active Contributor
0 Kudos

Hi Sam,

You slightly misunderstand what to maintain in the property:

1. Both properties have to be maintained for SOURCE accounts only.

2. The values of both properties have to be TARGET account ID (positive and negative)! Not "Y"!

The error "UJO_READ:Members invalid On Dimension(ACCOUNT)" appears because you put "Y" in this property.

For GL_1

DEST_NEG: GL_2

DEST_POS: GL_3

B.R. Vadim

Former Member
0 Kudos

Thank you Mr. Vadim..... 🙂

Answers (1)

Answers (1)

Former Member
0 Kudos

Sam,

If I understand correctly, for Keyfigure 'Signeddata' the source should be picked up from either GL1 OR GL2 OR GL3.

Can't this be done using formula in the Transformation file?

Thanks,

Sonti.