使用出口授权特殊字符(*)

2020-09-02 06:53发布

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

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


尊敬的ABAP开发人员,

我想在代码中添加特殊字符逻辑。 我需要这样 如果相应的字段的表为空(zabwp017),则输出应加星号*。 它对我有帮助,即用户通过了所有值的验证。 有人可以帮我编辑此代码吗?

表ZAWP017:

示例:Testuser3已对所有" Sales_Grp"进行身份验证,因为其中存在NULL。

我的代码有效,但我需要*(星型)逻辑。

另一个问题:

我在HANA上使用BW。 如果我使用语句"从*选择*。

" Z0SALES_OFF_MC"时。
 如果i_step EQ为'0'。

   通话功能" RSEC_GET_USERNAME"
     输入
       e_username = l_username。
   刷新lt_abwp017。
   SELECT * FROM zabwp017到表lt_abwp017中s_bbiuser = l_username
                                                             AND s_bberanz> = 1。
     如果sy-subrc = 0。
       将lt_abwp017循环到IN wa_abwp017。
         清除:l_s_range。
         l_s_range-low = wa_abwp017-sales_off。
         l_s_range-sign ='I'。
         l_s_range-opt ='EQ'。
         附录l_s_range至e_t_range。
         清除wa_abwp017。
       结局。
     万一。
   ENDIF。

非常感谢

Sascha

(87.6 kB)

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

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


尊敬的ABAP开发人员,

我想在代码中添加特殊字符逻辑。 我需要这样 如果相应的字段的表为空(zabwp017),则输出应加星号*。 它对我有帮助,即用户通过了所有值的验证。 有人可以帮我编辑此代码吗?

表ZAWP017:

示例:Testuser3已对所有" Sales_Grp"进行身份验证,因为其中存在NULL。

我的代码有效,但我需要*(星型)逻辑。

另一个问题:

我在HANA上使用BW。 如果我使用语句"从*选择*。

" Z0SALES_OFF_MC"时。
 如果i_step EQ为'0'。

   通话功能" RSEC_GET_USERNAME"
     输入
       e_username = l_username。
   刷新lt_abwp017。
   SELECT * FROM zabwp017到表lt_abwp017中s_bbiuser = l_username
                                                             AND s_bberanz> = 1。
     如果sy-subrc = 0。
       将lt_abwp017循环到IN wa_abwp017。
         清除:l_s_range。
         l_s_range-low = wa_abwp017-sales_off。
         l_s_range-sign ='I'。
         l_s_range-opt ='EQ'。
         附录l_s_range至e_t_range。
         清除wa_abwp017。
       结局。
     万一。
   ENDIF。

非常感谢

Sascha

(87.6 kB)
付费偷看设置
发送
8条回答
暮风yp
1楼 · 2020-09-02 07:39.采纳回答

尝试以下操作:

" Z0SALES_OFF_MC"时。

 如果i_step EQ为'0'。



   通话功能" RSEC_GET_USERNAME"

     输入

       e_username = l_username。

   刷新lt_abwp017。

   SELECT * FROM zabwp017到表lt_abwp017中s_bbiuser = l_username

                                                             AND s_bberanz> = 1。

     如果sy-subrc = 0。

       将lt_abwp017循环到IN wa_abwp017。

           清除l_s_range。

           如果wa_abwp017-sales_off不是INITIAL。

             删除lt_abwp017 WHERE sales_off =''。

             l_s_range-low = lt_abwp017-sales_off。

             l_s_range-sign ='I'。

             l_s_range-opt ='EQ'。

             附录l_s_range至e_t_range。

           其他。

             l_s_range-low ='*'。

             l_s_range-sign ='I'。

             l_s_range-opt ='EQ'。

             附录l_s_range至e_t_range。

           万一。

         结局。

     万一。

   ENDIF。

关于

Loed

哎,真难
2楼-- · 2020-09-02 07:39

我根本不理解这个问题。

路亽曱_Ryan
3楼-- · 2020-09-02 07:26

如果SALES_GRP对您的用户为空,只需在e_t_range(ICP *)中放一个新记录。

您对SELECT *到底有什么警告。 在Hana上,SELECT *可能很昂贵(由于其列storiage),请尝试指定所有必需的字段。

问候,

Frederic

灬番茄
4楼-- · 2020-09-02 07:39
< 我不明白你的问题。 如果您的代码有效,您需要*的逻辑是什么? 另外,您要设置值授权还是层次结构授权? 它们会有所不同。

大简至美
5楼-- · 2020-09-02 07:17

我的意思是我不明白的是您的代码有效,所以阻止您对*使用相同的逻辑。 您的意思是您不知道该怎么做... ELSE吗? 我可以编写如下的伪代码:

 CASE i_vnam。
   当" Z0SALES_OFF_MC"时。
     如果i_step EQ为'0'。
       通话功能" RSEC_GET_USERNAME"
         输入
           e_username = l_username。
       选择sale_grp,sales_off
          从zabwp017
          进入表@ lt_abwp017
         s_bbiuser = @l_username
           AND s_bberanz> = 1。
       IF line_exists(lt_abwp017 [sale_grp = space])。  "所有授权
         e_t_range = VALUE#((低='*'
                                符号="我"
                                opt ='CP'))。
       其他。
         e_t_range = VALUE#(FOR wa_abwp017 IN lt_abwp017(低= wa_abwp017-sales_off
                                                             符号="我"
                                                             opt ='EQ'))。
       万一。
     万一。
 结束。
 
SC_Yao
6楼-- · 2020-09-02 07:35

为什么您不理解我的问题,我不知道该如何澄清。

我正在使用值授权。

SAP小黑
7楼-- · 2020-09-02 07:20

不理解为什么必须删除内部循环,因此应为*设置opt的正确值。 同样,当有人拥有ALL授权时,就不会使用循环。

一周热门 更多>