KEPLIN Docs

Steg, beslut och väntan

Katalogen över ett arbetsflödes noder — villkor, skrivningar till posten, aviseringar, e-post, skript, väntan, loopar, parallellitet och sammanslagningar.

Den här sidan går igenom alla stegtyper som dras från paletten Noder till duken. För var och en: vad den gör, vad man fyller i och vad som händer under körningen.

Innan dess, en del som återkommer i nästan alla: ett värdes ursprung.

Varifrån ett värde kommer

Varje gång ett steg ber om ett värde — högersidan i ett villkor, det som skrivs i ett fält — erbjuder gränssnittet samma fyra ursprung:

Källa Vad den ger
Fast värde En text skriven för hand (”Ganha”, ”25000”).
Fält i posten Ett fält i posten som körningen handlar om.
Variabel En av processens variabler.
Den som startade Den som fick processen att starta — Användarnamn (användarnamnet) eller Användarens id.

Det är därför en process inte behöver kod för det mesta den gör: besluten och skrivningarna sätts ihop av de här fyra delarna.

Villkor

Öppnar två vägar utifrån en fråga. Den har alltid två fasta utgångar: Sant och Falskt.

Dialogen Stegets villkor
Dialogen Stegets villkor

  1. Markera steget och öppna Villkor med knappen .
  2. Klicka på Lägg till villkor.
  3. Välj vänstersidans källa (normalt Fält i posten), fältet, operatorn och högersidan.

Operatorerna är desamma som i filtren och formateringsreglerna i resten av plattformen:

Operator Betyder
eq / neq Lika med / skild från
gt / gte Större än / större än eller lika med
lt / lte Mindre än / mindre än eller lika med
contains Innehåller texten
startsWith / endsWith Börjar med / slutar med
isEmpty / isNotEmpty Är tomt / är inte tomt

”Alla måste vara uppfyllda” — flera villkor i samma steg kombineras med OCH, aldrig med ELLER. För ett ELLER använder du två villkorssteg i kedja.

Utan några villkor alls ”går den alltid via «Sant»” — praktiskt medan man designar, farligt om det blir kvar så.

Skriv till posten

Sparar fält i posten som körningen handlar om. Det är steget som sluter kretsen: processen har beslutat, nu måste CRM-kortet återspegla det.

Dialogen Fält att skriva till posten
Dialogen Fält att skriva till posten

  1. Öppna Fält att skriva med knappen .
  2. Klicka på Lägg till fält.
  3. Välj Fält och värdets källa.

I exemplet skriver steget Marcar como Ganha fase = "Ganha" (fast värde) och responsavel = Den som startade (användarnamnet för den som startade processen).

Nota

Skrivningen sker ”via appens eget GraphQL, med behörigheten hos den som startade”. Alltså: behörigheterna räknas. Om den som startade processen inte får ändra den entiteten misslyckas steget — och det gör rätt i att misslyckas, för en process är ingen bakdörr förbi behörigheterna.

Ett steg utan några fält alls ”gör ingenting” — gränssnittet säger det i stället för att dölja det.

Avisera

Skickar en avisering inne i appen — klockan i navigeringen, i realtid för den som har en öppen session, och i inkorgen för den som inte har det.

Fält Anteckningar
Användare Konton i appen, valda för hand.
Roller Alla användare med den rollen. Överlever att människor kommer och går.
Titel Raden som visas i aviseringen.
Text Brödtexten.

I titeln och texten kan du sätta in värden från posten eller från variabler inom klammerparenteser: Affärsmöjligheten {titulo} har avslagits.

E-post

Samma som Avisera, men destinationen är e-post, via kanalen som konfigurerats i appens inställningar. Den har två fält till: brödtexten är HTML, skriven i en egen editor, och kan bära med sig en rapport som bilaga.

Steget E-post markerat, med egenskapspanelen
Steget E-post markerat, med egenskapspanelen

Fält Anteckningar
Användare / Roller Mottagarna. Den som inte har e-post hamnar utanför.
Ämne Godtar {fält} som resten av meddelandena.
Text Öppnar en HTML-editor med knappen (E-postens brödtext).
Bifoga rapport En av appens rapporter, eller Ingen bilaga.

Om bilagan: ”PDF:en genereras i samma stund som mejlet skickas, för den här körningens post” — det är ingen sparad fil, det är just det fallets dokument, skapat i just det ögonblicket. Se kapitlet Rapporter.

Atenção

Utan aktiv e-postkanal och fullständig SMTP i appens inställningar kan steget inte skicka. Konfigurera det under Appens inställningar → Aviseringar innan du sätter processen i drift.

Kör skript

Anropar ett Python-skript i appen, mitt i processen. Det är säkerhetsventilen för allt som designen inte klarar: anropa en extern tjänst, räkna ut en marginal, validera mot ett annat system.

Steget Kör skript markerat
Steget Kör skript markerat

Fält Anteckningar
Skript Ett av appens skript.
Spara i Variabeln där det som skriptet returnerar hamnar. Tomt = ”kastas bort”.

Skriptet ”får posten, nyckeln och variablerna som argument” — du behöver inte skicka med dem för hand. Det som det returnerar hamnar i den angivna variabeln och blir tillgängligt för följande steg.

Om skriptet misslyckas hamnar körningen i Misslyckades vid det steget, med felet sparat i historiken.

Vänta

Skjuter upp processen en fast tid: Dagar och Timmar. ”Noll i båda = ingen väntan alls.”

Det är delen för ”påminn mig om tre dagar om det fortfarande inte kommit något svar”. Körningen sover och återupptas automatiskt vid rätt tidpunkt, även om servern startats om under tiden.

Vänta på händelse

Skjuter upp processen tills någon skickar en signal med ett överenskommet namn.

Steget Vänta på händelse markerat
Steget Vänta på händelse markerat

Det enda fältet är Signalens namn (i exemplet dados-completos). ”Den som skickar signalen skriver det här namnet. Utan utsatt tid: om ingen skickar den väntar processen.”

Signalen skickas på två sätt:

  • i en skärmhändelse (TypeScript): keplin.workflow.signal("dados-completos", id)
  • i ett skript (Python): workflow.signal("dados-completos", key=id)

Utan att ange posten väcker signalen alla processer som stannat på det namnet; med posten bara de som gäller den. Noll väckta är inget fel — det betyder att ingen väntade.

Dica

Det är vanligt att kombinera Vänta på händelse med en pil tillbaka till en uppgift: personen skickar tillbaka ärendet och ber om mer data, processen blir stående och väntar på signalen, och när säljaren kompletterar kortet för signalen tillbaka ärendet till samma uppgift. Det är precis vad exemplet i den här dokumentationen gör.

Loop

Går igenom en lista, ett värde i taget. Den har två utgångar: Varje (loopens kropp, som körs en gång per värde) och När klart (när listan tar slut).

Fält Anteckningar
Lista Variabeln med värdena som ska gås igenom. ”Det är oftast ett skriptsteg som producerar den.”
Spara varje i Variabeln som får värdet för det aktuella varvet.

Utan vald lista varnar designen: ”Den här loopen säger inte vilken lista den ska gå igenom: den går direkt ut via «När klart».”

Parallell

Startar flera vägar samtidigt. Varje gren är en utgång från noden.

Dialogen Parallella grenar
Dialogen Parallella grenar

  1. Öppna Parallella grenar med knappen .
  2. Varje rad är en gren, med en Etikett (det som läses i designen) och en Identifierare.
  3. Koppla varje utgång till första steget i respektive gren.

I exemplet öppnar steget Fechar e comunicar två grenar: Registo (som sparar fasen) och Cliente (som skickar e-posten). Ingen väntar på den andra.

Sammanslagning

Fogar samman grenarna från en Parallell igen. Det är steget som svarar på ”hur många väntar man på?”.

Sammanslagningen markerad, med egenskapspanelen
Sammanslagningen markerad, med egenskapspanelen

Vänta på Vad den gör
Alla grenar Processen går vidare först när den sista grenen är framme.
Den första avgör Den går vidare med den första som är framme — ”de andra grenarna avbryts så snart en är framme”.
Ett antal av dem Den går vidare efter så många grenar som du anger i Hur många.

Underarbetsflöde

Anropar en annan process, på samma post.

Fält Anteckningar
Process att köra Ett av appens arbetsflöden.
Vänta tills den är klar Påslaget stannar den här processen tills den andra är klar. ”Avstängt går den här processen vidare och den andra körs för sig.”

”Det körs på SAMMA post, och måste därför handla om samma entitet” — en process om affärsmöjligheter kan inte anropa en process om konton. Och en process kan inte anropa sig själv: ”det skulle bli oändlig rekursion”, och designen påpekar det.

Slut

Avslutar körningen. Den har ett enda fält, Resultat, en kort text som aprovado, ganha eller perdida. ”Det stannar i historiken och är det som statuswidgeten visar.”

En process kan ha flera Slut-noder — en per utgång — och det är precis vad man bör göra: i stället för ett generiskt Slut, ett per resultat, så att historiken säger något till den som läser den månader senare.

Hur man läser ett steg på duken

Varje ruta på duken visar tre saker: stegets namn (det du skrev i Stegets namn, och det som visas i historiken), typen i små bokstäver under, och utgångarna till höger, med namnet på var och en. En bärnstensfärgad triangel i hörnet markerar ett steg med problem.

Dica

Ge stegen affärsnamn — ”Aprovação da direcção”, ”Marcar como Ganha” — och inte tekniska namn. Det är den texten du kommer att läsa i varje körnings historik när någon frågar ”var har det här ärendet fastnat?”.