如何在设计期核心操作在模型层进行二次扩展

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何在设计期核心操作在模型层进行二次扩展


问题描述

客户在某些场景下需要在标准产品的基础上进行二次开发,并且不仅需要界面操作支持二开并且在调用API的场景下也要支持二开。


解决方法

1. 配置生命周期监听,预置脚本,注意FSTENCILTYPE要设置成 'Diagram',FAPPID、 FCLOUDID要设置自己系统对应应用的APPID 和 应用所属云的CLOUDID,每个应用只有一条生效。

示例:

DELETE FROM T_WF_DYNMODELCONFIG WHERE FID = xxx;


INSERT INTO T_WF_DYNMODELCONFIG (FID, FAPPID, FSTENCILTYPE, FSTENCILTYPENAME, FBUILTIN, FCREATER, FCREATEDATE, FMODIFIER, FMODIFYDATE, FISV, FLIFECYCLECONFIG, FCLOUDID) VALUES (xxx, 'wf', 'Diagram', '流程', '0', 100, {ts'2022-08-10 15:53:55'}, 100, {ts'2022-08-10 15:53:55'}, 'kingdee', '{"listeners":{"publish":"{\"class\":\"com.kingdee.TestLifecycleListener\"}"}}', '18Y30L1D2HS4');


字段 FLIFECYCLECONFIG定义生命周期监听。其中 publish为【设计器发布】生命监听表需配置的插件对应Key,同理亦可配置为save、import…,save表示【设计器保存】对应的插件Key, import表示【设计器导入】对应的插件Key


2. 自定义插件,实现kd.bos.workflow.engine.extitf.IWorkflowModelPlugin接口,重写对应的方法,如【设计器保存】重写afterSave(),【设计器导入】重写afterImport ()

示例:



public class ExtItfNodeLifeCycleTestPlugin implements IWorkflowModelPlugin{

    @Override

    public void afterPublish(Long procDefId, Map<String, Object> variables){

        ...

    }

    @Override

    public void afterSave(Long modelId, String processNumber, Map<String, Object> paramter){

        ...

    }

    @Override

    public void afterImport(String processNumber, Map<String, Object> paramter){

        ...

    }

    @Override

    public void afterExport(String processNumber, Map<String, Object> paramter){

        ...

    }

    @Override

    public void afterSuspend(Long procDefId, Map<String, Object> paramter){

        ...

    }

    @Override

    public void afterActivate(Long procDefId, Map<String, Object> paramter){

        ...

    }

    @Override

    public void afterImportScheme(Long procDefId, Map<String, Object> paramter){

        ...

    }

    @Override

    public void afterExportScheme(Long procDefId, Map<String, Object> paramter){

        ...

    }

}


适用版本

V5.0 及以上版本


注意事项(可选)

  • 此项扩展为模型层扩展,api调用和页面操作均会触发,插件调用失败不会影响正常操作。



如何在设计期核心操作在模型层进行二次扩展

问题描述客户在某些场景下需要在标准产品的基础上进行二次开发,并且不仅需要界面操作支持二开并且在调用API的场景下也要支持二开。解决方...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息