点击此处---> 群内免费提供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。
首先,不要使用带有标题行的表。
第二,没有查询来选择subty = 0010的pa0105。
第三,无条件循环雇员表以 与pa0105比较是错误的方式,表也不能像您那样直接访问。 您是否要将usrid_long格式的子类型0010复制到0001?
最后一件事,您可以自己动手操作它,它的基本基础知识是您不能不学习就跳入某种语言。
如果尝试调试,您会发现内部表未更新的原因是因为 没有符合您条件的记录。
Ryan Higgins ,您最好编辑您的问题,而不是使用格式化代码;-)
您好,以便更好地阐明我的问题。 我正在使用select,通过下面显示的关键PERNR将多个HR表中的多个字段拉到一个itab中。
接下来,我要遍历此itab(i_employee),并使用每个PANR的PA0105-usrid_long中的值更新usrid_long字段。 这是我需要帮助的地方。
一周热门 更多>