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.
,