美國留學選擇什么專業(yè)好?留學美國熱門專業(yè)推薦
2019-06-26
更新時間:2024-06-07 03:52作者:小樂
本文介紹如何通過工作流ASW編排云功能,快速處理訂單數(shù)據(jù)。
工作原理工作流程調(diào)用函數(shù)獲取一定時間內(nèi)的訂單數(shù)據(jù),并對數(shù)據(jù)進行預處理。將預處理后的數(shù)據(jù)交給Map迭代任務:每個訂單處理完后,寫入不同的數(shù)據(jù)庫表或繪制成圖表進行展示。創(chuàng)建工作流的操作步驟需要首先創(chuàng)建狀態(tài)機,然后通過排列狀態(tài)機的不同組件來改變狀態(tài)機結(jié)構(gòu),以實現(xiàn)用戶定義的一組功能。
只需三個簡單步驟即可完成:創(chuàng)建云函數(shù)創(chuàng)建工作流運行狀態(tài)機
第一步:創(chuàng)建云函數(shù)。創(chuàng)建GetOrder 函數(shù)。登錄云功能控制臺,點擊左側(cè)導航欄【功能服務】。在主界面頂部的函數(shù)服務區(qū)選擇廣州,點擊【新建】進入函數(shù)創(chuàng)建流程。在新建函數(shù)頁面,在基本信息中填寫以下信息: 函數(shù)名稱:GetOrder。運行環(huán)境:Nodejs10.15。創(chuàng)建方法:選擇空白函數(shù),點擊【下一步】進入函數(shù)配置。
在功能配置頁面的Cloud Studio窗格中,刪除原始代碼并復制代碼,如下所示:'use strict'; Exports.main_handler=async(event, context)={console.log('這是獲取訂單函數(shù)');#可以通過api請求獲取真實的訂單數(shù)據(jù)。示例中的數(shù)據(jù)方便模擬工作流程執(zhí)行。 var orderlist=[ { 'orderId':'202012200001', 'goodsId':'1004', 'goodsName': 'Orange#1004', '單位':'件', '具體':'每箱5斤', 'linePrice':100,'salePrice':90,'costPrice':80,'數(shù)量':30,'isVoucher':1,'voucherPrice':2,'voucherId':'3dr55678hj','isDiscount':1, 'discountPrice':3, '運費': 8、'收件人':'susu'、'電話':'18633567898'、'地址':'深圳市南山區(qū)騰訊大廈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, '數(shù)量':20 , 'isVoucher':1, 'voucherPrice':3, 'voucherId':'3dr55678hj', 'isDiscount':1, '折扣價格' :5, '運輸': 0, '收款人':'susu', 0'18633567898 ', '地址':'深圳市南山區(qū)騰訊大廈20樓', 'createTime':'2020-12-20 10:00:00', 'payTime':'2020-12-20 11:00:00', 'payMethod':1, '支付訂單':'202012201100003940','訂單狀態(tài)':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, '數(shù)量' :6, 'isVoucher':1, 'voucherPrice':8, 'voucherId':'3dr5, 5678hj ', 'isDiscount':1, 'discountPrice':20, '運輸': 0, '收貨人':'susu', '電話':'18633567898', '地址':'深圳市南山區(qū)騰訊大廈20樓' , 'createTime':'2020-12-20 10:00:00', 'payTime':'2020-12-20 11:00:00', 'payMethod':1, 'payOrder ':'2020122011000039 40', '訂單狀態(tài)':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}; };點擊【保存】,云函數(shù)創(chuàng)建成功。參考【創(chuàng)建GetOrder函數(shù)】的方法創(chuàng)建ProcessOrder函數(shù)。使用以下代碼創(chuàng)建ProcessOrder 函數(shù):
'use strict';exports.main_handler=async (event, context)={ console.log('這是processOrder 函數(shù)'); var 順序=事件; #數(shù)據(jù)處理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 };} 創(chuàng)建GoodsSold函數(shù)參考【創(chuàng)建GetOrder函數(shù)】方法創(chuàng)建GoodsSold函數(shù),代碼如下:
'use strict';exports.main_handler=async (event, context)={ console.log('這是goodsSold 函數(shù)'); //一些寫入數(shù)據(jù)庫或者圖表顯示的操作console.log(event); return 'GoodsSold success ';};創(chuàng)建Income函數(shù),請參考【創(chuàng)建GetOrder函數(shù)】創(chuàng)建Income函數(shù)。代碼如下:
'use strict';exports.main_handler=async (event, context)={ console.log('這是收入函數(shù)'); //一些寫入數(shù)據(jù)庫或者圖表顯示的操作console.log(event); return '收入成功';};創(chuàng)建SalesReturn函數(shù),請參考【創(chuàng)建GetOrder函數(shù)】創(chuàng)建SalesReturn函數(shù)。代碼如下:
'use strict';exports.main_handler=async (event, context)={ console.log('這是salesReturn 函數(shù)'); //一些寫入數(shù)據(jù)庫或者圖表顯示的操作console.log(event); return 'SalesReturn success';};第2步:創(chuàng)建工作流登錄應用程序和編排服務流控制臺。在狀態(tài)機頁面點擊【新建】進入創(chuàng)建工作流程頁面,選擇使用【代碼創(chuàng)建】:
將以下TCSL 代碼直接粘貼到代碼編輯框中: { 'Comment': '訂單處理', 'StartAt': 'GetOrder', 'States': {'GetOrder': { 'Type': 'Task', 'Comment ' : '拉取數(shù)據(jù)', '資源': 'qrn:qcs:asw:ap-guangzhou:12345678:sdk:json:qcloud:scf:Invoke/GetOrder', '下一步':處理'},'MapProcess': {'類型':'地圖','ItemsPath':'$.orderList' , 'MaxConcurrency': 6, '迭代器': { 'StartAt': 'ProcessOrder', '狀態(tài)': { 'ProcessOrder': { '類型': '任務', '資源': 'qrn:qcs:asw:ap-guangzhou3 3360123 45678:sdk:json:qcloud:scf:調(diào)用/處理訂單' , '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:調(diào)用/收入', '結(jié)束': true} } }, { 'StartAt': 'SalesReturn', '狀態(tài)': {'SalesReturn': { 'InputPath': '$.salesInfo', '類型': '任務', '資源': 'qrn:qcs:asw:ap-guangzhou: 123456783 3360sdk:json:qcloud:scf:調(diào)用/銷售返回', 'End ': true} } } ] } } }, 'End': true} } } 點擊右上角【下一步】進入保存界面,輸入狀態(tài)機名稱,選擇【新建角色】運行角色,類型Machine選擇【標準狀態(tài)】,點擊右上角【完成】,在狀態(tài)機列表頁面可以看到創(chuàng)建的狀態(tài)機。
如果要使用已有的角色,需要先創(chuàng)建角色,并將相關(guān)策略授權(quán)給該角色。具體請參見運行角色。
步驟3:運行狀態(tài)機。狀態(tài)機創(chuàng)建完成后,登錄后可以在主頁面查看創(chuàng)建的狀態(tài)機。
點擊需要運行的狀態(tài)機的【名稱】,進入狀態(tài)機。
在界面中可以看到狀態(tài)機的基本信息。單擊[工作流程執(zhí)行]下的[開始執(zhí)行]。
在彈出的“輸入”窗口中,以JSON格式輸入狀態(tài)機所需的輸入內(nèi)容。例如:{'comment':'調(diào)用工作流'}點擊【確定】。狀態(tài)執(zhí)行完成后,可以在詳情頁查看執(zhí)行結(jié)果:
滾動到頁面底部,在【執(zhí)行歷史】條目下,可以查看子節(jié)點的運行狀態(tài)。以上步驟介紹了訂單數(shù)據(jù)處理場景的基本工作流程。
在真實的業(yè)務場景中,每個Task節(jié)點都會涉及到配置一些相關(guān)的參數(shù)信息,比如參數(shù)傳遞、異常重試、錯誤捕獲處理等,更多細節(jié)請參考狀態(tài)機語言。
申請試用ASWASW 目前處于公測階段,公測階段免費提供服務。歡迎提出產(chǎn)品改進建議。一旦您的反饋被采納,您就可以獲得騰訊可愛的新鵝公仔!