【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

一、特殊名词介绍

二、背景、场景介绍

10.0的帆软产品中,将平台模块和报表模块进行了解耦,导致原有的定时任务附件处理接口无法获取到结果报表对要推送的客户端信息根据报表结果进行调整。为了解决这个问题,10.0中新增加了OutputFormulaProvider接口进行支持。

该接口主要用于在定时任务模板计算完成后,对推送的配置中的公式型配置进行处理。得到最终的推送信息配置。

因为该接口具备对原来的信息配置进行转换的能力,所以也用于对产品固有的推送信息进行调整的功能。

三、接口介绍

OutputFormulaProvider.java
package com.fr.schedule.base.provider;

import com.fr.stable.fun.mark.Mutable;
import java.util.List;
import java.util.Map;

public interface OutputFormulaProvider<T, V> extends Mutable {
    String XML_TAG = "OutputFormulaProvider";
    int CURRENT_LEVEL = 1;

    void dealWithFormulaParam(T var1, V var2, List<Map<String, Object>> var3) throws Exception;

    String getActionClassName();

    int taskType();
}

关联接口:BaseOutputAction-推送信息主体

四、支持版本

产品线

版本

支持情况

备注

FR10.0支持
BI5.1支持
BI5.1.2支持
BI5.1.3支持

五、插件注册

plugin.xml
<extra-decision>
        <OutputFormulaProvider class="your class name"/>
</extra-decision>


六、原理说明

ScheduleFormulaBox在构造时,会读取插件中申明的OutputFormulaProvider注册到map<BaseOutputAction.className, OutputFormulaProvider>对象中。而ScheduleFormulaBox并不是直接被调用的,ScheduleFormulaBox有两个派生子类FormulaBox和DefaultFormulaBox。

派生子类会在具体类型的定时任务被调用时,通过formActionClassName(BaseOutputAction.className)获取到插件申明的OutputFormulaProvider接口并生效。

七、特殊限制说明

在对产品固有的推送信息的调整时,OutputFormulaProvider接口可以单独使用。此时开发者不需要直接去继承AbstractOutputFormulaProvider或AbstractReportOutputFormulaProvider。而应该继承要修改的附件处理类型的公式处理类。诸如:EmailFormula、SmsFormula之类的

如果是要在新增推送类型中处理对应的公式,OutputFormulaProvider接口就不再单独使用,而作为辅助接口配合其他推送客户端扩展接口生效【接口非常多,会在专题中进行整合介绍】。

getActionClassName的返回值,是BaseOutputAction的一个派生子类类名,必须与dealWithFormulaParam接口方法的第一个参数(T)的对象的类名一致。

八、常用链接

入门demo地址:demo-output-formula-provider

九、开源案例

免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。

暂无


  • No labels