2017-08-10 48 views
0

I創建一個名爲record的資產,其中記錄數據爲String。在交易期間,我們希望在交易窗口中看到操場上的記錄數據值並修改值。 我可以看到一個例子,他們將值從oldvalue更改爲新值。在交易測試窗口中獲取舊值

但是,我的情況我想在操場測試的提交交易期間首先看到數據並更改它。你可以請建議 另外,同樣的問題,如果我想獲得通過枚舉定義的狀態。請建議

asset Record identified by recordId { 
    o String recordId 
    o String data 
} 

transaction UpdateRecord{ 
--> Record asset 
    o String newData 

} 

/** 
* Update Record 
* @param {org.acme.model.UpdateRecord} updateRecord - the updateRecord transaction 
* @transaction 
*/ 
function UpdateRecord(record) { 
    record.asset.data = record.newData; 
    return getAssetRegistry('org.acme.model.Record') 
     .then(function (assetRegistry) { 
      return assetRegistry.update(record.asset); 
     }); 
} 

回答

0

世界狀態數據庫在任何時候都是最新的分類賬狀態 - 快照,如果你喜歡的話。一旦事務被認可然後被提交,它就會被更新(它將不會在你的事務處理器中的更新調用之後立即處於該狀態 - 所以如果你從世界狀態中檢索一個值(在你的函數代碼中),它將會當然,任何交易處理函數拋出的異常都會導致整個交易回滾,而不會改變區塊鏈或世界狀態

所以如果你執行一個事務(添加記錄),您應該獲取創建的事務id,例如添加資產,然後當您使用事務(通過操場,通過API,通過REST)更新該資產以執行您的txn處理器時,那麼一旦已完成,您將獲得另一個交易ID - 該功能將根據您的代碼更新原始資產。要查看「記錄數據「 - 您的定義中的一項資產,只需使用首先連接到您在遊樂場的國陣的」測試「選項卡,您就可以看到」歷史記錄「(在撰寫本文時仍在制定中),以查看您進行的交易的歷史。要查看當前事務的詳細信息,請使用REST APIS(使用composer-rest-server爲您的業務網絡創建)或通過REST的系統事務ID來查看單個事務,如RC