RPA JS 扩展开发文档

RPA JS 扩展开发文档

  • SDK接口说明
  • 代码示例

›All Blog Posts

All Blog Posts

  • 使用VS Code插件在本地调试页面代码
  • 如何不使用VS Code和Chrome工具进行RPA开发
  • [Web]明细代码示例
  • [Web]CPQ产品配置页扩展
  • RPAJS中如何实现AOP开发
  • [H5]商机,报价,订单明细自定义编辑页面
  • [H5]自定义实体,表单子实体批量示例
  • [H5]表单页代码示例
  • [H5]详情页代码示例
  • [H5]系统级API示例
  • [H5]调试RPA JS扩展代码
  • [H5]在自定义页面中使用RPA SDK
  • [Mobile]调试RPA JS扩展代码
  • [Web][新版]表单页代码示例
  • [Web]明细表格API示例
  • [Web]系统级API示例
  • [Web]表单页代码示例
  • [Web]列表页代码示例
  • [Web]详情页代码示例
  • [Web]调试RPA JS扩展代码
  • RPA JS 更新日志
  • RPA JS 常见问题Q&A
  • RPA JS 扩展开发介绍

RPAJS中如何实现AOP开发

December 21, 2020

RPAJS中如何实现AOP开发

适用范围

Web端、移动端、H5端

现状、问题

RPAJS主要用于前端扩展开发,属于面向扩展点开发的一种模式。因此每个扩展点实例都拥有一个唯一的ID作为标识。应用在表单的不同布局实例上,也就需要用到不一样的ID来应对不同布局可能需要不同扩展逻辑的需求。免得具体实例写扩展逻辑比较静态,同样也带来了通用逻辑需要书写多次的问题

AOP开发思路

为了解决通用逻辑代码重复的问题,SDK提供了面向扩展点类型的切面。每个扩展点都是一个实例,每个实例都会有对应的扩展类型。AOP示意图:

  1. 每个表单的扩展实例,就会对应一个类型FormExtensionPoint
  1. 每个类型都对应一个AOP类,FormExtensionPoint对应的就是FormExtensionPointBatch

    公式: AOP类型名称 = 扩展点类型名称+Batch

  1. 每个切面类型还可以通过ID的通配符进行细分,例如
new FormExtensionPointBatch("Account.*")

通配符基本符号

  • ? 可以匹配任何单个字符
  • *** ** 可以匹配任意字符串(包括空字符串)

应用实例

针对Account实体的所有业务类型和布局使用AOP


//定义一个表单的AOP类

const contactForm = 
new xsyrpa.FormExtensionPointBatch(["xsy.breeze.web.contact.*.masterEntityCreation.*#*#"]) 
//AOP类型只用于监听多个来源,所以监听函数中多一个参数extInfo
contactForm.on("loaded",(data,resolve,reject,extInfo)=>{
//监听到的该类型具体扩展Id
const extId = extInfo.extId
//使用该extId可以创建不同的其他相关扩展实例,比如表单字段
//根据规则来,表单项ID=表单ID+字段APIKey
const formItemDepart = new xsyrpa.FormTextInputExtensionPoint(extId+"depart");

formItemDepart.setValue("demo");

});

一些原则

AOP类型只能用于监听多个扩展实例的事件,也就是批量监听是允许的。

AOP类型不能用于批量发送数据(设值操作等),因为在picker列表新建数据场景中同一个业务类型和布局的表单允许同时打开多个

Recent Posts
  • 适用范围
  • 现状、问题
  • AOP开发思路
  • 通配符基本符号
  • 应用实例
  • 一些原则
Copyright © 2021 销售易