i have the follwoing problem: Within our BCS System I have to call a Planning Function (Type: Exit planning function) which does some calculation on a IP planning cube, not on the BCS Cube itself. I found the example program (RSPLS_PLSEQ_EXECUTE) from SAP to trigger a Planning Sequence. Unfortunately I have to call the planning function for the selected parameter (Version / Year / Period / Company) in the Consolidation Monitor. The Program RSPLS_PLSEQ_EXECUTE is asking for a variant. I do not want to create hundreds of variants for all combinations which can occur. Therefore I tried to call directly the planning function,calling the method
EXECUTE_SERVICE of class cl_rsplfr_controller. After the method is executed, the plan data are not saved to the cube. Can someone tell me, which method i have to call storing the data, or can give me a hint, how i can execute a Planning Function from a custom program ?
take a look at the implementation of report RSPLS_PLSEQ_EXECUTE.
There you can find the following code:
IF save <> space. g_r_application = cl_rspls_plan_application=>get( ). g_r_data_area = g_r_application->get_data_area( ). g_r_area = g_r_data_area->get_olap_area( ). g_r_area->save( ). ENDIF.
Thank you Mathias for your help.
The plan data are being saved now. Another Problem occured while executing the Planning Function with the "Execute_Service" method. If an Error occured in the Planning function the Method has only the returning paramter "r_ok". If it failed r_ok is not filled. But I can't see what the problem in the planning function was. When debugging the method i saw that the object l_r_msg (type cl_rsplfu_msg) is filled with a real error message. Is it possible to access the objekt from my call program ? I already tried the following, after executing the Planning function, but the Message table is empty at this point.
data: l_r_msg type REF TO cl_rsplfu_msg. data: t_msg type RSPLF_T_MSG. create object l_r_msg. CALL METHOD l_r_msg->get_t_msg receiving r_t_msg = t_msg.