我正在Hyperledger作曲家游乐场工作。我有一项资产,其中包含客户的详细信息:
{
"$class": "org.example.empty.userData",
"id": "3890",
"Name": "Ramesh",
"Data": [
"disease",
"some more disease"
],
"category": "Health",
"Mobile": "8698617174",
"timestamp": "2019-01-03T11:26:50.915Z",
"AllowRead": false,
"Ecosystem": "resource:org.example.empty.Ecosystem#7758",
"Addsup": "resource:org.example.empty.Addsup#2534"
}
现在,我想通过事务功能更改“ AllowRead”属性的值。
我该怎么办?
答案 0 :(得分:1)
有一些简单的示例事务可以更新Composer Samples中的单个字段。
交易网络示例中的“交易”交易,信用证网络中的“拒绝”交易。
您可以从GitHub或使用Composer online playground中找到示例。
如果您是Composer的新手,建议您通过Composer Tutorials page浏览Playground教程和Developer教程。
答案 1 :(得分:0)
首先,您需要获取资产的registry:
const registry = await getAssetRegistry('org.example.empty.userData');
现在通过ID get出售资产:
const asset = await registry.get('3890');
更改属性并保存资产:
asset.AllowRead = true;
await registry.update(asset);
请注意get
和update
都是异步函数,因此请在await
函数中使用async
或使用Promise.then
语法,例如< / p>
getAssetRegistry('org.example.empty.userData')
.then(registry => registry.get('3890'))
.then(asset => {
asset.AllowRead = true;
return asset;
})
.then(asset => registry.update(asset));
如果要更改测试中的属性,请使用注册表工厂访问注册表:
const factory = businessNetworkConnection.getBusinessNetwork().getFactory();
const registry = await factory.getAssetRegistry('org.example.empty.userData'); // etc