如何将成员集规则(BAS,DEP等)传递给调用方法lo_sqe-> run_axis_query_symm

2020-09-09 22:00发布

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

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


尊敬的专家,

根据发布的操作指南,我正在尝试在SAP BPC 10.1 NW经典环境中使用基本的BPC数据读取方法(如何将BPC 7.x BADI迁移到BPC 10 )。
我需要从父成员中读取数据,因此我使用轴查询(调用方法) lo_sqe-> run_axis_query_symm)。

调用方法lo_sqe-> run_axis_query_symm
   出口
     it_axis = lt_axis
     it_slicer = lt_slicer
   输入
     et_data = 

有人知道如何将成员集规则(BAS,DEP等)传递给此类查询吗?
根据附录BI,看到" ls_member"变量具有" MEMBERSET_FORMULA"参数,但我不知道如何使用它。/p>

 ls_member-dimension ='ACCOUNT'。
 ls_member-member ='PL110'。  " <---这里需要BAS(PL_TOTAL)之类的东西
 将ls_member插入表ls_axis中。
 将ls_axis插入表lt_axis。
 清除ls_axis。  

请分享您的想法。

此致

Oleg。

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

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


尊敬的专家,

根据发布的操作指南,我正在尝试在SAP BPC 10.1 NW经典环境中使用基本的BPC数据读取方法(如何将BPC 7.x BADI迁移到BPC 10 )。
我需要从父成员中读取数据,因此我使用轴查询(调用方法) lo_sqe-> run_axis_query_symm)。

调用方法lo_sqe-> run_axis_query_symm
   出口
     it_axis = lt_axis
     it_slicer = lt_slicer
   输入
     et_data = 

有人知道如何将成员集规则(BAS,DEP等)传递给此类查询吗?
根据附录BI,看到" ls_member"变量具有" MEMBERSET_FORMULA"参数,但我不知道如何使用它。/p>

 ls_member-dimension ='ACCOUNT'。
 ls_member-member ='PL110'。  " <---这里需要BAS(PL_TOTAL)之类的东西
 将ls_member插入表ls_axis中。
 将ls_axis插入表lt_axis。
 清除ls_axis。  

请分享您的想法。

此致

Oleg。

付费偷看设置
发送
7条回答
闻人可可
1楼 · 2020-09-09 22:27.采纳回答

"我正在自定义abap报告中使用run_axis_query_symm方法"-必须在开始时提到:)

 cl_ujk_model => get_children
 出口
     i_appset_id = l_appset_id
     i_dim ='SOMEDIMENSION'
     i_parent_mbr ='SOMEPARENT'
     i_type ='DEP'
     " i_self =如果要在结果中包括父项
 输入
     et_bas_list。  "在此示例中,结果为DEP(SOMEPARENT)

然后使用接收到的成员列表将轴填充到lt_axis

Alawn_Xu
2楼-- · 2020-09-09 22:03

另一种方法是使用方法:GET_MEMBER_LIST

并创建it_sel参数。

zhangjiyang1323
3楼-- · 2020-09-09 22:03

您必须正确填充结构:

 lt_axis 

对于自定义逻辑badi,您可以使用XDIM_MEMBERSET ...在脚本逻辑中的badi调用之前确定数据范围。

在badi内部,您可以从It_cv中读取作用域

增加It_cv尺寸并将成员分配给it_axis。

或者您可以在badi内执行所有操作。

打个大熊猫
4楼-- · 2020-09-09 22:21

2 马图斯·洛扬(Magus Lojan)

对不起,但是我不对旧问题发表评论!

请打开一个新问题,并清楚说明您的问题!

Bunny_CDM
5楼-- · 2020-09-09 22:10

我的代码示例 使用脚本中定义的范围来查询badi内部的数据:

数据:ls_axis类型ujo_t_members,
           lt_axis类型ujo_t_query_dim,
           lt_dim_list类型uja_t_dim_list,
           ls_member类型ujo_s_member,
           l_dimname TYPE uj_dim_name,
           l_TYPE成员UJ_DIM_MEMBER。
           lr_data类型引用数据,
           lo_sqe输入ref到if_ujo_query,
           lr_rec TYPE REF TO数据,
           lo_appl_mgr输入ref到if_uja_application_manager。

 FIELD-SYMBOLS: TYPE ANY,
                 TYPE UJK_S_CV。
                类型标准表。

     循环至it_cv分配。
       l_dimname =  -DIMENSION。
       将l_dimname附加到lt_dim_list。
       将-成员放入l_member中。
         ls_member-DIMENSION = l_dimname。
         ls_member-MEMBER = l_member。
         将ls_member插入表ls_axis中。
       结局。
       将ls_axis插入表lt_axis。
       清除ls_axis。
     结局。

     尝试。
     调用方法cl_uja_bpc_admin_factory => get_application_manager
     出口
     i_appset_id = i_appset_id
     i_application_id = i_appl_id
     接收
     ro_return = lo_appl_mgr。

     调用方法lo_appl_mgr-> create_data_ref
     出口
     i_data_type ='T'
     it_dim_name = lt_dim_list
     if_tech_name = abap_false
     if_signeddata = abap_true
     输入
     er_data = lr_data。
     将lr_data-> *分配给。

     调用方法cl_ujo_query_factory => get_query_adapter
     出口
     i_appset_id = i_appset_id
     i_appl_id = i_appl_id
     接收
     适配器= lo_sqe。

     调用方法lo_sqe-> run_axis_query_symm
     出口
     it_axis = lt_axis
     it_slicer = lt_slicer
     输入
     et_data = 。

     抓住
        cx_ujo_read
        cx_uj_static_check INTO lx_static。
     ENDTRY。

     创建数据的lr_rec类似行。
     ASSIGN lr_rec-> *至。

     "遍历传入数据并创建结果集
     循环分配。
     "您的代码在这里!
     结局。
 

P.S。 如果要在APAP中选择成员,请查看:

 cl_ujk_model => get_children 

i_parent_mbr-父成员

i_type导出参数可以是:

" ALL"(所有级别的子级成员)," DEP"(比父级低一级的子级成员)," BAS"(仅基本成员)

蓋茨
6楼-- · 2020-09-09 22:28

我知道了 ...对不起。

但是您接下来想做什么? 总是带基地成员吗? 还是两者都使用?

野沐沐
7楼-- · 2020-09-09 22:22
使用此方法,您不需要选择基本成员,因为该方法可以为您完成选择。 实际上,在文档中有提示: "尽管该方法称为"轴查询",但内部引擎足够聪明,可以选择要使用的查询类型。例如,如果选择的是所有基本成员,则将自动使用RSDRI查询类型。

如果您查看导入表IT_AXIS,则具有:

维度
层次结构
成员​​
MEMBERSET_FORMULA

因此,以您的示例BAS(PL_TOTAL)为例:

维度=帐户
层次结构= PARENTH1
成员​​= PL_TOTAL

干杯

卢卡斯

一周热门 更多>