文章目录

  • 前言
  • 一、组织模块相关表
  • 二、创建相关函数和使用
    • 1.RH_READ_INFTY
    • 2.RH_INSERT_INFTY_EXP
    • 注意点
  • 前面有个坑,在这里埋一下
    • 首先
    • 其次

前言

第一次上HR模块的项目,发现HR得表都很有意思,基本上靠一个模板创出来得表,刚刚接触到这个模块懂得还不是很多,还请多指教


一、组织模块相关表

组织模块得表以HRP开头,这里记录了组织相关信息得抬头,其具体得行项目信息以HRT开头为命名,在开发时创建相关的结构命名以P开头,这倒是跟正常的PA30的信息类型一致。

二、创建相关函数和使用

盲猜和HR_INFOTYPE_OPERATION一样底层使用的BDC录屏

1.RH_READ_INFTY

看函数名,就可以发现这个读取信息类型的函数,之所以先使用这个函数后面会说到

    CALL FUNCTION 'RH_READ_INFTY'EXPORTINGPLVAR                = LV_PLVAROTYPE                = LV_OTYPEOBJID                = LS_BZMB-ORGEHINFTY                = '9510'ISTAT                = LV_ISTATBEGDA                = SY-DATUMENDDA                = SY-DATUMTABLESINNNN                = LT_P9510
*       OBJECTS              =EXCEPTIONSALL_INFTY_WITH_SUBTY = 1NOTHING_FOUND        = 2NO_OBJECTS           = 3WRONG_CONDITION      = 4WRONG_PARAMETERS     = 5OTHERS               = 6.

2.RH_INSERT_INFTY_EXP

把函数名中的’INSERT’换成*号搜索一下,估计能查到相关的函数,大家自己试一下

      CALL FUNCTION 'RH_INSERT_INFTY_EXP'EXPORTINGFCODE                  = 'INSE'VTASK                  = 'S'ORDER_FLG              = ''COMMIT_FLG             = 'X'TABLESINNNN                  = LT_WPLOG_INSTNNNN                  = LT_PT9510EXCEPTIONSNO_AUTHORIZATION       = 1ERROR_DURING_INSERT    = 2CORR_EXIT              = 3BEGDA_GREATER_ENDDA    = 4NO_INNNN_TNNNN         = 5ADDITIONAL_INNNN_TNNNN = 6OTHERS                 = 7.

注意点

我们用P****结构时,通常会使用一个类的方法,转换成函数提供的结构

      CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_WPLOGEXPORTINGPNNNN = LS_P9510IMPORTINGWPLOG = LS_WPLOG.

前面有个坑,在这里埋一下

之前说到为什么要先read信息类型呢,而不是直接创建,这里我是观察组织结构信息类型表得出的结论。当然像HRP1001这种标准的可能不会出现这种情况,根据自己实际情况使用。

首先

9开头的表,有标准表一样的关键字外,最后面还挂了一个TABNR字段,这是关联他的T表(明细表),列如HRP9510对应的T表就是HRT9510

其次

T表,我关注了两个字段,其中TABNR是与P表做关联的,
那TABSEQNR字段,是作为序列号,这个字段是关键

如果我们不对这个字段进行赋值,INSTER函数会将T表进行覆盖而达不到我们想要的结果。
下面是我写的一段参考PEFROM,多多指点

FORM FRM_INS_INFTY  TABLES   PT_BZBM STRUCTURE ZTHRBG020USING PV_GUIDCHANGING PV_BZZQE_MESSAGE TYPE ZSHR_MESSAGE.DATA:LT_P9510 TYPE TABLE OF P9510,LS_P9510 TYPE P9510.DATA:LT_WPLOG_INS TYPE STANDARD TABLE OF WPLOG.DATA:LS_WPLOG     TYPE WPLOG.DATA:LT_PT9510 TYPE TABLE OF HRT9510,LS_PT9510 TYPE HRT9510.CONSTANTS:LV_PLVAR TYPE PLOG-PLVAR VALUE '01',LV_ISTAT TYPE PLOG-ISTAT VALUE '1',LV_ENDDA TYPE PLOG-ENDDA VALUE '99991231',LV_OTYPE TYPE PLOG-OTYPE VALUE 'O',LV_TABNR TYPE HRTABNR VALUE '1',LV_LANGU TYPE SY-LANGU VALUE '1',LV_INFTY TYPE P9510-INFTY VALUE '9510'.DATA: LV_BEGDA TYPE SY-DATUM.DATA: LT_MESG  TYPE TSMESG.DATA:LT_ZTHRBG020 TYPE TABLE OF ZTHRBG020,LS_ZTHRBG020 TYPE ZTHRBG020.DATA:IDENT  LIKE SY-UZEIT.LV_BEGDA = SY-DATUM.SORT PT_BZBM BY ZGS ORGEH ZHR_BZLX ZHR_GWCJ.LOOP AT PT_BZBM INTO DATA(LS_BZMB).CLEAR:LS_P9510.MOVE-CORRESPONDING LS_BZMB TO LS_ZTHRBG020.LS_ZTHRBG020-GUID = PV_GUID.CALL FUNCTION 'MESSAGES_INITIALIZE'    "消息初始化EXPORTINGI_IDENTIFICATION = IDENTIMPORTINGE_IDENTIFICATION = IDENTEXCEPTIONSOTHERS           = 0.CALL FUNCTION 'MESSAGES_ACTIVE'      "激活消息EXCEPTIONSOTHERS = 1."查询CALL FUNCTION 'RH_READ_INFTY'EXPORTINGPLVAR                = LV_PLVAROTYPE                = LV_OTYPEOBJID                = LS_BZMB-ORGEHINFTY                = '9510'ISTAT                = LV_ISTATBEGDA                = SY-DATUMENDDA                = SY-DATUMTABLESINNNN                = LT_P9510
*       OBJECTS              =EXCEPTIONSALL_INFTY_WITH_SUBTY = 1NOTHING_FOUND        = 2NO_OBJECTS           = 3WRONG_CONDITION      = 4WRONG_PARAMETERS     = 5OTHERS               = 6.IF SY-SUBRC <> 0.
* Implement suitable error handling hereENDIF.READ TABLE LT_P9510 INTO DATA(IS_P9510) INDEX 1.IF SY-SUBRC = 0.LS_P9510-PLVAR = IS_P9510-PLVAR.LS_P9510-OTYPE = IS_P9510-OTYPE.LS_P9510-OBJID = IS_P9510-OBJID.LS_P9510-ISTAT = IS_P9510-ISTAT.LS_P9510-BEGDA = IS_P9510-BEGDA.LS_P9510-ENDDA = IS_P9510-ENDDA.LS_P9510-INFTY = IS_P9510-INFTY.LS_P9510-ZHR_BZZQ = IS_P9510-ZHR_BZZQ .LS_P9510-TABNR = IS_P9510-TABNR.LS_P9510-AEDTM = SY-DATUM.LS_P9510-UNAME = SY-UNAME.CLEAR:LS_WPLOG,LT_WPLOG_INS.CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_WPLOGEXPORTINGPNNNN = LS_P9510IMPORTINGWPLOG = LS_WPLOG.APPEND LS_WPLOG TO LT_WPLOG_INS.CLEAR:LS_PT9510,LT_PT9510.SELECT * FROM HRT9510 INTO CORRESPONDING FIELDS OF TABLE LT_PT9510 WHERE TABNR = LS_P9510-TABNR."查看岗位层级的行号SORT LT_PT9510 DESCENDING BY TABNR.READ TABLE LT_PT9510 ASSIGNING FIELD-SYMBOL(<FS_PT9510>)  WITH KEY ZHR_GWCJ = LS_BZMB-ZHR_GWCJ.IF SY-SUBRC = 0.<FS_PT9510>-ZHR_GWCJ = LS_BZMB-ZHR_GWCJ.<FS_PT9510>-ZHR_BZZS = LS_BZMB-ZSQBZS.<FS_PT9510>-ZHR_ZBZS01 = LS_BZMB-ZBZS01.<FS_PT9510>-ZHR_ZBZS02 = LS_BZMB-ZBZS02.<FS_PT9510>-ZHR_ZBZS03 = LS_BZMB-ZBZS03.<FS_PT9510>-ZHR_ZBZS04 = LS_BZMB-ZBZS04.<FS_PT9510>-ZHR_ZBZS05 = LS_BZMB-ZBZS05.<FS_PT9510>-ZHR_ZBZS06 = LS_BZMB-ZBZS06.<FS_PT9510>-ZHR_ZBZS07 = LS_BZMB-ZBZS07.<FS_PT9510>-ZHR_ZBZS08 = LS_BZMB-ZBZS08.<FS_PT9510>-ZHR_ZBZS09 = LS_BZMB-ZBZS09.<FS_PT9510>-ZHR_ZBZS10 = LS_BZMB-ZBZS10.<FS_PT9510>-ZHR_ZBZS11 = LS_BZMB-ZBZS11.<FS_PT9510>-ZHR_ZBZS12 = LS_BZMB-ZBZS12.ELSE.READ TABLE LT_PT9510 INTO DATA(IS_PT9510) INDEX 1.IF SY-SUBRC = 0.LS_PT9510-TABNR = LS_P9510-TABNR.LS_PT9510-TABSEQNR = IS_PT9510-TABSEQNR + 1.LS_PT9510-ZHR_GWCJ = LS_BZMB-ZHR_GWCJ.LS_PT9510-ZHR_BZZS = LS_BZMB-ZSQBZS.LS_PT9510-ZHR_ZBZS01 = LS_BZMB-ZBZS01.LS_PT9510-ZHR_ZBZS02 = LS_BZMB-ZBZS02.LS_PT9510-ZHR_ZBZS03 = LS_BZMB-ZBZS03.LS_PT9510-ZHR_ZBZS04 = LS_BZMB-ZBZS04.LS_PT9510-ZHR_ZBZS05 = LS_BZMB-ZBZS05.LS_PT9510-ZHR_ZBZS06 = LS_BZMB-ZBZS06.LS_PT9510-ZHR_ZBZS07 = LS_BZMB-ZBZS07.LS_PT9510-ZHR_ZBZS08 = LS_BZMB-ZBZS08.LS_PT9510-ZHR_ZBZS09 = LS_BZMB-ZBZS09.LS_PT9510-ZHR_ZBZS10 = LS_BZMB-ZBZS10.LS_PT9510-ZHR_ZBZS11 = LS_BZMB-ZBZS11.LS_PT9510-ZHR_ZBZS12 = LS_BZMB-ZBZS12.APPEND LS_PT9510 TO LT_PT9510.ENDIF.ENDIF.CALL FUNCTION 'RH_INSERT_INFTY_EXP'EXPORTINGFCODE                  = 'INSE'VTASK                  = 'S'ORDER_FLG              = ''COMMIT_FLG             = 'X'TABLESINNNN                  = LT_WPLOG_INSTNNNN                  = LT_PT9510EXCEPTIONSNO_AUTHORIZATION       = 1ERROR_DURING_INSERT    = 2CORR_EXIT              = 3BEGDA_GREATER_ENDDA    = 4NO_INNNN_TNNNN         = 5ADDITIONAL_INNNN_TNNNN = 6OTHERS                 = 7.ELSE.LS_P9510-PLVAR = LV_PLVAR.LS_P9510-OTYPE = LV_OTYPE.LS_P9510-OBJID = LS_BZMB-ORGEH.LS_P9510-ISTAT = LV_ISTAT.LS_P9510-BEGDA = LV_BEGDA.LS_P9510-ENDDA = LV_ENDDA.LS_P9510-INFTY = LV_INFTY.LS_P9510-ZHR_BZZQ = PV_BZZQ.LS_P9510-AEDTM = SY-DATUM.LS_P9510-UNAME = SY-UNAME.CLEAR:LS_WPLOG,LT_WPLOG_INS.CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PNNNN_TO_WPLOGEXPORTINGPNNNN = LS_P9510IMPORTINGWPLOG = LS_WPLOG.LS_PT9510-TABSEQNR = LS_PT9510-TABSEQNR + 1.LS_PT9510-ZHR_GWCJ = LS_BZMB-ZHR_GWCJ.LS_PT9510-ZHR_BZZS = LS_BZMB-ZSQBZS.LS_PT9510-ZHR_ZBZS01 = LS_BZMB-ZBZS01.LS_PT9510-ZHR_ZBZS02 = LS_BZMB-ZBZS02.LS_PT9510-ZHR_ZBZS03 = LS_BZMB-ZBZS03.LS_PT9510-ZHR_ZBZS04 = LS_BZMB-ZBZS04.LS_PT9510-ZHR_ZBZS05 = LS_BZMB-ZBZS05.LS_PT9510-ZHR_ZBZS06 = LS_BZMB-ZBZS06.LS_PT9510-ZHR_ZBZS07 = LS_BZMB-ZBZS07.LS_PT9510-ZHR_ZBZS08 = LS_BZMB-ZBZS08.LS_PT9510-ZHR_ZBZS09 = LS_BZMB-ZBZS09.LS_PT9510-ZHR_ZBZS10 = LS_BZMB-ZBZS10.LS_PT9510-ZHR_ZBZS11 = LS_BZMB-ZBZS11.LS_PT9510-ZHR_ZBZS12 = LS_BZMB-ZBZS12.APPEND LS_PT9510 TO LT_PT9510.AT END OF ORGEH.APPEND LS_WPLOG TO LT_WPLOG_INS.CALL FUNCTION 'RH_INSERT_INFTY_EXP'EXPORTINGFCODE                  = 'INSE'VTASK                  = 'S'ORDER_FLG              = ''COMMIT_FLG             = 'X'TABLESINNNN                  = LT_WPLOG_INSTNNNN                  = LT_PT9510EXCEPTIONSNO_AUTHORIZATION       = 1ERROR_DURING_INSERT    = 2CORR_EXIT              = 3BEGDA_GREATER_ENDDA    = 4NO_INNNN_TNNNN         = 5ADDITIONAL_INNNN_TNNNN = 6OTHERS                 = 7.CLEAR:LS_PT9510,LT_PT9510.ENDAT.ENDIF.IF SY-SUBRC = 0.COMMIT WORK AND WAIT.LS_ZTHRBG020-MSGTY = 'S'.LS_ZTHRBG020-MSGTX = '更新成功'.E_MESSAGE-MSGTY = 'S'.E_MESSAGE-MSGTX = '更新成功'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.CALL FUNCTION 'MESSAGES_GIVE'     "获取消息TABLEST_MESG = LT_MESG.READ TABLE LT_MESG INTO DATA(LS_MESG) WITH KEY MSGTY = 'E'.IF SY-SUBRC = 0.LS_ZTHRBG020-MSGTY = LS_MESG-MSGTY.LS_ZTHRBG020-MSGTX = LS_MESG-TEXT.E_MESSAGE-MSGTY = LS_MESG-MSGTY.E_MESSAGE-MSGTX = LS_MESG-TEXT.ELSE.LS_ZTHRBG020-MSGTY = 'E'.LS_ZTHRBG020-MSGTX = '更新失败'.E_MESSAGE-MSGTY = 'E'.E_MESSAGE-MSGTX = '更新失败'.ENDIF.ENDIF.APPEND LS_ZTHRBG020 TO LT_ZTHRBG020.CLEAR:LS_BZMB,LS_ZTHRBG020.ENDLOOP.MODIFY  ZTHRBG020 FROM TABLE LT_ZTHRBG020.IF SY-SUBRC = 0.COMMIT WORK AND WAIT.ELSE.ROLLBACK WORK.ENDIF.ENDFORM.

HR模块-组织信息类型创建-PP01相关推荐

  1. SAP HR模块的基础数据表和增强配置

    信息类型是SAP HR模块数据单元,用于对人员数据的记录和维护,是HR的基础.信息类型按照其创建方式的不同可以分为:人事信息类型.组织信息类型.信息类型数据的维护主要在事物码PA30.PA40.po1 ...

  2. HR HRP1001创建更新信息类型1001数据,RH_INSERT_INFTY_1001_EXT

    信息类型1001是维护组织机构与上级关系表,使用 RH_PNNNN_MAINTAIN创建更新时总是失败,换RH_INSERT_INFTY_1001_EXT去做,表(hrp1001) FORM SAVE ...

  3. HR HRP1000创建更新信息类型1000数据,RH_PNNNN_MAINTAIN

    组织结构基本信息存储在信息类型1000中,插入和定界数据都是用函数:RH_PNNNN_MAINTAIN 插入,定界(更新)都是 ACT_FCODE  =  'INSE' DATA: LS_RETURN ...

  4. SAP HR模块配置假期日历和缺勤类型

    目录 一.配置假期日历 二.配置缺勤信息类型 2.1.定义缺勤类型 2.2.定义缺勤的计算规则 2.3.分配缺勤计算规则到缺勤类型 一.配置假期日历 SAP的HR模块中,业务顾问在实施的时候一般会配置 ...

  5. SAP HR信息类型

    编号 名称 说明 0000 人事事件 Actions 对各种人事行为进行管理的信息类型 0001 组织分配 Organizational Assignment 0002 个人数据 Personal D ...

  6. web服务器未能创建类型,WEBSERVICE 分析器错误信息: 未能创建类型

    我把SERVICE,放在我网站空间里面,我自己建了个目录,里面放我的WEBSERVICE,但是执行的时候不好用 提示如下 "/"应用程序中的服务器错误. ------------- ...

  7. HCM 初学 ( 二 ) - 信息类型

    一.What is a Infotype? SAP 信息类型是一个信息单元,用于存储管理目的所需的员工相关数据. 它具有 4 位数字代码和相关名称. 它将相似的数据存储到一个屏幕中. 例如,个人数据( ...

  8. 【学习笔记】SAP CO模块概念信息(上)

    Accounting Architecture : 会计模块架构 主要分为以下三个部分: Treasury:主要关注资金: Financial Accounting:FI-总账.应收.应付等等: Co ...

  9. 在模糊查询中怎样事先加载页面_8种信息类型,中后台产品功能自查清单

    产品经理在梳理产品需求文档时需要把每一个功能的逻辑关系.交互方式都整理全面,为了避免疏漏,与开发评审前,建议每位产品都 Check 几遍文档.本文整理了一份中后台产品功能自查清单,供大家参考,如有不全 ...

  10. $.getjson异常信息提示_8种信息类型,中后台产品功能自查清单

    点个赞 一起玩耍! 产品经理在梳理产品需求文档时需要把每一个功能的逻辑关系.交互方式都整理全面,为了避免疏漏,与开发评审前,建议每位产品都 Check 几遍文档.本文整理了一份中后台产品功能自查清单, ...

最新文章

  1. 转】windows下使用批处理脚本实现多个版本的JDK切换
  2. java独立承担,Java使用独立文件服务器
  3. python oop求三角形面积公式_python学习日记(OOP——类的内置方法)
  4. 【Python学习系列七】Windows下部署Python推荐系统recsys
  5. 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
  6. linux中的软RAID实现,逻辑卷和btrfs文件系统
  7. android double转string_Java 数组转 List 的三种方式及对比
  8. java多线程阻塞队列_阻塞队列和多线程消费者,如何知道何时停止
  9. centos7 go yum 安装_超详细的centos7下载安装Postgresql11(yum安装)教程
  10. 具有相同模式的字符串,使用正则表达式组的提取和替换的案例
  11. java精确度_java的数值精度问题 | 学步园
  12. 淘宝京东卖家可以用到的小工具和素材资源网站
  13. 请教高手,如何取得Target属性
  14. 一键解决WinRAR的有关问题
  15. ros nh.parmam 用法
  16. 『TensorFlow』SSD源码学习_其五:TFR数据读取数据预处理
  17. 阿里云对象存储以及api
  18. sql server的缺陷 将截断字符串或二进制数据 哪个字段
  19. 【OpenCV 例程300篇】202. 查表快速替换(cv.LUT)
  20. 王者荣耀服务器什么时候增加人数,王者荣耀服务器连续两天崩!春节每人游戏时间暴涨75%,玩家要背锅?...

热门文章

  1. Linux服务器重启导致数据丢失问题解决
  2. Java:爬取代理ip,并使用代理IP刷uv
  3. 转:有关Forth语言
  4. 道法演讲之马云从事教育
  5. 属性管理器没有Microsoft.Cpp.x64.user的解决办法
  6. 用python解决放苹果问题_放苹果问题(组合数学经典)
  7. 腾讯QQ空间穿越时光轴3D特效
  8. js 十六进制,八进制,二进制
  9. cocos ClippingNode 之绘制六边形战力(一)
  10. Maven – 父子 POM 示例