Информация в активе исчезает после пут - PullRequest
0 голосов
/ 05 июня 2018

Я работаю в Hyperledger Composer.На модели cto я определяю - актив Child, который содержит список вакцин.Этот актив определяется как:

asset Child identified by childId {
      o String childId
      o String name
      o String surname
      o DateTime dateOfBirth
      o Vaccin[] vaccins optional
      --> Parent hasparent
      --> Doctor hasdoctor
    }
  • актив defVaccin, который содержит некоторые определения вакцин.Вакцина определяется следующим образом:

asset defVaccin identified by vaccinId { o String vaccinId o String diseases o Integer timeFirst o Integer timeSecond optional o Integer timeThird optional o Integer timeFourth optional o Integer timeFifth optional }

Для создания / добавления вакцин в этом списке я использую транзакцию «вакцинация», которая определяется следующим образом в модели cto:

transaction Vaccinate {
  --> Child inchild 
  --> defVaccin aboutvaccin
  o DateTime dateOfVaccin
}

И так на logic.js

function vaccinate(vaccinate) {

var factory = getFactory();
var vaccin = factory.newConcept('vaccinspace', 'Vaccin', vaccinate.aboutvaccin.vaccinId); // create vaccin concept

// define value of concept's properties
vaccin.vaccinId = vaccinate.aboutvaccin.vaccinId;
vaccin.dateOfVaccin = vaccinate.dateOfVaccin;

// add this vaccine at the list of child's vaccines
vaccinate.inchild.addArrayValue("vaccins", vaccin)

return getAssetRegistry('vaccinspace.Child')
.then (function (assetRegistry) {
return assetRegistry.update(vaccinate.inchild); // update the list of child's vaccines
});
}

Это отлично работает, у меня есть все мои вакцины в моем списке.Но если я модифицирую своего ребенка или мою вакцину (просто сделаю пут, чтобы изменить имя ребенка на пример), у меня появится пустой список после.

Кто-то знает, почему моя информация «исчезает» из моего списка?Как я могу изменить это?

1 Ответ

0 голосов
/ 08 июня 2018

см. Пример здесь -> https://github.com/hyperledger/composer-sample-networks/blob/master/packages/carauction-network/lib/logic.js#L89

попытка

// add this vaccine to the list of child's vaccines array of concepts
vaccinate.inchild.vaccins.push(vaccin);

вместо

 // add this vaccine at the list of child's vaccines
vaccinate.inchild.addArrayValue("vaccins", vaccin);
...