S++Business systems language
DEMO SOURCE · SPP / APP / PHYRead the book

petshop-scene-reserveShopPet.spp

petshop/reservation/petshop-scene-reserveShopPet.spp

Download original file · Petstore source contents

1domain petshop;23Scenario serial reserveShopPet(Buyer, Goods, StockLine[], PetReservationAgreement) {4    checkBuyerCredential;5    checkGoodsCredential;6    checkReservationQuantity;7    parallel {8        findBuyer;9        findGoods;10    }11    identify(Buyer);12    identify(Goods);13    checkGoodsSale;14    preparePetReservation;15    transaction {16        insertPetReservationAgreement;17    }18    prepareReservationInventory;19    findStockLine;20    identify(StockLine[]);21    transaction {22        reserveRequestedInventory bounds {23            StockLine[].available: [0, null];24            StockLine[].reserved: [0, null];25        };26        confirmPetReservation;27        updatePetReservationAgreement;28    } fail {29        if (ResultInfo.failure.recoveryStatus == "ROLLED_BACK"30            || ResultInfo.failure.recoveryStatus == "REVERSED") {31            findStockLine;32            identify(StockLine[]);33            rejectPetReservation;34            transaction {35                updatePetReservationAgreement;36            }37        }38    }39}4041Scenario serial readShopReservation(PetReservationAgreement) {42    findPetReservationAgreement;43    identify(PetReservationAgreement);44}