数据工厂数据集

编辑
  • 文档创建者:秃破天际
  • 浏览次数:1689次
  • 编辑次数:7次
  • 最近更新:秃破天际 于 2019-07-31
  • 1. 描述

    插件地址 :数据工厂 V9.0 版 数据工厂 V10.0 版

    应用场景:

    对 FR 的程序数据集接口进行改善和封装(解决原来的程序数据集配置项难剥离代码的问题,解决了原来程序数据集复用率低的问题,解决了原来程序数据集在动态参数时无效的问题)

    该插件安装后,提供了额外的取数接口。将 FR 的数据集逻辑,再次切割为两个部分:

    • 从数据来源装载数据——装载器

    • 将装载到的数据组装成FR支持的数据模型——解析器

    插件内置了两个装载器和一个解析器分别是:

    装载器:

    • 参数装载器——数据通过参数直接传入(比如 JSON、XML 等等的结构化数据)

    • 网络数据装载器——通过配置相关请求,从 Web 装载数据(比如 JSON 服务、WebService 服务等等)

    解析器:

    1)JSON 解析器——对结构化的 JSON 文本进行解析,生成FR支持的数据模型(只能解析结构型描述的 JSON,业务型描述的 JSON 无法解析,业务型 JSON,解析依赖具体的业务的描述,需要单独实现解析器)

    2)WS 解析器——解析 WS 服务的响应(目前还没开发完善,等待更新)

    3)爬虫解析器——支持 JQ 的选取语法和描述(目前还没开发完善,等待更新)

    要求:具备最基础的 FR 的插件开发能力【当然,后续我这边会持续的上传一些比较常用的解析器和装载器的插件】


    2. 操作流程

    下面是内置的实现:

    HTTP 装载器中(支持${}参数和公式写法)

    URL 和 charset 就不必说了

    type 支持 GET POST JSON这 3 种

    properties 是对一些特殊请求需要用到的(比如需要在 Header 中携带一些认证属性呀,Cookie 呀等等的)


    单参数装载器中:直接通过 data 进行数据的带入

    JSON 解析器:(简单实现,不支持业务型描述的 JSON)

    dataPath: 就是待展示数据的节点(可能并不是所有的数据都要展示,这个是原生实现的,比较简单,不支持 JPath 的写法)

    showmap:因为 JSON 数据字段很多都是一些路径的描述,对于作模板看起来会比较吃力,提供一个字段名转义的配置:

    比如 path1_key1 path1_key2 这两个字段分别对应姓名,年龄 则写法如下

    path1_key1,姓名,path1_key2,年龄 即可

    ws.png

    SOAP目前只支持10.0版本

    wsdl 就是你的WS服务wsdl的url

    operation 就是你要调用的方法名

    parameters 就是要传递的相关参数 目前不支持传递数组型参数

    cache 默认传递true就好了(提升速度的,会略微消耗一点内存,如果不介意快慢的可以给false,节省内存)


    下面是装载器和解析器的接口:

    1)装载器接口


    package com.tptj.plugin.hg.fun;
    import com.fr.script.Calculator;
    import com.fr.stable.ParameterProvider;
    import com.fr.stable.fun.mark.Mutable;
    public interface Loader extends Mutable {
        
        String XML_TAG = "TableDataLoader";
        int CURRENT_LEVEL = 1;
        
        /**
         * 装载数据
         * @param cal   当前算子
         * @param params    需要用到的参数
         * @param others        其他你可能用到的但是又不希望通过参数控制的配置项
         * @return  保存数据的对象
         */
        public Object load( Calculator cal, ParameterProvider[] params, String others);
        
        /**
         * 装载器的名字【显示在数据工厂配置界面的下拉列表里面的】,唯一
         * @return
         */
        public String getName();
        
        /**
         * 
         * @return 默认显示的配置【显示在数据工厂配置界面装载器配置文本域里面的,配置项自定义,其实就是放一些,不想写死在代码里,又不希望被参数篡改的部分】
         */
        public String getDefaultConfig();

    2)解析器接口


    package com.tptj.plugin.hg.fun;
    import com.fr.stable.fun.mark.Mutable;
    import com.tptj.plugin.hg.stable.SimpleDataModel;
    public interface Resolver extends Mutable {
        
        String XML_TAG = "TableDataResolver";
        int CURRENT_LEVEL = 1;
        
        /**
         * 解析数据
         * @param data 从装载器得到的原始数据
         * @param others  解析时会使用,但是不希望是参数的配置
         * @return 解析出来的二维数据模型
         */
        public SimpleDataModel parse( Object data, String others );
        
        /**
         * 解析器的名字【显示在数据工厂配置界面的下拉列表里面的】,唯一
         * @return
         */
        public String getName();
        
        /**
         * 
         * @return 默认显示的配置【显示在数据工厂配置界面解析器配置文本域里面的,配置项自定义,其实就是放一些,不想写死在代码里,又不希望被参数篡改的部分】
         */
        public String getDefaultConfig();

    plugin.xml 注册


    <extra-core>
        <TableDataLoader class="com.tptj.plugin.hg.tabledata.factory.core.loader.HttpLoader"/>
        <TableDataLoader class="com.tptj.plugin.hg.tabledata.factory.core.loader.SingleParamLoader"/>
        <TableDataResolver class="com.tptj.plugin.hg.tabledata.factory.core.resolver.JSONResolver"/>
    </extra-core>


    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]