Skip to Content
0

Custom Copy Package

Mar 03, 2017 at 07:19 PM

114

avatar image

Hi Friends,

Env bpc 10.1

We are currently exploring the possibility of customising a copy package.

We need to copy data from category actual to different forecast periods based on the working forecast. The source would be "actual" and the destination would be Q1, Q2, Q3 or Q4 forecast. The destination is determined by a flag which points to the working forecast period. (prior months of the working forecast need to be filled by actual data) (category and time need to be dynamic selections based on properties of category and time dimension)

Is it possible to customise a standard copy package for this requirement.

Currently i am using script logic for this requirement.

Thanks

Ed.

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

7 Answers

Best Answer
Vadim Kalinin Mar 03, 2017 at 08:39 PM
0

Also if you still require standard COPY process - then copy UJD_TEST_PACKAGE to Z version and add abap code to read required members from dimension and generate answer prompt!

Share
10 |10000 characters needed characters left characters exceeded
Vadim Kalinin Mar 03, 2017 at 07:40 PM
0

You have to use script logic copy!

But detailed description with real dimension members and properties required!

"The destination is determined by a flag which points to the working forecast period." - not clear without detailed sample.

Share
10 |10000 characters needed characters left characters exceeded
Edward Masarri Mar 03, 2017 at 08:01 PM
0

Thanks Vadim for your reply.

Category

id working_forecast ......................................

Actual

Plan

Q1Forecast

Q2Forecast

Q3Forecast Y

Q4Forecast

Time

ID Copy_flag ...........................................

2017.01 Y

2017.02 Y

2017.03 Y

2017.04 Y

2017.05

...........

2017.012

copy--

source category - Actual destination category - working_forecast ="Y"

source time - copy_flag ="Y" destination time - copy_flag ="Y"

The script times out if the data is huge, but if i run the regular standard copy package with the same amount of data it runs successfully.

Show 1 Share
10 |10000 characters needed characters left characters exceeded

There is NO way to customize standard copy package.

But the script has to work without timeout.

Please post the script you have tested, I will look on it.

0
Vadim Kalinin Mar 03, 2017 at 08:28 PM
0

Simple script sample:

*SELECT(%CATTARGET%,[ID],CATEGORY,[working_forecast]=Y)
*SELECT(%TIMECOPY%,[ID],TIME,[Copy_flag]=Y)
*XDIM_MEMBERSET TIME=%TIMECOPY%
*XDIM_MEMBERSET CATEGORY=Actual
*WHEN TIME
*IS *
*REC(EXPRESSION=%VALUE%,CATEGORY=%CATTARGET%)
*ENDWHEN
Share
10 |10000 characters needed characters left characters exceeded
Vadim Kalinin Mar 03, 2017 at 08:32 PM
0

And this one can be faster:

*SELECT(%CATTARGET%,[ID],CATEGORY,[working_forecast]=Y)
*SELECT(%TIMECOPY%,[ID],TIME,[Copy_flag]=Y)
*XDIM_MEMBERSET TIME=%TIMECOPY%
*RUNALLOCATION
*FACTOR=1
*DIM CATEGORY WHAT=Actual; WHERE=%CATTARGET%
*ENDALLOCATION
Share
10 |10000 characters needed characters left characters exceeded
Vadim Kalinin Mar 03, 2017 at 08:35 PM
0

And by the way, it's a good idea to perform Light Optimization of the cube before copy!

Share
10 |10000 characters needed characters left characters exceeded
Edward Masarri Mar 03, 2017 at 08:39 PM
0

Thanks Vadim, I will try both your options. Following is the script that we are using currently and its failing for large data (short dumps). The difference in the script , we are using account in when statement and you are using time. Should that be a problem in terms of performance?

*SELECT(%WORK_FCST%, "ID", CATEGORY, "WORKING_FORECAST='Y'")

*SELECT(%PERIODS%, "ID", TIME, "copy_flag='Y'")

*XDIM_MEMBERSET CATEGORY = ACTUAL

*XDIM_MEMBERSET TIME = %PERIODS%

*XDIM_MEMBERSET RPTCURRENCY = LC, USD

*WHEN ACCOUNT

*IS *

*REC(FACTOR=1, CATEGORY=%WORK_FCST%)

*ENDWHEN

Show 2 Share
10 |10000 characters needed characters left characters exceeded

This script is a full equivalent of my simple script - no reason to test simple script! Test with ALLOCATION!

P.S. ACCOUNT - no difference!

0

And for simple script you can play with RUNLOGIC_PH badi - to perform parallel execution!

0