AWS 插件扩展开发参考指南

应用场景

这是一种应用与应用间关联的高级开发模式,可以为你的主应用定义扩展点,绑定该应用扩展点的关联应用提供具体实现。

  • 主应用关联应用接收参数
  • 主应用提供框架,具体逻辑处理由关联应用实现

为了便于文档阅读,对词汇约定下

  • 主应用,指A应用提供扩展点,通过开放这个接口接收关联应用的注册或实现
  • 关联应用,指与A应用发生关联的B应用,这种附加的关联特性随着B应用的存在而自动提供
  • 扩展点,指A应用封装的一个任意ASLP服务。 B应用在启动时调用一次A应用的该ASLP服务。当B应用发生重启或资源重新加载时,AWS PaaS应用容器会以B应用的身份重新进行一次绑定

主应用关联应用接收参数

这是一种最简单的应用场景,主应用提供一个由ASLP维护的静态List队列,当有关联应用绑定该扩展点时,将参数传递给主应用

如下代码是某个应用通过绑定通知中心的扩展点,向通知中心注册参数配置。当各种应用发送通知消息时,通知中心就能够根据事先绑定的配置去处理这个消息。

Map<String, Object> params1 = new HashMap<String, Object>();
params1.put("systemName", AppNotificationAPITest1.systemName);
params1.put("icon", "");
list.add(new AppExtensionProfile("通知中心->API测试-简单消息", "aslp://com.actionsoft.apps.notification/registerApp", params1));

主应用提供框架,具体逻辑处理由关联应用实现

主应用提供一个由ASLP维护的静态List队列,当有关联应用绑定该扩展点时,将参数传递给主应用。参数中包含关联应用的实现类,该类在主应用的恰当场景被调用。

如下代码是某个应用通过绑定CoE报告生成器的扩展点,向报告生成器注册参数配置。报告生成器本身是个空壳,各种报告的实现就可以由开发者自己去实现。

Map<String, Object> params1 = new HashMap<String, Object>();
params1.put("groupName", "RACI模型分析");
params1.put("title", "RACI流程说明");
params1.put("targetMethodScope", "process.bpmn2,process.epc,process.flowchart");// 建模大类、建模方法,多个用逗号隔开,如果为空表示全部
params1.put("relationMethodScope", "-");// 如果设置-,表示不需要用户选择关联范围,向导页被忽略
params1.put("lang", "cn");// 该App支持的语言,多个用逗号隔开
params1.put("optionClass", Report1WizardOption.class.getName());// 附加的报表选项,如果该值没有,向导页被忽略
params1.put("generClass", Report1Gener.class.getName());// 生成报告
list.add(new AppExtensionProfile("PAL报告->RACI流程说明", "aslp://_bpm.coe/registerOutputApp", params1));


Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区