设计器串联动作使用说明

工作流串联动作

界面所属模块需要保证依赖模块列表依赖了“工作流”。

依赖工作流模块

低代码依赖模块

<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-api</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-core</artifactId>
</dependency>

低代码模块 dependencies 需要引用 WorkflowModule.MODULE_MODULE

工作流

流程创建

流程串联动作仅支持模型触发。

说明:当流程满足触发条件后,该流程将自动执行,和是否开启代码手动触发无关。此外,为了适应特定的业务场景,流程串联动作可与触发机制相结合使用。若流程设计为仅需手动触发,则可通过在筛选条件中设置一个恒不成立的逻辑表达式来实现这一需求。

模型触发

界面设计器配置

在界面设计器的组件库 → 动作中找到“工作流”;仅能选择流程触发模型和当前主视图所属模型相同的流程;按钮点击后,流程触发。

配置工作流动作

说明

工作流及数据流程动作的触发需确保相关数据的存在,因此在运行时的创建页中,按钮将以禁用状态显示,防止在数据缺失时触发流程。

数据流程串联动作

界面所属模块需要保证依赖模块列表依赖了“工作流”和“集成接口”。

依赖工作流和集成接口

低代码依赖模块

<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-api</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.workflow</groupId>
    <artifactId>pamirs-workflow-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-api</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-view</artifactId>
</dependency>

低代码模块 dependencies 需要引用 WorkflowModule.MODULE_MODULEEipModule.MODULE_MODULE

低代码模块引入依赖

界面设计器配置

数据流程触发的配置和使用方式同工作流串联动作。

数据流程界面设计器配置

集成连接器串联动作

准备工作

界面所属模块需要保证依赖模块列表依赖了“集成接口”。

无代码模块依赖模块列表

低代码依赖模块

<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-api</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-core</artifactId>
</dependency>
<dependency>
    <groupId>pro.shushi.pamirs.core</groupId>
    <artifactId>pamirs-eip2-view</artifactId>
</dependency>

低代码模块 dependencies 需要引用 EipModule.MODULE_MODULE

引用Eip模块

集成设计器接口配置

首先在集成设计器新增API

集成设计器新增API

已配置Api“根据id查询用户”:

  • 请求地址:/user/queryById/{id}

  • 请求参数:

    参数名 参数位置 必填 参数类型 是否数组 字段长度 默认值 参数备注
    id Path Integer 用户id[1~43有值]
  • 响应参数:

    参数名 参数类型 参数来源 是否数组 取值表达式 参数备注
    id String Body data.id 主键
    name String Body data.name 姓名
    age String Body data.age 年龄
    country String Body data.country 国家
    gender String Body data.gender 性别

界面设计器

在界面设计器的组件库 → 动作中找到“集成连接器”。

界面设计器新增集成连接器动作

动作按钮创建完成后,在属性中找到连接器配置,选择Api资源。

属性面板选择Api资源

请求参数配置

选择API资源后,若该API需配置请求与响应参数,则相应的参数配置项将会呈现。如上图所示,因所选API含有Path类型的参数,故可进行Path参数的映射配置。此API并无Body或Query类型的参数,因此这些配置项将不会显示。

Path参数的具体配置如下:左侧列出了集成设计器为API创建的参数名称,而右侧对应的是当前模型中的字段,将赋值表达式设定为ID。该配置的含义是:在用户点击按钮之后,系统将调用配置的Api资源,并以当前视图中的ID参数值来映射Path参数,发起请求。

Path请求参数配置

响应参数配置

同样地,左侧的参数名称是由集成设计器配置的响应参数,而右侧则为当前模型中的字段。当请求成功发送并接收响应后,这些响应参数将会按照配置的规则被填充到表单或详情页面中。

  1. 发送请求前,若字段已填充数据,但在响应中未获取相应数据,则该字段将被置为空;比如在发送请求前,性别字段已有数据,而请求发送后,若接口返回的数据中未包含性别信息,则性别参数将会被置为空。
  2. 多对一字段将依据接口返回的数据从数据库中进行查询(queryOne)。若未查询到相关信息,则仅回填那些在响应中有值的字段。

响应参数配置

运行时页面

运行效果

响应参数一对多/多对多配置

集成设计器的API配置如下所示:条件查询用户

  • 请求地址:/user/query

  • 请求参数:

    参数名 参数位置 必填 参数类型 是否数组 字段长度 默认值 参数备注
    country Body String 国家
    name Body String 用户姓名
  • 响应参数:

    参数名 参数类型 参数来源 是否数组 取值表达式 参数备注
    data OBJECT Body data 用户列表
    »name String Body name 姓名
    »age String Body age 年龄
    »gender String Body gender 性别
    »country String Body country 国家
    »id Integer Body id 主键

界面设计器配置

场景如下:点击“同步员工”按钮后,将部门名称作为请求参数,响应信息填写至员工列表。

含有一对多字段的表单页面

响应参数配置如下:

含有一对多字段的响应参数配置

运行时页面

同步员工列表

说明:关系字段的数据不会自动落库,一对多/多对多也不会通过查询数据库来填充其他参数。若需要保存数据,可重写模型的创建(create)等方法进行处理。

表格调用集成连接器

集成设计器的API配置如下所示:发送通知

  • 请求地址:/api/v1/send/notify/email

  • 请求参数:

    参数名 参数位置 必填 参数类型 是否数组 字段长度 默认值 参数备注
    name Query String 员工姓名
  • 响应参数:

    参数名 参数类型 参数来源 是否数组 取值表达式 参数备注
    msg String Body msg 提示信息

界面设计器配置

列表页支持集成连接器的串联动作,但不允许配置响应参数,并且仅支持单行动作。

列表页集成连接器配置

常见问题

普通用户在设计器保存时提示无权限

保存时无权限问题

首先确保该角色有界面设计器权限,然后在“管理中心→角色与权限→系统权限→界面设计器”中点击“收集权限项”
收集权限项

集成串联动作一对多字段映射失败

界面设计器配置响应参数,无报错信息,响应参数也配置正确。
列表映射失败

确定接口返回信息正确时,检查响应参数是否设置为数组格式。

响应参数未设置数组

Oinone社区 作者:夜神月原创文章,如若转载,请注明出处:https://doc.oinone.top/designer/17544.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(3)
夜神月的头像夜神月数式员工
上一篇 2024年9月20日 pm2:24
下一篇 2024年9月20日 pm3:23

相关推荐

  • 流程设计流程结束通知SPI接口

    1.实现SPI接口 import pro.shushi.pamirs.meta.common.spi.SPI; import pro.shushi.pamirs.meta.common.spi.factory.SpringServiceLoaderFactory; import pro.shushi.pamirs.workflow.app.api.entity.WorkflowContext; import pro.shushi.pamirs.workflow.app.api.model.WorkflowInstance; @SPI(factory = SpringServiceLoaderFactory.class) public interface WorkflowEndNoticeApi { void execute(WorkflowContext context, WorkflowInstance instance); } 自定义通知逻辑 /** * 自定义扩展流程结束时扩展点 */ @Order(999) @Component @SPI.Service public class MyWorkflowEndNoticeApi implements WorkflowEndNoticeApi { @Override public void execute(WorkflowContext context, WorkflowInstance instance) { Long dataBizId = instance.getDataBizId(); //todo自定义逻辑 } }

    2023年12月26日
    1.0K00
  • 数据可视化-图表在业务页面如何加动态查询条件

    前提 阅读此文章前,默认读者已了解了界面设计器和数据可视化的基本操作图表基础操作文档 1.新建一个表单视图,要求表单的模型里有动态查询条件的字段 从左侧组件库找到“图表”组件,拖入到视图区域,在右侧属性面板选择已经发布过的图表 2.将“组件库”->“模型”下的查询条件字段拖入到视图区域,然后再选择图表,设置图表组件属性面板内的“查询条件” 查询条件为rsql语法,里面的变量需要用${}包裹起来,其中的activeRecord为当前视图的数据对象,下图中的activeRecord.field000015为推荐导购员的对象,我们拿了这个对象的id传到查询条件内 3.绑定菜单后,可以去运行时页面查看效果 通过浏览器的开发者工具,我们可以看到,选中导购员后查询条件发生了改变,页面的数据也同步发生了变化

    2024年8月28日
    1.3K00
  • OioProvider详解(v4.3.0)

    OioProvider OioProvider是平台的初始化入口。 示例入口 main.ts import { VueOioProvider } from '@kunlun/dependencies'; VueOioProvider(); 网络请求/响应配置 http 平台统一使用apollo作为统一的http请求发起服务,并使用GraphQL协议作为前后端协议。 参考文档: apollo-client graphql 配置方式 VueOioProvider({ http?: OioHttpConfig }); OioHttpConfig /** * OioHttp配置 */ export interface OioHttpConfig { /** * base url */ url: string; /** * 拦截器配置 */ interceptor?: Partial<InterceptorOptions>; /** * 中间件配置(优先于拦截器) */ middleware?: NetworkMiddlewareHandler | NetworkMiddlewareHandler[]; } 内置拦截器可选项 InterceptorOptions /** * 拦截器可选项 */ export interface InterceptorOptions { /** * 网络错误拦截器 */ networkError: NetworkInterceptor; /** * 请求成功拦截器 (success) */ requestSuccess: NetworkInterceptor; /** * 重定向拦截器 (success) */ actionRedirect: NetworkInterceptor; /** * 登录重定向拦截器 (error) */ loginRedirect: NetworkInterceptor; /** * 请求错误拦截器 (error) */ requestError: NetworkInterceptor; /** * MessageHub拦截器 (success/error) */ messageHub: NetworkInterceptor; /** * 前置拦截器 */ beforeInterceptors: NetworkInterceptor | NetworkInterceptor[]; /** * 后置拦截器 */ afterInterceptors: NetworkInterceptor | NetworkInterceptor[]; } 内置拦截器执行顺序: beforeInterceptors:前置拦截器 networkError:网络错误 actionRedirect:重定向 requestSuccess 请求成功 loginRedirect:登录重定向 requestError:请求错误 messageHub:MessageHub afterInterceptors:后置拦截器 NetworkInterceptor /** * <h3>网络请求拦截器</h3> * <ul> * <li>拦截器将按照注册顺序依次执行</li> * <li>当任何一个拦截器返回false时,将中断拦截器执行</li> * <li>内置拦截器总是优先于自定义拦截器执行</li> * </ul> * */ export interface NetworkInterceptor { /** * 成功拦截 * @param response 响应结果 */ success?(response: IResponseResult): ReturnPromise<boolean>; /** * 错误拦截 * @param response 响应结果 */ error?(response: IResponseErrorResult): ReturnPromise<boolean>; } 自定义路由配置 router 配置方式 VueOioProvider({ router?: RouterPath[]…

    2023年11月1日
    1.5K00
  • 集成接口测试功能

    API、 WebService、数据库的测试功能

    2025年8月26日
    45900
  • 集成接口一键发布生成开放平台接口

    1. 定义集成接口 2. 定义动态参数接口 3. 发布成开放平台接口 3.1 一键勾选多个发布开放平台,可重复发布 3.2 查看开发平台接口列表 3.3 查看开发平台接口详情 3.4 查看开发平台接口详情 4. 创建生成开放平台授权应用 5. postman模拟请求 5.1 获取Oinone开发平台APIKEY和APISecret 在开发接口列表中找到对应授权应用,点击查看密钥,获得APIKEY和APISecret 5.2 请求接口生成accessToken 接口请求 curl –location –request POST 'http://localhost/openapi/get/access-token' \ –header 'appKey: d63cb1d2c2af4e6b95f36b172804e2cc' \ –header 'appSecret: aQ0BwU/vpcLTm5swRaqXW6O5RUdrwOFGJF2nt2I4boIe7luRzul7y8msnKZuPKtvKprmGpw8z29+djBTUkKaV3zBZ4ZPSbaOkiiTB0AQvoPnPBnHxpF6M8xxDlS13hCRy0D01pcc8DbEwWYPetvp7j8WwLL6q3FusJaZPISPLuucT1hxnrCIA2fe72X7UxojROtOfBvYw6+JFv0E8xwrGLfXXX99wbTywuMzhEoqv64dYR2tfNLubua1xJnf/iAhFao+gw7y/44CZ1u3sUpFeIn5T9MnXB3BDVJnanSZTsxnl5wWY9HojrqtSfPJpcd59OKEmehpbHT9++muvDHgdM5zhbS6NhgSXKdH/kOQEP695RcB09AJxHIwcNF6hv4wGBNsAzHFUMx2QTgwHLONmFjx85ZNkp1iD8L3CYn+5kH2FAO+PG9KG/HvJRGoiViF53LyCSzf5FKj0uUY4QCHbTXXNfCE2L04PNlRj1Hj17JKxcTQ6ea1GsslYG5GjiOET2mRWw+DdnxK6S3GGR0pudRD3K22eG+ZLe/IY4sbMmJfAh8daYtOGcDuoiNXXbUUsf9uSgDDBihXy9ajNQUh8qIHb+N5dqbm/o69WLPUYVYvUzWZt23LHCLj1G8iZTTgkPmdhBsXGRcCBtyMpA7Vfci1TuBzuKrLPnB51T2hGhw=' 响应结果 { "access_token": "P0ztlcF+cL0RmRwTqjw6+i03NPScjdJptXQu4W98h0mssJl/5Bsg095ohzdCQtQu", "success": true, "errorCode": 0, "expires_time": 7200, "errorMsg": "ok" } 5.3 模拟请求钉钉接口 接口请求 curl –location 'http://localhost/openapi/dingtalk/api/v1.0/oauth2/accessToken' \ –header 'accessToken: P0ztlcF+cL0RmRwTqjw6+i03NPScjdJptXQu4W98h0k+xvGkaQmOCqCqKFEe5uNE' \ –header 'Content-Type: application/json' \ –data '{ "appKey": "dinguhgmdxva33gs8oaz", "appSecret": "QlxE8g7xoOCmVOZ9nGy-dqMduMstmxRFNGjENCyuwEVHa9jaxy6CioQYjEFkxHAM" }' 响应结果 { "expireIn": 7200, "accessToken": "f87a4ef669ae35879c5b1ee6237a584b", "http": { "headers": { "Content-Type": "application/json" } } } 5.3 模拟动态参数请求钉钉接口 使用postman请求是对应地址openapi/dingtalk/api/v1.0/{oauth}/accessToken需改成openapi/dingtalk/api/v1.0/:oauth/accessToken 接口请求 curl –location 'http://localhost/openapi/dingtalk/api/v1.0/oauth2/accessToken' \ –header 'accessToken: P0ztlcF+cL0RmRwTqjw6+i03NPScjdJptXQu4W98h0k+xvGkaQmOCqCqKFEe5uNE' \ –header 'Content-Type: application/json' \ –data '{ "appKey": "dinguhgmdxva33gs8oaz", "appSecret": "QlxE8g7xoOCmVOZ9nGy-dqMduMstmxRFNGjENCyuwEVHa9jaxy6CioQYjEFkxHAM" }' 响应结果 { "expireIn": 7200, "accessToken": "f87a4ef669ae35879c5b1ee6237a584b", "http": { "headers": { "Content-Type": "application/json" } } }

    2024年3月28日
    82600

Leave a Reply

登录后才能评论