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

新闻资讯2024-06-07 03:52小乐

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

本文介绍如何通过工作流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 目前处于公测阶段,公测阶段免费提供服务。欢迎提出产品改进建议。一旦您的反馈被采纳,您就可以获得腾讯可爱的新鹅公仔!

猜你喜欢