Closed roelgrif closed 2 months ago
Vanuit TPS zijn er in dit geval twee actieve componentOfferingAssociations op dezelfde componentOffering waardoor niet duidelijk is wat het SIS van het TPS verwacht. Effectief komt het er weer op neer wat een componentOfferingAssociation nu eigenlijk is vanuit OOAPI perspectief en hoe dit geïnterpreteert moet worden. Hybride de verschillende mogelijkheden op basis van een first come first serve basis lijkt met over de SIS'en heen niet transparant.
IMHO is het duidelijk dat bij een resultaat op poging 2 niet een resultaat op het association ID van poging 1 (hetzij rechtstreeks, hetzij als origAssociationId) verwacht wordt. Als zo'n resultaat op het associationId van poging 2 terugkomt is een hybride first come first serve m.i. wel mogelijk. Het TPS kan extra pogingen aanmaken die het SIS niet aangemaakt heeft. Het vraagt uiteraard applicatiefunctionaliteit om dit goed te verwerken. De vraag kan m.i. niet uitsluitend met OOAPI overwegingen beantwoord worden, aangezien hier het poging nummer (in de NL-TEST-ADMIN consumer, dus specifiek OKE) een extra functionele key is die meerdere waarden van (technische key) associationId's veroorzaakt. Dit was nodig omdat er geen 1 op veel relatie is tussen het OOAPI compOffAss en het OOAPI result, maar slechts 1 op 1.
Als we het hebben over (functionele) keys op een association die van SIS naar TPS gestuurd wordt, zijn dat volgens mij:
De overige attributen zijn eigenschappen van de association waarbij van het TPS het uitgangspunt is dat we (om de integratie zo eenvoudig en eenduidig mogelijk te houden) zo weinig mogelijk verbanden hoeven te leggen tussen de verschillende componentOfferingAssociations.
Met betrekking tot attemptsLeft spreken we nu af dat het aantal te plannen pogingen door de andere partij gedaan kunnen worden e..g attemptsLeft=1 aangeleverd door het SIS richting TPS betekent dat het TPS nog 1 extra poging mag inplannen. @JosVanderArend deze werkwijze ook opnemen in de documentatie @mcginkel kun jij valideren dat dit ook voor Eduarte zo zou werken?
Zie #148
even terug uit geheugen halen: (het verschil tussen de volgende geldige opties moet wel goed gedocumenteerd worden.)
In eduarte moeten we dit nog implementeren, maar met bovenstaande afspraak komen we er wel uit
In het specificatiedocument 0.9.4 van augustus 2024 wordt de werking m.b.t. attemptLeft beschreven bij gegeven attemptLeft binnen ComponentOfferingAssociation in paragraaf 4.3 CompOffAssoc (bij interactie “Student-pogingresultaat brengen” in paragraaf 3.5.2 wordt ook hier naartoe verwezen) als volgt:
Aantal extra pogingen die door DR/SIS zijn toegestaan voor de student om een resultaat te behalen voor deze toetsinschrijving. Dit gegeven heeft een volgende waarde (met bijbehorende betekenis): • 0 (geen extra pogingen toegestaan door DR/SIS; TPL mag geen extra poging inplannen) • > 0, zoals 1, 2, 3, etc. (aantal extra pogingen die zijn toegestaan door DR/SIS; TPL mag op eigen initiatief extra pogingen inplannen tot maximaal aantal zoals aangegeven waarde. • null (aantal pogingen is niet beperkt door DR/SIS; TPL mag zoveel extra pogingen inplannen als nodig) Het resultaat van iedere extra poging wordt vanuit TPL teruggekoppeld in een nieuw object ComponentOfferingAssociation (Toetsinschrijving) met verwijzing naar originele Toetsinschrijving) Aanvullende eis alleen gebruikt voor Toetsinschrijving in flow 1.
wordt opgenomen in #153
Vergelijkbaar probleem met #148. Situatie: poging 1 geleverd door SIS aan TPS met association id X resultaat poging 1 teruggeleverd door TPS aan SIS op association id X Vervolgens: poging 2 geleverd door SIS aan TPS met association id Y resultaat poging 2 teruggeleverd door TPS aan SIS op association id Z met orgAssociationId = X
M.i. niet volgens de OKE dan wel OOAPI standaard. Alleen in het geval het TPS zelf nieuwe pogingen maakt die nog niet door het SIS aangeleverd zijn zouden nieuwe association ID's aangemaakt moeten worden vanuit het TPS; met orgAssociationId = X of Y, dat maakt dan m.i. niet uit (als beide compOffAssId's remaining attempts > 0 hebben kan het TPS kiezen).