SAPABAPHR批量上传删除文件图片PDFWORD等.docx

上传人:b****6 文档编号:8882783 上传时间:2023-02-02 格式:DOCX 页数:13 大小:35.80KB
下载 相关 举报
SAPABAPHR批量上传删除文件图片PDFWORD等.docx_第1页
第1页 / 共13页
SAPABAPHR批量上传删除文件图片PDFWORD等.docx_第2页
第2页 / 共13页
SAPABAPHR批量上传删除文件图片PDFWORD等.docx_第3页
第3页 / 共13页
SAPABAPHR批量上传删除文件图片PDFWORD等.docx_第4页
第4页 / 共13页
SAPABAPHR批量上传删除文件图片PDFWORD等.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

SAPABAPHR批量上传删除文件图片PDFWORD等.docx

《SAPABAPHR批量上传删除文件图片PDFWORD等.docx》由会员分享,可在线阅读,更多相关《SAPABAPHR批量上传删除文件图片PDFWORD等.docx(13页珍藏版)》请在冰豆网上搜索。

SAPABAPHR批量上传删除文件图片PDFWORD等.docx

SAPABAPHR批量上传删除文件图片PDFWORD等

通过一个文件夹批量上传文件,图片,PDF,WORd等,当同一个文件名的文档类型及业务对象相同时,删除旧文件。

上传的文件名为8位,文件名=员工号

输入屏幕

输出屏幕

*&---------------------------------------------------------------------*

*& Report  ZRPT_HR_PA001                                               *

*&                                                                     *

*&---------------------------------------------------------------------*

*& Program ID   :

                                       *

*& Program Name :

 <批量上传人员的电子文档>                              *

*&---------------------------------------------------------------------*

REPORT  ZRPT_HR_PA001                           .

INCLUDE ZRPT_HR_PA001_TOP.

*---------------------------------------------------------------------*

*          AT SELECTION-SCREEN

*---------------------------------------------------------------------*

AT SELECTION-SCREEN.

*屏幕输入正确性判断

  PERFORM PER_CHECK_SCREEN.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_WQJ."上传路径

*取出上传路径

  PERFORM PER_GET_P_WQJ.

*---------------------------------------------------------------------*

*          START-OF-SELECTION

*---------------------------------------------------------------------*

START-OF-SELECTION.

*取出所选文件夹数据

  PERFORM PER_GET_WQJ.

*上传文件

  PERFORM PER_UPLOAD_DATA.

*ALV输出

  PERFORM PER_ALV_OUT.

END-OF-SELECTION.

  INCLUDE ZRPT_HR_PA001_FORM.

*&---------------------------------------------------------------------*

*&  包括              ZRPT_HR_PA001_TOP                                *

*&---------------------------------------------------------------------*

TABLES:

TOAOM,"业务对象

       TOADV,"文档类型

       PA0001,"员工主数据

       TOAHR."文档类型

*类型池定义

TYPE-POOLS:

 SLIS.

DATA:

G_PATH TYPE STRING,"

     G_FILTER TYPE STRING,"文件类型

     G_WQLX LIKE TOADD-DOC_TYPE,"文件类型

     G_COUNT TYPE I,

     G_FILENAME(40) TYPE C,

     G_FILEEXT(10) TYPE C ,

     G_LEN TYPE I,

     G_SAPOBJID LIKE SAPB-SAPOBJID,"上传照片文件名

     G_SAPPFAD LIKE SAPB-SAPPFAD,"上传路径

     G_NUM(10) TYPE I,

     G_FILE_NAME LIKE RLGRAP-FILENAME."SAP文件路径

*文件夹内容

DATA:

TAB_G_FILETAB TYPE TABLE OF FILE_INFO WITH HEADER LINE.

DATA:

TAB_G_TOAHR TYPE TOAHR .

*上传成功后得到的员工编号ID

DATA:

 BEGIN OF TAB_G_TOAV0 OCCURS 1.

        INCLUDE STRUCTURE TOAV0.

DATA:

 END OF TAB_G_TOAV0.

*ALV输出

DATA:

BEGIN OF TAB_G_ALVOUT OCCURS 0.

       INCLUDE STRUCTURE ZHR_LOG_PA001.

DATA:

END OF TAB_G_ALVOUT.

*ALV定义

DATA:

 G_ALV_FIELD    TYPE SLIS_FIELDCAT_ALV,

      G_ALV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

      G_LAYOUT       TYPE SLIS_LAYOUT_ALV.

*---------------------------------------------------------------------*

*          SELECTION-SCREEN

*---------------------------------------------------------------------*

PARAMETERS:

 P_YWDX LIKE TOAV0-AR_OBJECT DEFAULT 'PREL' OBLIGATORY,"业务对象

            P_WDLX LIKE TOADV-AR_OBJECT OBLIGATORY,"文档类型

            P_WQJ  LIKE RLGRAP-FILENAME OBLIGATORY,"上传路径

            P_ZHF AS CHECKBOX."可重复

 

*&---------------------------------------------------------------------*

*&  包括              ZRPT_HR_PA001_FORM                               *

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&      Form  PER_CHECK_SCREEN

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM PER_CHECK_SCREEN .

*业务对象判断正确性

  CHECK P_YWDX  IS NOT INITIAL.

  SELECT SINGLE *

  FROM TOAOM

  WHERE SAP_OBJECT = P_YWDX.

  IF SY-SUBRC <> 0.

    MESSAGE '无此业务对象' TYPE 'E'.

    EXIT.

  ENDIF.

*文档类型判断正确性

  CHECK P_WDLX IS NOT INITIAL.

  CLEAR:

G_WQLX.

  SELECT SINGLE DOC_TYPE

  FROM TOADV

  INTO G_WQLX

  WHERE AR_OBJECT = P_WDLX.

  IF SY-SUBRC <> 0.

    MESSAGE '无此文档类型' TYPE 'E'.

    EXIT.

  ENDIF.

ENDFORM.                    " PER_CHECK_SCREEN

*&---------------------------------------------------------------------*

*&      Form  PER_GET_P_WQJ

*&---------------------------------------------------------------------*

*       读取文件夹

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM PER_GET_P_WQJ .

*读取文件夹

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE

    EXPORTING

      WINDOW_TITLE    = 'File Directory'

      INITIAL_FOLDER  = 'C:

\'

    CHANGING

      SELECTED_FOLDER = G_PATH.

  CALL METHOD CL_GUI_CFW=>FLUSH.

  CONCATENATE G_PATH '' INTO P_WQJ.

ENDFORM.                    " PER_GET_P_WQJ

*&---------------------------------------------------------------------*

*&      Form  PER_GET_WQJ

*&---------------------------------------------------------------------*

*       读取文件夹内容

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM PER_GET_WQJ .

*读取文件夹内容

  CLEAR:

TAB_G_FILETAB,TAB_G_FILETAB[],G_FILTER.

*文件夹路径

  G_PATH = P_WQJ .

* 读取文件类型

  CONCATENATE '*.' G_WQLX INTO G_FILTER.

*取出文件夹数据

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES

    EXPORTING

      DIRECTORY                   = G_PATH    "文件夹路径

      FILTER                      = G_FILTER  "文件类型'*.jpg'

    CHANGING

      FILE_TABLE                  = TAB_G_FILETAB[] "输入文件

      COUNT                       = G_COUNT

    EXCEPTIONS

      CNTL_ERROR                  = 1

      DIRECTORY_LIST_FILES_FAILED = 2

      WRONG_PARAMETER             = 3

      ERROR_NO_GUI                = 4

      NOT_SUPPORTED_BY_GUI        = 5

      OTHERS                      = 6.

*判断文件的长度

  LOOP AT TAB_G_FILETAB.

    SPLIT TAB_G_FILETAB-FILENAME AT '.' INTO G_FILENAME G_FILEEXT.

    G_LEN = STRLEN( G_FILENAME ) .

    IF G_LEN <> 8 .

      MESSAGE E000(OO) WITH '文件名长度必须等于8位'.

    ENDIF.

  ENDLOOP.

ENDFORM.                    " PER_GET_WQJ

*&---------------------------------------------------------------------*

*&      Form  PER_UPLOAD_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM PER_UPLOAD_DATA .

  CLEAR:

TAB_G_ALVOUT,TAB_G_ALVOUT[].

  LOOP AT TAB_G_FILETAB.

*自动分配流水号

    CALL FUNCTION 'QF05_RANDOM_INTEGER'

      EXPORTING

        RAN_INT_MAX   = 99999999

        RAN_INT_MIN   = 1

      IMPORTING

        RAN_INT       = G_NUM

      EXCEPTIONS

        INVALID_INPUT = 1

        OTHERS        = 2.

    TAB_G_ALVOUT-ZHRSORT = G_NUM.

*判断是否有此员工号

    SELECT SINGLE *

    FROM PA0001

    WHERE PERNR = TAB_G_FILETAB-FILENAME+0(8). "员工号

    IF SY-SUBRC = 0.

*上传路径

        CONCATENATE G_PATH '\' TAB_G_FILETAB-FILENAME INTO G_SAPPFAD.

*上传照片编号

        CONCATENATE TAB_G_FILETAB-FILENAME+0(8) '0002' INTO G_SAPOBJID.

*判断是否可以重复上传

        IF P_ZHF = ''.

*判断员工文档类型是否已存在

          CLEAR:

TAB_G_TOAHR.

          SELECT SINGLE *

          FROM TOAHR

          INTO TAB_G_TOAHR

          WHERE OBJECT_ID = G_SAPOBJID "照片号

            AND AR_OBJECT = P_WDLX     "文档类型

            AND SAP_OBJECT = P_YWDX.   "业务对象

          IF SY-SUBRC = 0.

            TAB_G_ALVOUT-MANDT = SY-MANDT.     "集团

            TAB_G_ALVOUT-ZHRUNAME = SY-UNAME.  "创建人

            TAB_G_ALVOUT-ZHRDATUM = SY-DATUM.  "创建日期

            TAB_G_ALVOUT-ZHRUZEIT = SY-UZEIT.  "创建日间

            TAB_G_ALVOUT-PERNR    = TAB_G_FILETAB-FILENAME+0(8). "员工号

            TAB_G_ALVOUT-ZHRYWDX  = P_YWDX.    "文档对象

            TAB_G_ALVOUT-ZHRWDLX  = P_WDLX.    "文档类型

            TAB_G_ALVOUT-ZHRWQJ   = G_SAPPFAD. "上传路径

            TAB_G_ALVOUT-ZHRMSGTY = '已存在'.

            APPEND TAB_G_ALVOUT.

            CLEAR:

TAB_G_ALVOUT.

            CONTINUE.

          ENDIF.

        ENDIF.

*上传照片

        CLEAR:

TAB_G_TOAV0,TAB_G_TOAV0[].

        CALL FUNCTION 'ZFUN_HR_ARCHIV_CREATE_FILE'

          EXPORTING

            AR_OBJECT               = P_WDLX     "文档类型

            OBJECT_ID               = G_SAPOBJID "照片

            SAP_OBJECT              = P_YWDX     "业务对象

            DOC_TYPE                = G_WQLX     "文件类型

            PATH                    = G_SAPPFAD  "上传路径

          TABLES

            TOAV0                   = TAB_G_TOAV0 "输出ID

          EXCEPTIONS

            ERROR_CONECTIONTABLE    = 1

            ERROR_PARAMETER         = 2

            ERROR_ARCHIV            = 3

            ERROR_UPLOAD            = 4

            ERROR_KERNEL            = 5

            NO_ENTRY_POSSIBLE       = 6

            ERROR_COMUNICATIONTABLE = 7

            OTHERS                  = 8.

        IF SY-SUBRC <> 0.

*上传照片失败

          CALL FUNCTION 'MESSAGE_TEXT_BUILD'

            EXPORTING

              MSGID               = SY-MSGID

              MSGNR               = SY-MSGTY

              MSGV1               = SY-MSGV1

              MSGV2               = SY-MSGV2

              MSGV3               = SY-MSGV3

              MSGV4               = SY-MSGV4

            IMPORTING

              MESSAGE_TEXT_OUTPUT = TAB_G_ALVOUT-ZHRMSGTY.

          TAB_G_ALVOUT-MANDT    = SY-MANDT.   "集团

          TAB_G_ALVOUT-ZHRUNAME = SY-UNAME.   "创建人

          TAB_G_ALVOUT-ZHRDATUM = SY-DATUM.   "创建日期

          TAB_G_ALVOUT-ZHRUZEIT = SY-UZEIT.   "创建日间

          TAB_G_ALVOUT-PERNR    = TAB_G_FILETAB-FILENAME+0(8).  "员工号

          TAB_G_ALVOUT-ZHRYWDX  = P_YWDX.     "业务对象

          TAB_G_ALVOUT-ZHRWDLX  = P_WDLX.     "文档类型

          TAB_G_ALVOUT-ZHRWQJ   = G_SAPPFAD.  "上传路径

          TAB_G_ALVOUT-ZHRMESSAGE = 'E'.

          CONCATENATE TAB_G_ALVOUT-ZHRMSGTY '存储上传失败' INTO TAB_G

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1