cancel
Showing results for 
Search instead for 
Did you mean: 

Partitioning of Planning

Former Member
0 Kudos

Hi Experts,

I try to improve the performance of a sequence which runs on over 700,000 records.

All the explanation regarding using the function: "UPC_BUNDLE_EXECUTE_STEP" target to the old BPS version and not for the new one: integrated planning which I works at.

Can you advise where I can find some help or "how to" that can assist?

Liav Leshem

Accepted Solutions (0)

Answers (1)

Answers (1)

0 Kudos

Hi Liav,

with SPS13 (i.e. BI support package 15) partioning of planning sequences in BI-IP is supported in process chains, cf. the documentation

http://help.sap.com/saphelp_nw70/helpdata/en/45/946677f8fb0cf2e10000000a114a6b/frameset.htm

Regards,

Gregor

Former Member
0 Kudos

Dear Gregor,

Thanks for your previous answer. I still experience problem in making partition for the data. The problem is that the process chain is stuck after few sub process. I wonder if the problem connect some how to the exit function : UPC_BUNDLE_EXCECUTE_STEP Can you advise ?

Regards,

Liav Leshem

0 Kudos

Hi Liav,

UPC_BUNDLE_EXCECUTE_STEP is no exit function but the tool in BPS to do partitioning of planning sequences. In BI Planning UPC_BUNDLE_EXCECUTE_STEP is not needed.

You should do the partitioning in such a way that one 'package' is small enough to avoid memory dumps and to block one application server by just one work process. Run the 'packages' in parallel. There is no general rule for the 'right' characteristics to do the partition since this depends on the data model. Often time characteristics work well.

Check the number of records you get per 'package', experiment with sizes of 50000 - 100000 per package.

Regards,

Gregor

Former Member
0 Kudos

Dear Gregor,

Your previous answer was very helpful. Actually the process chain runs without any problems. I still have problem of RFC Connections running the process chain thru the planning sequence.

The FOX code look like this :

CALL FUNCTION 'RSPC_API_CHAIN_START'

EXPORTING I_CHAIN = 'CREAT_MONTHLY_TARGET'.

  • I_T_VARIABLES =X

  • I_SYNCHRONOUS =

  • I_SIMULATE =

  • I_NOPLAN =

  • IMPORTING

  • E_LOGID =

Can you have some more of your good advise?

0 Kudos

Hi Liav,

you can find a full documentation of FOX (including how to call ABAP Function modules) in the system, e.g. just call SE11 and display the data element UPC_Y_FLINE and click the button 'documentation'. This documentation ist also available in transaction BPS0. Since BPS and BI Planning use the same run time to execute FOX formulas this documentation is also valid for BI Planning. The most recent version may not be available in your system, so I quote it here:

Calling Function Modules

You use the CALL FUNCTION statement to call function modules. The names of the function modules have to be entered in table RSPLF_FDIR. You can do this in transaction SM30. In the following example, function module UPF_DISTR_RATE_GET is called.

DATA FISCPER TYPE 0FISCPER.

DATA FISCYEAR TYPE 0FISCYEAR.

DATA RATE TYPE F.

DATA KYF TYPE KEYFIGURE_NAME.

FOREACH FISCYEAR, KYF.

FISCPER = OBJV( ).

CALL FUNCTION UPF_DISTR_RATE_GET

EXPORTING

I_FISCPER = FISCPER

I_VERSION = 'OPTIMISTIC'

IMPORTING

E_RATE = RATE.

{KYF,FISCYEAR} = { KYF, FISCYEAR } * RATE.

ENDFOR.

EXPORTING, IMPORTING, and CHANGING parameters can be transferred to function modules. The parameters have to have simple types (F, I, D, STRING and types of characteristics and attributes). Class references, structures and some table parameters are not permitted. All non-optional IMPORTING parameters for a function module have to be filled. If the function module raises an exception, you have to work with construct MESSAGE .... RAISING. THis is shown in the following example. The messages are transferred to the log. Class-based exceptions are also not permitted.

FUNCTION UPF_DISTR_RATE_GET.

*"----


""Local Interfaces:

*" IMPORTING

*" REFERENCE(I_FISCPER) TYPE /BI0/OIFISCPER

*" REFERENCE(I_VERSION) TYPE STRING DEFAULT 'OPTIMISTIC'

*" EXPORTING

*" REFERENCE(E_RATE) TYPE F

*" REFERENCE(E_FISCYEAR) TYPE /BI0/OIFISCYEAR

*" EXCEPTIONS

*" ERROR

*"----


DATA: l_fiscper_3 TYPE n length 3.

l_fiscper_3 = i_fiscper+4(3).

IF i_version = 'OPTIMISTIC'.

e_rate = l_fiscper_3 / 5.

ELSE.

e_rate = l_fiscper_3 / 7.

ENDIF.

e_fiscyear = i_fiscper(4).

if l_fiscper_3 is initial or e_Fiscyear is initial.

message e001(upf) with 'Initial Values'(TIV) raising error.

endif.

ENDFUNCTION.

Regards,

Gregor