设为首页 | 收藏本站
185 1521 8668

Together DMN 调用示例说明及操作步骤

发表时间:2025-04-07 09:24作者:Together规则引擎
文章附图

调用参数说明及获取方式

先决条件

    1. 在集成中心 --> 系统授权中,有正在使用或者新增授权的系统授权

    2. 在工作区中存在模型数据

参数说明

API接口:${IP}:${port}/api/ruleSystem/getSystemCalling

API请求类型:POST

请求参数:

{
   "invokingType": "调用方式 batch-批量,single-单条",
   "keyCode": "授权Code",
   "maps": "批量输入参数:[{}]",
   "map": "单次输入参数:{}",
   "ruleId": "7232668971550375936",
   "ruleVersion": 1
}

属性说明:

invokingType:batch-批量,single-单条;batch-批量是指单次调用多次计算,数据是数组格式,与maps属性搭配使用;single-单条,是指一次调用一次计算,数组是单个对象形式,与map属性搭配使用;在使用时可根据不同计算方式来选择,同时需要考虑如本身数据量大可进行分组批量调用。

keyCode:系统授权Code码,在集成中心 --> 系统授权列表的系统详情页面中可获取,建议不同业务系统使用不同的Code码便于管理。

maps/map:可参照 invokingType 进行使用,需要注意的是,如果未使用maps/map属性则需要将未使用的删掉,两者不可共存。maps/map对象的数据格式是由当前页面的“ 输入 ”的结构作为入参的格式示例,

ruleId/ruleVersion:由系统针对该模型动态生成,无需进行修改。

使用 API 工具进行模拟调用

将以上获取的参数添加到工具内,并将IP与端口更改为本地数据,可进行请求

调用2.png

使用代码进行调用

将 together-rule-sdk-java.jar 包通过maven install file 命令打入本地仓库

mvn install:install-file -Dfile=${home}/path/together-rule-java-sdk.jar -DgroupId=com.rongtek -DartifactId=together-rule-java-sdk -Dversion=2.0-SNAPSHOT -Dpackaging=jar

在新建maven工程的pom.xml中添加maven坐标

<dependencies>
   <dependency>
    <groupId>com.rongtek</groupId>
    <artifactId>together-rule-java-sdk</artifactId>
    <version>2.0-SNAPSHOT</version>
   </dependency>
</dependencies>

模拟测试

package com.rongtek;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.TypeReference;
import com.rongtek.together.rule.sdk.RuleRequest;

import java.util.List;
import java.util.Map;

public class Main {
    public static void main(String[] args){
        // 输入数据
        String   json = "[{\"激励数据\":[{\"主键id\":\"\",\"人员id\":\"\",\"人员姓名\":\"\",\"测试产线\":\"测试产线\",\"测试单号\":\"\",\"试验类别\":\"试验类别\",\"标模编码\":\"\",\"标模名称\":\"\",\"标工编码\":\"\",\"标工名称\":\"\",\"项目类型\":\"T0\",\"计划完成时间\":\"\",\"是否达标交\":true,\"是否超承诺周期\":false,\"工时\":123,\"提效时\":23,\"标交\":\"\",\"测试周期\":\"\",\"提交天数\":\"\",\"未达标交工时\":\"\",\"结论\":\"\",\"问题类别\":\"\",\"曝问数\":\"\"}],\"考核数据\":[{\"客诉类别\":\"\",\"批返类别\":\"\",\"漏测类别\":\"\"}]},{\"激励数据\":[{\"主键id\":\"\",\"人员id\":\"\",\"人员姓名\":\"\",\"测试产线\":\"测试产线\",\"测试单号\":\"\",\"试验类别\":\"试验类别\",\"标模编码\":\"\",\"标模名称\":\"\",\"标工编码\":\"\",\"标工名称\":\"\",\"项目类型\":\"T0\",\"计划完成时间\":\"\",\"是否达标交\":true,\"是否超承诺周期\":false,\"工时\":123,\"提效时\":23,\"标交\":\"\",\"测试周期\":\"\",\"提交天数\":\"\",\"未达标交工时\":\"\",\"结论\":\"\",\"问题类别\":\"\",\"曝问数\":\"\"}],\"考核数据\":[{\"客诉类别\":\"\",\"批返类别\":\"\",\"漏测类别\":\"\"}]},{\"激励数据\":[{\"主键id\":\"\",\"人员id\":\"\",\"人员姓名\":\"\",\"测试产线\":\"测试产线\",\"测试单号\":\"\",\"试验类别\":\"试验类别\",\"标模编码\":\"\",\"标模名称\":\"\",\"标工编码\":\"\",\"标工名称\":\"\",\"项目类型\":\"T0\",\"计划完成时间\":\"\",\"是否达标交\":true,\"是否超承诺周期\":false,\"工时\":123,\"提效时\":23,\"标交\":\"\",\"测试周期\":\"\",\"提交天数\":\"\",\"未达标交工时\":\"\",\"结论\":\"\",\"问题类别\":\"\",\"曝问数\":\"\"}],\"考核数据\":[{\"客诉类别\":\"\",\"批返类别\":\"\",\"漏测类别\":\"\"}]}]";
        // 将输入数据转为数组,这里不限制转换方式,因为是批量数据执行,所以是 List<Map<String, Object>> 类型,如果是单次使用 Map<String, Object> 即可
        List<Map<String, Object>> list = JSON.parseObject(json, new TypeReference<List<Map<String, Object>>>(){});
        // 获取参数并组装请求对象 RuleRequest
        RuleRequest ruleRequest = new RuleRequest("http://192.168.3.99:8081/api/ruleSystem/getSystemCalling", "batch",
                "9DiYAgCDt7VgNQZeExKCz09AJK6uthxqYTYglgETalD8DZgJhZuneXj9LdHCd0ML1vnTwWS0SPUkmISn7e81ymwow2z3TxNojXlT", list, null, "1822937508624474114", 2);
        // 调用 getRequest 方法,获取调用后的返回值
        String request = ruleRequest.getRequest();
        System.out.println("request = " + request);
    }
}

返回值信息及说明

request = {"message":"请求成功","code":20000,"result":[{"_14696B52-7AA2-4BBD-98E1-4E....

result属性为计算处理后的结果。

如果request == null,则代表组装的参数中有错误信息,需要排查,建议从以下几方向入手

1. 服务是否正常运行;

2. 参数 invokingType 的类型选择与 maps/map 的数据填充是否正确;x0;

3. 检查对应模型的 ruleId 或者 ruleVersion 有没有误修改;

精选文章
公众号
关于我们
联系方式
让您的业务更自动化、智能化!
联系邮箱:   zhangy@jee-soft.cn       wangyl@jee-soft.cn
185 1521 8668
183 3562 2627
联系电话: