zoukankan      html  css  js  c++  java
  • 员工简历-获取多个人的照片及信息

    FUNCTION ZHR_PA02.
    *"----------------------------------------------------------------------
    *"*"本地接口:
    *"  IMPORTING
    *"     VALUE(IN_OBJID) TYPE  HROBJID OPTIONAL
    *"     VALUE(IN_PERNR) TYPE  PERSNO OPTIONAL
    *"     VALUE(IN_NACHN) TYPE  NACHN OPTIONAL
    *"  TABLES
    *"      RESULT_PA02 STRUCTURE  ZAPP_PA02
    *"----------------------------------------------------------------------
      IF IN_OBJID IS NOT INITIAL.
    
        DATA:LT_STRUC LIKE TABLE OF STRUC WITH HEADER LINE,
             LT_OBJEC LIKE TABLE OF OBJEC WITH HEADER LINE.
    
        DATA:GT_STRUC LIKE TABLE OF STRUC WITH HEADER LINE,
             GT_OBJEC LIKE TABLE OF OBJEC WITH HEADER LINE,
             WT_OBJEC LIKE TABLE OF OBJEC WITH HEADER LINE.
    
        DATA:LS_CONNECT_INFO TYPE  TOAV0.
        DATA:LT_EX_DOCUMENT TYPE TABLE OF TBL1024,
             LS_EX_DOCUMENT TYPE TBL1024,
             LV_LEN         TYPE INT4.
        DATA:L_STRING  TYPE STRING,L_STRING1 TYPE STRING.
        DATA LV_IMAGE TYPE XSTRING.
        DATA:LENGTH  TYPE I,L_IMAGE TYPE XSTRING.
    
        DATA:URL             TYPE STRING,
             GUID            TYPE GUID_32,
             CACHED_RESPONSE TYPE REF TO IF_HTTP_RESPONSE.
    
        DATA:L_USRID LIKE PA0105-USRID.
        DATA:LINES TYPE I,NUM TYPE I.
    
        CALL FUNCTION 'RH_STRUC_GET'
          EXPORTING
            ACT_OTYPE      = 'O'
            ACT_OBJID      = IN_OBJID
            ACT_WEGID      = 'PERS-O'
    *       ACT_INT_FLAG   =
            ACT_PLVAR      = '01'
            ACT_BEGDA      = SY-DATUM
            ACT_ENDDA      = SY-DATUM
          TABLES
    *       RESULT_TAB     =
            RESULT_OBJEC   = LT_OBJEC
            RESULT_STRUC   = LT_STRUC
          EXCEPTIONS
            NO_PLVAR_FOUND = 1
            NO_ENTRY_FOUND = 2
            OTHERS         = 3.
        IF SY-SUBRC <> 0.
    * Implement suitable error handling here
        ENDIF.
    
        DELETE LT_OBJEC WHERE OTYPE <> 'P'.
        SORT LT_OBJEC BY OBJID.
        DELETE ADJACENT DUPLICATES FROM LT_OBJEC COMPARING OBJID.
    
        LOOP AT LT_OBJEC.
          CLEAR:L_USRID.
          RESULT_PA02-PERNR = LT_OBJEC-OBJID.
          RESULT_PA02-NACHN = LT_OBJEC-SHORT.
          SELECT SINGLE GESCH INTO RESULT_PA02-GESCH FROM PA0002
            WHERE PERNR = RESULT_PA02-PERNR.
          SELECT SINGLE USRID INTO L_USRID FROM PA0105 WHERE PERNR = RESULT_PA02-PERNR
            AND USRTY = '0004'.
          RESULT_PA02-FLAG1 =  L_USRID.
          CONDENSE  RESULT_PA02-FLAG1.
          "职位
          CLEAR:GT_OBJEC,GT_OBJEC[],GT_STRUC,GT_STRUC[].
          CALL FUNCTION 'RH_STRUC_GET'
            EXPORTING
              ACT_OTYPE       = 'P'
              ACT_OBJID       = RESULT_PA02-PERNR
              ACT_WEGID       = 'ZPSCOO'
              ACT_PLVAR       = '01'
              ACT_BEGDA       = SY-DATUM
              ACT_ENDDA       = SY-DATUM
              AUTHORITY_CHECK = ''
            TABLES
              RESULT_OBJEC    = GT_OBJEC
              RESULT_STRUC    = GT_STRUC
            EXCEPTIONS
              NO_PLVAR_FOUND  = 1
              NO_ENTRY_FOUND  = 2
              OTHERS          = 3.
          WT_OBJEC[] = GT_OBJEC[].
          DELETE WT_OBJEC WHERE OTYPE NE 'S'.
          CLEAR:NUM.
          DESCRIBE TABLE WT_OBJEC LINES NUM.
          IF NUM > 1.    "如果有多个职位
            LOOP AT WT_OBJEC.
              SEARCH WT_OBJEC-STEXT FOR '党委'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 1.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              IF WT_OBJEC-STEXT = '董事长'.
                WT_OBJEC-OBJID = 2.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '集团董事'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 3.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '集团监事'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 4.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '集团'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 5.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '股份公司董事长'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 6.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '股份公司董事'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 7.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '股份公司监事'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 8.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '股份公司总经理'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 9.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH WT_OBJEC-STEXT FOR '股份公司副总经理'.
              IF SY-SUBRC = 0.
                WT_OBJEC-OBJID = 10.
                MODIFY WT_OBJEC.CLEAR WT_OBJEC.CONTINUE.
              ENDIF.
              SEARCH GT_OBJEC-STEXT FOR '事业部'.
              IF SY-SUBRC = 0.
                GT_OBJEC-OBJID = 11.
                MODIFY GT_OBJEC.CLEAR GT_OBJEC.CONTINUE.
              ENDIF.
            ENDLOOP.
          ENDIF.
    
          SORT WT_OBJEC BY OBJID.
    
          LOOP AT WT_OBJEC WHERE OTYPE = 'S'.
            IF RESULT_PA02-ZHIWEI IS INITIAL.
              RESULT_PA02-ZHIWEI = WT_OBJEC-STEXT.
            ELSE.
              CONCATENATE RESULT_PA02-ZHIWEI '/' WT_OBJEC-STEXT INTO RESULT_PA02-ZHIWEI.
            ENDIF.
    *        delete WT_OBJEC.
    *        SORT WT_OBJEC by begda.
          ENDLOOP.
    
          "读取照片地址
          CLEAR:LS_CONNECT_INFO.
          CALL FUNCTION 'HR_IMAGE_EXISTS'   "检查照片是否存在
            EXPORTING
              P_PERNR               = RESULT_PA02-PERNR
              P_TCLAS               = 'A'
              P_BEGDA               = '18000101'
              P_ENDDA               = '99991231'
            IMPORTING
    *         P_EXISTS              =
              P_CONNECT_INFO        = LS_CONNECT_INFO
            EXCEPTIONS
              ERROR_CONNECTIONTABLE = 1
              OTHERS                = 2.
    
          CLEAR:LV_LEN,LT_EX_DOCUMENT,LT_EX_DOCUMENT[].
          CALL FUNCTION 'ALINK_RFC_TABLE_GET'   "获取照片LINK
            EXPORTING
              IM_DOCID    = LS_CONNECT_INFO-ARC_DOC_ID
              IM_CREPID   = 'A2'
    *         IM_COMPID   =
            IMPORTING
              EX_LENGTH   = LV_LEN
    *         EX_MESSAGE  =
            TABLES
              EX_DOCUMENT = LT_EX_DOCUMENT.
    
          CLEAR:LS_EX_DOCUMENT,L_STRING1,L_STRING,LV_IMAGE,L_IMAGE,LENGTH.
          LOOP AT LT_EX_DOCUMENT INTO LS_EX_DOCUMENT.
            L_STRING1 = LS_EX_DOCUMENT-LINE.
            CONCATENATE L_STRING L_STRING1 INTO L_STRING.
          ENDLOOP.
          LV_IMAGE = L_STRING.
          L_IMAGE = LV_IMAGE.
          LENGTH = XSTRLEN( L_IMAGE ).
    
          CLEAR:URL,GUID,CACHED_RESPONSE.
          CREATE OBJECT CACHED_RESPONSE
            TYPE
            CL_HTTP_RESPONSE
            EXPORTING
              ADD_C_MSG = 1.
    
          CACHED_RESPONSE->SET_DATA( LV_IMAGE ).
          CACHED_RESPONSE->SET_HEADER_FIELD(
          NAME = IF_HTTP_HEADER_FIELDS=>CONTENT_TYPE
          VALUE = 'image/pjpeg' ).
    
          CACHED_RESPONSE->SET_STATUS( CODE = 200 REASON = 'OK' ).
          CACHED_RESPONSE->SERVER_CACHE_EXPIRE_REL( EXPIRES_REL =
          180 ).
    
          CALL FUNCTION 'GUID_CREATE'
            IMPORTING
              EV_GUID_32 = GUID.
    
          CL_WD_UTILITIES=>CONSTRUCT_WD_URL( EXPORTING
          APPLICATION_NAME = 'ZPROTAL_PHOTO'
          IMPORTING OUT_LOCAL_URL = URL ).
    
          CONCATENATE URL '/' GUID SY-UZEIT INTO URL.
          CL_HTTP_SERVER=>SERVER_CACHE_UPLOAD(
          URL = URL
          RESPONSE = CACHED_RESPONSE ).
    
          RESULT_PA02-PIC_ID = URL.
          SHIFT RESULT_PA02-PIC_ID LEFT DELETING LEADING '0'.
    
          APPEND RESULT_PA02. CLEAR RESULT_PA02.
        ENDLOOP.
    ******************测试临时使用
        LOOP AT RESULT_PA02.
          IF IN_OBJID = '11000007'.
            IF RESULT_PA02-PERNR = '00000225' OR RESULT_PA02-PERNR = '00022240'.
              DELETE RESULT_PA02.
              CLEAR RESULT_PA02.
              CONTINUE.
            ENDIF.
          ENDIF.
        ENDLOOP.
    *****************
        DESCRIBE TABLE RESULT_PA02 LINES LINES.
        IF LINES > 1.
          LOOP AT RESULT_PA02.
            READ TABLE LT_STRUC WITH KEY OBJID = RESULT_PA02-PERNR.
            IF SY-SUBRC = 0.
              RESULT_PA02-INDEX1 = LT_STRUC-SEQNR.
            ELSE.
              RESULT_PA02-INDEX1 = 99999.
            ENDIF.
            MODIFY RESULT_PA02.CLEAR RESULT_PA02.
          ENDLOOP.
          SORT RESULT_PA02 BY INDEX1.
        ENDIF.
      ELSE.
    *    DATA:L_NACHN LIKE PA0002-NACHN.
    *    CLEAR L_NACHN.
    *    CONCATENATE '%' IN_NACHN '%' INTO L_NACHN.
    *    IF IN_PERNR IS INITIAL .
    *      SELECT PERNR NACHN INTO CORRESPONDING FIELDS OF TABLE RESULT_PA02
    *        FROM PA0002 WHERE NACHN LIKE L_NACHN.
    *    ELSE.
    *      RESULT_PA02-PERNR = IN_PERNR.
    *      SELECT SINGLE NACHN INTO RESULT_PA02-NACHN FROM PA0002
    *        WHERE PERNR = RESULT_PA02-PERNR.
    *      APPEND RESULT_PA02. CLEAR RESULT_PA02.
    *    ENDIF.
    *
    *    LOOP AT RESULT_PA02.
    *      "职位
    *      CLEAR:GT_OBJEC,GT_OBJEC[],GT_STRUC,GT_STRUC[].
    *      CALL FUNCTION 'RH_STRUC_GET'
    *        EXPORTING
    *          ACT_OTYPE       = 'P'
    *          ACT_OBJID       = RESULT_PA02-PERNR
    *          ACT_WEGID       = 'ZPSCOO'
    *          ACT_PLVAR       = '01'
    *          ACT_BEGDA       = SY-DATUM
    *          ACT_ENDDA       = SY-DATUM
    *          AUTHORITY_CHECK = ''
    *        TABLES
    *          RESULT_OBJEC    = GT_OBJEC
    *          RESULT_STRUC    = GT_STRUC
    *        EXCEPTIONS
    *          NO_PLVAR_FOUND  = 1
    *          NO_ENTRY_FOUND  = 2
    *          OTHERS          = 3.
    *      LOOP AT GT_OBJEC WHERE OTYPE = 'S'.
    *        IF RESULT_PA02-ZHIWEI IS INITIAL.
    *          RESULT_PA02-ZHIWEI = GT_OBJEC-STEXT.
    *        ELSE.
    *          CONCATENATE RESULT_PA02-ZHIWEI '/' GT_OBJEC-STEXT INTO RESULT_PA02-ZHIWEI.
    *        ENDIF.
    *      ENDLOOP.
    *
    *      "读取照片地址
    *      CLEAR:LS_CONNECT_INFO.
    *      CALL FUNCTION 'HR_IMAGE_EXISTS'   "检查照片是否存在
    *        EXPORTING
    *          P_PERNR               = RESULT_PA02-PERNR
    *          P_TCLAS               = 'A'
    *          P_BEGDA               = '18000101'
    *          P_ENDDA               = '99991231'
    *        IMPORTING
    **         P_EXISTS              =
    *          P_CONNECT_INFO        = LS_CONNECT_INFO
    *        EXCEPTIONS
    *          ERROR_CONNECTIONTABLE = 1
    *          OTHERS                = 2.
    *
    *      CLEAR:LV_LEN,LT_EX_DOCUMENT,LT_EX_DOCUMENT[].
    *      CALL FUNCTION 'ALINK_RFC_TABLE_GET'   "获取照片LINK
    *        EXPORTING
    *          IM_DOCID    = LS_CONNECT_INFO-ARC_DOC_ID
    *          IM_CREPID   = 'A2'
    **         IM_COMPID   =
    *        IMPORTING
    *          EX_LENGTH   = LV_LEN
    **         EX_MESSAGE  =
    *        TABLES
    *          EX_DOCUMENT = LT_EX_DOCUMENT.
    *
    *      CLEAR:LS_EX_DOCUMENT,L_STRING1,L_STRING,LV_IMAGE,L_IMAGE,LENGTH.
    *      LOOP AT LT_EX_DOCUMENT INTO LS_EX_DOCUMENT.
    *        L_STRING1 = LS_EX_DOCUMENT-LINE.
    *        CONCATENATE L_STRING L_STRING1 INTO L_STRING.
    *      ENDLOOP.
    *      LV_IMAGE = L_STRING.
    *      L_IMAGE = LV_IMAGE.
    *      LENGTH = XSTRLEN( L_IMAGE ).
    *
    *      CLEAR:URL,GUID,CACHED_RESPONSE.
    *      CREATE OBJECT CACHED_RESPONSE
    *        TYPE
    *        CL_HTTP_RESPONSE
    *        EXPORTING
    *          ADD_C_MSG = 1.
    *
    *      CACHED_RESPONSE->SET_DATA( LV_IMAGE ).
    *      CACHED_RESPONSE->SET_HEADER_FIELD(
    *      NAME = IF_HTTP_HEADER_FIELDS=>CONTENT_TYPE
    *      VALUE = 'image/pjpeg' ).
    *
    *      CACHED_RESPONSE->SET_STATUS( CODE = 200 REASON = 'OK' ).
    *      CACHED_RESPONSE->SERVER_CACHE_EXPIRE_REL( EXPIRES_REL =
    *      180 ).
    *
    *      CALL FUNCTION 'GUID_CREATE'
    *        IMPORTING
    *          EV_GUID_32 = GUID.
    *
    *      CL_WD_UTILITIES=>CONSTRUCT_WD_URL( EXPORTING
    *      APPLICATION_NAME = 'ZPROTAL_PHOTO'
    *      IMPORTING OUT_LOCAL_URL = URL ).
    *
    *      CONCATENATE URL '/' GUID SY-UZEIT INTO URL.
    *      CL_HTTP_SERVER=>SERVER_CACHE_UPLOAD(
    *      URL = URL
    *      RESPONSE = CACHED_RESPONSE ).
    *
    *      RESULT_PA02-PIC_ID = URL.
    *      SHIFT RESULT_PA02-PIC_ID LEFT DELETING LEADING '0'.
    *      MODIFY RESULT_PA02.CLEAR RESULT_PA02.
    *    ENDLOOP.
      ENDIF.
      LOOP AT  RESULT_PA02 .
        IF RESULT_PA02-NACHN IS INITIAL.
          DELETE RESULT_PA02.CLEAR RESULT_PA02.
        ENDIF.
    
      ENDLOOP.
    
    
    
    
    ENDFUNCTION.

    ,

  • 相关阅读:
    OC语言前期准备
    C语言指针
    C语言字符串
    C语言数组
    python语法
    shell脚本命令 运行python文件&python命令行运行python代码
    HTTP Status完整枚举
    CRON表达式
    mybatis-generator生成的mapper中的
    iOS事件的响应和传递机制
  • 原文地址:https://www.cnblogs.com/ckstock/p/11819540.html
Copyright © 2011-2022 走看看