网站首页
手机版

简单三步,通过工作流(ASW)快速完成订单数据处理(如何进行订单数据的处理)

更新时间:2024-06-07 03:52作者:小乐

本文介绍如何通过工作流ASW编排云功能,快速处理订单数据。

工作原理工作流程调用函数获取一定时间内的订单数据,并对数据进行预处理。将预处理后的数据交给Map迭代任务:每个订单处理完后,写入不同的数据库表或绘制成图表进行展示。创建工作流的操作步骤需要首先创建状态机,然后通过排列状态机的不同组件来改变状态机结构,以实现用户定义的一组功能。

只需三个简单步骤即可完成:创建云函数创建工作流运行状态机

第一步:创建云函数。创建GetOrder 函数。登录云功能控制台,点击左侧导航栏【功能服务】。在主界面顶部的函数服务区选择广州,点击【新建】进入函数创建流程。在新建函数页面,在基本信息中填写以下信息: 函数名称:GetOrder。运行环境:Nodejs10.15。创建方法:选择空白函数,点击【下一步】进入函数配置。

在功能配置页面的Cloud Studio窗格中,删除原始代码并复制代码,如下所示:'use strict'; Exports.main_handler=async(event, context)={console.log('这是获取订单函数');#可以通过api请求获取真实的订单数据。示例中的数据方便模拟工作流程执行。 var orderlist=[ { 'orderId':'202012200001', 'goodsId':'1004', 'goodsName': 'Orange#1004', '单位':'件', '具体':'每箱5斤', 'linePrice':100,'salePrice':90,'costPrice':80,'数量':30,'isVoucher':1,'voucherPrice':2,'voucherId':'3dr55678hj','isDiscount':1, 'discountPrice':3, '运费': 8、'收件人':'susu'、'电话':'18633567898'、'地址':'深圳市南山区腾讯大厦20楼'、'createTime':'2020-12-20 10:00:00', 'payTime':'2020-12-20 11:00:00','payMethod':1,'payOrder':'202012 201100003940','orderStatus':3,'deliveryTime':'2020-12-21 1 1:00:00', '完成时间':' 2020-12-25 11:00:00', 'deliveryOrder':'ZT12345789d786', 'isReturn':1, 'returnId':'2020122600012', 'returnNumber':2, }, { 'orderId' :'202012200001','商品ID':' 2001', '货物名称':'李子#2001', '单位':'件', '具体':'6公斤一箱', '行价':150, '销售价格':120, '成本价格':90, '数量':20 , 'isVoucher':1, 'voucherPrice':3, 'voucherId':'3dr55678hj', 'isDiscount':1, '折扣价格' :5, '运输': 0, '收款人':'susu', 0'18633567898 ', '地址':'深圳市南山区腾讯大厦20楼', 'createTime':'2020-12-20 10:00:00', 'payTime':'2020-12-20 11:00:00', 'payMethod':1, '支付订单':'202012201100003940','订单状态':3,'交货时间':'2020-12-21 11 :00:00','完成时间':'2020-12-25 11:0033 36000', '送货订单':'ZT12345789d786', '是退货':0, 'returnId':'', 'returnNumber':0, }, { 'orderId':'20201220000 1', 'goodsId':' 3005', 'goodsName':'banana#3005', '单位':'件', '具体':'每盒10磅', 'linePrice':180, 'salePrice':150, 'costPrice':98, '数量' :6, 'isVoucher':1, 'voucherPrice':8, 'voucherId':'3dr5, 5678hj ', 'isDiscount':1, 'discountPrice':20, '运输': 0, '收货人':'susu', '电话':'18633567898', '地址':'深圳市南山区腾讯大厦20楼' , 'createTime':'2020-12-20 10:00:00', 'payTime':'2020-12-20 11:00:00', 'payMethod':1, 'payOrder ':'2020122011000039 40', '订单状态':3, '交货时间':' 2020-12-21 11:00:00','完成时间':'2020-12-25 11:00:00','del iveryOrder':'ZT12345789d786','isReturn':1,'returnId'333 60'2020122600013', '返回号':3, }] ;返回{'orderList':orderlist}; };点击【保存】,云函数创建成功。参考【创建GetOrder函数】的方法创建ProcessOrder函数。使用以下代码创建ProcessOrder 函数:

'use strict';exports.main_handler=async (event, context)={ console.log('这是processOrder 函数'); var 顺序=事件; #数据处理var Revenue=order['salePrice']-order['costPrice']; var GoodsInfo={'goodsId':order['goodId'],'goodsName':order['goodsName'],'number':order['number']}; var IncomeInfo={'goodsId':order['goodId'],'goodsName':order['goodsName'],'number':order['number'],'收入':profit}; return { 'goodsInfo':goodsInfo, 'venueInfo':venueInfo, 'salesInfo':salesInfo };} 创建GoodsSold函数参考【创建GetOrder函数】方法创建GoodsSold函数,代码如下:

'use strict';exports.main_handler=async (event, context)={ console.log('这是goodsSold 函数'); //一些写入数据库或者图表显示的操作console.log(event); return 'GoodsSold success ';};创建Income函数,请参考【创建GetOrder函数】创建Income函数。代码如下:

'use strict';exports.main_handler=async (event, context)={ console.log('这是收入函数'); //一些写入数据库或者图表显示的操作console.log(event); return '收入成功';};创建SalesReturn函数,请参考【创建GetOrder函数】创建SalesReturn函数。代码如下:

'use strict';exports.main_handler=async (event, context)={ console.log('这是salesReturn 函数'); //一些写入数据库或者图表显示的操作console.log(event); return 'SalesReturn success';};第2步:创建工作流登录应用程序和编排服务流控制台。在状态机页面点击【新建】进入创建工作流程页面,选择使用【代码创建】:

将以下TCSL 代码直接粘贴到代码编辑框中: { 'Comment': '订单处理', 'StartAt': 'GetOrder', 'States': {'GetOrder': { 'Type': 'Task', 'Comment ' : '拉取数据', '资源': 'qrn:qcs:asw:ap-guangzhou:12345678:sdk:json:qcloud:scf:Invoke/GetOrder', '下一步':处理'},'MapProcess': {'类型':'地图','ItemsPath':'$.orderList' , 'MaxConcurrency': 6, '迭代器': { 'StartAt': 'ProcessOrder', '状态': { 'ProcessOrder': { '类型': '任务', '资源': 'qrn:qcs:asw:ap-guangzhou3 3360123 45678:sdk:json:qcloud:scf:调用/处理订单' , 'Next': 'ParallelDataProcess' }, 'ParallelDataProcess': { 'Type': 'Parallel', 'End': true, 'Branches': [ { 'StartAt': 'GoodsSold', 'States': {'GoodsSold ' : { 'InputPath': '$.goodsInfo', '类型': '任务', '资源': 'qrn:qcs:asw:ap-guangzhou:12345678:sdk:json:qcloud:s cf3336 0Invoke/GoodsSold', 'End': true} } }, { 'StartAt': '收入', '国家': {'收入': { 'InputPath': '$.venueInfo', '类型': '任务', '资源': 'qrn:qcs:asw:ap-guangzhou:12345678:sdk3336 0json:q cloud:scf:调用/收入', '结束': true} } }, { 'StartAt': 'SalesReturn', '状态': {'SalesReturn': { 'InputPath': '$.salesInfo', '类型': '任务', '资源': 'qrn:qcs:asw:ap-guangzhou: 123456783 3360sdk:json:qcloud:scf:调用/销售返回', 'End ': true} } } ] } } }, 'End': true} } } 点击右上角【下一步】进入保存界面,输入状态机名称,选择【新建角色】运行角色,类型Machine选择【标准状态】,点击右上角【完成】,在状态机列表页面可以看到创建的状态机。

如果要使用已有的角色,需要先创建角色,并将相关策略授权给该角色。具体请参见运行角色。

步骤3:运行状态机。状态机创建完成后,登录后可以在主页面查看创建的状态机。

点击需要运行的状态机的【名称】,进入状态机。

在界面中可以看到状态机的基本信息。单击[工作流程执行]下的[开始执行]。

在弹出的“输入”窗口中,以JSON格式输入状态机所需的输入内容。例如:{'comment':'调用工作流'}点击【确定】。状态执行完成后,可以在详情页查看执行结果:

滚动到页面底部,在【执行历史】条目下,可以查看子节点的运行状态。以上步骤介绍了订单数据处理场景的基本工作流程。

在真实的业务场景中,每个Task节点都会涉及到配置一些相关的参数信息,比如参数传递、异常重试、错误捕获处理等,更多细节请参考状态机语言。

申请试用ASWASW 目前处于公测阶段,公测阶段免费提供服务。欢迎提出产品改进建议。一旦您的反馈被采纳,您就可以获得腾讯可爱的新鹅公仔!

为您推荐

「TCSL」分享对外汉语教学的几个小技巧

常用对外汉语教学方法与技巧直观法利用实物、图画、表格、示意图、符号、公式等辅助手段,化抽象的定义为具体形象的图示,学生比较容易理解和掌握。例如讲解趋向补语时,可以画简笔画的房屋、楼梯、人物来表示“进来 、出去、进去、出来、上来、上去、下来

2024-06-07 03:53

法国,合法打枪,法国持枪合法

文/Léa图文:审稿-蟹黄捞饭、制作-8封面图:©/Shutterstock没错,今天又是愉快“乳法”的一天~ 请问大家,有多少人听过下面这个段子:问:法国人要卖掉二战时期的剩余步枪,他们的广告词是什么?答:全新,从来没开过火,仅被扔到地上

2024-06-07 03:52

香港留学:香港科技大学国际语言教育硕士升学指引(香港科技大学 语言学)

2022年QS排名:34;香港科技大学的国际语言教育硕士专业MA in International Language Education开设在人文与社会科学学院School of Humanities and Social Science下

2024-06-07 03:51

工程实践中的体系与系统

20世纪 90年代,信息技术的高速发展和广泛应用使得复杂的技术集成和系统管理问题益发突出,现代战争、现代交通等进一步表现为“多个系统或复杂系统组合而成的大规模的系统组合”,体系(system of systems,SoS)和体系工程(sy

2024-06-07 03:51

读什么专业有利于从事投行工作(什么专业适合做投行)

美本至少有12个专业直接对接投行、咨询公司这些比较热门的岗位:前三个是商科、金融和会计,其实这个分类并不准确,因为有时,会计和金融同在商学院之中,但有时金融会单列于别的选项中。第四个是经济,一种是经济学economics,比较深一点的叫做计

2024-06-07 03:50

工业4.0的五十个术语点评,涨知识

1.Industry 4.0 工业4.0点评:这只是个概念的外衣。一切工业发展、信息化和互联网的概念综合。一向不擅长营销的德国人这次抢到了头彩,也引起了中国异乎寻常的欢呼。德国似乎决定放弃“德国制造”这个已经老掉牙的质量标签。而决心走向另外

2024-06-07 03:50

加载中...