模型
asset Route identified by route_id {
o String route_id
o String rider_id
o String parcel_id
}
transaction assignParcelToRider {
o String rider_id
o String parcel_id
}
logic.js
var assetRegistry;
var id = assignValue.rider_id;
return getAssetRegistry('org.rytle.Route').then(function(ar) {
assetRegistry = ar;
return assetRegistry.get(id);
}).then(function(asset) {
asset.parcel_id = assignValue.parcel_id;
return assetRegistry.update(asset);
});
在这里,我想找到rider_id并在那里更新parcel_id。但是在这里没有找到rider_id。
答案 0 :(得分:1)
最主要的是,在模型中,使用.get()
时需要通过资产标识符获取资产,而rider_id
不是。
也-可能需要更多信息-但所有这些都取决于id
从assignValue.rider_id
获取值,我无法告诉您如何定义/声明该值以及它是否在范围内。我可以看到id
应该在下面的功能范围内-但使用资产的正确标识符,这应该可以工作(例如):
return getAssetRegistry('org.rytle.Route').then(function(ar) {
return ar.get(route_id) // or whatever you've assigned it to or txnobject.route.getIdentifier()); // ie you must get the asset by identifier
}).then(function(asset) {
asset.parcel_id = id;
return ar.update(asset);
});
以此类推;
ps,您可以查看sample-networks的一些示例(例如,在“ test”目录下)-请注意,这些示例现在使用节点8附带的async / await
函数(而不是上面显示的“ promises”) (并且比使用Promise FYI编写起来容易得多)