Vertegenwoordigt een specifieke activiteit in het productieproces. Activiteiten zijn altijd gegroepeerd in activiteitgroepen. Een activiteit kan zijn: een TANDEMBOX lade persen, TANDEMBOX bodems picken, karton snijden voor een LEGRABOX lade, etc. Activiteiten zijn dus altijd heel specifiek. Eenzelfde activiteit kan voorkomen in meerdere groepen. Elk activiteit- object heeft dan zijn eigen unieke ID maar alle objecten die horen bij dezelfde activiteit hebben wel dezelfde code. Een activiteit-object is verantwoordelijk voor (het aansturen van) de uitvoering van de activiteit in productie. Dit houdt in: - Alle informatie die nodig is om de activiteit uit te voeren, klaarzetten in UitvoeringInfo. - Zorgen dat eventuele werkposten gekoppeld aan de activiteit geconfigureerd zijn. - De effectieve aansturing. In de standaard implementatie gebeurt dit door het bepalen welke klasse verantwoordelijk is voor het effectieve aansturen van de activiteit (m.a.w. de UitvoeringInfoLijstVerwerker bepalen) en daarnaar te delegeren. Specifieke activiteitklassen kunnen dit gedrag altijd overschrijven. - Bepalen hoeveel items er zinvol in bulk kunnen uitgevoerd worden. De effectieve aansturing kan bestaan uit het afdrukken van documenten, het tonen van werk op een werkpost, het aansturen van een machine, etc. De activiteit is verantwoordelijk hiervoor, maar delegeert typisch de werkelijke aansturing naar een lijstverwerker en zorg er voor dat alles klaarstaat om de lijstverwerker en/of de bijhorende werkpost hun ding te laten doen. persistent 1 TECH.Persistent,APPS.Halux.PPS.UitvoeringInfoLijstVerwerkerListener %String %String ActiviteitGroepID VolgNummer %String 1 1 Korte maar unieke code voor de activiteit. Eenzelfde activiteit kan in meerdere activiteitgroepen voorkomen en de code dient om de activiteit te identificeren over de groepen heen. Voorbeeld: de activiteit "TBX bodempicking" kan voorkomen in de activiteitgroep "TBX TIP-ON voorbewerking" en in de groep "TBX hangmapladen voorbewerking". In dit geval zijn code en omschrijving hetzelfde maar zijn er wel 2 activiteiten met elk een unieke ID. Codes kunnen dan iets zijn als "TBXBodempicking" en "TBXTIPON". %String 1 Leesbare omschrijving van de activiteit, zoals "TANDEMBOX lade persen" %String 1 %Integer 999 Klassenamen van de verwerker, 1 per InformatieID. De verwerkers moeten kunnen aangemaakt worden zonder constructorparameters. %String array 1 cascade ActiviteitGroepID APPS.Halux.PPS.Activiteit.ActiviteitGroep 1 ActiviteitGroepID:%String APPS.Halux.PPS.Activiteit.Activiteit KlasseNaam:TECH.String,Key:TECH.String %String %String %String Geeft aan hoeveel werklijstItems er zinvol in bulk kunnen worden uitgevoerd. De standaardimplementatie geeft 1 terug. InformatieID:%String %Integer Geeft de activiteitlijnen terug die mogelijk zijn voor de activiteit. Als de activiteit geen meerdere lijnen ondersteunt, wordt ofwel een lege lijst teruggegeven, ofwel een lijst met 1 item voor de default lijn. De activiteit kiest wat hier teruggegeven wordt en is ook de enige die de teruggegeven ActiviteitLijnIDs beheert. De gebruiker moet er tegen kunnen dat er geen lijnen worden teruggegeven. %AbstractList Geeft de klassenaam terug van de lijstverwerker voor de opgegeven informatie ID. Wordt gebruikt door de standaardimplementatie van Activiteit om de aansturing aan door te delegeren. InformatieID:%String %String Geeft de ID van het eerstvolgende openstaande werklijstitem. %String Geeft de n volgende werklijst items terug die nog openstaan. De activiteit moet inschatten hoeveel items er best genomen kunnen worden, dus hoe groot n is, via de bulk factor. Openstaan betekent: status = wachtend. Men kan optioneel aangeven vanaf welk item we moeten beginnen. Ook optioneel kan een ander maximum aantal items worden opgegeven, hetgeen dan gebruikt wordt i.p.v. de bulkfactor. InformatieID:%String,VanafVolgnummer:%Integer=0,MaxAantal:%Integer=0 %AbstractList ?" Set Query = Query _ " ORDER BY Volgnummer" #dim QueryParams As %List = $LB(MaxAantalItems, ..GeefID(), InformatieID, VanafVolgnummer) #dim ResultSet As TECH.ResultSet = ##class(TECH.ResultSet).Create(Query, QueryParams) Set Lijst = ##class(%ListOfDataTypes).%New() while ResultSet.Next() { Do Lijst.Insert(ResultSet.Data("ID")) } Quit Lijst ]]> Wijzigt de opgegeven activiteititems zodat ze gelden voor de opgegeven ActiviteitLijn. de ActiviteitLijn moet een ondersteunde lijn zijn, zoals bepaald door GeefMogelijkeActiviteitLijnen. WerklijstItemIDs:%ListOfDataTypes,DoelActiviteitLijnID:%String Voert een reeds uitgevoerd werklijstitem opnieuw uit. Zet IsRework op true in de UitvoeringInfo. Bij opnieuw uitvoeren kan bijvoorbeeld op basis van de IsRework indicatie de prioriteit van uitvoering verhoogd worden. WerklijstItemID:%String WerklijstItemID:%String,VerwerkerParameter:%CacheString="" De standaardimplementatie maakt een UitvoeringInfoLijstVerwerker op basis van de klassenaam teruggegeven door GeefUitvoeringInfoLijstVerwerker, maakt een UitvoeringInfoLijst voor het werklijstitem, en geeft de lijst door aan de verwerker. Registreert zich ook als listener bij de verwerker en past de administratieve velden van het werklijstitem aan (status, timestamps,...) op basis van de feedback van de verwerker. Noot: de feedback van de verwerker kan asynchroon komen (vb. aansturing kartonmachine). De ID in de UitvoeringInfo kan dienen om een antwoord te linken aan de juiste aanvraag (vb.gebruik de ID van het werklijstitem) en zo het juiste werklijstitem up to date te brengen. De voorwaarde is natuurlijk dat de asynchrone verwerker toelaat om een correlatie-ID mee te geven. Optioneel kan men een parameter meegeven die aan de constructor van de uitvoeringinfolijstverwerken wordt meegegeven. Indien er nog andere activiteiten zijn met dezelfde code in andere ActiviteitGroepen, wordt hun status veranderd naar "EldersUitgevoerd". WerklijstItemIDs:%ListOfDataTypes,VerwerkerParameter:%CacheString="",ActieParameters:%ListOfDataTypes="" Opgeroepen per item dat verwerkt is, of de verwerking geslaagd is of niet. Geeft het item in kwestie door, waarbij alle velden van het item hun finale waarde hebben (status, opmerking, etc). UitvoeringInfo:APPS.Halux.PPS.dto.UitvoeringInfo %Library.CacheStorage ^APPS.Halux.PPSA368.ActiviteitD ActiviteitDefaultData ^APPS.Halux.PPSA368.ActiviteitD ^APPS.Halux.PPSA368.ActiviteitI ^APPS.Halux.PPSA368.ActiviteitS %%CLASSNAME ActiviteitGroepID Code ID Omschrijving VolgNummer UitvoeringInfoLijstVerwerkerKlasseNamen subnode "UitvoeringInfoLijstVerwerkerKlasseNamen"