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

自定义连接类型开发指南

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

自定义连接类型开发指南

变更记录

产品版本
更新内容更新日期
V5.0.020初版
2023年4月28日
V6.0.12增加多种鉴权方式2023年5月17日


介绍

集成服务云预置了大量的第三方连接类型,同时也支持用户开发自定义连接类型,以下将针对WebAPI类型、自定义连接器工厂类、自定义MQ工厂类分别进行说明。

连接类型介绍:https://vip.kingdee.com/article/183681


WebAPI连接类型

根据各三方系统的鉴权方式,集成服务云提供以下三种脚本:会话登录、会话刷新、服务器状态测试,在连接器类型注册时,提供这三类脚本分别予以处理,从而与kd.isc.iscb.platform.core.connector.webapi.WebApiConnectionFactory构 成一个完整的连接器,为集成云运行引擎提供对第三方系统API的调用。



1.连接器工厂类

工厂类(推荐):kd.isc.iscb.platform.core.connector.webapi.WebApiConnectionFactory

特殊情况也可以重写工厂类


2.配置鉴权参数

  • 使用动态表单(推荐)

打开连接类型上的自定义配置开关,可以手动填写该连接器鉴权时需要用到的鉴权参数。



可以根据需求选择不同的鉴权方式,每种鉴权方式会自动添加对应的预置参数,用户也可手动进行修改。

其中Bearer Token和Basic Auth将会自动生成参考用的会话登录脚本。

注:当修改鉴权方式的时候会自动清空现有会话登录脚本。



修改鉴权参数后,将动态渲染出连接配置界面。




在后续脚本中可以通过$获取连接配置上的参数信息,如$server_ip、$server_port等。


会话登录脚本


会话刷新脚本:


服务器状态检测脚本:


  • 使用元数据(不推荐)

关闭自定义配置则需要创建连接配置元数据,该元数据作为连接器的配置界面。

配置方法参考::https://vip.kingdee.com/school/89389204685524480



后续脚本配置方法和上面介绍的一致,且用户可以额外配置API调用脚本,该脚本将在外部系统API登记中使用。

注:不推荐使用该功能登记外部系统API,推荐使用WebAPI登记


API调用脚本:


注:API调用脚本可以捕获会话失效异常,然后通过函数Relogin()重新执行会话登录脚本。

var url = $website + $service + "?accessToken=" + $session.accessToken;
var param = "eid=" + user + "&data=" + String.URLEncode(String.FormatJson(data));
var result =  String.ParseJson(HttpPost(url, param,"UTF-8").result);
if(result.errorCode == 10000401){// 会话ID 失效,重新登录
  var url = $website + api + "?accessToken=" + Relogin().accessToken;
  var result =  String.ParseJson(HttpPost(url, param,"UTF-8").result);
}
if(result.success){
  result = result.data; // 成功,仅将 data 部分作为结果
}else{ 
  throw result; // 失败
}


3.WebService脚本

WebService连接脚本写法和【1.3 RESTful API 脚本】写法基本相似,但具体参数格式和调用方式会有不同。


直接拼接XML调用Web服务

var header = {"Content-Type" : "text/xml; charset=utf8",SOAPAction:"http://ws/testService"};
var xml = "<?xml version='1.0' encoding='utf-8'?><soap:Envelope
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><testService
xmlns='http://ws/'><name xmlns=''>Yuxichu</name></testService></soap:Body>
</soap:Envelope>";
HttpPost("http://localhost:8888/HelloService/", xml, "UTF-8", {},
header).result;


构造XML调用Web服务

var header = {"Content-Type" : "text/xml; charset=utf8",SOAPAction:"http://ws/testService"};
var xml = String.createXml("soap:Envelope");
xml["xmlns:xsi"] = 'http://www.w3.org/2001/XMLSchema-instance';
xml["xmlns:xsd"] ='http://www.w3.org/2001/XMLSchema';
xml['xmlns:soap']='http://schemas.xmlsoap.org/soap/envelope/';
var body = xml("soap:Body");
var method = body("testService", {xmlns : 'http://ws/'});
var param = method("name", {xmlns:''});
param["#text"] = 'Yuxichu';
var xml = HttpPost("http://localhost:8888/HelloService/", String(xml), "UTF-8",
{}, header).result;
var dom = String.parseXml(xml);
return dom["#children"][0]["#children"][0]["#children"][0].#text


通过CallWebService调用Web服务

// Web服务URL,该URL后附加 ?WSDL应该能返回该Web服务的描述,例如:
// http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL
var service = "http://www.webxml.com.cn/WebServices

自定义连接类型开发指南

变更记录产品版本更新内容更新日期V5.0.020初版2023年4月28日V6.0.12增加多种鉴权方式2023年5月17日介绍集成服务云预置了大量的第三方连接...
点击下载文档文档为doc格式

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

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