on 02-04-2008 8:42 AM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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?
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
User | Count |
---|---|
95 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.