我正在尝试从交易中返回资产数组。因此,根据语法,我添加了@returns
和@commit(false) in cto file
,但其抛出错误为
✖ Installing business network. This may take a minute...
ParseException: Expected ")", "-", "false", "true", comment, end of
line, number, string or whitespace but "P" found. File
models/org.zcon.healthcare.cto line 370 column 10
Command failed
当我删除@returns注释时,不会引发任何错误。 而且,当我从@returns批注中删除参数“ Patient []”时,它不会引发任何错误。但这违反了语法吗? 我正在使用docker swarm在本地运行应用程序。
我的docker composer版本是v0.19.12
怎么了?这是任何错误吗?
如果要在cto文件中查看事务定义。
@commit(false)
@returns(Patient[])
transaction SearchPatient{
o String firstName optional
o String lastName optional
}
在逻辑文件中
/**
* Sample transaction
* @param {org.zcon.healthcare.SearchPatient} tx
* @returns{org.zcon.healthcare.Patient[]}
* @transaction
*/
async function SearchPatient(tx){
let queryString = `SELECT org.zcon.healthcare.Patient WHERE (`;
let conditions = [];
if (tx.hasOwnProperty('firstName')) {
var firstName =tx.firstName;
conditions.push(`(firstName == "${firstName}")`)
};
if (tx.hasOwnProperty('lastName')) {
var lastName = tx.lastName;
conditions.push(`(lastName == "${lastName}")`)
};
queryString += conditions.join(' AND ') + ')';
let finalQuery = buildQuery(queryString);
const searchPatient = await query(finalQuery);
if(searchPatient.length ==0){
throw "No Patient Records found!!"
}else
return searchPatient;
}
答案 0 :(得分:0)
我没有看到composer network install
出现此错误(部署到正在运行的Fabric),我对模型和代码进行了网络安装(参见屏幕截图)。我建议您的错误可能出在您的业务网络中的其他地方?您可以添加得到错误的完整序列吗?您是如何建立bna文件的?
我也尝试了您的代码(结束...):
const searchPatient = await query(finalQuery);
console.log("results are " + searchPatient);
console.log("element 1 of array is " + searchPatient[0]);
if(searchPatient.length ==0){
throw "No Patient Records found!!"
} else
return searchPatient;
}
并可以很好地看到返回的结果(如console.log中所示-仅使用显然是FYI的其他网络名称)