1 %RegisteredObject,DOM.ProdRes.VerwachteInvoerAPI 0 VerwachteInvoerID:%String VerwachteInvoerInfo:DOM.ProdRes.dto.VerwachteInvoerInfo DOM.ProdRes.VerwachteInvoer VerwachteInvoerID:%String VerwachteInvoerID:%String TransactieReferentie:%String,TransactieLijnReferentie:%String,Bedrijf:DOM.common.enu.Bedrijf DOM.ProdRes.VerwachteInvoer VerwachteInvoerID:%String,VerwachteUitvoerID:%String 0 && ProductReservatieIterator.HasNext()) { Set Reservatie = ProductReservatieIterator.Next() Set AantalTeLinkenReservatie = Reservatie.GeefAantal() - Reservatie.GeefAantalGelinkt() If (AantalTeLinkenReservatie > AantalTeLinkenInvoer) { Set AantalTeLinkenReservatie = AantalTeLinkenInvoer } If (AantalTeLinkenReservatie > 0) { Set InvoerUitvoerLink = ##class(DOM.ProdRes.impl.InvoerUitvoerLinkImpl).%New(AantalTeLinkenReservatie) Set Status = InvoerUitvoerLink.%Save() If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de invoeruitvoerlink niet opslaan",Status)) } Do VerwachteInvoer.RegistreerInvoerUitvoerLink(InvoerUitvoerLink) Do Reservatie.RegistreerInvoerUitvoerLink(InvoerUitvoerLink) Set AantalTeLinkenInvoer = AantalTeLinkenInvoer - AantalTeLinkenReservatie Set Status = VerwachteInvoer.%Save() If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de verwachte invoer niet opslaan",Status)) } Set Status = Reservatie.%Save() If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de reservatie niet opslaan",Status)) } } } Do OperatieScope.Gelukt() Quit RegistreerFout Set $ZTRAP = "" Do OperatieScope.Gefaald() Do ##class(TECH.ExceptionHandler).Rethrow() ]]> Geeft aan voor welke producten bepaalde verwachte invoeren kunnen samengevoegd worden. VerwachteUitvoerIDs:%ListOfDataTypes DOM.ProdRes.dto.SamenvoegVoorstellen 1) { Set SamenvoegVoorstel = ##class(DOM.ProdRes.dto.SamenvoegVoorstel).%New() Set SamenvoegVoorstel.Aantal = 0 Set SamenvoegVoorstel.ProductID = VerwachteInvoerLijstIterator.Key() Set VerwachteInvoerIterator = ##class(TECH.ListIterator).%New(VerwachteInvoerLijst) While (VerwachteInvoerIterator.HasNext()) { Set VerwachteInvoer = VerwachteInvoerIterator.Next() Do SamenvoegVoorstel.VerwachteInvoerIDs.Insert(VerwachteInvoer.%Id()) Set SamenvoegVoorstel.Aantal = SamenvoegVoorstel.Aantal + VerwachteInvoer.GeefAantal() } Do SamenvoegVoorstellen.Insert(SamenvoegVoorstel) } } Quit SamenvoegVoorstellen ]]>