Я пытаюсь сделать транзакцию Composer, которая, учитывая актив, который я ввожу в качестве параметра для транзакции, ищет другой тип активов для того, который имеет некоторые общие параметры.
Модель:
namespace org.acme.sample
abstract asset Generic identified by ID {
o String ID
--> Owner owner
}
asset Asset1 extends Generic{
o Boolean done
}
asset Asset2 extends Generic{
}
participant Owner identified by ownerID{
o String ownerID
o String ownerName
}
transaction Transaction {
--> Asset2 in
}
Итак, учитывая эту модель, я хочу сделать следующее (по крайней мере, что-то вроде этого):
function Transaction (tx){
var aux = query('org.acme.sample.Asset1', {owner.ownerID : tx.in.owner.ownerID})
aux.done = true
return getAssetRegistry('org.acme.sample.Asset1')
.then(function (assetRegistry) {
return assetRegistry.update(aux);
})
}
Это больше похоже на псевдокод, чем на что-либо еще (я не верю, что запросы работают так, но это моя большая неопределенность). Давайте представим, что запрос достаточно точен, чтобы найти только один действительный ресурс.
Теоретически это поместит в aux объект Asset1 с тем же идентификатором владельца, что и объект Asset2, указанный в параметрах, и изменит его логическое значение done. Проблема в том, что все, что я пытаюсь сделать, не работает, я не знаю, как использовать такой запрос внутри транзакции (я также пытался сделать отдельный запрос, но мне не удалось заставить его работать).
Я надеюсь, что кто-то сможет помочь мне с этим :D