Index: DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml
===================================================================
diff -u -r2161 -r2169
--- DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml (.../VerwachteInvoerAPIimpl.cls.xml) (revision 2161)
+++ DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml (.../VerwachteInvoerAPIimpl.cls.xml) (revision 2169)
@@ -83,8 +83,8 @@
Set AantalTeLinkenInvoer = VerwachteInvoer.GeefAantal() - VerwachteInvoer.GeefAantalGelinkt()
- Set $ZTRAP = "RegistreerFout"
Set OperatieScope = ##class(TECH.OperatieScope).StartMetTx()
+ Set $ZTRAP = "RegistreerFout"
Set ProductReservatieIterator = VerwachteUitvoer.GeefProductReservatieIterator(ProductID)
While (AantalTeLinkenInvoer > 0 && ProductReservatieIterator.HasNext())
{
@@ -108,12 +108,14 @@
If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de reservatie niet opslaan",Status)) }
}
}
+ Set $ZTRAP = ""
Do OperatieScope.Gelukt()
Quit
RegistreerFout
Set $ZTRAP = ""
+ Set Exceptie = ##class(TECH.ExceptionHandler).Catch()
Do OperatieScope.Gefaald()
- Do ##class(TECH.ExceptionHandler).Rethrow()
+ Do ##class(TECH.ExceptionHandler).Rethrow(Exceptie)
]]>
@@ -168,5 +170,153 @@
Quit SamenvoegVoorstellen
]]>
+
+
+VerwachteInvoerID:%String,NieuweVerwachteInvoer:DOM.ProdRes.dto.VerwachteInvoerInfo
+DOM.ProdRes.VerwachteInvoer
+ AantalGelinkt))
+ {
+ Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next()
+ Set AantalGelinkt = AantalGelinkt + InvoerUitvoerLink.GeefAantalProducten()
+ }
+
+ // Als er überhaupt een invoer-uitvoer-link was komen we in deze if
+ If ($IsObject(InvoerUitvoerLink))
+ {
+ // Het object dat aanwezig is, is degene die er heeft voor gezorgd dat de while lus is gestopt.
+ // Als het aantal gelinkt groter is dan moet het de invoer-uitvoer-link gesplitst worden.
+ // Bij gelijke aantallen moeten we niks extra doen met dit object want dan voldoet de verwachte invoer net om de link te voldoen.
+ If (VerwachteInvoer.GeefAantal() < AantalGelinkt)
+ {
+ Set AantalAfsplitsen = AantalGelinkt - VerwachteInvoer.GeefAantal()
+ Do InvoerUitvoerLink.ZetAantalProducten(InvoerUitvoerLink.GeefAantalProducten()-AantalAfsplitsen)
+ Set NieuweInvoerUitvoerLink = ##class(DOM.ProdRes.impl.InvoerUitvoerLinkImpl).%New(AantalAfsplitsen)
+ Set Status = NieuweInvoerUitvoerLink.%Save()
+ If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de InvoerUitvoerLink niet opslaan",Status)) }
+ Do NieuweVerwachteInvoer.RegistreerInvoerUitvoerLink(NieuweInvoerUitvoerLink)
+ Set VerwachteUitvoerReservatie = InvoerUitvoerLink.GeefVerwachteUitvoerReservatie()
+ Do VerwachteUitvoerReservatie.RegistreerInvoerUitvoerLink(NieuweInvoerUitvoerLink)
+ Set Status = VerwachteUitvoerReservatie.%Save()
+ If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de verwachte uitvoer reservatie niet opslaan",Status)) }
+ }
+ // Alle resterende invoer-uitvoer-linken moeten verplaatst worden naar de nieuwe verwachte invoer
+ While (InvoerUitvoerLinkIterator.HasNext())
+ {
+ Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next()
+ Do VerwachteInvoer.VerwijderInvoerUitvoerLink(InvoerUitvoerLink)
+ Do NieuweVerwachteInvoer.RegistreerInvoerUitvoerLink(InvoerUitvoerLink)
+ }
+ }
+
+ Set Status = VerwachteInvoer.%Save()
+ If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de originele verwachte invoer niet opslaan",Status)) }
+ Set Status = NieuweVerwachteInvoer.%Save()
+ If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de nieuwe verwachte invoer niet opslaan",Status)) }
+
+ Set $ZTRAP = ""
+ Do OperatieScope.Gelukt()
+
+ Quit NieuweVerwachteInvoer
+SplitsError
+ Set $ZTRAP = ""
+ Set Exceptie = ##class(TECH.ExceptionHandler).Catch()
+ Do OperatieScope.Gefaald()
+ Do ##class(TECH.ExceptionHandler).Rethrow(Exceptie)
+]]>
+
+
+
+
+De verwachte invoeren moeten dezelfde producten bevatten. De samengevoegde verwachte invoer wordt teruggegeven.
+De samen te voegen verwachte invoeren worden verwijderd.
+VerwachteInvoerIDs:%ListOfDataTypes,DueIn:%TimeStamp,TransactieReferentie:%String,TransactieLijnReferentie:%String
+DOM.ProdRes.VerwachteInvoer
+reservatie) hetzelfde zijn. Deze kunnen we ook samenvoegen.
+ Set InvoerUitvoerLinkPerReservatie = ##class(%ArrayOfObjects).%New()
+ Set InvoerUitvoerLinkIterator = SamengevoegdeVerwachteInvoer.GeefInvoerUitvoerLinkIterator()
+ While (InvoerUitvoerLinkIterator.HasNext())
+ {
+ Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next()
+ Set VerwachteUitvoerReservatie = InvoerUitvoerLink.GeefVerwachteUitvoerReservatie()
+ Set VerwachteUitvoerReservatieID = VerwachteUitvoerReservatie.%Id()
+ If ('InvoerUitvoerLinkPerReservatie.IsDefined(VerwachteUitvoerReservatieID))
+ {
+ Do InvoerUitvoerLinkPerReservatie.SetAt(InvoerUitvoerLink, VerwachteUitvoerReservatieID)
+ }
+ Else
+ {
+ Set BestaandeInvoerUitvoerLink = InvoerUitvoerLinkPerReservatie.GetAt(VerwachteUitvoerReservatieID)
+ Do BestaandeInvoerUitvoerLink.ZetAantalProducten(BestaandeInvoerUitvoerLink.GeefAantalProducten() + InvoerUitvoerLink.GeefAantalProducten())
+ Do VerwachteUitvoerReservatie.VerwijderInvoerUitvoerLink(InvoerUitvoerLink)
+ Set Status = VerwachteUitvoerReservatie.%Save()
+ If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de nieuwe verwachte invoer niet opslaan",Status)) }
+ Do SamengevoegdeVerwachteInvoer.VerwijderInvoerUitvoerLink(InvoerUitvoerLink)
+ Set Status = InvoerUitvoerLink.%DeleteId(InvoerUitvoerLink.%Id())
+ If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.StatusException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),"Kon invoer-uitvoer-link "_InvoerUitvoerLink.%Id()_" niet verwijderen",Status)) }
+ }
+ }
+
+ Set Status = SamengevoegdeVerwachteInvoer.%Save()
+ If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de nieuwe verwachte invoer niet opslaan",Status)) }
+
+ Set $ZTRAP = ""
+ Do OperatieScope.Gelukt()
+ }
+
+ Quit SamengevoegdeVerwachteInvoer
+SamenvoegError
+ Set $ZTRAP = ""
+ Set Exceptie = ##class(TECH.ExceptionHandler).Catch()
+ Do OperatieScope.Gefaald()
+ Do ##class(TECH.ExceptionHandler).Rethrow(Exceptie)
+]]>
+
Index: DOM/ProdRes/impl/ReservatieImpl.cls.xml
===================================================================
diff -u -r2161 -r2169
--- DOM/ProdRes/impl/ReservatieImpl.cls.xml (.../ReservatieImpl.cls.xml) (revision 2161)
+++ DOM/ProdRes/impl/ReservatieImpl.cls.xml (.../ReservatieImpl.cls.xml) (revision 2169)
@@ -181,16 +181,19 @@
While ($$$ISOK(Status) && InvoerUitvoerLinkIterator.HasNext())
{
Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next()
- Set VerwachteInvoer = InvoerUitvoerLink.GeefVerwachteInvoer()
- If ($IsObject(VerwachteInvoer))
+ If ($IsObject(InvoerUitvoerLink))
{
- Do VerwachteInvoer.VerwijderInvoerUitvoerLink(InvoerUitvoerLink)
- Set Status = VerwachteInvoer.%Save()
+ Set VerwachteInvoer = InvoerUitvoerLink.GeefVerwachteInvoer()
+ If ($IsObject(VerwachteInvoer))
+ {
+ Do VerwachteInvoer.VerwijderInvoerUitvoerLink(InvoerUitvoerLink)
+ Set Status = VerwachteInvoer.%Save()
+ }
+ If ($$$ISOK(Status))
+ {
+ Set Status = InvoerUitvoerLink.%DeleteId(InvoerUitvoerLink.%Id())
+ }
}
- If ($$$ISOK(Status))
- {
- Set Status = InvoerUitvoerLink.%DeleteId(InvoerUitvoerLink.%Id())
- }
}
}
Quit Status
Index: DOM/ProdRes/impl/InvoerUitvoerLinkImpl.cls.xml
===================================================================
diff -u -r2161 -r2169
--- DOM/ProdRes/impl/InvoerUitvoerLinkImpl.cls.xml (.../InvoerUitvoerLinkImpl.cls.xml) (revision 2161)
+++ DOM/ProdRes/impl/InvoerUitvoerLinkImpl.cls.xml (.../InvoerUitvoerLinkImpl.cls.xml) (revision 2169)
@@ -17,7 +17,7 @@
1
%Status
@@ -52,15 +52,15 @@
DOM.ProdRes.Reservatie
Index: DOM/ProdRes/VerwachteInvoerAPI.cls.xml
===================================================================
diff -u -r2161 -r2169
--- DOM/ProdRes/VerwachteInvoerAPI.cls.xml (.../VerwachteInvoerAPI.cls.xml) (revision 2161)
+++ DOM/ProdRes/VerwachteInvoerAPI.cls.xml (.../VerwachteInvoerAPI.cls.xml) (revision 2169)
@@ -12,15 +12,15 @@
-Voert ook de save uit van de verwachte invoer
+Voert ook de save uit van de verwachte invoer.
1
VerwachteInvoerInfo:DOM.ProdRes.dto.VerwachteInvoerInfo
DOM.ProdRes.VerwachteInvoer
-Gaat zelf na of een ID bestaat en gooit een exceptie indien dit niet het geval is
+Gaat zelf na of een ID bestaat en gooit een exceptie indien dit niet het geval is.
1
VerwachteInvoerID:%String
@@ -50,5 +50,22 @@
VerwachteUitvoerIDs:%ListOfDataTypes
DOM.ProdRes.dto.SamenvoegVoorstellen
+
+
+
+Geeft de afgesplitste verwachte invoer terug.
+1
+VerwachteInvoerID:%String,NieuweVerwachteInvoer:DOM.ProdRes.dto.VerwachteInvoerInfo
+DOM.ProdRes.VerwachteInvoer
+
+
+
+
+De verwachte invoeren moeten dezelfde producten bevatten. De samengevoegde verwachte invoer wordt teruggegeven.
+De samen te voegen verwachte invoeren worden verwijderd.
+1
+VerwachteInvoerIDs:%ListOfDataTypes,DueIn:%TimeStamp,TransactieReferentie:%String,TransactieLijnReferentie:%String
+DOM.ProdRes.VerwachteInvoer
+
Index: DOM/ProdRes/impl/VerwachteInvoerImpl.cls.xml
===================================================================
diff -u -r2161 -r2169
--- DOM/ProdRes/impl/VerwachteInvoerImpl.cls.xml (.../VerwachteInvoerImpl.cls.xml) (revision 2161)
+++ DOM/ProdRes/impl/VerwachteInvoerImpl.cls.xml (.../VerwachteInvoerImpl.cls.xml) (revision 2169)
@@ -49,7 +49,7 @@
+
+DueIn:%TimeStamp
+
+
+
%String
%TimeStamp
+
+1
+DueIn:%TimeStamp
+
+
1
%String
Index: TECH/ExceptionHandler.cls.xml
===================================================================
diff -u -r2151 -r2169
--- TECH/ExceptionHandler.cls.xml (.../ExceptionHandler.cls.xml) (revision 2151)
+++ TECH/ExceptionHandler.cls.xml (.../ExceptionHandler.cls.xml) (revision 2169)
@@ -60,13 +60,26 @@
-Laat de callstack intakt
+Laat de callstack intakt. Exceptie is exceptioneel. Wanneer deze is leeggelaten wordt de bestaande exceptie gerethrowed (indien deze niet werd gecatched uiteraard!)
+In geval van een transactie kan de rethrow zonder exceptie parameter niet gebruikt worden omdat de $zerror ook wordt gerollbacked.
+Volgende stramien moet dan gebruikt worden:
+ Set Exceptie = ##class(TECH.ExceptionHandler).Catch()
+ TROLLBACK
+ Do ##class(TECH.ExceptionHandler).Rethrow(Exceptie)
1
+Exceptie:TECH.IException
Index: vhUnitTest/DOM/ProdRes/TestVerwachteInvoerAPI.cls.xml
===================================================================
diff -u -r2161 -r2169
--- vhUnitTest/DOM/ProdRes/TestVerwachteInvoerAPI.cls.xml (.../TestVerwachteInvoerAPI.cls.xml) (revision 2161)
+++ vhUnitTest/DOM/ProdRes/TestVerwachteInvoerAPI.cls.xml (.../TestVerwachteInvoerAPI.cls.xml) (revision 2169)
@@ -75,7 +75,7 @@
//
// Uitvoer Invoer
// +------------+ +------------+
- // | P1 50 | ---40----> | P1 210 |
+ // | P1 50 | ----40---> | P1 210 |
// | P1 170 | ---170---> | |
// | | +------------+
// | | +------------+
@@ -184,15 +184,117 @@
Set SamenvoegVoorstellen = VerwachteInvoerAPI.GeefSamenvoegVoorstellen(VerwachteUitvoerIDs)
Do $$$AssertEquals(SamenvoegVoorstellen.Count(),1,"Er is 1 samenvoeg voorstel")
Set SamenvoegVoorstel = SamenvoegVoorstellen.GetAt(1)
- Do $$$AssertEquals(SamenvoegVoorstel.Aantal,15+18,"33 producten kunnen samengevoegd worden")
Do $$$AssertEquals(SamenvoegVoorstel.ProductID,"P2","P2 kan worden samengevoegd")
+ Do $$$AssertEquals(SamenvoegVoorstel.Aantal,15+18,"33 producten kunnen samengevoegd worden")
+ // Voor de splitsing die we gaan doen eerst de huidige toestand controleren
+ Set Reservatie1LinkIterator = Reservatie1.GeefInvoerUitvoerLinkIterator()
+ Set InvoerUitvoerLink = Reservatie1LinkIterator.Next()
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefAantalProducten(),40,"40 producten gelinkt")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteInvoer(),VerwachteInvoer1,"De verwachte invoer")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteUitvoerReservatie(),Reservatie1,"De reservatie")
+ Do $$$AssertFalse(Reservatie1LinkIterator.HasNext(),"Er is geen volgende link")
+
+ Set Reservatie1LinkIterator = Reservatie2.GeefInvoerUitvoerLinkIterator()
+ Set InvoerUitvoerLink = Reservatie1LinkIterator.Next()
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefAantalProducten(),170,"170 producten gelinkt")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteInvoer(),VerwachteInvoer1,"De verwachte invoer")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteUitvoerReservatie(),Reservatie2,"De reservatie")
+ Do $$$AssertFalse(Reservatie1LinkIterator.HasNext(),"Er is geen volgende link")
+
+ // Eerste verwachte invoer splitsen in 170 - 40
+
+ Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New()
+ Set VerwachteInvoerInfo.Aantal = 40
+ Set VerwachteInvoerInfo.ProductID = "P1"
+ Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer1"
+ Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer1 lijn2"
+ Set NieuweVerwachteInvoer = VerwachteInvoerAPI.SplitsVerwachteInvoer(VerwachteInvoer1.%Id(),VerwachteInvoerInfo)
+
+ // Nagaan of de splitsing correct was en of de invoer-uitvoer-linken correct zijn herlegd
+
+ Set Reservatie1LinkIterator = Reservatie1.GeefInvoerUitvoerLinkIterator()
+ Set InvoerUitvoerLink = Reservatie1LinkIterator.Next()
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefAantalProducten(),40,"40 producten gelinkt")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteInvoer(),NieuweVerwachteInvoer,"De verwachte invoer bij reservatie 1")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteUitvoerReservatie(),Reservatie1,"De reservatie")
+ Do $$$AssertFalse(Reservatie1LinkIterator.HasNext(),"Er is geen volgende link")
+
+ Set Reservatie2LinkIterator = Reservatie2.GeefInvoerUitvoerLinkIterator()
+ Set InvoerUitvoerLink = Reservatie2LinkIterator.Next()
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefAantalProducten(),170,"170 producten gelinkt")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteInvoer(),VerwachteInvoer1,"De verwachte invoer bij reservatie 2")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteUitvoerReservatie(),Reservatie2,"De reservatie")
+ Do $$$AssertFalse(Reservatie1LinkIterator.HasNext(),"Er is geen volgende link")
+
+ // De splitsing terug samenvoegen
+
+ Set VerwachteInvoerIDs = ##class(%ListOfDataTypes).%New()
+ Do VerwachteInvoerIDs.Insert(VerwachteInvoer1.%Id())
+ Do VerwachteInvoerIDs.Insert(NieuweVerwachteInvoer.%Id())
+ Set SamengevoegdeVerwachteInvoer = VerwachteInvoerAPI.VoegVerwachteInvoerenSamen(VerwachteInvoerIDs,"2011-09-23 08:57:19",VerwachteInvoer1.GeefTransactieReferentie(),VerwachteInvoer1.GeefTransactieLijnReferentie())
+
+ Do $$$AssertEquals(SamengevoegdeVerwachteInvoer.GeefAantal(),210,"Het aantal producten is terug samengevoegd")
+ Set InvoerUitvoerLinkIterator = SamengevoegdeVerwachteInvoer.GeefInvoerUitvoerLinkIterator()
+ Do $$$AssertTrue(InvoerUitvoerLinkIterator.HasNext(),"De verwachte invoer heeft zeker 1 invoer-uitvoer-link")
+ Do InvoerUitvoerLinkIterator.Next()
+ Do $$$AssertTrue(InvoerUitvoerLinkIterator.HasNext(),"De verwachte invoer heeft ook een 2de invoer-uitvoer-link")
+ Do InvoerUitvoerLinkIterator.Next()
+ Do $$$AssertFalse(InvoerUitvoerLinkIterator.HasNext(),"De verwachte invoer heeft geen 3de invoer-uitvoer-link")
+
+ // Opnieuw opsplitsen maar nu met 180 - 30, nu moeten er een invoer-uitvoer-link opgesplitst worden
+
+ Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New()
+ Set VerwachteInvoerInfo.Aantal = 30
+ Set VerwachteInvoerInfo.ProductID = "P1"
+ Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer1"
+ Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer1 lijn2"
+ Set NieuweVerwachteInvoer = VerwachteInvoerAPI.SplitsVerwachteInvoer(VerwachteInvoer1.%Id(),VerwachteInvoerInfo)
+
+ // Nagaan of de splitsing correct was en of de invoer-uitvoer-linken correct zijn herlegd
+
+ Set Reservatie1LinkIterator = Reservatie1.GeefInvoerUitvoerLinkIterator()
+ Set InvoerUitvoerLink = Reservatie1LinkIterator.Next()
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefAantalProducten(),10,"10 producten gelinkt")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteInvoer(),VerwachteInvoer1,"De verwachte invoer bij reservatie 1")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteUitvoerReservatie(),Reservatie1,"De reservatie")
+ Do $$$AssertTrue(Reservatie1LinkIterator.HasNext(),"Er is een volgende link")
+
+ Set InvoerUitvoerLink = Reservatie1LinkIterator.Next()
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefAantalProducten(),30,"30 producten gelinkt")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteInvoer(),NieuweVerwachteInvoer,"De verwachte invoer bij reservatie 1")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteUitvoerReservatie(),Reservatie1,"De reservatie van de gesplitste link")
+ Do $$$AssertFalse(Reservatie1LinkIterator.HasNext(),"Er is geen volgende link")
+
+ Set Reservatie2LinkIterator = Reservatie2.GeefInvoerUitvoerLinkIterator()
+ Set InvoerUitvoerLink = Reservatie2LinkIterator.Next()
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefAantalProducten(),170,"170 producten gelinkt")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteInvoer(),VerwachteInvoer1,"De verwachte invoer bij reservatie 2")
+ Do $$$AssertEquals(InvoerUitvoerLink.GeefVerwachteUitvoerReservatie(),Reservatie2,"De reservatie")
+ Do $$$AssertFalse(Reservatie1LinkIterator.HasNext(),"Er is een volgende link")
+
+ // De splitsing terug samenvoegen, ook de gesplitste invoer-uitvoer-link moet samengevoegd zijn
+
+ Set VerwachteInvoerIDs = ##class(%ListOfDataTypes).%New()
+ Do VerwachteInvoerIDs.Insert(VerwachteInvoer1.%Id())
+ Do VerwachteInvoerIDs.Insert(NieuweVerwachteInvoer.%Id())
+ Set SamengevoegdeVerwachteInvoer = VerwachteInvoerAPI.VoegVerwachteInvoerenSamen(VerwachteInvoerIDs,"2011-09-23 08:57:19",VerwachteInvoer1.GeefTransactieReferentie(),VerwachteInvoer1.GeefTransactieLijnReferentie())
+
+ Do $$$AssertEquals(SamengevoegdeVerwachteInvoer.GeefAantal(),210,"Het aantal producten is terug samengevoegd")
+ Set InvoerUitvoerLinkIterator = SamengevoegdeVerwachteInvoer.GeefInvoerUitvoerLinkIterator()
+ Do $$$AssertTrue(InvoerUitvoerLinkIterator.HasNext(),"De verwachte invoer heeft zeker 1 invoer-uitvoer-link")
+ Do InvoerUitvoerLinkIterator.Next()
+ Do $$$AssertTrue(InvoerUitvoerLinkIterator.HasNext(),"De verwachte invoer heeft ook een 2de invoer-uitvoer-link")
+ Do InvoerUitvoerLinkIterator.Next()
+ Do $$$AssertFalse(InvoerUitvoerLinkIterator.HasNext(),"De verwachte invoer heeft geen 3de invoer-uitvoer-link")
+
// Opkuis data
Do VerwachteUitvoer.%DeleteId(VerwachteUitvoer.%Id())
Do VerwachteInvoer1.%DeleteId(VerwachteInvoer1.%Id())
Do VerwachteInvoer2.%DeleteId(VerwachteInvoer2.%Id())
Do VerwachteInvoer3.%DeleteId(VerwachteInvoer3.%Id())
+ Do NieuweVerwachteInvoer.%DeleteId(NieuweVerwachteInvoer.%Id())
]]>
@@ -213,22 +315,24 @@
%Status