Свойства объекта не определены - PullRequest
0 голосов
/ 04 июня 2018

Игра с образцом сети автомобильных аукционов.Я не уверен, почему транзакция «Предложение» работает, так как она показывает все свойства, но транзакция «AmendOffer» показывает, что свойства начинаются с $ как неопределенное?

Есть ли способ перевести транзакцию из «AmendOffer» в«Предложение», я попытался сделать копию «AmendOffer» и затем удалить свойство «oldTransactionID» на скопированном, чтобы сделать его таким же, как транзакция «Предложение».

abstract transaction OfferTrans {
  o Double bidPrice
  --> VehicleListing listing
  --> Member member
}

transaction Offer extends OfferTrans {
}

transaction AmendOffer extends OfferTrans {
  o String oldTransactionID
}

enter image description here

1 Ответ

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

при условии, что у вас есть функции TP, соответствующие вашим транзакциям, и используя вашу модель, в Composer Playground вы получите транзакции (смоделированные вами), как показано ниже - в Historian.

{
 "$class": "org.acme.vehicle.auction.Offer",
 "bidPrice": 10,
 "listing": "resource:org.acme.vehicle.auction.VehicleListing#L1",
 "member": "resource:org.acme.vehicle.auction.Member#1",
 "transactionId": "d133abab-cd96-4f15-ac06-ca7a065f2e84",
 "timestamp": "2018-06-04T10:38:17.042Z"
}

{
 "$class": "org.acme.vehicle.auction.AmendOffer",
 "oldTransactionID": "3333",  // whatever
 "bidPrice": 0,
 "listing": "resource:org.acme.vehicle.auction.VehicleListing#L1",
 "member": "resource:org.acme.vehicle.auction.Member#1",
 "transactionId": "3576a2f2-6264-4490-9b79-ef0d612ed07a",
 "timestamp": "2018-06-04T10:37:50.854Z"
}

Если вы НЕЯ хочу сохранить oldTransactionId как обязательное поле - просто сделайте его необязательным в файле модели.

transaction AmendOffer extends OfferTrans {
  o String oldTransactionID optional
}

, например, следующее будет работать как AmendOffer транзакция

{
  "$class": "org.acme.vehicle.auction.AmendOffer",
  "bidPrice": 10,
  "listing": "resource:org.acme.vehicle.auction.VehicleListing#L1",
  "member": "resource:org.acme.vehicle.auction.Member#1"
}

Если вы хотите обновить массив Offers[] в этом примере сети (как он существует сегодня), вы, очевидно, предоставили бы соответствующий код транзакции для этого.

...