集成连接类型支持动态设置连接配置需要的字段,无需开发表单布局原创
金蝶云社区-杨发
杨发
4人赞赏了该文章 393次浏览 未经作者许可,禁止转载编辑于2023年04月19日 11:25:27

新版的连接类型界面上有自定义配置开关,开启后可以在分录上增加自己所需要的字段

image.png

image.png

这里把调用脚本隐藏掉了,建议使用webapi登记和自定义api 或者服务流程脚本调用api
登录和刷新脚本主要是用于获取token相关的,可以把调用的逻辑放在webapi登记和自定义api 或者服务流程脚本调用api。
调用的token可以从登录和刷新脚本的$seesion中拿到。详见下面例子。


1. 会话登录脚本,会话刷新脚本及服务器状态测试脚本可以通过this.关键字获取到连接配置上填写的内容。
  获取填写的服务器IP或域名:  var server_ip=this.server_ip;
  
2. 会话登录脚本和会话刷新脚本,可用于解决一定时间内需要再次获取token的场景。会话登录脚本只执行一次,会话刷新脚本后台默认刷新时间是15分钟一次。

3.案例一:需要定时调用外部系统获取token,避免token失效
会话登录脚本内容如下
var url = this.http_protocal + "://" + this.server_ip + ":" + this.server_port + "/web/api/login";//需要调用的url地址
var params = {"u" : this.user, "p" :this.password};//通过自定义user和password的鉴权参数
var session = HttpInvoke(url, params);//调用方式视情况使用(HttpAccess  HttpGet  HttpInvoke HttpPost)
session.$refreshTime = L(NOW) + 900000;//指定下一次的脚本刷新时间
return session;

会话刷新脚本内容如下
//$session是上一次 会话登录脚本/会话刷新脚本的返回结果
var url = this.http_protocal + "://" + this.server_ip + ":" + this.server_port + "/web/api/keep/" + $session.cookies.a;//携带登录脚本得到的数据再次调用
HttpInvoke(url, null);//调用方式视情况使用
$session.$refreshTime = L(NOW) + 900000; //再次指定下一次的脚本刷新时间
return $session;

$session的使用方式:自定义api引用对应webapi数据源后,设置资源别名为cn,可在自定义API脚本中通过cn.$session访问,获取登录或刷新脚本得到的token内容,具体调用API的时候传入即可。

案例二:对填写的信息加密后得到token
会话登录脚本内容如下
var session = {};
var msg = this.password;//自定义password的鉴权参数
var rsaKey = this.RSA_key;//自定义RSA秘钥的鉴权参数
var tokenStr = Hash.RSA_SHA256(msg, rsaKey);
session.token=tokenStr;
session.$refreshTime = L(NOW) + 900000;//指定下一次的脚本刷新时间
return session;
会话刷新脚本内容和登录脚本内容相同,这里采用了RSA_SHA256加密算法。
当集成云预置的一些加密算法不满足需求时,可以通过二开微服务,在登录脚本和刷新脚本中使用invokeMicroService2()进行调用微服务,
在【帮助手册】可以查看invokeMicroService2的具体使用方式。


赞 4