nl-digigo / visi

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

Vervallen verklaren van verstuurd bericht #6

Closed JanaxLooij closed 6 years ago

JanaxLooij commented 6 years ago

Achtergrond In de Proof-of-Concept van "De Digitale Rotonde" is naar voren gekomen dat het voorkomen van het versturen van een inhoudelijk onvolledig bericht onmogelijk is, en dat in een inhoudelijke correctie alleen voorzien kan worden in het raamwerk (middels "controle-loops"). Bijvoorbeeld: een persoon kan voor de combinatie van straatnaam en huisnummer een niet bestaande combinatie opgeven, zoals straatnaam=Kalverstraat, huisnummer=999.

Het inbouwen van "controle-loops" in het raamwerk wordt door "De Digitale Rotonde" niet beschouwd als een passende oplossing, want het inbouwen van extra loops zorgt voor een minder lean raamwerk.

"De Digitale Rotonde" heeft behoefte aan het ondersteunen van de volgende scenario’s: een verstuurd bericht intrekken, verwijderen of corrigeren.

In december 2013 en januari 2014 is hier door Niek Pluijmert vanuit de DEMO gemeenschap het volledige transactie patroon, of "Universal transaction pattern" ingebracht. Hierin zitten met name de "cancellation patterns" die slaan op dit issue. In de TC werksessie van 20 juni 2014 kwam Jos Hamilton afzonderlijk ook met dit schema als voorwaarde om een dergelijke uitbreiding als acceptabel te kunnen zien.

Functionele samenvatting Functionele wens is een verzonden bericht A (waarvoor nog geen opvolgend bericht is verstuurd) terug te kunnen draaien op 1) initiatief van verzender (met akkoord van ontvanger) of 2) op initiatief van ontvanger (met akkoord van verzender), waarbij de situatie voor verzending van bericht A bereikt wordt, maar waarbij wel verzonden bericht A alsmede de communicatie over het terugdraaien traceerbaar en eenduidig vastgelegd zijn.

Mogelijke problemen bij een rollback

Volgnummers. Als wijziging 1 t/m 10 zijn verzonden en 5 wordt via een rollback terug geroepen, komt dit nummer dan weer vrij zodat de nieuwste wijziging nummer 5 krijgt?

Doorsturen d.m.v. gekoppelde transacties, zelf subtransacties maken of zelfs koppelingen in sap en andere systemen. Andere systemen kunnen niet altijd berichten intrekken. Als er al gekoppelde transacties verzonden zijn moeten deze eerst ingetrokken worden.

Aandachtspunten 2 vormen van rollback:

het verzoek om het laatste bericht terug te trekken

het verzoek om een hele transacties te cancelen

Vragen bij rollback van een bericht:

wat doe je als na een rollback verzoek er alweer een nieuw bericht is verzonden. Of geen verzending toestaan zolang de rollback pending is.

Geen verzending toestaan is lastig. Als een verzoek intrekken wat vertraging heeft om op de andere server te komen kan op de andere server ondertussen al een bericht verzonden zijn.

als de rollback wordt toegestaan wat doe je met de communicatie over de rollback en het teruggedraaide bericht. Mooiste is als dit toch ergens zichtbaar blijft

In outlook zie je dan een streep door de berichtregel, maar dit zou aan de leverancier zijn om streep of kleur of iets anders te kiezen. Wel moet het terug te vinden zijn omdat dit ook communicatie is.

Vragen bij rollback/cancelation van de transactie

wat doe je met de transactie, blijft deze toch zichtbaar? als gesloten transactie?

Hetzelfde als wanneer je alle berichten afzonderlijk cancelled.

Motivatie voor verdere uitwerking Voor de 1.4 versie van de standaard was besloten dat de technische oplossing voor dit issue besloten ligt in de huidige VISI-standaard , namelijk het invoeren van "loops" in een VISI-raamwerk. Derhalve hoeft de VISI Standaard niet aangepast te worden.

Voor de 1.5 versie wordt dit item toch weer opgepakt, om een onnodige hoeveelheid loops in raamwerken tegen te gaan en om met VISI weer veel dichter bij de DEMO systematiek te komen. Met loops kan bijvoorbeeld niet een "revoke acceptance" geregeld worden, omdat de transactie dan gesloten dient te worden.

De oplossing volgens DEMO In tegenstelling tot de eerdere uitwerking, wordt de definitie van deze oplossing nu, overeenkomstig met de DEMO "cancellation patterns" (zie bijgevoegde powerpoint en afbeeldingen)

De verzender van het laatste bericht in een transactie kan een extra bericht achter dit bericht aansturen, met de vraag om het bericht terug te trekken. In demo terminologie zou dit "revoke message" heten.

De ontvanger van het laatste bericht ontvangt dan het revoke-verzoek en kan antwoorden met een refuse of een allow-bericht. Zijn eerdere eventuele reactie mogelijkheden zijn dan geblokkeerd en worden pas weer aangeboden als hij voor een refuse kiest. Bij allow wordt het bericht door de visi software als vervallen maar wel leesbaar gemarkeerd. De verzender van het teruggetrokken bericht is in dat geval weer aan zet om het zelfde bericht aangepast, of een ander bericht ervoor in de plaats op te sturen.

De volledige "Quit" en "Stop" uit het standaard demo transaction pattern vallen niet verder onder deze oplossing, omdat die reeds ondersteund worden in de huidige visi systematiek. Deze berichten heten bijvoorbeeld "Intrekking" of "Definitieve afkeuring", enz. Deze zijn nu qua bericht volgorde al precies volgens de demo transaction patterns in te bouwen en worden al zo gebruikt.

Regels bij terugtrekken van berichten

Volgnummers: De transactie volgnummers uit de systematiek gelden voor de gehele transactie, terugtrekken van het eerste bericht in de transactie en vervolgens een nieuwe eerste bericht in die transactie leidt dan niet tot een nieuwe volgnummer. Dus in de fase dat er wel een terugtrekking is maar nog geen nieuw bericht blijft het transactie volgnummer dus intact en mag niet voor nieuwe transacties worden uitgegeven.

Risico's en vragen

Adressering van de hierboven genoemde risico's en benoemde vraagstukken:

BESPREKEN WANT GEEN SYSTEMATIEK? Software volgnummers die niet hard in de systematiek zijn opgenomen maar wel door leveranciers worden ondersteunt, staat hier de werkafspraak dat een eenmaal uitgegeven nummer uitgegeven moet blijven. Dus ook al wordt het eerste bericht van een transactie waarin volgnummer 5 staat ingetrokken, dit nummer mag voor de traceerbaarheid niet opnieuw uitgegeven worden. een volgend bericht krijgt dan bijvoorbeeld nummer 6.

Reeds doorgestuurde berichten: Besproken tijdens de werksessie van 20-6-2014 en overeengekomen is, dat eventuele terugkeer vanuit de subtransactie niet meer mogelijk mag zijn nadat het bericht waaruit de subtransacties gestart zijn teruggetrokken is. Het is aan de initiator van de subtransacties of die deze door laat lopen of daar ook met revoke of quit en stop berichten die processen stop zet.

Wat doe je als het reactie/opvolgende bericht op het terug te trekken bericht al onderweg was? Zodra een server die een revoke verzonden heeft en de normale reactie ontvangt, wordt de revoke als "refused" beschouwd. Mocht men dan toch dit bericht willen revoken, zal dan eerst de revoke van het nieuwe bericht uitgevoerd moeten worden.

Wat te doen met de zichtbaarheid van de revoke berichten en het terug getrokken bericht? De weergave ligt bij de verschillende leveranciers, maar de berichten moeten toonbaar en traceerbaar zijn. Dus de revoke berichten moeten als normale visi berichten in de transactie in het archief terecht komen.

cancellation patterns verwerken in metaraamwerk of in het gewone raamwerk?

......verder all vragen hierboven benoemen en uitwerken

Acties:

input van standaard demo patroon ("revoke") verwerken in een aangepast voorstel (actie: Arne); ... word document met voorbeelden opnieuw maken duidelijk de 3 speciale berichten in metaraamwerk verder uitwerken/benoemen

Attachments

Uitwerking rollback.docx volledig transactiepatroon.jpg standard transaction pattern.jpg VISI systematiek versie 1_5 Revocation v0.3.pdf

This work item was migrated from CodePlex

CodePlex work item ID: '955' Vote count: '1'

JanaxLooij commented 6 years ago

[jvgeijlswijk@7-6-2013] Tijdens dag vier (24-05-2013) van de Pressure Cooker (De Digitale Rotonde) is het volgende geconcludeerd: Het issue wordt voor nu geschrapt als blocking issue, omdat de oplossing voor dit issue al in de huidige VISI-standaard besloten ligt (namelijk het invoeren van loops). Aan de technische commissie van VISI wordt doorgegeven dat aan de bestaande wens van de gebruikers van VISI om correcties mogelijk te maken het mogelijk moet zijn om de correcties expliciet aan/uit te zetten.

JanaxLooij commented 6 years ago

[UnknownUser@7-6-2013]

JanaxLooij commented 6 years ago

[UnknownUser@7-6-2013]

JanaxLooij commented 6 years ago

[UnknownUser@7-6-2013]

JanaxLooij commented 6 years ago

[gspees@24-6-2013] In de praktijk komt nog al eens voor dat gebruikers een reactietermijn willen verlengen. Dat is dus eigenlijk geen rollback maar extra communicatie over 1 SE binnen het laatste bericht. Misschien iets om bij de rollback ook over na te denken.

JanaxLooij commented 6 years ago

[UnknownUser@11-9-2013]

JanaxLooij commented 6 years ago

[UnknownUser@19-9-2013]

JanaxLooij commented 6 years ago

[UnknownUser@19-9-2013]

JanaxLooij commented 6 years ago

[UnknownUser@19-9-2013]

JanaxLooij commented 6 years ago

[UnknownUser@19-9-2013]

JanaxLooij commented 6 years ago

[tomvanoost@19-9-2013] Mogelijke technische implementatie Indien men in een project/raamwerk gebruik wil maken van de "rollback" functionaliteit dan zijn de volgende zaken vereist:

Raamwerk niveau:

  <MessageType id="MRollback">
    <description>Verzoek intrekking laatste bericht</description>
    <complexElements>
      <ComplexElementTypeRef idref="..." />
      <ComplexElementTypeRef idref="..." />
    </complexElements>
  </MessageType>

  <MessageType id="MRefuseRollback">
    <description>Weigering intrekking laatste bericht</description>
    <complexElements>
      <ComplexElementTypeRef idref="..." />
    </complexElements>
  </MessageType>

  <MessageInTransactionType id="MittRollback">
    <!-- TODO: velden optioneel maken voor MITT? -->
  </MessageInTransactionType>

Bericht niveau:

    <MRollback id="bericht00..">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <MittRollback idref="mit000...." />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie00...." />
        </transaction>
        <ce....>
        </ce....>
    </MRollback>

    <MittRollback id="mit000....">
        <identification />
    </MittRollback>
JanaxLooij commented 6 years ago

[UnknownUser@19-9-2013]

JanaxLooij commented 6 years ago

[UnknownUser@19-9-2013]

JanaxLooij commented 6 years ago

[Arne_Bruinse@19-9-2013] Uitwerking besproken op 19-9-2013

JanaxLooij commented 6 years ago

[UnknownUser@25-10-2013]

JanaxLooij commented 6 years ago

[UnknownUser@25-10-2013]

JanaxLooij commented 6 years ago

[jvgeijlswijk@10-1-2014] De kwaliteit van de oplossing wordt tijdens de werksessie d.d. 10-01-2014 in twijfel getrokken. De risico's van de oplossing worden hoog ingeschat.

Belangrijkste argument is echter dat alleen de functionele vraag van de Digitale Rotonde helder geformuleerd is, en niet de overige functionele vragen van VISI gebruikers. De Digitale Rotonde heeft gekozen om deze intrekking in het raamwerk te regelen. Ook dit wordt geadviseerd door de aanwezigen van de werksessie d.d. 10-01-2014.

JanaxLooij commented 6 years ago

[UnknownUser@10-1-2014]

JanaxLooij commented 6 years ago

[UnknownUser@10-1-2014]

JanaxLooij commented 6 years ago

[UnknownUser@10-1-2014]

JanaxLooij commented 6 years ago

[UnknownUser@10-1-2014]

JanaxLooij commented 6 years ago

[UnknownUser@28-2-2014]

JanaxLooij commented 6 years ago

[jvgeijlswijk@28-2-2014] ** Closed by jvgeijlswijk 10-1-2014 5:56

JanaxLooij commented 6 years ago

[UnknownUser@28-2-2014]

JanaxLooij commented 6 years ago

[UnknownUser@28-2-2014]

JanaxLooij commented 6 years ago

[Arne_Bruinse@28-2-2014] eerste verder uitwerken met praktijkvoorbeelden en nadenken hoe om te gaan met complexe workflow transacties hoe dat te behandelen

JanaxLooij commented 6 years ago

[UnknownUser@28-2-2014]

JanaxLooij commented 6 years ago

[UnknownUser@28-2-2014]

JanaxLooij commented 6 years ago

[UnknownUser@28-2-2014]

JanaxLooij commented 6 years ago

[UnknownUser@10-4-2014]

JanaxLooij commented 6 years ago

[UnknownUser@11-4-2014]

JanaxLooij commented 6 years ago

[UnknownUser@11-4-2014]

JanaxLooij commented 6 years ago

[UnknownUser@11-4-2014]

JanaxLooij commented 6 years ago

[UnknownUser@20-6-2014]

JanaxLooij commented 6 years ago

[jvgeijlswijk@20-6-2014] Op 20-06-2014 is dit punt besproken en tegen het licht gehouden van het standaard patroon van demo, en het "revoke" gedeelte lijkt op de bedachte rollback. Het originele idee wordt omgeschreven naar het "revoke" van DEMO.

JanaxLooij commented 6 years ago

[UnknownUser@20-6-2014]

JanaxLooij commented 6 years ago

[UnknownUser@20-6-2014]

JanaxLooij commented 6 years ago

[jvgeijlswijk@5-9-2014] Op 05-09-2014 is dit punt niet besproken en/of opgepakt en verder uitgewerkt.

JanaxLooij commented 6 years ago

[UnknownUser@5-9-2014]

JanaxLooij commented 6 years ago

[UnknownUser@14-11-2014]

JanaxLooij commented 6 years ago

[gspees@14-11-2014] Afbeelding van volledig transactiepatroon uit de demo systematiek toegevoegd

JanaxLooij commented 6 years ago

[UnknownUser@14-11-2014]

JanaxLooij commented 6 years ago

[UnknownUser@14-11-2014]

JanaxLooij commented 6 years ago

[gspees@14-11-2014] Afbeelding van het standaard transactiepatroon toegevoegd. Deze is iets eenvoudiger te begrijpen dan het volledige transactiepatroon

JanaxLooij commented 6 years ago

[UnknownUser@14-11-2014]

JanaxLooij commented 6 years ago

[UnknownUser@14-11-2014]

JanaxLooij commented 6 years ago

[UnknownUser@14-11-2014]

JanaxLooij commented 6 years ago

[Arne_Bruinse@16-1-2015] Afgesproken in werksessie 16-01-2015: We proberen het revoke proces als volgt in de 1.5 systematiek te verwerken:

B&S werkt dit de komende tijd verder uit en Infostrait kijkt dit ook intern verder na, zodat we in de volgende sessie dit af kunnen tikken voor 1.5

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2015]

JanaxLooij commented 6 years ago

[UnknownUser@19-2-2015]