outsystems合集系列(三)

news2024/11/18 22:58:27

outsystems

  • Modeling Data
    • Database Entities的介绍
      • 如何创建Database Entities
      • 如何用excel快速导入真实数据到entity?
      • 如何用excel快速创建entity并导入真实数据?
    • Static Entities的介绍

Modeling Data

这一节我将介绍在outsystems中建模数据(model data)的一些思路。注意在这里我说“建模数据”而不是“创建数据”,我认为二者是不一样的,建模数据代表只是创建真实数据应该遵守的存储规则,而不是直接创建真实的数据。

当我们在讨论建模数据的时候,我们要知道真实数据它是要包含app重要信息的,这些信息通常需要在databases中被存储和恢复(retrieve)。app真实数据代表不同业务模型,在outsystems,那些模型被建模(be modeled)并被entities引用。

Database Entities的介绍

默认情况下,entity被创建时就带有id属性,它唯一标识了entity中的每一条记录(如果需要,可以修改此属性)。它作为数据库表的主键,它为entities间建立关系提供支持。除了ID,entities被要求至少拥有一个其他属性。和ID一样,其他属性被映射到database的列。

关于基本数据类型(basic data types),在outsystems中存在几种选择。

  1. alphanumeric(含字母或数字的)类型
    像text、电话号码、email均可使用
  2. numeric(数值的)类型
    像integer、long、decimal、currency均属于numeric的范畴
  3. Dates(日期) and Times(时间)类型
    Date和Time既可以结合在一起,又可以分开独立
  4. Logic类型
    值为True或False
  5. Large Object类型
    像存储图片的二进制数据类型(binary data type)
  6. Referential类型
    像EntityID就应使用Referential类型作为属性

这六种基本数据类型都有默认值,也就是说entitiy的属性(or say 变量)永远都有值。

在outsystems中,属性名的定义是有规范的,因为outsystems会根据你的属性名去推断你的数据类型。我们无需手动定义属性的数据类型。

entity内置实体行为(built-in entity action),这些行为对应的是普通CRUD(Create、Retrieve、Update、Delete),它们对entity的行(row)进行操作。

内置实体行为在Server Studio中如下图展示
在这里插入图片描述
内置实体行为是outsystems自动创建的,且不可被修改。这些内置实体行为可以被使用到应用的业务逻辑中,用于操作entity中的数据。

如何创建Database Entities

在上一节,我们认识了什么是entity、Database Entities的6种基本数据类型、outsystems根据entities属性名自动推断出对应数据类型的机制以及属性名和数据类型的推断关系表、outsystems为每个实体生成的内置实体行为。在这一节中,我将介绍如何在Server Studio中创建Database Entities。

首先到我们的开发环境(Server Studio),打开一个module,打开后看到界面

选中右上角Data标签(tab),在Data标签中,有一个叫Entities的文件夹(folder),右键点击Entities,然后点击Add Entity to Database

在这里插入图片描述
给新建的entity起个名,然后点击左边的三角形(expand triangle)展开
在这里插入图片描述
从上图展开的Entity中我们可以看到,outsystems预先在entity中创建了一个Id属性,还有一些实体行为(entity actions)。

我们右键点击Customer,创建两个实体属性(Add Entity Attribute),点击Id属性

在这里插入图片描述

我们可以看到在底部有Id属性的信息:名字为Id、数据类型为Long Integer、是否自动排序(Is AutoNumbered)为Yes。

最后,创建完了entities我们要让outsystems根据entites在服务器(platform server)中生成物理数据库(physical database)的表,我们只需要点击最上方的一键发布按钮(one-click publish button)

现在entity已经创建好了,并且可以在database中存储数据。

如何用excel快速导入真实数据到entity?

这一节,我将给大家展示如何快速从excel中导入(bootstrap)真实数据到entity。

我们准备了以下这个excel文件,包含了一些customer的信息。一张表(sheet),四列(Name、Email、PhoneNumber)。

在这里插入图片描述

让我们用entity的预览数据看目前有哪些数据在customer entity,右键点击Customer entity,点击View Data

在这里插入图片描述
正如我们所看到的那样,Customer entity中没有数据

在这里插入图片描述
我们现在要往Customer entity中导入数据,右键点击Customer entity,鼠标覆盖在Advanced选项上,点击Create Action to Bootstrap Data from Excel选项

在这里插入图片描述
双击我们预先准备好的Excel文件

在这里插入图片描述
弹出一个提示框,里面张表格(table)

在这里插入图片描述
Service Studio会分析Excel文件,然后尝试匹配excel的列和entity的属性,弹出的提示框展示了Service Studio的对Excel列和Customer属性的映射执行(mapping performed)情况。如我们所见,Excel文件的PhoneNumber列没有匹配到任何属性。映射的机制是基于Excel列和entity属性名和数据类型,如果它们不匹配,那么database中对应字段将不会有数据。

点击proceed创建逻辑和定时器

Server Studio会导入数据到customer entity
在这里插入图片描述
点击一键发布按钮会上传编译部署模块

在成功部署模块之后,数据将会被导入到entity,让我们看看data具体的怎样被导进来的

在processes标签中,Timers文件夹包含了导入customers的定时器(timer),定时器是在我们点击procceed的时候,Service Studio自动创建的。

在这里插入图片描述
在outsystems,定时器是后台作业(background jobs),在这个例子中,我们可以看到timer的Schedule属性值为When Published,意味着当模块被发布的时候该timer会被执行。

在这里插入图片描述
双击上上图的BootstrapCustomers,Server Studio会跳转到关联了的Logic(逻辑)标签,

下图展示了如果entity已经包含数据,逻辑流程(logic flow)将只做简单地验证,如果entity中没有数据,它将会加载excel文件的每一行,在database中创建对应的customer。

在这里插入图片描述
让我们回到data标签再一次预览data,因为timer在我们执行一键部署的时候已经被执行,因此data被成功地插入到了database table。

在这里插入图片描述

如何用excel快速创建entity并导入真实数据?

上面我们学会了如何往已经存在的entity中导入数据,我们将学习如何用用excel创建entity并导入数据。

我们准备了以下这个excel文件,里面有两张表。表一有Name、Description、Price三列,代表产品。

在这里插入图片描述
表二有Name一列,代表产品品类(category)

在这里插入图片描述

现在我们切换到Server Studio,要导入entity和它们的data,我们需要打开Data标签,右键点击Database,选择Import New Entities from Excel…

在这里插入图片描述
双击我们的excel文件——>点击IMPORT
在这里插入图片描述
如我们所见,两张表被导入了进来,并且Server Studio为我们自动创建了Id属性

在这里插入图片描述
我们看到两个entity的名字分别为Sheet1和Sheet2,而不是Product和Category。是因为本教程准备的excel文件中表的表名为Sheet1和Sheet2,如果想导进来的Entity名字为Product和Category,需要在导入之前将Sheet1和Sheet2改名为Product和Category。由于本人的制作失误造成您的不便,望谅解。

最后只需点击一键发布按钮,ServerStudio执行BootstrapCustomers逻辑,数据就插入到了database。

在这里插入图片描述

Static Entities的介绍

在这节,我们将介绍什么是static entities,研究static entity拥有的相关特性——属性和记录(attributes and records) 。

什么是static entities?

static entites是entity的一种特殊类型,它们允许你创建一个预定义的值,在你的app里面使用。

让我来深入探讨什么叫”预定义值列表,在app里面使用"。

static entity类似于枚举(enumeration)——a list of items in a collection。

在outsystems,这些items称为记录(records)。static entities拥有属性和记录,鉴于它们的静态特质,记录在运行时(runtime)是无法改变的。改变记录只能发生在开发设计应用的时候。

下面我们来创建一个static Entity

在这里插入图片描述
static entites的一个特性让它们与普通entity区别开来。static entity只有一个entity action——the Get action。因为这些entities是静态的,它们不能在运行时被改变,只能被读取。所以当其他entities有多个entity action的时候,static entity只有一个

在这里插入图片描述
默认情况下,当我们创建一个static entity,Server Studio自动帮我们创建了四个属性——Id、Label、Order、Is_Active,你可以改变这些默认的属性

我们往static entity中添加一个属性Color Code,你也可以添加其他的属性

在这里插入图片描述
右键点击Records文件夹,创建三条记录High、Medium、Low

在这里插入图片描述
每一条记录都有一个标识(Identifier)

在这里插入图片描述
每个记录都属性
a

回到最初的问题:什么是预定义值,在app里面使用。

static entity由记录和属性组成,记录和属性的关系是属性决定记录,不同的属性值造就不同的记录。对于outsystems应用来说,记录就是一个个值,存放在database里面,万年不变,提供给app使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shellcode 中 null byte 的成因和避免方式总结

背景 shellcode 中要避免 null byte(\x00)这个是个通用的概念(windows,linux 都是一样),因为栈溢出的数据作为字符串写入到栈上,\x00 会作为字符串终止符,毁掉整个 shellcode。 这…

HTML+CSS个人静态网页设计

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

【AGC】安全规则resource.data获取不到字段

问题背景 在表结构里有但resource.data获取不到uid字段 解决该问题 request变量是指请求,request.resource.data是请求数据的所有字段和值的映射;resource变量是指所请求的数据在数据库中保存的状态,resource.data是数据库中保存数据的所有…

教师工作量管理系统思路(链表应用)

教师工作量管理系统思路(链表应用) 文章目录教师工作量管理系统思路(链表应用)题目描述:初始信息菜单部分数据结构功能实现查询历史信息从键盘录入信息信息删除和修改工作量计算如何存储到工作量信息链表中&#xff1f…

Bootstrap响应式轮播效果网页(1+X Web前端开发中级 例题)

文章目录 📄题目要求 🧩说明 🧩效果图 💻HTML代码 🎯实现效果 📰完整答案 📄题目要求 阅读下列说明、效果图和HTML代码,进行静态网页开发,填写(1&…

springboot12总结篇(9 10 11)

1.视图解析 以重定向为例 如果返回字符串 则会调用视图解析器thymeleafResolver判断返回值为普通字符串,返回thymeleafView调用其render方法,拼接直接访问 2.异常处理 404 ControllerAdvie 处理异常类 ExceptionHandler ControllerAdvie 处理异常类…

适配器模式

思考适配器模式 适配器模式通过转换已有的接口,达成目标需要的接口 适配器模式还可以将多种差异化接口适配成同一接口做统一输出 1.适配器模式的本质 适配器模式的本质是:转换匹配,复用功能。 适配器通过转换调用已有的实现,从而能把已有的实现匹配成需要…

【Spring】——4、使用@Scope注解设置组件的作用域

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

VCED:学习Jina的简单操作

文章目录VCED:学习Jina的简单操作在pycharm里连接docker环境几个简单的jina demoimagetextvideoVCED:学习Jina的简单操作 在pycharm里连接docker环境 在pycharm里找到docker环境 New一个环境 在docker里进入terminal,找到python 位置 成功得到decker环境 运行jina…

004_步进电机实验

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。本章主要从步进电机的结构、工作原理、电机参数分别介绍,最后通过实验来实现步进电机运动的简单控制。本章所要实现的功能是:通过 ULN2003 驱动模块控制 28BYJ48 步进电机运行方向及速度&…

bugku-web-社工-初步收集

题目首页 社工又有杂项的存在 打开题目 小时候可能特感兴趣的网站 目录扫描一下 dirsearch 得到一个管理员后台登录网站 但是需要密码 再回到起始页面 存在一个下载点 可以操作 下载得到一个压缩包 解压打开 是一个小插件 尝试登录 同时 打开wireshark进行流量截取…

Nacos安装指南

Nacos安装指南 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://github.com/alibaba/nacos GitHub的Release下载…

Monaco Editor教程(十六):缩略图minimap的配置详解

背景 缩略图 (Minimap) 是一种常见的用于快速预览和探索的工具,可作为导航辅助用户探索大规模图。 在大文件的阅读和编辑中,能够起到很好的导航作用,并且缩略图能够显示文件结构的大致轮廓,使开发人员能够快速知道对应的编辑位置…

WordPress重新安装的几种方法(2022年新版教程)

我们在建网站的过程中,可能出于某些原因会把网站重装,例如网站中病毒了、网站做的不满意,重头开始。本文会给大家分享一下2022年可行的重装WordPress网站方法。 1 重装WordPress的方法 方法一:重置数据库 方法二:宝塔面…

【MySQL】MySQL基础、详细总结

数据库Mysql 内容管理数据库基础什么是DB、DBMS、DBS、DBA?什么是元组、码、候选码、主、外码(键)、(非)主属性?主、外码的区别?为什么不推荐使用外码和级联 ?【分布式高并发】什么是…

Servlet规范之部署描述符

Deployment Descriptor 文章是对 JSR-000340 JavaTM Servlet 3.1 Final Release的Java™ Servlet规范的翻译,尚未校准 文章目录Deployment Descriptor部署描述符元素部署描述符的处理规则部署描述符部署描述符示意图web-app元素description Elementdisplay-name Ele…

从零开始学前端:json对象,冒泡排序 --- 今天你学习了吗?(JS:Day15)

从零开始学前端:程序猿小白也可以完全掌握!—今天你学习了吗?(JS) 复习:从零开始学前端:字符串、数组的方法 — 今天你学习了吗?(JS:Day12/13/14&#xff09…

范式建模维度建模 及结合BW的一些理解

用了几年BW了,时不时会想,BW为什么要这么设计啊,有时候用的可真麻烦,最近研究了下两种常见的建模理论,有了自己的一点感悟,我们从头开始,有很多资料是从大佬那里摘录的,就不一一列举了 一、范式…

DOPA-PEG-azide,Dopamine-PEG-N3,多巴胺PEG叠氮用于点击化学

多巴胺-聚乙二醇-叠氮(DOPA-PEG-azide,Dopamine-PEG-N3)该试剂具有更好的水溶性,它所属分类为Azide PEG Dopamine PEG。 peg试剂的分子量均可定制,有:2k、5k、3.4k、10k、20k、1k 。其质量控制为95%&#…

基于Matlab模拟用于天气观测的极化雷达回波(附源码)

目录 一、雷达定义 二、天线方向图 四、雷达脉冲合成 五、天气雷达力矩估计 六、仿真结果 6.1反射率 6.2 径向速度 6.3 频谱宽度 6.4 差分反射率 6.5 相关系数 6.6 差分相位 七、总结 八、程序 本示例展示了如何模拟满足天气观测要求的极化多普勒雷达回波。雷达在天…