电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

云之家智能审批推送EAS(SHR)之完全解读(一)

来源:金蝶云社区作者:金蝶2024-09-1616

云之家智能审批推送EAS(SHR)之完全解读(一)

最近接了一个项目,用户需要把云之家智能审批数据推送到shr系统。由于之前未做过类似的项目,因此对此做了一个详细的研究。并最终解决。

前提分析:

1、云之家智能审批推送只支持http推送方式,也就是我们常说的open api的方式。这种方式的一个特点就是传送过来的数据是(HttpServletRequest request, HttpServletResponse response)形式。

2、EAS(shr)这边的话只支持webservice的方式,osf方式我们我们下一条再讨论。webservice的方式接收数据的话他只有一个json字符串的形式,对于openapi传过来的数据无法解析。

3、shr也支持一种形式的open api接口,这就是osf,但是有个点,就是参数是固定的,然后如果数据进来的话需要登录等一些参数的设置,这样的话就不能匹配云之家的openapi方式。

解决方法:

在经历张上述方式的测试研究。最终我们只能采取一种最保险,也绝对可行的方式,就是搭建一个外部接口,通过外部接口去转化并对接云之家。

当然这个接口的搭建也不是很简单。

首先我们要创建一个tomcat服务,通过tomcat服务,我们建立起api的接口,用来接收云之家那边传过来的数据,并且在这个接口中,我们可以自己随意实现对eas这边接口的数据登录,数据传送等操作。这样我们就可以轻松的解决。

话不多说,上一段关键代码。后续如有疑问可以私信我。

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

System.out.println("******shr云之家接口接口开始调用******");

try (InputStream is = request.getInputStream()) {

            byte[] buf = new byte[2048];

            int length = -1;


            // 读取请求参数

            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            while ((length = is.read(buf)) > 0) {

                baos.write(buf, 0, length);

            }

            String data = baos.toString("utf-8");

            

            Configuration configuration = new Configuration();

            configuration.setCloudflowKey(CloudflowKey);

            configuration.setCloudflowAppId(CloudflowAppId);

            configuration.setCloudflowSecret(CloudflowSecret);         

            configuration.setEid(Eid);

            configuration.setHost(Host);

            com.eas.kingdee.AESEncryptor encryptor = new com.eas.kingdee.AESEncryptor(configuration.getCloudflowKey());

            String plainText = encryptor.decrypt(data);

            System.out.println("解密数据==>" + plainText);

            

            String rtn = "fail";

JSONObject jsonOther=JSONObject.fromObject(plainText);

if(jsonOther != null) {

EASLoginProxy proxy = null;

try {

WSContext ctx = login();

System.out.println("用户已经登录==>"+jsonOther.toString());

if(ctx!=null) {

WSCloudHouseFacadeSrvProxyServiceLocator locator = new WSCloudHouseFacadeSrvProxyServiceLocator();

//

云之家智能审批推送EAS(SHR)之完全解读(一)

最近接了一个项目,用户需要把云之家智能审批数据推送到shr系统。由于之前未做过类似的项目,因此对此做了一个详细的研究。并最终解决。前...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信