点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好Abap/BW专家
我具有以下要求和编写的代码,但是从具有多个条件的Internal表读取时,我得到了语法。 任何人都可以纠正我在哪里犯了错误。
要求:我想标记员工出差日期(0TV_DEPDATE)是否介于或等于员工休假开始日期和休假结束日期之间。
存储员工请假信息的DSO1(表1)
DSO2,用于存储员工在旅程开始日期提出的费用
以下粗体显示语法错误:
使用KEY将表lt_empleave读入ls_empleave
/BIC/ZEMPLOYEE =
/BIC/Z_IBEGDA <= TV_DEPDATE。
/BIC/Z_IENDDA> = TV_DEPDATE
TYPES:t_empleave的开头, /BIC/ZEMPLOYEE类型/BIC/OIZEMPLOYEE, /BIC/Z_IBEGDA类型/BIC/OIZ_IBEGDA /BIC/Z_IENDDA类型/BIC/OIZ_IENDDA, t_empleave的结尾。 数据:t_empleave的lt_empleave类型标准表。 数据:ls_empleave类型为t_empleave。 ***仅读取3年数据 调用函数" RP_CALC_DATE_IN_INTERVAL" 出口 日期= sy-datum 天= 0 个月= 0 signum ='-' 年= 3 输入 calc_date = l_date。 ***从DSO1中选择数据(员工请假日期) 从以下位置选择/BIC/ZEMPLOYEE/BIC/Z_IBEGDA/BIC/Z_IENDDA /BIC/ADS01 进入表lt_empleave 对于SOURCE_PACKAGE WHERE中的所有条目 /BIC/ZEMPLOYEE EQ SOURCE_PACKAGE-EMPLOYEE AND/BIC/Z_IBEGDA> = l_date。 /BIC/ZEMPLOYEE升序/BIC/Z_IBEGDA降序对SORT lt_empleave进行排序。 从lt_empleave比较中删除相邻的副本/BIC/ZEMPLOYEE /BIC/Z_IBEGDA。 在SOURCE_PACKAGE ASSIGNING处循环播放。 清除ls_empleave。 使用KEY将表lt_empleave读入ls_empleave /BIC/ZEMPLOYEE = -EMPLOYEE。 /BIC/Z_IBEGDA <= TV_DEPDATE。 /BIC/Z_IENDDA> = TV_DEPDATE 如果SY-SUBRC = 0。 -/BIC/Z_IFLAG ='X'。 万一。 结局。 最好的祝福 斯里
(210.6 kB)
Shreekanth,您好,
READ TABLE语句错误。 您不能将比较条件与READ TABLE一起使用。 仅等于条件。 或者,可以使用LOOP语句,如果找到正确的数据集,则可以使用EXIT语句。问候
Frank Albaum
从297行到302
如果ls_empleave-/BIC/Z_IBEGDA <= TV_DEPDATE AND
ls_empleave-/BIC/Z_IENDDA> = TV_DEPDATE。
ENDIF。
嗨,Shreekanth
请尝试这个
一周热门 更多>