如何从ABAP调用BI-IP计划功能

2020-08-23 06:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我想从ABAP调用现有的BI-IP计划功能。 有人知道是否有标准的SAP功能模块或类吗?

非常感谢您的帮助。

Stefan

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我想从ABAP调用现有的BI-IP计划功能。 有人知道是否有标准的SAP功能模块或类吗?

非常感谢您的帮助。

Stefan

付费偷看设置
发送
4条回答
Tong__Ming
1楼 · 2020-08-23 07:17.采纳回答

嗨,

您可以使用

RSPLSSE_PLSEQ_EXECUTE用于序列,

RSPLSSE_SERVICE_EXECUTE用于计划功能。

最诚挚的问候,

ravi。

Nir深蓝
2楼-- · 2020-08-23 07:20

您可以使用程序执行计划序列。 无论如何,函数需要执行过滤器,因此您需要创建计划序列。 要获取程序的确切名称,请搜索论坛; 我现在无法记住它。

SAP浪
3楼-- · 2020-08-23 07:20

嗨,

感谢您的快速解答。

干得好!

Stefan

蓋茨
4楼-- · 2020-08-23 07:21

调用PF的方式如下。

 数据:lv_plan_id类型/cpd/pfp_plan_id,
         lv_ver_id类型/cpd/pfp_version_id,
         lv_plfilter类型bsanly_filter,
         lv_plsequ TYPE bsanly_plsequ,
         lt_filter类型bsanly_t_filter,
         lt_plfunc类型bsanly_t_plfunc,
         lt_plsequ TYPE bsanly_t_plsequ,
         lv_subrc TYPE sy-subrc,
         lt_message TYPE bsanly_t_message,
         ls_message TYPE bsanly_s_message,
         lt_selection TYPE bsanly_ts_selection,
         ls_selection TYPE bsanly_s_selection,
         lo_selection类型参考if_bs_anly_selection,
         lt_def TYPE rsr_t_variable_definition,
         lr_plan类型参考/cpd/cl_pfp_ip_plan,
         lv_error TYPE布尔值,
         lv_periv TYPE periv,
         lv_fiscalp_s TYPE Poper," bapi0002_4-fiscal_period,
         lv_fiscalp_c TYPE poper," bapi0002_4-fiscal_period",
         lv_fiscalp_e TYPE poper," bapi0002_4-fiscal_period",
         lv_fiscalyr_s TYPE t009b-bdatj,
         lv_fiscalyr_e TYPE t009b-bdatj,
         lv_fiscalyr_c类型t009b-bdatj,
         lv_perio_start TYPE/bi0/oifiscper,
         lv_perio_end TYPE/bi0/oifiscper,
         lv_perio_current TYPE/bi0/oifiscper,
         lo_filter类型参考if_bs_anly_filter,
         lo_plfunc类型参考if_bs_anly_plfunc,
         lo_plsequ类型参考if_bs_anly_plsequ。


 lv_plfilter ='ZFILTERXXXX'。
  lv_plsequ ='ZXXXXXX'
  将lv_plfilter附加到lt_filter。
  将lv_plsequ附加到lt_plsequ。
*获取选择实例 cl_bs_anly_list_services => get_selection_instance( 出口 * it_filter = lt_filter"过滤器列表 * it_plfunc = lt_plfunc"过滤器列表 it_plsequ = lt_plsequ 输入 eo_selection = lo_selection"简单列表报告:选择 ev_subrc = lv_subrc" abap语句的返回值 et_message = lt_message"分析:消息 )。
*获取变量元数据 lo_selection-> get_variables( 输入 et_def = lt_def)。
*阅读当前选择 lo_selection-> read( 输入 et_selection = lt_selection ev_subrc = lv_subrc et_message = lt_message)。 ****************************************** *对所有变量执行此操作。 ****************************************** 使用键vnam ='VARXXXX'读取表lt_def ASSIGNING 。 如果sy-subrc EQ 0。 删除lt_selection WHERE字段名= -vnam。 清除ls_selection。 ls_selection-fieldname = -vnam。 ls_selection-sign ='I'。 ls_selection-option ='EQ'。 ls_selection-low = lv_plan_id。 插入ls_selection插入表lt_selection。 ENDIF。
*写回选择 lo_selection-> write( 出口 it_selection = lt_selection)。
*检查选择 lo_selection->检查( 输入 ev_subrc = lv_subrc et_message = lt_message)。

cl_bs_anly_list_services => get_plsequ_instance( 出口 iv_plsequ = lv_plsequ"计划功能 输入 eo_plsequ = lo_plsequ"计划功能 ev_subrc = lv_subrc" abap语句的返回值 et_message = lt_message"分析:消息 )。 *将lt_message追加到et_messages的行。 使用键msgty ='E'将表lt_message读入ls_message。 如果sy-subrc = 0。 lv_error = abap_true。 其他。 *执行计划顺序 lo_plsequ->执行( 输入 ev_subrc = lv_subrc" abap语句的返回值 et_message = lt_message"分析:消息 )。 使用键msgty ='E'将表lt_message读入ls_message。 如果sy-subrc = 0。 lv_error = abap_true。 万一。 ENDIF。
如果lv_error是INITIAL。 cl_bs_anly_list_services =>保存( 输入 ev_subrc = lv_subrc" ABAP语句的返回值 et_message = lt_message"分析:消息 )。 *成功讯息 * ev_success = abap_true。 其他。 * 错误信息 e_error = abap_true。 ENDIF。

一周热门 更多>