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