Integrationsmotor - Regelmotor "Muleattributes" - Övergripande processflöde
Se även aktiva flöden i detalj: https://cesamh.atlassian.net/wiki/x/B4DL3
Innehåll
Undersidor
- Integrationsmotor - Regelmotor "Muleattributes" - Urval av fält från e-tjänst
- Integrationsmotor - Regelmotor "Muleattributes" - API-anrop med parametrar
- Integrationsmotor - Regelmotor "Muleattributes" - Gallring av regler
- Integrationsmotor - Regelmotor "Muleattributes" - Omsändning via "fejkade" events
- Integrationsmotor - Regelmotor "Muleattributes" - Tabeller
- Integrationsmotor - Regelmotor "Muleattributes" - Migration av Mule-flöden till Frends
- Integrationsmotor - Regelmotor "Muleattributes" - Larmhantering
- Integrationsmotor - Regelmotor "Muleattributes" - Koppling av Cesam H testmiljö till proxyn
Maskineriet
Hela integrationskedjan består av fyra olika Mule-flöden (Mule 3). Dessa har varsitt stycke nedan.
GetOePIssues
Detta är det första flödet i kedjan och det prenumererar på olika “subscriptions” som talar om vilka e-tjänster som är aktuella i respektive kommun. Med hjälp av den datan så hämtar den de senaste händelserna för e-tjänsterna och trycker ner dessa som en rad i en databas-tabell (events).
Se även: API - InstanceAPI - GetEvents - Families och tabeller: Integrationsmotor - Regelmotor "Muleattributes" - Tabeller
MuleAttributesManager
Här snappar man upp de senaste raderna i events-tabellen och kikar på respektive ärende för varje händelse. Där suger flödet alla attribut i ärendet som har namn efter given namnkonvention JAVA-KLASS-NAMN_muleAttribute'ValfrittVariabelNamn. Dessa attribut och deras värden görs till en normaliserad nyckel-värde-lista som sedan skjuts in i tabellen muleattributes (se exempel på denna sida: Integrationsmotor - Regelmotor "Muleattributes").
RuleEngine
Uppgiften för det här flödet är att kolla upp alla nya rader i muleattributes-tabellen och para ihop dessa med den regel som associeras med dem. Den sätter ihop datan från attributen med datan från regel-tabellerna (muleattributes_rules_replicated, muleattributes_rule_group_replicated och muleattributes_rule_group_rules_replicated) och skriver ner det som en rad i nästa tabell (muleattributesexecutionstatus).
--Potientiell förbättring för att snabba på RuleEngine och hitta vilket Subcription-Id
--vi ska arbeta med härnäst (nuvarande Mule-flöde går igenom alla)
select top 1 * from muleattributes_ruleengine_status order by LatestSuccessMuleattributeId desc
select top 1 * from muleattributes where Id > 51468470 order by Id asc --Lägsta idt
select * from subscriptions where FamilyId = 40 AND Instance = 'internservice.kalmar.se'MuleAttributesExecutionStatusImplementer
Sista flödet i regelmotorn är MuleAttributesExecutionStatusImplementer. Detta flöde läser ifrån tabellen muleattributesexecutionstatus. Där står exakt vilken data som flödet ska behandla och hur den ska hanteras (vilket API-anrop som ska göras och när). Nedan finns ett diagram som i stora drag går igenom hur flödet fungerar (Sep 6, 2023):