当前位置:   article > 正文

【SAP-HCM】--HR模块员工照片录入ARCHIV_CREATE_FILE_sap-hr-员工照片配置

sap-hr-员工照片配置

【被懒神训斥:好久没写代码的第三天】

确实好久没写了,因为现在的工作内容更多偏向于业务,不过想了想,代码是自己的根本,所以今天决定每天一更,把以前的笔记回顾

业务需求:要在PA30/PA40中显示员工的照片

业务背景:顾问已经将照片的内容配置项进行了配置

(OANR/OAC2/OAC3)

代码:

  1. *----------------------------------------------------------------------*
  2. *                       类 型 池、数 据 表 引 用
  3. *----------------------------------------------------------------------*
  4. INCLUDE: <ICON>.
  5. TABLES: PA0001.
  6. *----------------------------------------------------------------------*
  7. *                         内表、工作区 定 义
  8. *----------------------------------------------------------------------*
  9. DATA: FILETAB TYPE TABLE OF FILE_INFO WITH HEADER LINE.
  10. *----------------------------------------------------------------------*
  11. *                           常量、变量 定 义
  12. *----------------------------------------------------------------------*
  13. DATA: SAPOBJID LIKE SAPB-SAPOBJID,
  14.       SAPPFAD  LIKE SAPB-SAPPFAD.
  15. DATA: GD_PATH TYPE STRING,
  16.       COUNT   TYPE I.
  17. DATA: FILENAME(40TYPE C,
  18.       FILEEXT(10)  TYPE C,
  19.       LEN          TYPE I,
  20.       FLAG         TYPE C,
  21.       MESS         TYPE STRING.
  22. *----------------------------------------------------------------------*
  23. *                           SELECTION-SCREEN
  24. *----------------------------------------------------------------------*
  25. SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-T01.
  26. *重点图片名称要等于系统员工编号
  27. PARAMETERS: FILEPATH LIKE RLGRAP-FILENAME."上传文件夹路径
  28. SELECTION-SCREEN END OF BLOCK BLK1.
  29. *----------------------------------------------------------------------*
  30. *                         AT SELECTION-SCREEN
  31. *----------------------------------------------------------------------*
  32. AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILEPATH.
  33.   CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
  34.     EXPORTING
  35.       WINDOW_TITLE    = 'File Directory'
  36.       INITIAL_FOLDER  = 'C:\'
  37.     CHANGING
  38.       SELECTED_FOLDER = GD_PATH.
  39.   CALL METHOD CL_GUI_CFW=>FLUSH.
  40.   CONCATENATE GD_PATH '' INTO FILEPATH.
  41. *----------------------------------------------------------------------*
  42. *                         START-OF-SELECTION
  43. *----------------------------------------------------------------------*
  44. START-OF-SELECTION.
  45.   " 设置新的Gui抬头
  46.   SY-TITLE = TEXT-H01.
  47.   GD_PATH = FILEPATH .
  48.   CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES
  49.     EXPORTING
  50.       DIRECTORY                   = GD_PATH
  51.       FILTER                      = '*.jpg' "这里定义了JPG的格式的图片,按配置来
  52.     CHANGING
  53.       FILE_TABLE                  = FILETAB[]
  54.       COUNT                       = COUNT
  55.     EXCEPTIONS
  56.       CNTL_ERROR                  = 1
  57.       DIRECTORY_LIST_FILES_FAILED = 2
  58.       WRONG_PARAMETER             = 3
  59.       ERROR_NO_GUI                = 4
  60.       NOT_SUPPORTED_BY_GUI        = 5
  61.       OTHERS                      = 6.
  62.   CLEAR: FLAG.
  63. *判断图片编号是否等于8位(使用员工工号和照片同名)
  64.   LOOP AT FILETAB.
  65.     SPLIT FILETAB-FILENAME AT '.' INTO FILENAME FILEEXT.
  66.     LEN = STRLEN( FILENAME ) .
  67.     IF LEN <> 8 .
  68.       FLAG = 'X'.
  69.       CONCATENATE '@5C@' '文件' FILETAB-FILENAME  '的文件名' FILENAME '长度必须等于8位' INTO MESS.
  70.       CONDENSE MESS.
  71.       WRITE: / MESS.
  72.     ENDIF.
  73.   ENDLOOP.
  74.   IF FLAG = 'X'.
  75.     EXIT.
  76.   ENDIF.
  77.   LOOP AT FILETAB.
  78.     CONCATENATE GD_PATH '\' FILETAB-FILENAME INTO SAPPFAD.
  79. *判断员工编号是否存在
  80.     SELECT SINGLE *
  81.       FROM PA0001
  82.      WHERE PERNR = FILETAB-FILENAME+0(8).
  83.     IF SY-SUBRC = 0.
  84. *判断员工编号是否已过期
  85.       SELECT SINGLE *
  86.        FROM PA0001
  87.        WHERE PERNR = FILETAB-FILENAME+0(8)
  88.          AND BEGDA =< SY-DATUM
  89.          AND ENDDA >= SY-DATUM.
  90.       IF SY-SUBRC = 0.
  91.         CONCATENATE FILETAB-FILENAME+0(8) '0002' INTO SAPOBJID.
  92.         CALL FUNCTION 'ARCHIV_CREATE_FILE'
  93.           EXPORTING
  94.             AR_OBJECT               = 'HRICOLFOTO'
  95.             OBJECT_ID               = SAPOBJID  "工号拼接0002
  96.             SAP_OBJECT              = 'PREL'
  97.             DOC_TYPE                = 'JPG'
  98.             PATH                    = SAPPFAD  "指定具体路径,指定到某一个图片
  99.           EXCEPTIONS
  100.             ERROR_CONECTIONTABLE    = 1
  101.             ERROR_PARAMETER         = 2
  102.             ERROR_ARCHIV            = 3
  103.             ERROR_UPLOAD            = 4
  104.             ERROR_KERNEL            = 5
  105.             NO_ENTRY_POSSIBLE       = 6
  106.             ERROR_COMUNICATIONTABLE = 7
  107.             OTHERS                  = 8.
  108.         IF SY-SUBRC <> 0.
  109.           MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  110.                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  111.         ELSE.
  112.           WRITE : / '@5B@', 'Upload ',SAPPFAD,'To pernr ',FILETAB-FILENAME+0(8),'Sccuess!'.
  113.         ENDIF.
  114.       ELSE.
  115.         WRITE : / '@5C@', 'ERROR  ',SAPPFAD, '此员工编号 ', FILETAB-FILENAME+0(8),'已过期!'.
  116.       ENDIF.
  117.     ELSE.
  118.       WRITE : / '@5C@', 'ERROR  ',SAPPFAD, '此员工编号 ', FILETAB-FILENAME+0(8),'不存在!'.
  119.     ENDIF.
  120.   ENDLOOP.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/525956
推荐阅读
相关标签
  

闽ICP备14008679号