繁体   English   中英

“错误:找不到任何要执行的交易功能”

[英]“Error: Could not find any functions to execute for transaction”

我正在建立一个网络,允许“医院”将其公用密钥和数据哈希添加到“患者”资产中的数组,但是当我测试时,它给了我

错误:找不到任何要执行的交易功能

我正在使用在线作曲家游乐场,这是我第一次建立网络。 我认为在这个网络中,我需要参与者,资产和交易,我将患者设置为拥有PatientHospital医院的资产,而PatientHospital是具有数据哈希和公钥,交易以及此交易所调用的功能的参与者,我不知道哪里出了问题,但是当我测试时,它在错误以下返回了我:

“ TypeError:无法读取未定义的属性'状态'”

“错误:找不到对事务> org.acme。Patientchain.AddHospitalToPatient#bdd6ca0b-d0d9-4003-b6c3-05b818b3fc96执行的任何功能”

我还尝试将PatientHospital设置为资产而不是参与者,但是仍然出现相同的错误。

我该如何解决这个问题?

我的model.cto文件:

namespace org.acme.patientchain
 asset Patient identified by pubKeyPatient {
  o String pubKeyPatient
  o PatientHospital[] hospitals
}

participant PatientHospital identified by pubKeyHospital {
  o String pubKeyHospital
  o String dataHash
 // --> Hospital hospital
}

transaction AddHospitalToPatient {
  --> Patient patient
  o PatientHospital newHospital

 }

我的js文件中的功能:

function addHospitalToPatient(AddHospitalToPatient){
 AddHospitalToPatient.patient.hospitals.push(AddHospitalToPatient.newHospital);
  return getAssetRegistry('org.acme.patientchain.Patient')
  .then(function (assetRegistry) {
    return assetRegistry.update(patient.hospitals);
  });

}

根据我的理解,您需要使用新的PatientHospital 参与者值来更新 Patient 资产

logic.js的变化:

async function addHospitalToPatient(AddHospitalToPatient){
 AddHospitalToPatient.patient.hospitals.push(AddHospitalToPatient.newHospital);
  return getAssetRegistry('org.acme.patientchain.Patient')
  .then(function (assetRegistry) {
    return assetRegistry.update(AddHospitalToPatient.patient);
  });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM