日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HR模块-组织信息类型创建-PP01

發布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HR模块-组织信息类型创建-PP01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、組織模塊相關表
  • 二、創建相關函數和使用
    • 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。