下单交易

PlaceOrder Transactions

你能帮我解决这个问题吗?我正在尝试实施一项交易以按照您在车辆生命周期网络上的订单下订单,但它不起作用。我可以提交订单;然而,当我尝试更新状态时,我收到一条错误消息,指出该订单不是集合 ID 的一部分;但是,如果我可以使用添加资产过程创建它,它就可以工作。在在线游乐场测试车辆生命周期网络时也会发生同样的情况。请指教

我怀疑您正在尝试解析一个不存在的注册表 - 或者实际上是一个抽象定义。

例如

Vehicle 资产和 PrivateVehicleTransfer 交易都接受与抽象参与者的关系 composer.base.Person:

asset Vehicle identified by vin {
  o String vin
  o VehicleDetails vehicleDetails
  o VehicleStatus vehicleStatus
  --> Person owner optional
  o String numberPlate optional
  o String suspiciousMessage optional
  o VehicleTransferLogEntry[] logEntries optional
}

transaction PrivateVehicleTransfer extends VehicleTransaction {
  --> Person seller
  --> Person buyer
  o String specialNotes optional
}

错误消息意味着我们正在尝试寻找(在本例中)composer.base.Person 参与者注册表 - 但它不存在: 错误:ID 为“$sysregistries”的集合中 ID 为 'Participant:composer.base.Person' 的对象不存在

参与者注册表不存在,因为我们没有为抽象类型创建注册表。

我们正在寻找此注册表,因为最初提供的车辆包含完全合格的关系,但不包括正确的类型:

{
"$class": "org.vda.Vehicle",
"vin": "1234",
"vehicleDetails": {
"$class": "org.vda.VehicleDetails",
"make": "Ford",
"modelType": "Ka",
"colour": "Red",
"vin": "1234",
"bodyType": "Hatchback",
"taxationClass": "PETROL_CAR",
"co2": 89,
"typeOfFuel": "Petrol",
"numberOfSeats": 5
},
"vehicleStatus": "ACTIVE",
"owner": "resource:composer.base.Person#bob@bob.com", <-- this is the problem
"numberPlate": "AA12 AAA"
},

等等

所有者字段中的关系需要包含正确的类型,例如,从抽象 'Person' 扩展的参与者 - 例如下面的 PrivateOwner 将是正确的关系:

"owner": "resource:org.acme.vehicle.lifecycle.PrivateOwner#bob@bob.com"