4.1.7 函数之元数据详解

介绍Function相关元数据,以及对应代码注解方式。大家还是可以通读下,以备不时之需

如您还不了解Function的定义,可以先看下2.3【oinone独特之源,元数据与设计原则】对Function的描述,本节主要带大家了解Function元数据构成,能让小伙伴非常清楚oinone从哪些维度来描述Function,

一、元数据说明

FunctionDefinition

元素数据构成 含义 对应注解 备注
namespace 函数命名空间 @Fun("") @Model.model("") @Fun或@Model.model
name 技术名称 @Function(
name="",
scene={},
summary="",
openLevel=FunctionOpenEnum.REMOTE
)
scene 可用场景 见:FunctionSceneEnum
description 描述
openLevel 开放级别 见:FunctionOpenEnum
fun 编码 @Function.fun("")
displayName 显示名称 @Function.Advanced(
displayName="",
type=FunctionTypeEnum.UPDATE,
dataManager=false,
language=FunctionLanguageEnum.JAVA,
isBuiltin=false,
category=FunctionCategoryEnum.OTHER,
group="pamirs",
version="1.0.0",
timeout=5000,
retries=0,
isLongPolling=false,
longPollingKey="userId"
longPollingTimeout=1
)
type 函数类型默认:4(改) 见 FunctionTypeEnum
dataManager 数据管理器函数默认:false
language 函数语言默认:DSL 见FunctionLanguageEnum
isBuiltin 是否内置函数 默认:false
category 分类 默认:OTHER 见:FunctionCategoryEnum
group 系统分组 默认:pamirs
version 系统版本 默认:1.0.0
timeout 超时时间 默认:5000
retries 重试次数 默认:0
isLongPolling 是否支持long polling,默认false
longPollingKey 支持从上下文中获取字段作为key
longPollingTimeout long polling超时时间 默认值为1
transactionConfig 事务配置 JSON存储 见TransactionConfig 配置@PamirsTransactional
source 来源 系统推断值,见:FunctionSourceEnum
extPointList 函数包含扩展点 系统推断值
module 所属模块 系统推断值
bitOptions 系统推断值
attributes 属性 系统推断值
imports 上下文引用 系统推断值
context 上下文变量 系统推断值
codes 函数内容 系统推断值
beanName bean名称 系统推断值
rule 前端规则 系统推断值,一般Action.rule传递下来的
clazz 函数位置 系统推断值
method 函数方法 系统推断值
argumentList 函数参数 系统推断值,List<Argument>
returnType 返回值类型 系统推断值

表4-1-7-1 FunctionDefinition

TransactionConfig

函数事务管理之配置项事务,具体事务使用详见4.1.8【函数之事务管理】一文。

元素数据构成 含义 对应注解 备注
transactionManager 事务管理器 @PamirsTransactional(
transactionManager="",
enableXa=false,
isolation=Isolation.DEFAULT,
propagation=Propagation.REQUIRED,
timeout=-1,
readOnly=false,
rollbackFor={},
rollbackForClassName={},
noRollbackFor={},
noRollbackForClassName={},
rollbackForExpCode={},
noRollbackForExpCode={}
)
enableXa 分布式事务默认为false
isolation 事务隔离级别
propagation 事务传递类型
timeout 过期时间 默认:-1
readOnly 只读 默认:false
rollbackForExpCode 回滚异常编码
rollbackForExpCode 忽略异常编码
namespace 函数命名空间 系统推断值
fun 函数编码 系统推断值
active 生效 默认为true 系统推断值

表4-1-7-2 TransactionConfig

二、元数据,在Java中对应的注解类说明

命名空间注解

Fun

@Fun 函数申明
└── value 命名空间

Model

@Model

└── model 命名空间

函数信息注解

Function

@Function
├── name 技术名称
├── scene 可用场景
├── summary 描述摘要
├── openLevel 开放级别
├── Advanced 更多配置
│ ├── displayName 显示名称
│ ├── type 函数类型,默认 FunctionTypeEnum.UPDATE
│ ├── managed 数据管理器函数,默认false
│ ├── language 语言,默认 FunctionLanguageEnum.JAVA
│ ├── builtin 是否内置函数,默认否
│ ├── category 分类,FunctionCategoryEnum.OTHER
│ ├── group 系统分组,默认:pamirs
│ ├── version 系统版本, 默认:1.0.0
│ ├── timeout 超时时间,默认:5000
│ ├── retries 重试次数,默认:0
│ ├── isLongPolling 是否支持long polling ,默认false
│ ├── longPollingKey 支持从上下文中获取字段作为key,默认 userId
│ └── longPollingTimeout long polling超时时间,默认值为1
└── fun
└──value

函数事务管理注解

PamirsTransactional

@PamirsTransactional
├── value @AliasFor("transactionManager")
├── transactionManager @AliasFor("value") 默认值:""
├── propagation 事务传递类型 默认值:Propagation.REQUIRED
├── isolation 事务隔离级别 默认值:Isolation.DEFAULT
├── timeout 过期时间默认:-1
├── readOnly 只读 默认:false
├── rollbackFor 回滚异常类
├── rollbackForClassName 回滚异常类名
├── rollbackForExpCode 回滚异常编码
├── noRollbackFor 忽略异常类
├── noRollbackForClassName 忽略异常类名
├── noRollbackForExpCode 忽略异常编码
└── enableXa 分布式事务 默认为false

Oinone社区 作者:史, 昂原创文章,如若转载,请注明出处:https://doc.oinone.top/oio4/9282.html

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

Like (0)
史, 昂's avatar史, 昂数式管理员
Previous 2024年5月23日 am8:56
Next 2024年5月23日 am8:58

相关推荐

  • 节点动作

    节点动作为触发和结束结点中间的动作,点击节点名称可以进行修改。

    Oinone 7天入门到精通 2024年6月20日
    1.8K00
  • 页面

    1. 页面介绍 页面是增删改查数据的入口,数据信息的填写、查看都需要通过页面来展示、交互。页面设计是界面设计器的功能之一,提供页面搭建功能,以实现数据的录入、查看/查询、搜索等等。 2. 页面列表 进入界面设计器,默认会打开以卡片形式管理页面的列表。 如图,页面卡片上可预览到的信息分别有页面标题、页面缩略图、视图类型、页面对应模型名称、页面描述。 「页面标题、页面描述」作用是通过文字定义页面的名称以及对页面进行详细描述。 「页面缩略图」是自行上传的图片,用于在页面列表通过图片预览当前页面的大致布局样式。若未上传,将显示系统默认的图片,点此查看缩略图上传。 「视图类型」通过业务角度(运营管理、官网门户、商城等,目前提供了运营管理一种业务类型)进行分类。运营管理中包括表单、表格、详情、画廊、树视图。 表单常应用于数据的创建、编辑页; 表格可理解为数据的列表查看页面,除了常规表格外,本版本支持树表、级联高级视图; 详情用于设计数据的详情页; 画廊是以卡片形式呈现内容; 树视图是包括树表、级联高级视图; 表格-树表、树视图-树表两者之间的区别:表格-树表的主模型是表格的模型,树视图-树表的主模型是树表的模型、左侧表格是展开的内容; 3. 添加页面 操作添加页面,首先需要选择添加方式。目前提供了1种添加页面方式:直接创建。 3.1 直接创建 直接创建时,弹框中填写页面的基本信息,填写完成后进入页面设计页。 4. 页面操作 4.1 设计页面 操作设计页面后直接进入该页面的设计页面,可对组件布局、交互、属性进行设置。 4.2 编辑 操作编辑弹出页面的基本信息弹框,可对当前页面的基本信息进行编辑修改。 可修改的基本信息包括页面标题、操作栏位置、页面分组、页面描述。 4.3 查看被引用的信息 4.3.1 什么是引用? 页面与页面或页面与菜单之间的若存在交互则称为具有引用关系。 举例1:【页面A】中的一个「跳转动作」配置了跳转【页面B】,则称页面B被页面A引用,在页面B下可查看被引用信息。 举例2:比如【菜单1】绑定了【页面C】,则称页面C被菜单1引用,在页面C下可查看被引用信息。 4.3.2 查看的引用信息是什么? 引用信息分别有“存在引用关系的视图”、“存在引用关系的菜单”。页面下操作查看被引用信息,是查看当前页面被引用情况,如上述举例1,页面B被引用,而页面A非被引用,所以只可以在页面B下查看到“存在引用关系的视图”。 4.4 隐藏/可见 对于暂时不使用的页面,可以进行隐藏(隐藏后可再设置可见)的操作。 4.4.1 隐藏/可见会有哪些影响? 隐藏后该页面在跳转动作选择页面和菜单绑定页面时,不可见,已被使用的不受影响。再次操作可见后,即可选择到。 4.4.2 隐藏后的页面找不到了? 若需要对隐藏的页面进行操作,但是在列表未查找到某个隐藏的页面,请切换「是否可见」筛选项,页面列表默认展示所有“可见”的页面,切换为“全部”或“隐藏”,即可找到隐藏的页面。 4.5 删除 对于不再使用且没有被引用信息的页面,可以将页面删除。页面删除后无法恢复,请谨慎操作,对于不确定是否要彻底删除的页面,建议先操作隐藏。 删除前请确保当前页面没有引用关系! 5. 页面搜索 卡片上方是页面筛选和搜索区域,可通过应用、模型、业务类型、视图类型、自定义/系统、可见/隐藏等等筛选页面;搜索时仅支持使用页面名称进行搜索。同时筛选条件也具备记忆功能,即上一次在页面列表的筛选条件是哪些,再次进入页面列表,筛选条件默认为上次的条件。 其中自定义页面是所有人工添加的页面,系统页面为非人工添加的页面,由系统默认生成,只可用于查看,不可编辑、删除或设计。 6. 页面分组管理 6.1 页面分组 当页面过多时,可以自定义添加15个分组,将页面进行归类管理。默认展示全部分组,点击「全部」展开所有分组,点击分组进行分组下的页面查看或管理分组。 6.2 管理分组 展开分组后,点击「管理分组」,出现弹框,在弹框中可以修改分组名称、添加分组、删除分组。 6.2.1 添加分组 操作「+页面分组」,可以直接输入分组名称后回车以添加一个新分组,或快捷选择其他应用使用的分组。最多添加15个分组。 6.2.2 修改分组 双击分组标签,即可对已有分组进行名称的修改。若分组在其他应用也使用,则在其他应用内,该分组名称同步变化。 6.2.3 删除分组 若分组下有页面或分组有被其他应用使用,则分组无法删除。

    2024年6月20日
    1.6K00
  • 应用中心

    在App Finder 中点击应用中心可以进入Oinone的应用中心,可以看到Oinone平台所有应用列表、应用大屏、以及技术可视化。 1. App Finder 平台提供App Finder搜索查找已安装的应用、点击进入应用; 我收藏的应用:在应用中心收藏后会呈现在“我收藏的应用”; 业务应用:与业务相关、用户可操作的应用; 设计器:平台提供五大设计器设计应用,即平台的无代码能力,包括:模型设计器、界面设计器、流程设计器、数据可视化、集成设计器。 2. 应用列表 应用列表管理平台中所有应用,管理应用的生命周期,如安装、升级、卸载,提供搜索、创建、编辑、卸载、收藏、设置首页等功能。 在介绍应用具体操作前,我们先来了解以下概念: 应用类型:分为应用与模块两种类型,两者区别在于在于应用有前台页面,可以在前台页面操作数据,模块没有前台页面、服务于其他应用或模块,大家在创建应用时可根据业务需求创建应用或模块。 依赖:创建新应用时,可依赖已有应用或模块,依赖后使用依赖应用/模块的能力,比如依赖文件应用可使用导入、导出能力,依赖资源应用可使用地址、语言等能力。 图3-2-35 Oinone的应用列表 2.1 创建 创建应用时,需要选择类型、定义应用名称、技术名称,选择依赖模块、所属分类、客户端类型。 每个应用大多数都需要依赖一些基础模块:文件、资源、 应用分类是按照应用所属业务域进行的分类管理,目前是平台提供的分类,后续会开放给用户自行管理。 客户端类型是指应用适用于PC端、移动端,如果只选择PC端,则应用不可在移动端使用。 2.2 编辑 编辑时,不允许编辑类型,技术名称,需要在创建时定义正确。 2.3 安装与卸载 卸载后,应用就不会呈现在App Finder中,不可进入应用、使用应用,可重新安装,安装后继续使用。 2.4 收藏应用 点击应用卡片右上角的星标可收藏、取消收藏应用,收藏的应用在App Finder和工作台中展示在收藏位置,可快捷进入。 2.5 设置首页 定义每个应用的首页,有两种方式: a. 通过绑定菜单,进入绑定菜单的页面; b. 直接绑定视图,选择模型、找到模型下的视图,如果可作为首页的视图不存在,也可以进入设计器创建。 2.6 应用详情 点击了解更多,可进入应用详情,查看应用基础信息。 2.7 设计器快捷入口 设计页面:进入界面设计器; 设计模型:进入模型设计器; 设计流程:进入流程设计器; 3. 应用大屏 应用大屏按照分类展示应用,未设置应用分类的应用,无法在应用大屏中呈现。 图3-2-37 未设置应用类目则无法在应用大屏中呈现。 4. 技术可视化 在技术可视化页面,出展示已经安装模块的元数据,并进行分类呈现。 图3-2-38 云数据分类呈现

    2024年5月23日
    2.2K00
  • 4.1.18 框架之网关协议-Variables变量

    我们在应用开发过程有一种特殊情况在后端逻辑编写的时候需要知道请求的发起入口,平台利用GQL协议中的Variables属性来传递信息,本文就介绍如何获取。 一、前端附带额外变量 属性名 类型 说明 scene String 菜单入口 表4-1-18-1 前端附带额外变量 图4-1-18-1 variables信息中的scene 二、后端如何接收variables信息 通过PamirsSession.getRequestVariables()可以得到PamirsRequestVariables对象。 三、第一个variable(举例) Step1 修改PetTalentAction,获取得到前端传递的Variables package pro.shushi.pamirs.demo.core.action; ……类引用 @Model.model(PetTalent.MODEL_MODEL) @Component public class PetTalentAction { ……其他代码 @Function.Advanced(type= FunctionTypeEnum.QUERY) @Function.fun(FunctionConstants.queryPage) @Function(openLevel = {FunctionOpenEnum.API}) public Pagination<PetTalent> queryPage(Pagination<PetTalent> page, IWrapper<PetTalent> queryWrapper){ String scene = (String)PamirsSession.getRequestVariables().getVariables().get("scene"); System.out.println("scene: "+ scene); ……其他代码 } ……其他代码 } 图4-1-18-2 修改PetTalentAction Step2 重启验证 点击宠物达人不同菜单入口,查看效果 图4-1-18-3 示例效果(一) 图4-1-18-4 示例效果(二)

    2024年5月23日
    1.7K00

Leave a Reply

Please Login to Comment