nl-digigo / visi

Beheeromgeving van de VISI open standaard.
https://nl-digigo.github.io/visi/
6 stars 4 forks source link

Prio-850: ElementConditions voor tabellen #36

Closed JanaxLooij closed 5 years ago

JanaxLooij commented 6 years ago

Op dit moment bestaat geen eenduidige afspraak op welk niveau een Element Condition voor een tabel gezet moet worden. Hierdoor is de werking in de software van te voren moeilijk voorspelbaar en kan de werking per softwareleverancier verschillen. Een tabel wordt in een raamwerk gecreëerd door een Complex element aan een Complex element toe te voegen. De onduidelijkheid zit hem in het Complex Element waar de element condition aan toegevoegd dient te worden. Is dit de parent of the child (ingevoegde complex element).

Bijgevoegd de pdf uit de visi richtlijn die de regels van de element conditions nu definieert.

Om de bovenstaande vraag te kunnen beantwoorden, wordt dit document uitgebreid met de mogelijkheid om optioneel een tweede CE te benoemen in een element condition en daar de voorrangstabel op uit te breiden.

Tijdens de implementatie van ‘element conditions’ ontstond er discussie over de juiste manier van toepassen van deze condities. Belangrijkste oorzaak is dat de toepassing van een conditie op een bepaald niveau effect kan hebben op het gedrag van Simple Elements op andere niveaus (voorrangs-regels). Om een en ander te verduidelijken worden hieronder in een tabel alle mogelijke condities weergegeven. Van helemaal geen conditie tot condities op zowel MITT, CE als SE niveau. Vervolgens wordt in pseudo code deze tabel geïnterpreteerd. Aangezien bij tabellen er op 2 ce’s een element condition gezet kan worden, is er in onderstaande tabel onderscheid gemaakt tussen parent en child CE. De element condition in de raamwerk XML staat gewoon op 1 of 2 ce’s ingesteld, parent of child wordt bepaald per berichtsituatie en niet vast gelegd in de element condition. Als er 2 CE's in een element condition zitten, dan is de eerste altijd de parent en de tweede het child CE.

Een element condition kan er dan als volgt uit gaan zien:

New element condition FIXED

Tabel met alle mogelijkheden voor Element condition ( - afwezig, x gedefinieerd) :

Bijvoorbeeld:

Het SE “Opmerkingen”moet altijd EMPTY zijn, dit zou je kunnen weergeven als: Conditie(-, -, -,'Opmerkingen') = EMPTY In MITT “MiTT01”moet de hele MITT altijd FREE zijn, dit zou je kunnen weergeven als: Conditie('MiTT01', -,-,-) = FREE   Als 1 kolom van een tabel "FIXED" is, mogen er geen regels toegevoegd of verwijderd worden, ook niet als het een lege tabel betreft. Het CE "verificaties" moet altijd FREE zijn, onafhankelijk of het in een tabel of als een normaal CE bestaat: Conditie(-, 'verificaties',-,-) = FREE

Het CE "controles" moet alleen FREE zijn als tabel binnen CE "advies": Conditie(-,'advies','controles',-) = FREE

Er bestaat een bericht met daarin een parent CE "CE1" en een child CE "CE2" Voor onderstaande element conditie voorbeelden wordt de plaats in bovenstaande tabel benoemd:

(-,'CE1',-,-) : Positie 4 (-,'CE2',-,-) : Positie 2 (-,'CE1','CE2',-) : Positie 6

(-,'CE2','CE1',-) : Geen positie: 1 is geen child van 2. Deze element conditie doet niets.

Voorstel pseudo code voor het bepalen van de conditie:

als Eerste bericht of Element niet aanwezig in vorige bericht

als Conditie gevonden(MITT, Ce normaal / parent, Cechild, SE ) als Conditie gevonden(MITT, Ce normaal / parent, Cechild, -) als Conditie gevonden(MITT, Ce normaal / parent, -, SE ) als Conditie gevonden(MITT, Ce normaal / parent, -, - ) < Conditie(MITT, Ce normaal / parent, -, - )> als Conditie gevonden(MITT, - , Cechild, SE ) < Conditie(MITT, - , Cechild, SE )> als Conditie gevonden(MITT, - , Cechild, -) < Conditie(MITT, - , Cechild, -)> als Conditie gevonden(MITT, - , -, SE ) als Conditie gevonden(-, Ce normaal / parent, Cechild, SE ) als Conditie gevonden(-, Ce normaal / parent, Cechild, -) < Conditie(-, Ce normaal / parent, Cechild, -)> als Conditie gevonden(- , Ce normaal / parent, -, SE ) < Conditie(- , Ce normaal / parent, -, SE )> als Conditie gevonden(-, Ce normaal / parent, -, -) als Conditie gevonden(- , -, Cechild, SE ) als Conditie gevonden(- , - , Cechild, -) < Conditie(- , - , Cechild, -)> als Conditie gevonden(- , - , -, SE ) < Conditie(- , - , -, SE )> als Conditie gevonden(- , - , -, - ) (geen element condition gevonden) < return FIXED>
 Is het SE “Opmerkingen”in MITT “MiTT01”nu EMPTY of FREE? o Volgens deze definitie is “Opmerkingen”in “MiTT01”dus FREE. o Om “Opmerkingen”in “MiTT01”nu EMPTY te krijgen moet Conditie('MiTT01', -,-, 'Opmerkingen') worden toegevoegd. Backwards compatibility: Doordat oude raamwerken op dezelfde manier element conditions hebben, met als enig verschil dat er nooit meer dan 1 ce benoemd is, blijven alle oude element conditions in raamwerken het ook doen als het raamwerk naar 1.6 omgezet wordt. in 1.6 kun je vooral aanvullende specificering regelen. De in het raamwerk bestaande element conditions worden vanaf 1.6 natuurlijk wel met bovenstaande voorrangsmatrix geëvalueerd. Testscenario: Scenario 10 is toegevoegd aan het testprotocol: https://visi.codeplex.com/wikipage?title=Testscenario%27s&referringTitle=Documentation In _7. XML zijn: de CE's CeDagMenu, CeDrankenKaart toegevoegd in de T1 berichten msgAanbiedingMenuKaart en msgVraag . In msgAntwoord is CeMenuKaart toegevoegd. Daarnaast zijn de Element conditions ElementCondition1vanScenario10 t/m ElementCondition7vanScenario10 toegevoegd. Bestand bijgevoegd in dit workitem Acties: testscenario plus raamwerk uitbreiden - arne - gedaan expfiles e.d. aanpassen voor 1.6 - Jeroen vd Burg plaatsen de _7.xml(bevat ook de aanpassing van Jeroen van Geijlswijk van workitem 1019 - Bijlage verplicht kunnen stellen per berichttype) #### Attachments [Implementatie van element conditions (002).pdf](https://www.codeplex.com/Download/AttachmentDownload.ashx?ProjectName=visi&WorkItemId=1226&FileAttachmentId=1872) [EC matrix 1.6.jpg](https://www.codeplex.com/Download/AttachmentDownload.ashx?ProjectName=visi&WorkItemId=1226&FileAttachmentId=1902) [_7.xml](https://www.codeplex.com/Download/AttachmentDownload.ashx?ProjectName=visi&WorkItemId=1226&FileAttachmentId=3956) #### This work item was migrated from CodePlex CodePlex work item ID: '1226' Assigned to: 'gspees' Vote count: '1'
JanaxLooij commented 6 years ago

[Michon@29-10-2015] Op dit moment bestaat geen eenduidige afspraak op welk niveau een Element Condition voor een tabel gezet moet worden. Hierdoor is de werking in de software van te voren moeilijk voorspelbaar en kan de werking per softwareleverancier verschillen. Een tabel wordt in een raamwerk gecreëerd door een Complex element aan een Complex element toe te voegen. De onduidelijkheid zit hem in het Complex Element waar de element condition aan toegevoegd dient te worden. Is dit de parrent of the child (ingevoegde complex element).

JanaxLooij commented 6 years ago

[Arne_Bruinse@30-10-2015] E-mail gestuurd aan jeroen en thomas om voor de sessie van 11 december na te denken over het aangepaste richtlijn document, of dit de juiste weg is.

JanaxLooij commented 6 years ago

[UnknownUser@8-12-2015]

JanaxLooij commented 6 years ago

[Arne_Bruinse@8-12-2015] bijgevoegd de mail met vraag en nieuw uitgewerkt document

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[jvgeijlswijk@11-12-2015] Dit punt is op 11-12-2015 besproken tijdens de werksessie door Ge, Peter, Thomas, Jaap, Jeroen. Voorstel is om dit aan de hand van enkele voorbeelden helder te maken, zodat o.a. duidelijke wordt wanneer een rij aan een tabel toegevoegd mag worden. Uitwerking zal plaatsvinden tijdens de volgende werksessie.

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@11-12-2015]

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2016]

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2016]

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2016]

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2016]

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2016]

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2016]

JanaxLooij commented 6 years ago

[Arne_Bruinse@7-6-2016] testscenario toegevoegd en restacties benoemd

JanaxLooij commented 6 years ago

[UnknownUser@7-6-2016]