循环内部表并添加值

2020-09-10 04:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)全部,我需要您的帮助。 我要从表...

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

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


全部,我需要您的帮助。 我要从表PA0001(仓库,pernr,btrtl,orgeh,bukrs,kostl,计划)表PA0002(vorna,nachn)和表PA0105(usrid,usrid_long)中拉满字段,并将它们放入PERNR的内部表中 是关键。

接下来,我需要循环我的内部表(i_employee),对于每个PERNR,使用值PA0105-usrid_long填充字段'usrid_long',其中PA0105-subty ='0010'。 "这不起作用。该表无法更新。

此外,我需要调用功能模块'Z_HR_GET_MGR_BY_ORG'来获取内部表中每个pernr的管理器PERNR。 我通过员工职位(i_employee-plans),并收到经理pernr(首席)。 我需要将返回的值存储在每个pernr的内部表中。 这也不起作用。 我可以确认FM正常工作。

然后,我需要将我抓住的经理pernr与IT中的pernr进行比较。 如果它们相等,则将" Y"传递给批准者,否则,将" N"传递给批准者。

下面是我的代码。 谁能为我的初学者修复我的代码? 非常感谢。

表格:
pa0001,
pa0105,
pa0002。

数据:w_werks类似于pa0001-werks。 " PersonnelArea
数据:w_pernr类似于pa0001-pernr。" VendorID
数据:w_btrtl类似于pa0001-btrtl。 " SubArea
数据:w_orgeh像pa0001-orgeh。" OrgUnit
数据:w_usrid象pa0105-usrid。 " USerID
数据:w_usridl像pa0105-usrid_long。"电子邮件地址/登录ID
数据:w_vorna象pa0002-vorna。 " EmployeeFirstName
数据:w_nachn类似于pa0002-nachn。" EmployeeLastName
数据:w_bukrs类似于pa0001-bukrs。 " CompanyCode
数据:w_kostl类似于pa0001-kostl。" CostCenter
数据:w_mgrpos象pa0001-plans。 "位置
数据:首席类型persno。"首席/经理ID
数据:批准者TYPE字符串。 "批准人,是Y还是N
数据:employee_file类型rlgrap文件名。
数据:w_pos类似于sy-fdpos。
数据:w_pos2类似于sy-fdpos。
数据:类似于日期的sy-data。
字段符号:任何类型。


类型:
t_pernr的开头,
pernr类型pa0001-pernr,
werks类型pa0001-werks,< br> btrtl类型pa0001-btrtl,
orgeh类型pa0001-orgeh,
bukrs类型pa0001-bukrs,
kostl类型pa0001-kostl,
vorna类型pa0002-vorna,
nachn类型pa0002 -nachn,
usrid TYPE pa0105-usrid,
usrid_long TYPE pa0105-usrid_long,
计划TYPE pa0001-plans,
主TYPE persno,
子类型TYPE pa0105-subty,
批准者 ,
t_pernr的结尾。

数据:带有标题行的i_employee类型的t_pernr表。

数据:w_employee类型的t_pernr。

*用PERNR将所有表连接在一起 并用作键来提取必填字段。
选择pa0001〜pernr pa0001〜werks pa0002〜vorna pa0002〜nachn pa0001〜btrtl pa0001〜orgeh pa0001〜bukrs pa0001〜kostl
pa0105〜usrid pa0001〜plans
INTO 表i_employee
的对应字段来自pa0001内部联接pa0002 on pa0001〜pernr = pa0002〜pernr内部联接pa0105 on pa0001〜pernr = pa0105〜pernr
其中pa0105〜SUBTY ='0001'和pa0001〜endda ='99991231 '。

*为每位员工获取电子邮件地址-子类型0010
i_employee上的LOOP。
i_employee-usrid_long = pa0105-usrid_long。
修改i_employee运输usrid_long WHERE pernr = pa0105-pernr AND subty ='0010'。
ENDLOOP。


* *将员工职位传递给FM以获取负责人/费用审批者ID
SORT i_employee BY pernr。
在i_employee ASSIGNING处循环
呼叫功能'Z_HR_GET_MGR_BY_ORG'
导出
计划= i_employee-plans
导入
mgr_pernr =主管。
如果i_employee-chief EQ i_employee-pernr。
i_employee- approver ='Y'。
ELSE。
i_employee-approver ='N'。
ENDIF。
ENDLOOP。

9条回答
SC_Yao
2020-09-10 04:49
我的道歉,希望对您有所帮助。

 表:
pa0001,
pa0105,
pa0002。数据:w_werks类似于pa0001-werks。 " PersonnelArea 数据:w_pernr像是pa0001-pernr。"" VendorID 数据:w_btrtl象pa0001-btrtl。 " SubArea
DATA:w_orgeh类似于pa0001-orgeh。" OrgUnit
DATA:w_usrid类似于pa0105-usrid。 " USerID
数据:w_usridl类似于pa0105-usrid_long。"电子邮件地址/登录ID 数据:w_vorna类似于pa0002-vorna。 " EmployeeFirstName
DATA:w_nachn类似于pa0002-nachn。" EmployeeLastName
DATA:w_bukrs类似于pa0001-bukrs。 " CompanyCode
数据:w_kostl类似于pa0001-kostl。" CostCenter
数据:w_mgrpos象pa0001-plans。 "位置
DATA:主要类型persno。"首席/经理ID
DATA:批准者TYPE字符串。 "批准人,是Y或N
DATA:employee_file类型rlgrap文件名。
DATA:w_pos LIKE sy-fdpos。
DATA:w_pos2 LIKE sy-fdpos。
DATA:LIKE sy-datum日期。
FIELD-SYMBOLS:类型ANY。

类型:
t_pernr的基础,
pernr类型pa0001-pernr,
werks类型pa0001-werks,btrtl 型号pa0001-btrtl,
orgeh型号pa0001-orgeh,bukrs型号pa0001-bukrs,kostl型号pa0001-kostl,vorna型号pa0002-vorna,nachn型号pa0002-nachn,
usrid TYPE pa0105-usrid,
usrid_long TYPE pa0105-usrid_long,图式pa001计划,首席类型persno, subty TYPE pa0105-subty,
批准人,
> END OF t_pernr。
数据:带有标题行的t_pernr的i_employee类型表。
DATA:w_employee TYPE t_pernr的表。
*通过PERNR将所有表连接在一起,并用作提取必要字段的键。
SELECT pa0001〜pernr pa0001〜werks pa0002〜vorna pa0002〜nachn pa0001〜btrtl pa0001〜orgeh pa0001〜bukrs pa0001〜kostl
pa0105〜usrid pa0001〜plans
INTO对应表的字段i_employee
FR OM pa0001内部联接pa0002在pa0001〜pernr = pa0002〜pernr内部联接pa0105在pa0001〜pernr = pa0105〜pernr
其中pa0105〜SUBTY ='0001'并且pa0001〜endda ='99991231'。
*抓电子邮件 每个雇员的地址-i_employee处的子类型0010
LOOP。i_employee-usrid_long= pa0105-usrid_long。
修改i_employee运输usrid_long在哪里pernr = pa0105-pernr AND子对象='0010'。
ENDLOOP。

**将员工职位传递给FM,以获取负责人/费用审批者ID
SORT i_employee BY pernr。在i_employee ASOPING中分配
呼叫功能'Z_HR_GET_MGR_BY_ORG'
出口
计划= i_employee-plans
导入
mgr_pernr =首席。
IF i_employee-chief EQ i_employee-pernr。 i_employee-approver ='Y'。
ELSE。
i_employee-approver ='N'。
ENDIF。
ENDLOOP。

一周热门 更多>