2020-08-23 06:14发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我想从ABAP调用现有的BI-IP计划功能。 有人知道是否有标准的SAP功能模块或类吗?
非常感谢您的帮助。
Stefan
嗨,
您可以使用
RSPLSSE_PLSEQ_EXECUTE用于序列,
RSPLSSE_SERVICE_EXECUTE用于计划功能。
最诚挚的问候,
ravi。
您可以使用程序执行计划序列。 无论如何,函数需要执行过滤器,因此您需要创建计划序列。 要获取程序的确切名称,请搜索论坛; 我现在无法记住它。
感谢您的快速解答。
干得好!
调用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。
最多设置5个标签!
嗨,
您可以使用
RSPLSSE_PLSEQ_EXECUTE用于序列,
RSPLSSE_SERVICE_EXECUTE用于计划功能。
最诚挚的问候,
ravi。
您可以使用程序执行计划序列。 无论如何,函数需要执行过滤器,因此您需要创建计划序列。 要获取程序的确切名称,请搜索论坛; 我现在无法记住它。
嗨,
感谢您的快速解答。
干得好!
Stefan
调用PF的方式如下。
一周热门 更多>