Winkelkar. Een Winkelkar kan concrete producten bevatten en tekstlijnen. Alles kan gegroepeerd worden in groepen. Groepen kunnen genest worden. De volgorde van de lijnen is gegarandeerd maar is niet zondermeer via een SQL query te achterhalen. Bij het gebruik van een Visitor wordt de volgorde wel gerespecteerd. persistent DOM.EC.OL.Winkelkar.Visitor TECH.Error,vhLib.Macro 1 TECH.VhChangeInfo 0 Derde.Klant.Klant %String 1 Alle lijnen zitten in 1 hoofdgroep. Deze groep bewaart de volgorde van de lijnen. De relationship zou altijd achteraan toevoegen dus kunnen we deze niet rechtstreeks gebruiken. DOM.EC.Winkelkar.GroepLijn 1 DOM.EC.Winkelkar.Lijn children Lijst 1 %Boolean 1 Set {*}=##class(DOM.EC.Winkelkar.Winkelkar).%OpenId({ID}).IsWijzigbaar() 1 %Boolean 1 Set {*}=##class(DOM.EC.Winkelkar.Winkelkar).%OpenId({ID}).IsVerwijderbaar() 1 ApplicatieID:%String 1 1 %Status %String 1 %Boolean 1 %Boolean 1 %Boolean 1 %Boolean Geeft leeg terug indien de groep niet bestaat GroepNaam:%String DOM.EC.Winkelkar.GroepLijn Een iterator over de lijnen van de lijst TECH.ListIterator Lijn:DOM.EC.Winkelkar.Lijn,InsertPos:%String Lijn:DOM.EC.Winkelkar.Lijn %Status Interne method, niet gebruiken. Voegt een Lijn toe aan storage maar houdt geen rekening met groepen. Lijn:DOM.EC.Winkelkar.Lijn Verwijdert lijn uit de lijst. Lijn moet een lijn zijn die rechtstreeks op het hoofdniveau van de lijst bestaat. Lijnen in subgroepen moeten uit hun groep verwijderd worden. Als een groep verwijderd wordt, dan wordt de inhoud ook verwijderd. Als deze oproep niet $$$OK teruggeeft, kan de in-memory state verschillen van de gepersisteerde state. Het is daarom aangeraden om een %Reload uit te voeren op de lijst. Merk op dat %Reload enkel werkt als er geen references naar de lijst of een lijn open staan. Bv. een iterator of een lijn teruggegeven door een iterator. Lijn:DOM.EC.Winkelkar.Lijn %Status %Status Interne method, niet gebruiken. Verwijdert een Lijn uit de storage, maar mag enkel opgeroepen worden vanuit GroepLijn omdat anders de Lijn niet uit de groep verwijderd wordt. Lijn:DOM.EC.Winkelkar.Lijn %Status UnID:%String DOM.EC.Winkelkar.Lijn WinkelkarVisitors welkom... Visitor:DOM.EC.Winkelkar.WinkelkarVisitor %Status %Library.CacheStorage ^DOM.EC.Winkelkar.WinkelkarD WinkelkarDefaultData ^DOM.EC.Winkelkar.WinkelkarD ^DOM.EC.Winkelkar.WinkelkarI ^DOM.EC.Winkelkar.WinkelkarS %%CLASSNAME AangemaaktDoor AangemaaktOp ApplicatieID GewijzigdDoor GewijzigdOp InstanceVersion Klant Root