Dynamische Workflow - Database design

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Marco Achternaam

Marco Achternaam

30/11/2016 14:16:02
Quote Anchor link
Dag Allen,

Ik ben met mezelf in discussie over het ontwerp van een database model voor een dynamische workflow. Kort door de bocht heb ik te maken met een proces van een organisatie. Achter ieder proces hangt een te kiezen workflow met workflow_acties, welke allemaal na een x aantal dagen worden uitgevoerd vanaf startdatum van het proces.

De workflows zijn echter in te stellen door gebruiker zelf. Op het moment dat een workflows wijzigt, wijzigt bestaande workflow van een proces ook. De vraag is even of dit wenselijk is, maar stel je voor nu even voor dat dit wenselijk zou zijn. Op welke manier zouden uit te voeren acties en uitgevoerde acties bij worden gehouden? Ik kan me twee dingen voorstellen: een tabel met logs: proces_id, workflow_actie_id, datum_van_uitvoer, status of een kopie van de workflow en workflow_acties tabel, met daarin de bijgewerkte datums vanaf proces datum en status van de acties.

Het kan ook voorkomen dat een proces wordt gepauzeerd en hervat, waarna de datum van de volgende actie verschuift. In een gekopiëerde tabel zou deze actie naar mijn gevoel makkelijker toe te passen zijn.

Hoe zouden jullie hiermee omgaan en wat vinden jullie de beste optie. Alternatieven natuurlijk tevens welkom.

Gr Marco
 
PHP hulp

PHP hulp

15/11/2024 22:32:48
 
Thomas van den Heuvel

Thomas van den Heuvel

30/11/2016 14:48:39
Quote Anchor link
Een dynamische workflow klinkt mij paradoxaal in de oren.

Een workflow lijkt mij in zekere zin een (vast) recept om op een gestructureerde manier stapsgewijs naar een doel te werken.

Zou jij halverwege het bakken van een cake de receptuur veranderen?

Het wordt natuurlijk anders als je een praktisch voorbeeld hebt waarin een dynamische workflow wenselijk is. Als je deze niet kunt verzinnen vervalt je uitgangsstelling dat zoiets wenselijk zou zijn en is het verder verkennen hiervan niet echt zinnig.
 
Marco Achternaam

Marco Achternaam

30/11/2016 14:56:55
Quote Anchor link
Hoi Thomas,

Denk aan een proces die aan regelgeving gebonden is, waardoor een lopend proces aangepast moet worden. Een proces kan bijv. twee maanden lopen, maar door nieuwe regelgeving veranderen. Op dat moment is het niet wenselijk een volledig proces opnieuw te starten, omdat er stappen zijn afgerond welke bewaard moeten blijven. Het bestaande proces moet echter wel volgens nieuwe regels worden afgerond, eventueel met terugwerkende kracht.

Mijn belangrijkste vraag betreft dan ook de manier van opslag van de status van activiteiten, niet of het proces zou moeten kunnen veranderen.

Gr Marco
 
Ward van der Put
Moderator

Ward van der Put

30/11/2016 15:09:01
Quote Anchor link
Je zou eens in procesmanagement en vooral in methoden voor het bepalen van een kritiek pad (critical path) kunnen duiken. Vereenvoudigd in omgekeerde volgorde bijvoorbeeld: je kunt pas winterbanden onder een auto monteren als die banden in het magazijn zijn binnengekomen, maar ze komen pas in het magazijn nadat ze zijn geleverd en daarvoor moeten ze eerst worden ingekocht. Deze afhankelijkheden tussen taken kun je uiteraard prima in een database zetten, inclusief data zoals: hoe lang kost een taak, wie mag/moet de taak uitvoeren, wat kost de taak, enzovoort.
 
Thomas van den Heuvel

Thomas van den Heuvel

30/11/2016 15:17:34
Quote Anchor link
Maar verandert het proces uberhaupt structureel? Of is dit slechts de parameter "duur" die een andere waarde krijgt waardoor andere tijden opschuiven? Dat is nogal een verschil. En bepaalt ook mede de opslag. Mijn eerste ingeving zou zijn dat je workflow-sjablonen gebruikt en wanneer parameters veranderen doe je dit zowel in de "actieve workflow instanties" alsook in het sjabloon (en log je deze wijziging met motivatie).

Wanneer de workflow structureel verandert is dit in feite een nieuwe workflow (of een volgende versie van een bestaande workflow). Anders kom je mogelijk in de knoei met al eerder afgeronde processen die een andere/eerdere versie van de workflow volgde. Je historie raakt dan vertroebeld. Ik neem aan dat dat ook belangrijk is, dat je terug kunt kijken?

Anyhow, dit alles is nogal abstract geneuzel - hoe je iets structureert hangt sterk af van welke data je hebt en hoe je hier mee omgaat. Zonder te weten over wat voor processen het gaat, wie hier allemaal (tegelijkertijd) mee werken en hoe verschillend deze zijn wordt het nogal lastig om te komen met een universele aanpak voor het structureren hiervan.

Heb je concrete voorbeelden en een motivatie in welke gevallen deze "dynamisch" zouden moeten zijn? Zoals gezegd, het aanpassen van een duur kan prima zonder het structureel wijzigen van de workflow zelf, dit lijkt mij slechts een configuratie-parameter.
 
Marco Achternaam

Marco Achternaam

30/11/2016 16:16:34
Quote Anchor link
Inderdaad een abstracte situatie. Concreet kan het bijvoorbeeld gaan om een subsidie aanvraag (een vergelijkbaar voorbeeld, echte situatie nog niet volledig). De stappen voor de aanvraag staan vast document 1 opstellen > goedkeuring > verzending > wachten op respons > document 2 opstellen of herzien document 1 > goedkeuring en relevante documenten verzamelen > verzending > aanvraag voltooid of herzien document 2.

Stel je voor dat hier ineens documenten (niet te voorzien) bij komen, maar dat wachten op respons van document 1 nog open staat. De nieuwe benodigde documenten moeten tevens worden aangeleverd, maar gebruikelijke workflow dient door te lopen. Ook kan het zijn dat tussen het opstellen en goedkeuring een extra stap komt.

Mijn gevoel zegt inderdaad ook dat een template voor de workflows van toepassing is, welke in dergelijke situatie scriptmatig de bestaande actieve workflows (direct gekoppeld aan proces) controleert / bijwerkt en dus als extra stap in de projectplanning laat terugkomen. Volgens mij heb je dat met je reactie bevestigd :) Dank je!

@Ward : Interessante info!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.