将例行程序BW3.5启动到BI 7.4- ABAP 00

2020-09-12 12:25发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,朋友, 我正在转换BW 3...

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

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


嗨,朋友,

我正在转换BW 3.5流BI 7.4。 我想将以下启动例程转换为BI 7(ABAP OO)方法。 我已经按照以下方式在BI 7.X中声明并完成了代码。 出现错误。

有谁可以帮忙。

我不是ABAPer的核心

原始3.5码

数据:开始于t_empl发生0。
         包含结构/bi0/qemployee。
 数据:t_empl的结尾。

 数据:开始时t_pers发生0。
         包含结构/bi0/qperson。
 资料:t OF结束。

 数据:开始于t_appl发生0。
         包含结构/bi0/qapplicant。
 数据:t_appl的结尾。

 ******************************************************  **********************

   数据:t_appid的开头出现0,
           像/bi0/qapplicant-applicant这样的appid,
         t_appid的结尾。
   数据:t_empid的开头出现0,
           像/bi0/qemployee-employee这样的Empire,
         t_empid的结尾。

   数据:t_perid的开头出现0,
          像/bi0/qperson-person这样的词,
         t_perid的结尾。
   数据:l_s_datapak_line类型为TRANSFER_STRUCTURE。
   清除:t_appid [],t_empid [],t_empl [],t_appl []。

   在datapak处循环进入l_s_datapak_line。
     情况l_s_datapak_line-APPEE_TYPE。
       当" AP"。
         t_appid-appid = l_s_datapak_line-APPEE_ID。
         附加t_appid。
       当" P"。
         t_empid-empid = l_s_datapak_line-APPEE_ID。
         附加t_empid。
       当别人。
     尾箱。
   结束循环。

   从t_empid中删除相邻的重复项。
   从t_appid中删除相邻的重复项。

 *将员工主数据放入缓冲区
   如果不是,则t_empid []是初始的。
     选择*从/bi0/qemployee到表t_empl
     对于t_empid中的所有条目
     员工= t_empid-empid
       和日期到基准
       和日期自le sy-datum。
   万一。

 *将Applicanr主数据带入缓冲区
 如果不是,则t_appid []是初始的。
     SELECT * FROM/bi0/qapplicant进入表t_appl
     对于t_appid中的所有条目
     申请人= t_appid-appid
       和日期到基准
       和日期自le sy-datum。
   万一。

 *通过与Empid比较将人的主数据带入缓冲区。

   如果不是,则t_empid []是初始的。
     SELECT * FROM/bi0/qperson进入表t_pers
     对于t_empid中的所有条目
     人= t_empid-empid
       和日期到基准
       和日期自le sy-datum。
   万一。
 排序:t_pers,t_empl,t_appl。



 

转换为BI7.4后

 TYPES:/bi0/qemployee的t_empl TYPE标准表,
         t_pers/bi0/qperson类型标准表,
       /bi0/qapplicant的t_appl类型标准表。
 类型:t_appid的开头,
           appid TYPE/bi0/qapplicant-applicant,
         t_appid的结尾。

 类型:t_empid的开头,
           空类型/bi0/qemployee-employee,
         t_empid的结尾。

 类型:t_perid的开头,
           perid TYPE/bi0/qperson-person,
         t_perid的结尾。


    在SOURCE_PACKAGE ASSIGNING 中循环。
     案例 -APPEE_TYPE。
       当" AP"。
         t_appid-appid =  -APPEE_ID。
         附加t_appid。
       当" P"。
         t_empid-empid =  -APPEE_ID。
         附加t_empid。
       当别人。
     尾箱。
   结束循环。

 
1条回答
SAP小菜
2020-09-12 13:01

如果遇到错误-请说明错误是什么。 如果您无法修复ABAP,是否考虑过向当地友好的ABAP团队寻求帮助? 还是要求发送ABAP课程? 甚至可以买一本关于ABAP的书(或者免费获得合法合法的其中一本,然后免费下载并使用它?)。

答案:

带有标题行的表已过时。 附加t_appid。 是对带有标题行的表的声明,称将标题行的内容附加到表中。 编程,因为t_appid取决于上下文是指标题行还是表。

说实话,原始代码非常糟糕。

这是一个最佳解决方案。 我建议您阅读每个关键字的ABAP文档,以了解它的工作原理以及它与3.5代码的重复方式。

 LOOP AT source_package ASSIGNING 在哪里appee_type EQ'AP'或appee_type EQ'P'。
   将最终行插入FIELD-SYMBOL()。
    -appid =  -appee_id。
 结局。
 

一周热门 更多>

相关问答