Workflow in Informatica: Maken, Taak, Parameter, Herbruikbaar, Manager
Wat is werkstroom?
Workflow is een groep instructies/opdrachten voor de integratieservice in Informatica. De integratieservice is een entiteit die workflow-informatie uit de repository leest, gegevens uit bronnen ophaalt en deze na het uitvoeren van de transformatie in het doel laadt.
Workflow – Het definieert hoe taken moeten worden uitgevoerd, zoals sessietaak, opdrachttaak, e-mailtaak, Etc.
Om een werkstroom te creëren
- U moet eerst taken aanmaken
- En voeg die taken vervolgens toe aan de workflow.
Een workflow is als een lege container, die de capaciteit heeft om een object op te slaan dat u wilt uitvoeren. U voegt taken toe aan de workflow die u wilt uitvoeren. In deze tutorial gaan we de volgende dingen doen in workflow.
Het uitvoeren van workflows kan op twee manieren worden gedaan
- Volgorde : Taken worden uitgevoerd in de volgorde waarin ze zijn gedefinieerd
- Op evenement gebaseerd: Taken worden uitgevoerd op basis van de gebeurtenisvoorwaarden.
Hoe u Workflowbeheer opent
Stap 1) Klik in Informatica Designer op het pictogram Workflowmanager
Stap 2) Hierdoor wordt een venster van Workflow Manager geopend. Vervolgens in de workflowmanager.
- We gaan verbinding maken met de repository “guru99”, dus dubbelklik op de map om verbinding te maken.
- Voer de gebruikersnaam en het wachtwoord in en selecteer vervolgens “Verbindingsknop”.
Stap 3) In de werkstroommanager.
- Klik met de rechtermuisknop op de map
- Selecteer de optie Openen in het pop-upmenu
Hierdoor wordt de werkruimte van Workflow Manager geopend.
Verbindingen maken voor Workflow Manager
Om een taak in de workflowmanager uit te voeren, moet u een verbindingen. Door deze verbindingen te gebruiken, maakt Integration Service verbinding met verschillende objecten.
Bijvoorbeeld in uw in kaart brengen Als u een brontabel in een Oracle-database hebt, hebt u een Oracle-verbinding nodig zodat de integratieservice verbinding kan maken met de Oracle-database om de brongegevens op te halen.
De volgende verbindingstypen kunnen in de workflowmanager worden gemaakt.
- Relationele verbinding
- FTP-verbinding
- Queue
- Aanvraag
De keuze voor de verbinding die u maakt, is afhankelijk van het type bron- en doelsysteem dat u wilt aansluiten. Vaker zou je gebruiken relationele verbindingen.
Om een relationele verbinding tot stand te brengen
Stap 1) In Workflowbeheer
- Klik op het menu Verbinding
- Selecteer Relationele optie
Stap 2) In het pop-upvenster
- Selecteren Oracle qua soort
- Klik op de nieuwe knop
Stap 3) In het nieuwe venster voor de definitie van verbindingsobjecten
- Voer de verbindingsnaam in (nieuwe naam-guru99)
- Vul je gebruikersnaam in
- Voer wachtwoord in
- Voer de verbindingsreeks in
- Laat andere instellingen op de standaardwaarde staan en selecteer de knop OK
Stap 4) U keert terug naar het vorige venster. Klik op de knop Sluiten.
Nu bent u klaar met de relationele verbinding in workflowmanager.
Onderdelen van Workflowmanager
Er zijn drie componenthulpmiddelen van Workflow Manager die helpen bij het maken van verschillende objecten in Workflow Manager. Deze hulpmiddelen zijn
- Taakontwikkelaar
- Werklet-ontwerper
- Werkstroomontwerper
Taakontwikkelaar – Task developer is een tool waarmee u herbruikbare objecten kunt maken. Herbruikbare objecten in workflow manager zijn objecten die in meerdere workflows hergebruikt kunnen worden. Bijvoorbeeld, als u een command task in task developer hebt gemaakt, dan kunt u deze taak in een willekeurig aantal workflows hergebruiken.
De rol van Workflow-ontwerper is het uitvoeren van de taken die eraan zijn toegevoegd. U kunt een willekeurig aantal taken toevoegen aan een workflow.
U kunt drie typen herbruikbare taken maken in Taakontwikkelaar.
- Commando taak
- Sessie taak
- e-mail taak
Commando taak – Een opdrachttaak wordt gebruikt om verschillende Windows/Unix-opdrachten uit te voeren tijdens de uitvoering van de workflow. U kunt een opdrachttaak maken om verschillende opdrachten uit te voeren. Met behulp van deze taak kunt u opdrachten uitvoeren om bestanden/mappen aan te maken, om bestanden/mappen te verwijderen, om ftp-bestanden te maken enz.
Sessietaak – Om een mapping uit te voeren is een sessietaak in Informatica vereist.
- Zonder een sessietaak kunt u geen mapping uitvoeren of uitvoeren
- Een sessietaak kan slechts één enkele mapping uitvoeren. Er is dus een één-op-één-relatie tussen een mapping en een sessie
- Een sessietaak is een object met behulp waarvan computer leert hoe en waar een mapping moet worden uitgevoerd en op welk tijdstip
- Sessies kunnen niet zelfstandig worden uitgevoerd, er moet een sessie aan een workflow worden toegevoegd
- In sessie-object cache-eigenschappen kunnen worden geconfigureerd en ook geavanceerde configuratie voor prestatie-optimalisatie.
E-mailtaak – Met behulp van de e-mailtaak kunt u e-mail verzenden naar gedefinieerde ontvangers wanneer de Integration Service een workflow uitvoert. Als u bijvoorbeeld wilt controleren hoe lang het duurt om een sessie te voltooien, kunt u de sessie configureren om een e-mail te verzenden met de details van de start- en eindtijd van de sessie. Of als u wilt dat de Integration Service u op de hoogte stelt wanneer een workflow is voltooid/mislukt, kunt u de e-mailtaak hiervoor configureren.
Hoe u een opdrachttaak maakt
Stap 1) Om een command task te maken gaan we Task Developer gebruiken. In Workflow Manager, open de task developer door te klikken op het tabblad “task developer” in het menu.
Stap 2) Zodra de taakontwikkelaar is geopend, volgt u deze stappen
- Selecteer het Takenmenu
- Selecteer de optie Maken
Stap 3) In het taakvenster maken
- Selecteer opdracht als type taak dat u wilt maken
- Voer de taaknaam in
- Selecteer de knop Maken
Hierdoor wordt een opdrachttaakmap gemaakt. Nu moet je de taak configureren om er een opdracht aan toe te voegen, die we in de volgende stap zullen zien.
Stap 4) Om de taak te configureren, dubbelklikt u op het pictogram van de opdrachttaak en wordt een 'taakbewerkingsvenster' geopend. In het nieuwe taakbewerkingsvenster
- Selecteer het opdrachtenmenu
- Klik op het pictogram voor het toevoegen van een nieuwe opdracht
- Voer de opdrachtnaam in
- Klik op het opdrachtpictogram om opdrachttekst toe te voegen
Hiermee wordt een opdracht-editorvenster geopend.
Stap 5) Voer in het opdrachtvenster de opdracht “mkdir C:\guru99” in (dit is de Windows-opdracht om een map met de naam “guru99” te maken) en selecteer OK.
Na deze stap keert u terug naar het venster Taken bewerken. Hier ziet u de opdracht die u hebt toegevoegd in het tekstvak voor opdrachten.
Stap 6) Klik op OK in het taakvenster voor bewerken,
De opdrachttaak wordt aangemaakt in de taakontwikkelaar onder de repository “Guru99”.
Note gebruik de sneltoets ctrl+s om de wijzigingen in de repository op te slaan
Hoe u een workflow kunt creëren om de opdrachttaak uit te voeren
Om opdrachttaken uit te voeren, moet u overschakelen naar de workflowontwerper. Een workflowontwerper is een ouder- of containerobject waarin u meerdere taken kunt toevoegen. Wanneer de workflow wordt uitgevoerd, worden alle toegevoegde taken uitgevoerd. Om een werkstroom te creëren
Stap 1) Open de workflowontwerper door op het workflowontwerpermenu te klikken
Stap 2) In workflowontwerper
- Selecteer het workflowmenu
- Selecteer optie maken
Stap 3) In het workflow-venster maken
- Voer de werkstroomnaam in
- Selecteer de OK-knop (laat andere opties standaard staan)
Hiermee wordt de werkstroom gemaakt.
Naamgeving - Workflow-namen worden voorafgegaan door 'wkf_', als je een sessie hebt met de naam 's_m_werknemer_detail' dan kan de workflow voor hetzelfde de naam krijgen als 'wkf_s_m_werknemer_detail'.
Wanneer u een workflow maakt, bestaat deze niet uit taken. Om een taak in een workflow uit te voeren, moet u er dus een taak aan toevoegen.
Stap 4) Om de opdrachttaak die we in Taakontwikkelaar hebben gemaakt, toe te voegen aan de workflowontwerper
- Vouw in de navigatorstructuur de takenmap uit
- Sleep de opdrachttaak naar de workflowontwerper en zet deze daar neer
Stap 5) Selecteer de optie ‘taak koppelen’ in de werkbalk in het bovenste menu. (De optie taak koppelen koppelt verschillende taken in een workflow aan de starttaak, zodat de volgorde van uitvoering van taken kan worden gedefinieerd).
Stap 6) Zodra u het linktaakpictogram selecteert, kunt u de link tussen de starttaak en de opdrachttaak slepen. Selecteer nu de starttaak en sleep een link naar de opdrachttaak.
Nu bent u klaar en heeft de workflow een opdrachttaak die moet worden uitgevoerd.
Hoe u een werkstroom uitvoert
Stap 1) Om de werkstroom uit te voeren
- Selecteer de workflowoptie in het menu
- Selecteer de optie voor het starten van de workflow
Dit gaat open werkstroommonitor venster en voert de workflow uit
Zodra de workflow is uitgevoerd, wordt de opdracht uitgevoerd om een map (guru99-map) in de gedefinieerde map aan te maken.
Sessie taak
Om een mapping uit te voeren is een sessietaak in Informatica vereist.
Zonder een sessietaak kunt u geen mapping uitvoeren of uitvoeren, en kan een sessietaak slechts één mapping uitvoeren. Er is dus een één-op-één-relatie tussen een mapping en een sessie. Een sessietaak is een object waarmee Informatica leert hoe en waar een mapping moet worden uitgevoerd en op welk tijdstip. Sessies kunnen niet zelfstandig worden uitgevoerd, er moet een sessie aan een workflow worden toegevoegd. In de sessie kunnen objectcache-eigenschappen worden geconfigureerd, evenals geavanceerde configuratie voor prestatie-optimalisatie.
Een sessietaak maken
In deze oefening maakt u een sessietaak voor de mapping “m_emp_emp_target” die u in het vorige artikel hebt gemaakt.
Stap 1) Open Workflowmanager en open taakontwikkelaar
Stap 2) Zodra de taakontwikkelaar is geopend, gaat u in de workflowmanager naar het hoofdmenu
- Klik op het taakmenu
- Selecteer optie maken
Dit opent een nieuw venster "Taak maken"
Stap 3) In het taakvenster maken
- Selecteer sessietaak als taaktype.
- Voer de naam van de taak in.
- Klik op de knop Maken
Stap 4) Er verschijnt een venster waarin u de mapping kunt selecteren. Selecteer de mapping die u aan deze sessie wilt koppelen, selecteer voor dit voorbeeld de mapping “m_emp_emp_target” en klik op de knop OK.
Stap 5) Klik daarna op de knop "Gereed".
Sessieobject verschijnt in de taakontwikkelaar
Stap 6) In deze stap maakt u een workflow voor de sessietaak. Klik op het workflowontwerperpictogram.
Stap 7) In de workflow-ontwerptool
- Klik op het workflowmenu
- Selecteer optie maken
Stap 8) In het venster voor het maken van een workflow
- Voer de werkstroomnaam in
- Selecteer OK. (laat andere eigenschappen standaard staan, u hoeft geen eigenschappen te wijzigen)
In de workflowmanager verschijnt een starttaak, dit is een startpunt voor de uitvoering van de workflow.
Stap 9) In werkstroombeheer
- Vouw de sessiemap uit onder de navigatiestructuur.
- Versleep de sessie die u hebt gemaakt naar de werkruimte van de workflowmanager.
Stap 10) Klik op de optie Taak koppelen in de gereedschapskist.
Stap 11) Koppel de starttaak en sessietaak via de link.
Stap 12) Double klik op het sessieobject in Wokflow Manager. Er wordt een taakvenster geopend waarin u de taakeigenschappen kunt wijzigen.
Stap 13) In het bewerkingstaakvenster
- Selecteer het tabblad Toewijzing
- Verbindingseigenschap selecteren
- Wijs de verbinding toe aan bron en doel, de verbinding die we in de eerste stappen hebben gemaakt.
- Selecteer OK-knop
Nu is uw configuratie van de workflow voltooid en kunt u de workflow uitvoeren.
Hoe u meerdere taken aan een starttaak kunt toevoegen
De starttaak is een startpunt voor de uitvoering van de workflow. Er zijn twee manieren om meerdere taken aan een starttaak te koppelen.
- Parallel
- Serie-
Bij parallelle koppeling worden de taken direct gekoppeld aan de starttaak en worden alle taken tegelijkertijd parallel uitgevoerd.
Hoe u taken parallel kunt toevoegen
Stap 1)Open in de workflowmanager de workflow “wkf_run_command”
Stap 2)Voeg in de workflow sessietaak “s_m_emp_emp_target” toe. (door sessie te selecteren en vervolgens te slepen en neer te zetten)
Stap 3)Selecteer de optie 'Taak koppelen' in de werkbalk
Stap 4) koppel de sessietaak aan de starttaak (door op starttaken te klikken, de klik ingedrukt te houden en verbinding te maken met de sessietaak)
Na het koppelen van de sessietaak ziet de workflow er als volgt uit.
Stap 5)Start de workflow en monitor in de workflowmonitor.
Taken toevoegen in seriële modus
Maar voordat we taken in de seriële modus toevoegen, moeten we de taak verwijderen die we hebben toegevoegd om de parallelle uitvoering van de taak aan te tonen. Daarom
Stap 1)Open de werkstroom “w.kf_run_command”
- Selecteer de koppeling naar de sessietaak.
- Selecteer de bewerkingsoptie in het menu
- Selecteer de verwijderoptie
Stap 2)Er verschijnt een bevestigingsdialoogvenster in een venster, selecteer de optie Ja
De koppeling tussen de starttaak en de sessietaak wordt verwijderd.
Stap 3)Ga nu opnieuw naar het bovenste menu en selecteer de optie 'Taak koppelen' in de werkbalk
Stap 4)koppel de sessietaak aan de opdrachttaak
Na het koppelen ziet de workflow er als volgt uit
Stap 5) Om het visuele uiterlijk van de workflow duidelijker te maken
- Klik met de rechtermuisknop op de wokruimte van de workflow
- Selecteer menu regelen
- Selecteer Horizontale optie
Als u de workflow start, wordt eerst de opdrachttaak uitgevoerd en na uitvoering ervan de sessietaak.
Variabele werkstroom
Met werkstroomvariabelen kunnen verschillende taken in een werkstroom informatie met elkaar uitwisselen en kunnen taken ook toegang krijgen tot bepaalde eigenschappen van andere taken in een werkstroom. Om bijvoorbeeld de huidige datum te krijgen, kunt u de ingebouwde variabele “sysdate” gebruiken.
Het meest voorkomende scenario is wanneer u meerdere taken in een werkstroom hebt en u in één taak toegang hebt tot de variabele van een andere taak. Als u bijvoorbeeld twee taken in een werkstroom hebt en de vereiste is om de tweede taak alleen uit te voeren wanneer de eerste taak met succes is uitgevoerd. U kunt een dergelijk scenario implementeren met behulp van een vooraf gedefinieerde variabele in de workflow.
Het scenario implementeren
We hadden een workflow “wkf_run_command” waaraan taken werden toegevoegd in de seriële modus. Nu gaan we een voorwaarde toevoegen aan de koppeling tussen sessietaak en commandotaak, zodat pas na het succes van de commandotaak de sessietaak wordt uitgevoerd.
Stap 1) Open de werkstroom “wkf_run_command”
Stap 2) Double klik op de link tussen sessie en opdrachttaak
Er verschijnt een expressievenster
Stap 3)Double klik op de statusvariabele onder het menu “cmd_create_folder”. Een variabele “$cmd_create_folder.status” zal verschijnen in het editorvenster aan de rechterkant.
Stap 4) Nu zullen we de variabele “$cmd_create_folder.status” instellen op de status geslaagd. wat betekent dat wanneer de vorige taken zijn uitgevoerd en de uitvoering succesvol was, u alleen de volgende sessietaak uitvoert.
- Wijzig de variabele in de waarde “$cmd_create_folder.status=SUCCEEDED”.
- Klik op de OK-knop
De werkstroom ziet er als volgt uit
Wanneer u deze workflow uitvoert, wordt eerst de opdrachttaak uitgevoerd en pas als deze slaagt, wordt alleen de sessietaak uitgevoerd.
Werkstroomparameter
Workflowparameters zijn die waarden die tijdens de run constant blijven. zodra hun waarde is toegekend, blijft deze hetzelfde. Parameters kunnen worden gebruikt in workflow-eigenschappen en hun waarden kunnen worden gedefinieerd in parameterbestanden. In plaats van een hardgecodeerde verbindingswaarde te gebruiken, kunt u bijvoorbeeld een parameter/variabele gebruiken in de verbindingsnaam en kan de waarde worden gedefinieerd in het parameterbestand.
Parameterbestanden zijn de bestanden waarin we de waarden van mapping-/workflowvariabelen of parameters definiëren. Hun bestanden hebben de extensie “.par”. Als algemene standaard wordt voor een workflow een parameterbestand aangemaakt.
Voordelen van parameterbestand
- Helpt bij de migratie van code van de ene omgeving naar de andere
- Maakt eenvoudig debuggen en testen mogelijk
- Waarden kunnen eenvoudig worden gewijzigd zonder dat de code wordt gewijzigd
Structuur van parameterbestand
De structuur van het parameterbestand
- [mapnaam.WF:Workflownaam]
- $Parameter_name=Parameterwaarde
Mapnaam is de naam van de repositorymap, de werkstroomnaam is de naam van de werkstroom waarvoor u het parameterbestand maakt.
We gaan een parameterbestand maken voor de databaseverbinding “guru99” die we in onze eerste sessies hebben toegewezen aan bronnen en doelen.
Hoe een parameterbestand te maken
Stap 1)Maak een nieuw leeg bestand (kladblokbestand)
Stap 2)Voer in het bestand de tekst in zoals weergegeven in de afbeelding
Stap 3) Sla het bestand op onder een map guru99 op de locatie “C:\guru99” als “wkf_run_command.par”
In het bestand hebben we een parameter “$DBConnection_SRC” gemaakt, we zullen deze toewijzen aan een verbinding in onze workflow.
Stap 4)Open de werkstroom “wkf_run_command”
- Selecteer het workflowmenu
- Selecteer de bewerkingsoptie
Stap 5)Hierdoor wordt in dit venster het bewerkingsworkflowvenster geopend
- Ga naar het tabblad Eigenschappen
- Voer de naam van het parameterbestand in als “c:\guru99\wkf_run_command.par”
- Selecteer OK-knop
Nu zijn we klaar met het definiëren van de inhoud van het parameterbestand en verwijzen we deze naar een workflow.
De volgende stap is het gebruik van de parameter in de sessie.
Stap 6) Dubbelklik in de workflow op de sessie “s_m_emp_emp_target” en
- Selecteer het tabblad Toewijzingen
- Selecteer verbindingseigenschap in het linkerpaneel
- Klik op de doelverbinding, die nu hardgecodeerd is als “guru99”
Stap 7)In dat venster verschijnt een verbindingsbrowservenster
- Selecteer de optie om de verbindingsvariabele te gebruiken
- Voer de naam van de verbindingsvariabele in als “$DBConnection_SRC”
- Selecteer OK-knop
Stap 8) In het bewerkingstaakvenster verschijnt de verbindingsvariabele voor het doel. Selecteer de knop OK in het bewerkingstaakvenster.
Nu zijn we klaar met het maken van parameters voor een verbinding en het toewijzen van de waarde aan het parameterbestand.
Wanneer we de workflow uitvoeren, kiest de workflow het parameterbestand, zoekt naar de waarde van de parameters/variabelen in het parameterbestand en neemt die waarden over.