SAP HR照片读取函数以及通过java JCO下载照片到本地

1.SAP定义RFC函数。 SE37 创建函数名:输入变量 I_PERNR TYPE PERNR_D输出变量:MSG_TYPE TYPE ZBAPI_MTYPE MESSAGE TYPE ZBAPI_MSG输出表:ET_IMAGE_BIN STRUCTURE SDOKCNTBINFUNCTION Z_ITF_SELECT_HR_PIC .*"-------------------------------------------------
摘要由CSDN通过智能技术生成
1.SAP定义RFC函数。
   SE37 创建函数名:

函数定义为远程启用的模块,这样才能在JAVA JCO中调用

输入变量 I_PERNR TYPE  PERNR_D
输出变量:MSG_TYPE TYPE  ZBAPI_MTYPE
                  MESSAGE   TYPE  ZBAPI_MSG
输出表:ET_IMAGE_BIN STRUCTURE  SDOKCNTBIN
FUNCTION Z_ITF_SELECT_HR_PIC .
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_PERNR) TYPE  PERNR_D OPTIONAL
*"  EXPORTING
*"     VALUE(MSG_TYPE) TYPE  ZBAPI_MTYPE
*"     VALUE(MESSAGE) TYPE  ZBAPI_MSG
*"  TABLES
*"      ET_IMAGE_BIN STRUCTURE  SDOKCNTBIN
*"----------------------------------------------------------------------

  DATA: p_tclas LIKE pspar-tclas VALUE 'A',
        p_begda LIKE prelp-begda VALUE '18000101',
        p_endda LIKE prelp-endda VALUE '99991231'.
  DATA: l_connect_info LIKE toav0,
        l_exists(1) TYPE c.
  DATA:l_access_info TYPE STANDARD TABLE OF scms_acinf WITH HEADER LINE,
        l_content_txt TYPE STANDARD TABLE OF sdokcntasc,
        l_content_bin TYPE STANDARD TABLE OF sdokcntbin.


   TRANSLATE i_pernr TO UPPER CASE.
  CALL METHOD z_itf_utils=>add_zero
    CHANGING
      c_input = i_pernr.



  CALL FUNCTION 'HR_IMAGE_EXISTS'
    EXPORTING
      p_pernr                   = i_pernr
      p_tclas                   = p_tclas
      p_begda                   = p_begda
      p_endda                   = p_endda
    IMPORTING
      p_exists                  = l_exists
      p_connect_info            = l_connect_info
    EXCEPTIONS
      error_connectiontable = 1
      OTHERS                = 2.
 IF sy-subrc <> 0 OR l_exists <> '1'.
    MSG_TYPE = 'E'.
    MESSAGE = '照片不存在'.

    EXIT.
  ENDIF.



  CALL FUNCTION 'SCMS_DOC_READ'
    EXPORTING
     MANDT              = SY-MANDT
     STOR_CAT           = ''
     CREP_ID            =  l_connect_info-archiv_id
     DOC_ID             = l_connect_info-arc_doc_id
     SIGNATURE                   = 'X'
     RAW_MODE                    = 'X'

   TABLES
     ACCESS_INFO                 = l_access_info
     CONTENT_TXT                 = l_content_txt
     CONTENT_BIN                 = et_image_bin
   EXCEPTIONS
     BAD_STORAGE_TYPE            = 1
     BAD_REQUEST                 = 2
     UNAUTHORIZED                = 3
     COMP_NOT_FOUND              = 4
     NOT_FOUND                   = 5
     FORBIDDEN                   = 6
     CONFLICT                    = 7
     INTERNAL_SERVER_ERROR       = 8
     ERROR_HTTP                  = 9
     ERROR_SIGNATURE             = 10
     ERROR_CONFIG                = 11
     ERROR_FORMAT                = 12
     ERROR_PARAMETER             = 13
     ERROR                       = 14
     OTHERS                      = 15
            .
*
*  IF sy-subrc <> 0 AND sy-msgty <> ''.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  ENDIF.
IF et_image_bin IS NOT INITIAL .
    MSG_TYPE = 'S'.
    MESSAGE = '照片获取成功'.
    ELSE.
    MSG_TYPE = 'E'.
    MESSAGE = '照片获取失败'.
ENDIF.
ENDFUNCTION.

2.编写JAVA代码下载照片(进行一次连接,通过循环员工编号批量下载,jco相关jar包可以联系basis获取,或自行百度下载)
连接SAP函数
```java
package xingfa.payitem;

import java.util.Properties;

public class SAPConnect {

	Properties logonProperties = null;

	public void initSAPAccount() {

		if (logonProperties == null) {
			logonProperties = new Properties();
		}
		// 正式SAP服务器
		logonProperties.put("jco.client.ashost", "xxx.xxx.xxx.xxx"); // 系统的IP地址
		logonProperties.put("jco.client.client", "xxx"); // 要登录的客户端
		logonProperties.put("jco.client.sysnr", "xx"); // 系统编号
		logonProperties.put("jco.client.user", "xxxx"); // 登录用户名
		logonProperties.put("jco.client.passwd", "xxxxx"); // 用户登录口令

	
	}

}

连接SAP下载照片到本地
package xingfa.payitem;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import com.sap.mw.jco.IFunctionTemplate;
import com.sap.mw.jco.JCO;
import com.sap.mw
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值