OutSystems Training

本文详细介绍OutSystems平台的低代码开发环境,涵盖ServiceStudio、数据建模、UI设计及业务逻辑构建等内容,助力高效开发企业级应用。

OutSystems Training

1 概述(Overview)

1.1 OutSystems 概述

1.1.1 是什么

一整套低代码企业级应用(WEB 和 移动端)的开发环境。

  1. 全栈

    Service Studio: Visual Design and Development.

  2. 集成

    Integration Studio: Integration with external systems
    前端:各种UI库
    后端:C#代码,REST,SAP
    数据:Sql server,Oracle,Mysql,…

  3. CICD

    1-Click Publish!

    上传本地Service Studio中的代码到服务器,然后在Platform Server上对代码进行优化,然后编译优化后的代码,最后部署应用和数据。

  1. 内置管理和分析平台

    1. Service Center

      • Home

      • Factory

      • Monitoring

      • Administration

      • Analytics

    2. LifeTime

      • Applications

      • User Management

      • Infrastructure

      • Analytics

      • Forge(在 Service Studio 中可以直接下载、使用 forge中的组件)

      • Forums(https://www.outsystems.com/forums/)

  2. Summary

1.1.2 为什么
  1. 为什么用低代码?综上,显然,因为提高了开发效率。
    · 能够服务更为复杂的场景需求

    · 功能基本上与自主开发相当

    · IT分析师可用,前期建模

    · 能够大幅缩短开发周期

    · 功能强大, UI设计优秀,拖拽UI完成界面开发

    · 敏捷, 灵活度高, 延展性好, 迭代更新强

    · 可支持广泛场景的复杂应用开发(例如:企业级, 核心级别系统)

    · 真正意义上的Devops + CI/CD

    · 国际标准安全认证, 安全性高

    · 一键同时生成网页应用 + 移动应用, 无需重复开发

    · AI + ML + IOT + 定制化 + 私有化 , 可灵活混合部署

  2. 为什么用OutSystems?看看 “1.1.3 业界地位”

1.1.3 业界地位


1.2 Service Studio 概述

Visual Design and Development:

  1. Applications and Modules
  2. Data
  3. UI
  4. Logic

- - - 接下来全部是介绍 Service Studio - - -

中心思想:实际工作中它能做什么,它是怎么帮助我们提高工作效率的?

按照构建一个系统的方式/顺序来介绍: Applications and Modules -> Data -> UI -> Logic

2 Applications and Modules

新建:

3 Data

3.1 Modeling Data(数据建模)

  1. 构建实体
    构建实体和静态实体
    Entity to Database Mapping:

  2. 构建实体间关系
    构建关系和构建实体同样重要。

3.2 Aggregates(数据聚合)

  1. 定义
    一个可视化元素,该元素定义了一个从实体中抓取数据的查询,该查询可包含数据源、过滤、排序。
    An Aggregate is a visual element that allows to define a query to fetch data from entities with sources, filters, and sorting.

    -- Executed SQL
    SELECT TOP (32) [ENEMPLOYEE].[ID] o0, [ENEMPLOYEE].[NAME] o1, [ENEMPLOYEE].[EMAIL] o2, [ENEMPLOYEE].[JOBTITLE] o3, [ENEMPLOYEE].[ISMANAGER] o4
    FROM [PTPMU6015].dbo.[OSUSR_3JX_EMPLOYEE] [ENEMPLOYEE]
    WHERE ([ENEMPLOYEE].[EMAIL] LIKE (N'%' + @Domain))
    	AND (((len([ENEMPLOYEE].[NAME])) > 10) AND ((len([ENEMPLOYEE].[JOBTITLE])) < 25))
    ORDER BY [ENEMPLOYEE].[ISMANAGER] ASC, [ENEMPLOYEE].[NAME] DESC
    
  2. 分类:

    • Screen Aggregates
    • Server Aggregates

3.3 高级数据聚合(Advanced Aggregates)

-- Executed SQL
SELECT TOP (27) [ENORDER].[PRIORITY] [PRIORITY], Count(([ENPRODUCT].[PRICE] * convert(decimal(37,8), [ENORDERPRODUCT].[QUANTITY]))) [TOTALPRICECOUNT], Sum(([ENPRODUCT].[PRICE] * convert(decimal(37,8), [ENORDERPRODUCT].[QUANTITY]))) [TOTALPRICESUM]
FROM (([PTPMU6015].dbo.[OSUSR_L0G_ORDER] [ENORDER]
	Inner JOIN [PTPMU6015].dbo.[OSUSR_L0G_ORDERPRODUCT] [ENORDERPRODUCT] ON ([ENORDER].[ID] = [ENORDERPRODUCT].[ORDERID]))
	Inner JOIN [PTPMU6015].dbo.[OSUSR_L0G_PRODUCT] [ENPRODUCT] ON ([ENORDERPRODUCT].[PRODUCTID] = [ENPRODUCT].[ID]))
GROUP BY [ENORDER].[PRIORITY]

3.4 数据模型整合(Data Model Integrity)

  1. 索引(Indexs)

  1. 引用整合(Referential Integrity)

    Delete Rule属性:Protect, Delete, Ignore.

3.5 自定义SQL(SQL Queries)

可用于:
○ Server Actions
○ Screen Data Actions

分类:

  1. SELECT Queries

    SELECT {Product}.[Name], {Product}.[Price] FROM {Product} WHERE {Product}.[Price] > @MinPrice
    
  2. Non-SELECT Queries

    INSERT INTO {Product}
        ({Product}.[Name], {Product}.[VAT], {Product}.[Price])
    VALUES (@Name, @VAT, @Price)
    
    UPDATE {Product}
        SET {Product}.[Name] = @Name, {Product}.[VAT] = @VAT, {Product}.[Price] = @Price
    WHERE {Product}.[Id] = @Id
    
    DELETE FROM {Product}
        WHERE {Product}.[Id] = @Id
    

4 用户界面(UI)

4.1 Screen

  1. 定义
    A Screen is one of the building blocks for an interface that is composed of other elements to create rich interfaces.
    屏幕是一个界面的构建块,它组合了一些其他元素来构建丰富多彩的界面。

    注:和传统开发的前端页面元素对比。

  2. 部件(Screen Widgets)
    Container, Table, List, ListItem, Expression, If, Switch, Form(Label, Input(Text, Password, Number, Time, Date, Date Time, Phone, Email, Search), TextArea, Dropdown, Checkbox, RadioGroup, Upload, Image, Button, ButtonGroup, Link), …

    其中,Button Group中可以自行添加和删除button item:

    Both Buttons and Links have On Click Destinations:

    • Screen
    • External URL
    • (Screen) Client Action
    • Event
  3. 变量(Screen Input Parameters and Local Variables)

4.3 表单校验(Forms)

4.1.1 构建Widgets

Form, Label, Input(Text, Password, Number, Time, Date, Date Time, Phone, Email, Search), TextArea, Dropdown, Checkbox, RadioGroup, Upload, Image, Button, ButtonGroup, Link, …

4.1.2 校验
  1. Built-in validations

  1. Custom Validations

  2. 校验不通过的页面展示

5 逻辑(Logic)

5.1 Actions

  1. 概述

    Action是一个元素,该元素允许我们定义运行在客户端或服务端的逻辑流。

  2. Action流(Action Flow)

    1. 定义了一个逻辑片段

    2. 只有一个start节点

    3. 有多个结束节点:

    • End
    • Destination (Screen Actions only)
    • Download (Screen Actions only)

  3. 分类

    • Screen Actions(JavaScript)
    • Client Actions(JavaScript)
    • Server Actions(Controller, Service)
    • Entity Actions(DAO)

    注:和传统开发的前端、SpingMVC对比。

  4. 可复用

5.2 变量

分类:

  • Input: 离开父元素作用域后销毁
  • Local: 离开父元素作用域后销毁
  • Output: 离开父元素作用域后仍然存在

注:和Java方法中的各种变量对比。

5.3 异常(Exceptions)

  1. 提出异常
    在程序运行时,当操作意外失败时,一个异常被抛出。
    异常导致流程执行的中断,并且程序执行跳转到异常处理流程中。另外,异常处理流程执行完后,不会返回到原始流程中。

    • 自动 (eg. Database Exception, User Exception, Security Exceptions, Communication Exceptions, …)
    • 手动(显式) (eg. InvalidCustomer Exception)
  2. 处理异常(Exception Handler)

    • 一个Action流中,可以包含多个异常处理器流,比如:

      • Database Exceptions
      • Security Exceptions
      • Communication Exceptions
      • Custom User Exceptions
    • 当一个异常被提出时,由最匹配该异常的处理器来处理;程序的执行也跳转到了该异常处理器中。

  3. 全局异常处理器(Global Exception Handler)

    如果匹配的异常处理器在当前执行上下文中不存在,则继续向上查找任何更外围的上下文,直到找到一个匹配的异常处理器。

    全局异常处理器模块特性:

    • 位于Common UI Flow (default)
    • 每个模块最多一个
    • 向上查找过程中的最高的可能等级
    • 应该能处理所有异常

6 分页和排序(Pagination and Sorting)

分页:

排序:

页面效果:

7 Debugging

  1. 定义
    Debugging is a troubleshooting technique that helps finding errors in code.
    帮助发现程序中的错误的故障排除技术。

支持在Screen Action,Client Action,Server Action中进行Debug。

  1. 步骤

  2. 操作

    查看变量在运行时的值:
    image

  3. 在生产者模块中Debug
    场景:有一个生产者模块(Producer Module)和一个消费者模块(Consumer Module),Consumer中调用了Producer中的元素,现在需要在Consumer中执行Action时,在Producer中的breakpoint处暂停,进行debug。
    需要这么做:在生产者模块中,设置“Entry Module”为 消费者模块。
    比如下面截图中,“ProductManager” 为 消费者模块(它要调用“Product_Core” 模块中的Action元素):

8 响应式编程模型(Reactive Programming Model)

  1. Opening the App

  2. Navigating Between Screens

9 Blocks and Events [高级特性]

10 安全(Security)[高级特性]

10.1 角色

10.2 第三方认证登录

可以整合第三方认证系统(如OKTA, SAML, OAUTH2)等进行认证登录,以下是整合OKTA:

  1. 认证登录步骤

  2. 配置OKTA

11 工作流(Workflow)[高级特性]

1.实训课程名称:本科生低代码开发实训,(50个名额) 课程简介:8天掌握企业级低代码开发!本实训聚焦订单管理系统实战,系统化培养学员全栈低代码开发能力。课程采用“理论+实操”模式,分阶段进阶:前期夯实基础(表单/ 存储/视图/流程/图表),通过客户信息模块掌握应用创建、数据建模与页面设计;中期进阶开发,学习JS脚本(值变/交互)、SQL关联、字典模型及逻辑搭建,完成订单跟踪、付款开票、 发货单核心模块,掌握@公式、Java触发器与自动化流程看板;后期突破高阶集成,涵盖前后端API调用、三方系统对接与导航整合。结业聚焦项目优化与汇报,提升性能、体验及总结能力。收获:企业级项目全流程经验(表单→流程→图表→API集成)、复杂业务逻辑实现技巧(脚本/自动化/SQL联动)、系统交付能力,赋能快速构建数字化应用,推动业务转型! 2.实训课程名称:本科生智慧教育系统开发实训,(30个名额) 课程简介:随着科技的飞速发展,智慧教育软件开发领域对专业人才的需求日益增长。 为提升本科生的专业实践能力和就业竞争力,使学生更好地适应行业发展需求,针对2022 级本科生开展为期8天的智慧教育系统开发实训。本系统基于Spring Boot框架构建,实现班级管理、学生管理、书籍^管理和借还书管理等模块,旨在通过信息化技术提升校园管理的效率和便捷性。 3.实训课程名称:AI图像开发实训,(50个名额) 课程简介:这个夏天,加入AI图像开发实训课程,亲手打造一个从数据到部署的全栈AI项目!课程以“人员与口罩佩戴检测”为实战课题,带领学员从零开始,亲手标注数据, 使用业界前沿的YOLOv8模]型进行训练与评估。课程涵盖Python、PyTorch等核心技能,并教授如何使FastAPI和Docker将模型封装为产品级API。最终,通过Streamlit构建一个简洁的Web应用来展示项目成果。这不仅涵盖技术学习,更提供一场完整的AI项目工程实践体验,帮助学员在32课时内收获一个可运行、可展示的硬核项目! 4.实训课程名称:本科生人工智能开发实训,(45个名额) 课程简介:本科生人工智能开发实训课程专注于培养学生的实际开发能力,特别是鸿蒙应用的开发技能。课程首先介绍了鸿蒙系统及其与安卓的关系,并指导学生搭建集成开发环境,学习编译和调试技巧,快速入门鸿蒙应用开发流程。随后深入讲解了ArkTS语法的基础和进阶知识,包括数据类型、函数、数组、包、运算符以及类的定义与使用等核心概念。在掌握了基础语法之后,课程转向ArkUI界面设计,教授文本组件、输入框组件、图片组件和按钮的使用方法,进一步探讨线性布局、盒子模型、Stack组件和Flex组件等容器组件的应用。随着学习的深入,学生将接触到更高级的组件如Swipper、List和Tab组件,并学习如何进行网络权限管理、创建网络请求类型及解析网络数据。整个课程通过一系列企业实践案例, 如猜数字小游戏、京东登陆页面、电商抽奖活动和娱乐小助手APP开发等项目,帮助学生巩固所学知识,提高解决实际问题的能力。那个项目实现起来最简单
06-26
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值