文档

开发后端逻辑流操作代码

更新时间:

自定义后端逻辑流操作基于Java编写,对于熟悉Java的开发者来说,可以运用Java的强大能力来扩展后端逻辑流。

前提条件

已安装JDK11+和Maven3.5+。

步骤一、下载代码模版

  1. 登录魔笔

  2. 在顶部菜单栏选择应用管理,在左上角搜索框中搜索目标应用。

  3. 在目标应用的卡片中单击进入设计器,进入魔笔应用设计器。

  4. 在左侧功能区单击image,选择后端逻辑流,进入逻辑流编辑面板。

  5. 在逻辑流编辑面板,单击自定义逻辑流操作右侧的编辑,打开编辑自定义逻辑流操作,下载最新代码模版bundle.zip

    image..png
  6. 解压bundle.zip,即可得到一个custom-action的Java工程。开发者可通过IDE(如idea/vs code)打开此工程。

    此工程是一个多模块的项目,其中已经生成了custom-action-core模块,工程结构如下:

    image
    • libs目录:存放了core模块所依赖的jar包,默认有三个jar包。

      • custom-action-api-1.0.0-SNAPSHOT-sources.jar:此jar包为custom-action-api模块的源码,在IDE中可以通过设置关联上源码信息。

      • custom-action-api-1.0.0-SNAPSHOT.jar:此jar包中包含了模块中每个后端逻辑流自定义操作的接口定义。对于模块中的每个后端逻辑流自定义操作,都会生成一个接口和一个实现类,接口存放在custom-action-api jar包中,而实现类则存在于custom-action-core模块中的src目录下

        image
      • mobi-app-flow-sdk-1.0.0.jar:此jar包为魔笔平台提供的SDK,内置了魔笔平台实体和结构体的相关操作,下文中将详细介绍。

    • src目录:该目录为正常Java工程中的目录。模块中的后端逻辑流自定义操作实现类将被放在com.aliyun.mobi.custom.action.core中。

      说明

      请勿更改com.aliyun.mobi.custom.action.core中的内容,否则可能导致上传的代码包无法被平台识别。

      image

      对于魔笔平台中的每个后端逻辑流自定义操作,都将生成一个Java实现类,类名为操作英文名称 + Action,如果开发者自行创建自定义操作的实现类时,请遵循此规则。其它非自定义操作的实现类,可以不用遵循此规则。在自定义操作的实现类中,重写的execute方法为自定义action的入口方法,开发者可以将逻辑编写在此方法中。

    • pom.xml

      此文件为core模块中的Maven依赖管理相关文件,如需要增加Java项目依赖时,可将对应的pom依赖加入到此文件中。对于Java项目所需的依赖,只需在pom.xml中添加dependency即可,无需将jar包下载至libs目录中。

    重要

    请勿修改脚手架内除自定义操作实现目录外的文件,否则可能导致构建错误或失败。

步骤二、设置环境

魔笔平台提供的工程需要JDK11+及Maven3.5+环境,开发者需满足这两个环境要求才能进行代码编写。下载的模版工程可以通过idea/vs code等现代化IDE打开进行编辑。

image
说明

在使用idea进行编辑时,如遇到编辑器无法通过编译、terminal可以构建成功时,可以通过禁用kotlin插件或升级kotlin插件到1.8版本解决。

image

步骤三、代码编写

对于每个后端逻辑流自定义操作,都会在custom-action-core模块中生成一个实现类,每个自定义操作执行的入口方法都是实现类中重写的execute方法,开发者可根据自定义操作中的业务逻辑进行开发。

步骤四、输入输出

魔笔类型转化到Java代码有对应的映射关系,在Java代码中给实体或结构体属性赋值时,也应遵循对应的关系映射。例如,实体有一个属性为DATETIME类型,在设置其值的时候,应该赋予ZonedDateTime类型的变量。

魔笔类型

Java类型

INTEGER

Integer

LONG

Long

DECIMAL

Double

BOOLEAN

Boolean

CHAR、TEXT、ENUMERATION

String

DATETIME

ZonedDateTime

INTEGER

Integer

OBJECT

MobiObject

STRUCTURE

MobiStructure

FILE、IMAGE、AUDIO、VIDEO、DOCUMENT

-

说明

自定义逻辑流操作中不支持配置FILE、IMAGE、AUDIO、VIDEO、DOCUMENT类型的参数。

步骤五、 MobiContext

为了方便开发者操作实体和结构体,每个自定义操作入口方法execute中都有一个MobiContext参数,MobiContext中提供了魔笔实体和结构体的创建方法,其中,实体的ID和结构体的ID可以在魔笔的应用设计器中获取到。

interface MobiContext {

    /**
     * 创建实体
     * 
     * @param entityId 实体ID,可在Mobi IDE中数据模型面板获取到
     */
    MobiObject createMobiObject(String entityId); 

    /**
     * 创建结构体
     * 
     * @param structureId 结构体ID,可在Mobi IDE中结构体处获取
     * @param content 结构体初始化内容,为空时可传入空的Map对象
     */
    MobiStructure createMobiStructure(String structureId, Map<String, Any> content);
}

步骤六、构建打包

编写完成自定义逻辑流操作的执行逻辑代码后,您可以通过执行以下命令打包。

mvn package

执行命令后,会在custom-action-core/target目录中找到一个mobi-package.zip结尾的文件,该文件即构建产物,可上传至魔笔的应用设计器

重要
  • 魔笔平台不负责存储您的自定义操作源代码,请您妥善保管,以便复用。

  • 若当前逻辑流中包含历史自定义逻辑流操作,请在构建前将历史源码拷贝到对应的实现文件内,避免对应的自定义逻辑流操作不可执行。

  • 本页导读
文档反馈