当前位置: 首页 > 工具软件 > OSF > 使用案例 >

金蝶OSF接口(s-HR系统)调用示例

施喜
2023-12-01

金蝶OSF接口调用示例(金蝶s-HR系统接口):

①封装OSF接口参数Map;

②调用OSF接口;

以下示例仅演示了在Java环境中调用OSF接口,还有其它方式进行调用(例如使用单点登录的方式调用OSF接口等),这里未列举。

package com.kingdee.eas.si.test.osf;

import java.util.Map;
import com.kingdee.eas.si.util.OsfUtil;

/**
 * 获取工作流已办列表
 * @author 郭旭
 *
 */
public class GetAssignHst {

	public static void main(String[] args) {

		String serviceName = "getAssignHst"; //服务名称
		Map<String, Object> params = OsfUtil.params(); //参数
		params.put("number", "10138832"); //员工编码
		params.put("page", 1); //分页
		
		String result = OsfUtil.execute(serviceName, params);
		System.out.println(result);
		
	}

}

以下代码为OSF调用工具类,需要金蝶提供相应的Jar包(SDK)以及用户配置信息(数据库类型、代理用户账号、密码等);

package com.kingdee.eas.si.util;

import java.util.Map;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;

import java.util.HashMap;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import com.kingdee.shr.api.OSFWSClient;
import com.kingdee.shr.osf.webservice.client.UserInfo;

/**
 * 金蝶OSF调用工具类
 * 直接调用执行(execute)方法即可,自动单点登录
 * @author 郭旭
 *
 */
public class OsfUtil {
	
	/**
	 * 执行金蝶OSF服务
	 * @param serviceName 服务名称
	 * @param params 接口参数
	 * @return 返回JSON
	 * 
	 */
	public static String execute(String serviceName, Map<String, Object> params){
		
		UserInfo user = getUser();
		String address = Resource.get("ADDRESS"); //系统地址
		String result = new OSFWSClient().proceedOSF(address, serviceName, params, user);
		
		return result;
		
	}
	
	/**
	 * 获取OSF服务接口参数
	 * @return Map
	 */
	public static Map<String, Object> params(){
		return new HashMap<String, Object>();
	}
	
	/**
	 * 获取OSF服务接口参数
	 * @param request HTTP请求
	 * @return JSon
	 * 
	 */
	public static String params(HttpServletRequest request) throws Exception{
		
		ServletInputStream input = request.getInputStream();
		BufferedReader reader = new BufferedReader(new InputStreamReader(input, "UTF-8"));
        StringBuilder builder = new StringBuilder();
        String param;
        while ((param = reader.readLine()) != null) {
        	builder.append(param);
        }
        
		return builder.toString();
		
	}

	/**
	 * 获取代理用户
	 * 数据库类型:SQLServer=0,Oracle=1,DB2=2
	 * @return 用户
	 * 
	 */
	public static UserInfo getUser() {
		
		UserInfo user = new UserInfo();
		user.setDbType(Resource.getInt("DBTYPE")); //数据库类型
		user.setDcName(Resource.get("DCNAME")); //数据中心
		user.setSlnName(Resource.get("SLNNAME")); //解决方案
		user.setLanguage(Resource.get("LANGUAGE")); //默认语言
		user.setUserName(Resource.get("USERNAME")); //用户名
		user.setPassword(Resource.get("PASSWORD")); //密码
		
		return user;
		
	}

}

 

 类似资料: