优维低代码实践:数据加工/转化详解

解决低代码自定义方法无法获取数据的问题 今天在开发中遇到了自己自定义的方法无法获取数据的问题,官方创建的方法层级只有两层 而我自己创建的相同的代码却有三层 反复测试都不行,咨询官方之后,原来自定义方法必须返回对象,不能返回数组,于是调整了返回值就好了 module.exports = async function (params, context) { const result = await context.collection.orderBy('createdAt', 'desc').get(); return {resul 阅读详情

 

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。


优维低代码实践连载第⑧期

《数据加工/转化详解》

▽

一、表达式

Visual Builder在处理数据时,大部分情况都可以使用表达式,或者微应用函数满足场景;表达式的使用,大多数情况都是针对相对简单的场景,如果场景过于复杂,我们还是推荐使用微应用函数,因为您不仅可以在函数内拥有更多高级语法到操作,还可以针对您的函数编写测试用例,加强微应用的健壮性。

在之前章节已经介绍过一些简单表达式的编写以及它们的含义,本节课讲介绍更加高级的用法,回到我们的编排,我们将给我们的表格增加一列创建时间,那么我们要怎么做呢?

 1.1 表格编排修改

属性面板-属性:
  columns:
    # 略...
    # 以下ctime为新增列
    - dataIndex: ctime
      key: ctime
      title: 创建时间
    - dataIndex: operator
      title: 操作
      key: operator
      useChildren: '[operator]'

1.2 DATA数据修改

# 查询字段入参增加 ctime
Args:
  - TASK_FOR_VB_LESSON
  - fields:
      - name
      - state
      - assignee
      - reporter
      - description
      # 新增查询字段
      - ctime
    page: '${QUERY.page=1|number}'
    pageSize: '${QUERY.pageSize=20|number}'
    query: <% CTX.query %>

修改完毕后, 我们将在预览画布中看到数据更新,但是这个时间太长了,并不是我们想要的,那怎么办呢?

这个时候我们可以使用表达式,对时间进行格式化,只展示日期,下面看下编排怎么修改吧。

1.3 Table表达式加入解析ctime能力

属性面板-属性:
  # 其他不变
  dataSource: |-
    <% 
      "track context", 
      {
        # 解构,
        ...CTX.taskList ?? {},
        # CTX.taskList.list 遍历,将其中的ctime进行处理
        list: CTX.taskList?.list?.map(item => ({
          ...item,
          ctime: item.ctime.split(" ").shift()
        }))
      }
    %>

处理完后,数据就变成我们预期的输出啦,如下图:

 二、微应用函数

前文说过表达式大多数情况下只适用于一些简单场景,如果是比较复杂的场景,我们推荐使用微应用函数会比较好,推荐同学有兴趣可以学习 《微应用函数》,那么我们要怎么编写一个函数呢?

2.1 新增函数

 在左侧菜单选择函数菜单,然后点击新增函数按钮,函数名为 test, 类型为 typescript, 点击确定创建函数成功,然后编写我们的方法,具体如下:

 

function test(
  params: Params = {
    list: [],
    totol: 0,
    page: 1,
    pageSize: 20,
  }
): Params {
  const colorMap = {
    待研发: "blue",
    研发中: "yellow",
    研发完成: "green",
  };
  const arr = params.list.map((item) => ({
    ...item,
    stateColor: colorMap[item.state],
    ctime: item.ctime.split(" ").shift(),
  }));


  return {
    ...params,
    list: arr,
  };
}


interface Params {
  list: Array<any>;
  totol: number;
  page: number;
  pageSize: number;
}

最后点击保存,然后点击build & push 按钮,编排即可使用该函数

2.2 编排修改

属性面板-属性:
  # 只需要改这行
  dataSource: '<% "track context", FN.test(CTX.taskList) %>'

在table构件下找到 [state] 插槽下的
presentational-bricks.brick-tag 构件,属性修改如下:

属性面板-属性:
  # 只增加 color 属性
  color: <% DATA.rowData.stateColor %>
  showCard: false
  tagList:
    - <% DATA.rowData.state ?? "待研发" %>

最后看下编排预览画布,是符合我们的预期的

 三、结语

至此,简单的数据加工转化就完结啦,这个章节对与微应用编排是相当重要的哟~

诠视MR眼镜Unity开发设置_Unity2020.3.38 请按照如下设置Android SDK 和 Gradle。打包前先将Unity切换到Android模式。Preferences 设置。 阅读详情

相关推荐

闲人闲谈PS之一项目库存跨公司业务STO解决方案--SAP闲人的开篇

写这篇文章之前,简单说一下发这篇文章的动机。也算是在SAP这一行干了快10多年,在对一个模块了解越来越深入,越发觉自己的SAP知识浅薄。总的来说,和多数顾问一样,对于**标准功能**的应用业务场景理解还是存在或多或少的知识盲区。 因为一个偶然,看到SAP团子君的文章,分享了很多干货文章。这也是自己一直想做的时候,不管水平高低与否,分享本身就意味着提升。好了废话不多说,先在优快云上发一篇吧,困惑自己将近10年的问题的解决方案。 业务场景:在项目型企业中,通常会有这样的业务,母公司和客...

SAP闲人的博客 9269

优维低代码:Transform 数据转换

在 Brick Next 中, dataSource+fields 是我们的开发者实践出来的不成文的约定,但是由于没有事先强制约定及深入调研,它的实现在不同的构件里虽然看起来相似,实际则各不相同,这给相关构件的下游使用者来说非常困惑,因此急需统一这些数据转换逻辑。注意这里容器构件为单元格构件(columns)起到了类似 useResolves 的作用:为它们传递数据并提供转换数据的接口,在容器构件里可能是这样实现的:​​​​​​​。现在可以在 useBrick 中使用插槽 slots 了:​​​​​​​。.

EasyOps_DevOps的博客 519

华为AR3260路由器NAT回流配置实战:从WEB界面到命令行的完整避坑指南

本文详细解析了华为AR3260路由器NAT回流(Hairpin NAT)的配置原理与实战方法。针对内网用户无法通过公网地址访问内部服务器的常见问题,文章不仅剖析了WEB界面配置的常见报错原因,更提供了清晰、可靠且一劳永逸的命令行(CLI)配置方案与排错指南,帮助企业网络工程师彻底解决内外网访问不一致的难题。

u6v7w8x的博客 874

一文掌握:低代码轻应用数据共享与调用全攻略

如何实现应用之间的数据共享呢?最标准的方式通过接口,本文介绍JVS轻应用如何实现将数据通过API输出、轻应用如何实现体内API数据的获取?gitee地址:https://gitee.com/software-minister/jvs-logic。注意:独立逻辑是可以被外部通过API调用、可以设置独立执行的定时任务的。逻辑凭证是调用B应用中的逻辑引擎掉A的逻辑的必要前提。③:点击新建业务逻辑,这里创建的业务逻辑是独立的逻辑。①:点击应用名称,右侧展示应用的详细情况。②:点击业务逻辑,进入业务逻辑展示界面。

364

HFSS新手避坑指南:手把手教你用FR4基板仿真威尔金森功分器(附参数优化技巧)

本文详细介绍了使用HFSS仿真FR4基板威尔金森功分器的12个关键细节,包括介质基板设置、微带线建模、隔离电阻设置等实战技巧。特别针对微波技术中的常见问题,提供了参数优化和结果解读的实用方法,帮助新手快速掌握HFSS仿真技能。

weixin_27310417的博客 227

深入NAND Flash信号与接口:结合ONFI 5.0协议,聊聊DBI、ODT和差分信号到底在解决什么实际问题

本文深入探讨了NAND Flash信号与接口设计,结合ONFI 5.0协议,详细解析了DBI、ODT和差分信号等技术如何解决高速数据传输中的信号完整性问题。通过实际案例和数据,展示了这些技术在降低功耗、减少噪声和提升抗干扰能力方面的显著效果,为存储工程师提供了宝贵的实践参考。

weixin_33736649的博客 344

原来低代码平台可以这样设计!

大厂技术高级前端Node进阶点击上方程序员成长指北,关注公众号回复1,加入高级Node交流群本文会主要分享自己对低代码平台的理解,从多个角度和问题去看低代码平台的设计。我觉得「低代码平台的核心在于模型设计,包括控件模型、组件模型、画布模型等等」。希望看完本文,你能知道:低代码平台核心的底层逻辑是什么?为何常见低代码平台都包含“控件区”、“布局区”和“属性编辑区”...

程序员成长指北 3365

Halcon Socket TCP通讯:从算子调用到工业视觉系统集成

本文详细介绍了Halcon Socket TCP通讯在工业视觉系统中的应用与优化技巧。从基础算子调用到高并发处理,再到与PLC、机器人及MES系统的集成实战,提供了全面的解决方案和性能优化建议,帮助开发者高效实现工业视觉系统的通讯需求。

weixin_33502772的博客 248

【低代码技巧分享】非常好用的iPaaS原生连接器的使用方法,新手必看!

今天小帆为大家介绍我们iPaaS平台原生的连接器。所谓连接器就是封装通信的过程,使用者不需要考虑任何通信协议或认证方式,使用开箱即用的iPaaS平台原生连接器,就可以快速构建应用集成,以便在组织内或与多个公司传输数据。 iPaaS平台提供大量连接适配器,已上线的连接器大约280个左右,小帆今天主要介绍的是技术连接器和基础组件连接器中常用的10个连接器

weixin_54106890的博客 619

GoPro官方API实战:从蓝牙配对到Wi-Fi流媒体,构建跨平台控制应用

本文详细解析了GoPro官方API的开发实践,涵盖蓝牙配对、Wi-Fi流媒体控制等关键技术。通过实战案例,指导开发者如何构建跨平台控制应用,解决设备发现、指令解析、视频流传输等核心问题,并分享Android平台迁移经验与常见问题排查方法。

weixin_30727835的博客 397

高创伺服的龙门调试经历2

摘要:本文介绍了高创伺服在龙门控制中的配置方法。首先通过ServoStudio2连接驱动器并命名区分主从轴(MASTER/DIFF),然后设置接口模式、23位编码器参数及极限位置。重点说明龙门模式的三项关键参数设置(gantryfbenmode=1、gantrymode=1/2)和连线状态确认。建议单轴自动整定后调整从轴增益(如0.2),并强调带刹车电机的同步控制要点:刹车线需接同一继电器由主轴控制,避免位置偏差。

wzz418550729的博客 916

带你一步步实现低代码开发平台——低代码配置模块、实体、模型设计

今天我们通过一个实际案例来辅助说明下低代码平台的设计。之前开源了一套通用接口平台,详见专栏。我们将其迁移整合一下,使其成为开发平台的一个功能模块。接口平台自身基础数据的维护,如应用、接口服务、消息主题等,需要实现相应的管理功能。

学海无涯,行者无疆 6741

Go语言爬虫:chromedp 的详细使用

chromedp 是 Go 语言中无头浏览器自动化的终极利器。它能驱动真实的 Chrome 浏览器,处理 JavaScript 渲染、复杂交互和反爬虫机制

数据知道的博客 4494

优维低代码实践:模板

进入到我们的工程项目中,现在我们收到一个需求,我们需要将新建,编辑任务详情从弹窗编辑的形式做成新的独立页面编辑,在新的页面中也要使用到这个表单,并且结构完全一致;优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。由于我们在本章节中学习并使用了模板的能力,因此我们在新建页面时,可以快速使用模板进行页面的编排,这大大加快了我们的页面编排速度。

EasyOps_DevOps的博客 2094

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

优维低代码实践:页面编排优化与数据联调

在熟悉完上述几种场景的操作后,回到我们创建的第一个路由(页面),我对之前创建的的编排做了一些改造,将它的功能进行了简单地完善,将它变成了一个任务列表展示页面,并且支持查询任务模型数据,以及新增任务实例数据,还支持了搜索能力,那么我是怎么做到的呢,下着跟着我的操作学习一下吧!通过本节实践,您学习了我们最常用的几个API-CMDB的增删改查操作,构件的操作,查询接口的使用,以及新增接口的使用,这基本涵盖了我们日常页面编排的基本情况,其他操作基本上都是基于这些步骤之上进行拓展;至此,您就完成了新增任务的能力啦!

EasyOps_DevOps的博客 770

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

优维低代码:I18n 国际化

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。当微应用趋于稳定,准备发布公开版本时,再通过 Next Builder 提供的自动导入功能,快速生成翻译表。有时候我们会先进行微应用的编排,后进行国际化配置,因此我们可以使用 i18next 提供的默认值能力。利用默认值功能,我们可以先行编排微应用,以应对编排前期的频繁调整,并快速交付 MVP 版本。

EasyOps_DevOps的博客 588

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

优维HAO案例:某头部券商运维中台与低代码平台建设

基于这一系列痛点,客户的核心诉求非常明确:构建一个能够有效整合运维能力、显著降低工具开发与应用门槛的统一平台,以支持运维团队更快速、自主地定制场景化工具,实现运维效能的整体跃升和团队自主创新能力的增强。在首批7个典型运维场景工具的开发过程中,沉淀了超过100个可复用的后端业务构件和多个前端业务构件(如集群搜索框、实例查询组件等),为后续开发积累宝贵资产。成功整合了包括配置管理(CMDB)、持续交付、自动化运维、网络管理、事件告警、单点登录等在内的十余项核心运维工具能力,形成统一的API服务目录。

EasyOps_DevOps的博客 829

警惕:为什么“传统MIS + AI”是一条走不通的死路?

如果您的 MIS 系统在功能上没有突破性,那么一个外挂的 AI 模块,只会让您比竞争对手多了一个 通用且易被复制的功能 ,而无法转化为核心竞争力。核心观点: 真正的 AI 竞争力,必须建立在您独有的 私域知识资产 和 AI Native 的组织流程 之上,而不是建立在所有人都能获得的通用 AI 模型之上。欢迎在评论区分享您的观点!当您在旧系统上定制复杂的 AI 功能时,会发现 AI 的能力被 反向限制。AI 时代的企业,需要的不是在旧地图上加导航,而是 立即绘制一张新的 AI Native 战略地图。

互联网运维杂谈 86

如何在低代码平台上定义数据处理逻辑?微软Power-Fx选择了Excel公式

在微软 Ignite 2021 大会上,微软正式发布了第一个低代码编程语言:Microsoft Power Fx。PowerFx 为低代码平台 Power Platform 定制,是一种基于 Excel 公式的低代码通用编程语言。Power Fx 作为 Power Apps 的公式语言,适用范围将拓展至 Dataverse、Power Virtual Agents、Power Automate,预计两年内成为Power Platform 的单一语言,为 Power Platform 带来更好体验。 Exc

低代码观察 1136

大数据开发与低代码:加速数据处理与解决方案开发

随着数据量的爆炸式增长,大数据开发变得愈发重要。然而,传统的大数据开发方法往往需要复杂的编码和开发过程,消耗时间和资源。而低代码开发平台的出现为大数据开发带来了全新的解决方案。本文将介绍大数据开发和低代码的概念,并探讨它们如何结合,为开发人员提供更高效、快速的大数据解决方案。

sdgfafg_25的博客 1690

量化交易入门 - 基于迅投QMT量化平台 Xquant接口实现从数据获取、数据加工、策略实现到自动下单基本操作

本文针对各种没有入门的小白,用示例讲解了 基于迅投QMT量化平台 Xquant接口实现从数据获取、数据加工、策略实现到自动下单基本操作流程和使用的方法。有了这些数据和方法,就可以开发一个简易的量化交易系统了。

qq_58168857的博客 1万+

必看!低代码开源大数据解决方案

今天,为大家介绍流辰信息低代码开源大数据解决方案,希望能给各位带来启迪和帮助。

Gzlcxxjs的博客 1333

关于myBuilder用作低代码数据交换平台的思考

myBuilder作为数据交换平台具备一定的可行性,对于内网授信,库与库间的数据交换具有实施快、灵活性高的优势。

#六脉神剑的专栏 1045

现在大火的低代码是怎么回事?从实现原理谈谈低代码

点击关注下方公众号,架构师全套资料 都在这里0、2T架构师学习资料干货分享上一篇:十几亿用户中心系统,ES+Redis+MySQL架构轻松搞定大家好,我是互联网架构师。我们在低代码领域探索了很多年,从2015 开始研发低代码前端渲染(amis),从 2018 年开研发后端低代码数据模型,发布了爱速搭低代码平台,这些年调研过了几乎所有市面上的相关技术和产品,发现虽然每家产品...

emprere的博客 8939

为什么说“多源数据整合”是低代码的必备功能?

在中国软件网业协会等机构联合发布的《2020 中国低代码开发平台十大发展趋势》中显示,低代码开发平台的集成能力将更受重视。作为系统集成的重要组成部分和基础能力,多源数据整合被更多开发者和企业IT决策人员视为低代码开发平台产品的必备功能。为什么业界如此看好这个功能?我们得从“数据孤岛”讲起。 “数据孤岛”威胁企业信息化 我们注意到,大多数企业为了快速提升竞争力,在信息化的过程中分批次引入多个来自不同厂商的应用,用来解决当前需求最急迫的应用场景。这种方式虽然“投入少、见效快”,但是因为缺乏整体规划和必要的投

低代码观察 900

智能运维的落地案例 | 基于业务全景的风险分析观测

本次案例是智能运维助力实现全面可观测性的一次成功落地实践,案例从两方面入手,一是事前做好各类型的数据链接、监控等,分层次,找关联;另一方面在观测到问题后能够快速评估问题影响,收敛问题并找到根因。一起来看看案例中的实践吧~

智能运维及数据中台探索 1525
上一篇: 20年运维老兵,SRE领域大咖张观石揭秘FinOps体系实践方法
下一篇: CI/CD持续测试的未来...
优维科技EasyOps
博客等级 码龄5年 1483粉丝 395原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值