Verlanglijst. Een verlanglijst kan concrete producten bevatten, tekstlijnen en filtercriteria. Alles kan gegroepeerd worden in groepen. Groepen kunnen genest worden. Gebruik steeds de operaties Open, Create en Delete ipv de onderliggende %OpenId etc. 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.Verlanglijst.Visitor TECH.Error,vhLib.Macro 1 %Persistent Hoofding %Integer 1 GroepLijn 1 Lijn children Lijst 1 1 ID 1 Datum waarop verlanglijst voor het laatste gebruikt werd. Kan gecreeerd of geopend zijn. %Integer %Boolean ID:%Integer 1 1 %Status Een iterator over de lijnen van de lijst TECH.ListIterator Lijn:Lijn,InsertPos:%String Lijn:Lijn Interne method, niet gebruiken. Voegt een Lijn toe aan storage maar houdt geen rekening met groepen. Lijn: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:Lijn %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:Lijn %Status UnID:%String Lijn VerlangLijstVisitors welkom... Visitor:DOM.EC.OL.Verlanglijst.Visitor.VerlanglijstVisitor %Status Open een verlanglijst adhv een ID 1 ID:%Integer Verlanglijst Open een verlanglijst adhv een ID als ID niet bestaat maak nieuwe aan 1 ID:%Integer Verlanglijst Delete een verlanglijst. De hele lijst wordt gedelete, inclusief alle groepen. Bemerk da wanneer de lijst geen groeplijnen bevat en er toch nog groepen bestaan, de niet-gerefereerde groepen niet gedelete zullen worden. 1 ID:%Integer %Boolean %Status Maak een nieuwe verlanglijst met een opgegeven ID 1 ID:%Integer="" Verlanglijst 1 %Integer Niet gebruikte verlanglijsten na x-aantal maanden verwijderen Do ##class(DOM.EC.OL.Verlanglijst.Verlanglijst).VerwijderOudeVerlanglijsten() 1 %Library.CacheStorage ^DOM.EC.OL.VerlanglijstD VerlanglijstDefaultData ^DOM.EC.OL.VerlanglijstD ^DOM.EC.OL.VerlanglijstI ^DOM.EC.OL.VerlanglijstS %%CLASSNAME Hoofding ID Root DatumLaatstGebruikt LaatstGebruikt