Megosztás a következőn keresztül:


Azure Logic Apps Szabálymotor-projekt létrehozása a Visual Studio Code használatával

A következőkre vonatkozik: Azure Logic Apps (Standard)

Ha integrálni szeretné az üzleti logikát a Standard munkafolyamatokkal az Azure Logic Appsben, létrehozhat és létrehozhat egy Azure Logic Apps Szabálymotor-projektet a Visual Studio Code használatával. Az üzleti folyamatok működésének üzleti logikáját szabályok szabályozzák.

Ez az útmutató az Azure Logic Apps szabálymotor-projekt létrehozását ismerteti:

  • Az Azure Logic Apps Rules Engine-projekt létrehozásának előfeltételei és beállítása, beleértve a projekt üzleti szabályainak a Microsoft Rules Composerrel való létrehozását is.

  • Ha van ilyen, exportálja a meglévő szabályokat a Microsoft BizTalk Serverből.

  • Hozzon létre egy Standard logic Apps-projektet az Azure Logic Apps szabálymotorhoz a Visual Studio Code használatával.

Előfeltételek

  • Töltse le és telepítse a Microsoft Rules Composert, amellyel szabálykészleteket, üzleti szabályokat és vokabulárokat hozhat létre.

    A szabálymotor-projekt üzleti felépítéséhez tekintse meg a következő dokumentációt:

  • Ebben a kiadásban csak a Visual Studio Code támogatja egy Azure Logic Apps Rules Engine-projekt fejlesztési élményét. A Visual Studio Code használatának előfeltételeinek teljesítéséhez tekintse meg a Standard logikai alkalmazás munkafolyamatának létrehozása egybérlős Azure Logic Appsben a Visual Studio Code használatával című témakört.

  • Az Azure Logic Apps szabálymotorja a Visual Studio Code egyéni kódfüggvény-funkcióját használja. A funkció használatának előfeltételeinek teljesítéséhez tekintse meg .NET-keretrendszer kód létrehozása és futtatása standard munkafolyamatokból az Azure Logic Appsben című témakört.

A projekt létrehozása előtt

A szabálymotor sikeres projektjének biztosításához tekintse át és hajtsa végre az alábbi általános feladatokat és ajánlott eljárásokat:

  1. Határozza meg, hogyan illeszkednek az üzleti szabályok az üzleti folyamatokba.

  2. Tervezze meg, hogyan építhet be üzleti szabályokat az alkalmazásba.

  3. Azonosítsa az alkalmazás szabályaival képviselni kívánt üzleti logikát.

    Az "üzleti logika" kifejezés számos dologra utalhat. Az üzleti logika például a következő lehet: "Az 500 dollárnál nagyobb megrendelések vezetői jóváhagyást igényelnek".

  4. Azonosítsa a szabályelemek adatforrásait. Igény szerint definiálhat vokabulárokat, amelyek tartományspecifikus nómenklatúrák, amelyek az alapul szolgáló kötéseket jelölik.

  5. Definiálja a szókincsdefiníciókból vagy közvetlenül adatkötésekből használandó szabályokat. Ezekből a szabályokból hozzon létre egy olyan szabálykészletet, amely az üzleti logikát képviseli.

Szabályok exportálása a Microsoft BizTalk Serverből

A Microsoft BizTalk Server meglévő szabályainak újbóli felhasználásához exportálhatja őket. A db-tények azonban jelenleg nem támogatottak. Mielőtt exportálja a szabályokat, távolítsa el vagy bontsa újra őket más típusú tényekbe a Microsoft BizTalk Rules Composer használatával.

  1. A Microsoft BizTalk Serverből indítsa el az Üzleti szabályok motor központi telepítési varázslót.

  2. A Szabálymotor üzembe helyezési varázsló kezdőlapján válassza a Tovább gombot.

  3. Az Üzembe helyezési feladat lapon válassza a Házirend/szókészlet exportálása adatbázisból fájlba lehetőséget, majd válassza a Tovább lehetőséget.

  4. A Szabályzattár lapon, az SQL Server névlistájában válassza ki az SQL Servert. A kiválasztott kiszolgálólistában válassza a Konfigurációs adatbázis listában a BizTalkRuleEngineDb lehetőséget, majd válassza a Tovább lehetőséget.

  5. A Házirend/Szókincs exportálása lapon válassza ki a kívánt szabályzatot a Szabályzatok listájából. A definíciófájl megkereséséhez és kiválasztásához válassza a Tallózás lehetőséget.

  6. Ha készen áll, válassza a Tovább gombot.

  7. Erősítse meg a kiszolgáló, az adatbázis és a szabályzat vagy a szókincs adatait, és válassza a Tovább gombot.

  8. Az importálás vagy exportálás befejezése után válassza a Tovább gombot.

  9. Tekintse át az importálás vagy exportálás befejezési állapotát, és válassza a Befejezés lehetőséget.

Azure Logic Apps Rules Engine-projekt létrehozása

  1. A Visual Studio Code tevékenységsávján válassza az Azure ikont. (Billentyűzet: Shift+Alt+A)

  2. A megnyíló Azure-ablakban, a Munkaterület szakasz eszköztárán, az Azure Logic Apps menüben válassza az Új logikaialkalmazás-munkaterület létrehozása lehetőséget.

    Képernyőkép a Visual Studio Code-ról, az Azure-ablakról, a Munkaterület szakasz eszköztárról és az új logikai alkalmazás munkaterületének létrehozásához kiválasztott lehetőségről.

  3. A Mappa kiválasztása párbeszédpanelen keresse meg és válassza ki a projekthez létrehozott helyi mappát.

  4. Amikor megjelenik az Új logikaialkalmazás-munkaterület létrehozása párbeszédpanel, adja meg a munkaterület nevét:

    Képernyőkép a Visual Studio Code-ról a munkaterület nevének megadására vonatkozó kéréssel.

    Ez a példa a MyLogicAppRulesWorkspace használatával folytatódik.

  5. Amikor megjelenik a Select a project template for your logic app workspace prompt box, válassza a Logikai alkalmazás szabálymotor-projekttel lehetőséget.

    Képernyőkép a Visual Studio Code-ról, amelyen a logikai alkalmazás munkaterületéhez tartozó projektsablon kiválasztásának kérése látható.

  6. Kövesse a következő utasításokat a következő példaértékek megadásához:

    Elem Példaérték
    Függvényprojekt függvényneve RulesFunction
    Függvényprojekt névterének neve Contoso
    Logikai alkalmazás: Logikai alkalmazás
    Munkafolyamat-sablon:
    - Állapotalapú munkafolyamat
    - Állapot nélküli munkafolyamat
    Állapotalapú munkafolyamat
    Munkafolyamat neve MyRulesWorkflow
  7. Válassza a Megnyitás az aktuális ablakban lehetőséget.

    A lépés befejezése után a Visual Studio Code létrehozza a munkaterületet, amely alapértelmezés szerint tartalmaz egy függvényprojektet és egy logikaialkalmazás-szabálymotor-projektet, például:

    Képernyőkép a Visual Studio Code-ról a létrehozott munkaterülettel.

    Csomópont Leírás
    < munkaterület neve> A függvényprojektet és a logikai alkalmazás munkafolyamat-projektét is tartalmazza.
    Függvény A függvényprojekt összetevőit tartalmazza. A függvénynév.cs fájl például <
    Logikai alkalmazás A logikai alkalmazás szabálymotor-projektjének összetevőit tartalmazza, beleértve a munkafolyamatot is.

Írja meg a szabálymotor kódját

  1. A munkaterületen bontsa ki a Functions csomópontot, ha még nem bontotta ki.

  2. Nyissa meg a <>.cs fájlt.

    Alapértelmezés szerint ez a fájl mintakódot tartalmaz, amely a következő kódelemeket tartalmazza a korábban megadott példaértékekkel együtt, ha szükséges:

    • Névtér neve
    • Osztály neve
    • Függvénynév
    • Függvényparaméterek
    • Visszatérési típus
    • Összetett típus

    Az alábbi példa a következő nevű függvény RulesFunctionteljes mintakódját mutatja be:

    //------------------------------------------------------------
    // Copyright (c) Microsoft Corporation. All rights reserved.
    //------------------------------------------------------------
    
    namespace Contoso
    {
         using System;
         using System.Collections.Generic;
         using System.Threading.Tasks;
         using Microsoft.Azure.Functions.Extensions.Workflows;
         using Microsoft.Azure.WebJobs;
         using Microsoft.Azure.Workflows.RuleEngine;
         using Microsoft.Azure.Workflows.RuleEngine.Common;
         using Microsoft.Extensions.Logging;
         using System.Xml;
         using System.Text;
    
         /// <summary>
         /// Represents the RulesFunction flow invoked function.
         /// </summary>
         public class RulesFunction
         {
             private readonly ILogger<RulesFunction> logger;
    
             private FileStoreRuleExplorer ruleExplorer;
    
             public RulesFunction(ILoggerFactory loggerFactory)
             {
                 logger = loggerFactory.CreateLogger<RulesFunction>();
                 this.ruleExplorer = new FileStoreRuleExplorer(loggerFactory); 
             }
    
             /// <summary>
             /// Executes the logic app workflow.
             /// </summary>
             /// <param name="ruleSetName">The rule set name.</param>
             /// <param name="documentType">document type of input xml.</param>
             /// <param name="inputXml">input xml type fact</param>
             /// <param name="purchaseAmount">purchase amount, value used to create .NET fact </param>
             /// <param name="zipCode">zip code value used to create .NET fact .</param>
             [FunctionName("RulesFunction")]
             public Task<RuleExecutionResult> RunRules(
                 [WorkflowActionTrigger] string ruleSetName, 
                 string documentType, 
                 string inputXml, 
                 int purchaseAmount, 
                 string zipCode)
             {
             /***** Summary of steps below *****
                  * 1. Get the rule set to Execute 
                  * 2. Check if the rule set was retrieved successfully
                  * 3. create the rule engine object
                  * 4. Create TypedXmlDocument facts for all xml document facts
                  * 5. Initialize .NET facts
                  * 6. Execute rule engine
                  * 7. Retrieve relevant updates facts and send them back
             */
    
                 try
                 {
                     var ruleSet = this.ruleExplorer.GetRuleSet(ruleSetName);
    
                     // Check if ruleset exists
                     if(ruleSet == null)
                     {
                         // Log an error in finding the rule set
                         this.logger.LogCritical($"RuleSet instance for '{ruleSetName}' was not found(null)");
                         throw new Exception($"RuleSet instance for '{ruleSetName}' was not found.");
                     }             
    
                     // Create rule engine instance
                     var ruleEngine = new RuleEngine(ruleSet: ruleSet);
    
                     // Create a typedXml Fact(s) from input xml(s)
                     XmlDocument doc = new XmlDocument();
                     doc.LoadXml(inputXml);
                     var typedXmlDocument = new TypedXmlDocument(documentType, doc);
    
                     // Initialize .NET facts
                     var currentPurchase = new ContosoNamespace.ContosoPurchase(purchaseAmount, zipCode);
    
                     // Provide facts to rule engine and run it
                     ruleEngine.Execute(new object[] { typedXmlDocument, currentPurchase });
    
                     // Send the relevant results(facts) back
                     var updatedDoc = typedXmlDocument.Document as XmlDocument;
                     var ruleExectionOutput = new RuleExecutionResult()
                     {
                         XmlDoc = updatedDoc.OuterXml,
                         PurchaseAmountPostTax = currentPurchase.PurchaseAmount + currentPurchase.GetSalesTax()
                     };
    
                     return Task.FromResult(ruleExectionOutput);
                 }
                 catch(RuleEngineException ruleEngineException)
                 {
                     // Log any rule engine exceptions
                     this.logger.LogCritical(ruleEngineException.ToString());
                     throw;
                 }
                 catch(XmlException xmlException)
                 {
                     // Log any xml exceptions
                     this.logger.LogCritical("Encountered exception while handling xml. " + xmlException.ToString());
                     throw;
                 }
                 catch(Exception ex)
                 {
                     // Log any other exceptions
                     this.logger.LogCritical(ex.ToString());
                     throw;
                 }
             }
    
             /// <summary>
             /// Results of the rule execution
             /// </summary>
             public class RuleExecutionResult
             {
                 /// <summary>
                 /// rules updated xml document
                 /// </summary>
                 public string XmlDoc { get; set;}
    
                 /// <summary>
                 /// Purchase amount post tax
                 /// </summary>
                 public int PurchaseAmountPostTax { get; set;}
             }
         }
    }
    

    A függvénydefiníció RulesFunction tartalmaz egy alapértelmezett RunRules metódust, amelyet az első lépésekhez használhat. Ez a mintametódus RunRules bemutatja, hogyan adhatja át a paramétereket az Azure Logic Apps szabálymotorjának. Ebben a példában a metódus átadja a szabálykészlet nevét, a bemeneti dokumentum típusát, egy XML-tényt és más értékeket a további feldolgozáshoz.

    A <függvénynév>.cs fájl tartalmazza a ILogger felületet is, amely támogatja az Application Insights-erőforrásokba történő naplózást. Nyomkövetési információkat küldhet az Application Insightsnak, és ezeket az információkat a munkafolyamatokból származó nyomkövetési információk mellett tárolhatja. A <függvénynév>.cs fájl tartalmazza a FileStoreRuleExplorer szabálykészlethez hozzáférő objektumot is. Mint látható, a konstruktor a telemetriai adatoknak az FileStoreRuleExplorerloggerFactory Application Insightsba való küldéséhez is használható:

    private readonly ILogger<RulesFunction> logger;
    
    private FileStoreRuleExplorer ruleExplorer;
    
    public RulesFunction(ILoggerFactory loggerFactory)
         {
             logger = loggerFactory.CreateLogger<RulesFunction>();
             this.ruleExplorer = new FileStoreRuleExplorer(loggerFactory); 
         }
    
        <...>
    
    

    Az Azure Logic Apps szabálymotorja az alábbi lépésekben leírtak szerint működik:

    1. A motor az FileStoreRuleExplorer objektummal éri el a szabálykészletet. A szabálykészletfájl a Standard logikai alkalmazás Szabályok könyvtárában van tárolva.

      Ebben a példában a szabálykészletfájl neve SampleRuleSet.xmla Microsoft Rules Composer használatával jött létre, vagy a Microsoft BizTalk Server használatával lett exportálva.

    var ruleSet = this.ruleExplorer.GetRuleSet(ruleSetName);
    
    // Check if ruleset exists
    if(ruleSet == null)
    {
    // Log an error in finding the rule set
      this.logger.LogCritical($"RuleSet instance for '{ruleSetName}' was not found(null)");
      throw new Exception($"RuleSet instance for '{ruleSetName}' was not found.");
    }             
    

    Fontos

    A szabálykészletek hivatkoznak a tényeikre. A Microsoft Rules Composer a tények összeállítását keresi a szabálykészlet szerkesztésre való ellenőrzéséhez. Ha olyan szabálykészleteket szeretne megnyitni, mint például SampleRuleSet.xml a Microsoft Rules Composerben, a megfelelő .NET-tényösszesítésekkel kell őket elhelyeznie. Ellenkező esetben kivételt kap.

    1. A motor az ruleSet objektum használatával hozza létre az objektum egy példányát RuleEngine .

    2. Az RuleEngine objektum a metódus használatával fogadja a Execute szabály tényeit.

      Ebben a példában a Execute metódus két tényt kap: egy xml-t és typedXmlDocument egy .NET-t.currentPurchase

      A motor futtatása után a tények értékei felülíródnak a motor végrehajtásából eredő értékekkel:

    // Create rule engine instance
    var ruleEngine = new RuleEngine(ruleSet: ruleSet);
    // Create a typedXml Fact(s) from input xml(s)
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(inputXml);
    var typedXmlDocument = new TypedXmlDocument(documentType, doc);
    // Initialize .NET facts
    var currentPurchase = new ContosoNamespace.ContosoPurchase(purchaseAmount, zipCode);
    // Provide facts to rule engine and run it
    ruleEngine.Execute(new object[] { typedXmlDocument, currentPurchase });
    // Send the relevant results(facts) back
       var updatedDoc = typedXmlDocument.Document as XmlDocument;
    
    1. A motor az RuleExecutionResult egyéni osztály használatával adja vissza az értékeket a RunRules metódusnak:
    var ruleExectionOutput = new RuleExecutionResult()
                 {
                     XmlDoc = updatedDoc.OuterXml,
                     PurchaseAmountPostTax = currentPurchase.PurchaseAmount + currentPurchase.GetSalesTax()
                 };
    
                 return Task.FromResult(ruleExectionOutput);
    
    1. Cserélje le a mintafüggvénykódot a sajátra, és szerkessze a saját forgatókönyvek alapértelmezett RunRules metódusát.

      Ez a példa továbbra is módosítás nélkül használja a mintakódot.

A kód fordítása és összeállítása

Miután befejezte a kód írását, lefordítva győződjön meg arról, hogy nincsenek buildelési hibák. A függvényprojekt automatikusan tartalmazza a buildelési feladatokat, amelyek lefordítják, majd hozzáadják az egyéni kódtárakat, beleértve a .NET-tényösszesítéseket is, a logikai alkalmazásprojekt lib\egyéni mappájába, ahol a munkafolyamatok egyéni függvényeket keresnek a futtatáshoz. Ezek a feladatok a szerelvényeket a lib\custom\net472 mappába helyezik.

  1. A Visual Studio Code Terminál menüjében válassza az Új terminál lehetőséget.

  2. A megjelenő munkakönyvtár-listából válassza a Functions elemet az új terminál aktuális munkakönyvtáraként.

    Képernyőkép a Visual Studio Code-ról, az aktuális munkakönyvtár kéréséről és a kijelölt Functions-címtárról.

    A Visual Studio Code egy parancssort tartalmazó terminálablakot nyit meg.

  3. A terminálablak parancssorában adja meg a dotnet restore .\RulesFunction.csproj parancsot.

    Képernyőkép a Visual Studio Code-ról, a terminálablakról és a dotnet-visszaállítási parancs befejezéséről.

  4. Miután a parancssor ismét megjelent, adja meg a dotnet build .\RulesFunction.csproj parancsot.

    Ha a build sikeres, a terminálablak azt jelenti, hogy a build sikeres volt.

  5. Győződjön meg arról, hogy a következő elemek szerepelnek a logikai alkalmazás projektjében:

    • A munkaterületen bontsa ki a következő mappákat: >net472. Ellenőrizze, hogy a net472 nevű almappá tartalmazza-e a kód futtatásához szükséges több szerelvényt, beleértve a függvénynév<

    • A munkaterületen bontsa ki a következő mappákat: LogicApp>lib\custom><function-name.> Győződjön meg arról, hogy a függvénynév< almappában található egy > fájl, amely tartalmazza az Ön által írt függvénykód metaadatait. A munkafolyamat-tervező ezzel a fájllal határozza meg a kód meghívásakor szükséges bemeneteket és kimeneteket.

    Az alábbi példa a logikai alkalmazás projektjében létrehozott mintaszerelvényeket és más fájlokat mutatja be:

    Képernyőkép a logikaialkalmazás-munkaterületről függvényprojekttel és logikai alkalmazásprojekttel, most pedig a létrehozott szerelvényekkel és más szükséges fájlokkal.

Szabályok meghívása munkafolyamatból

Miután ellenőrizte, hogy a kód lefordítva van-e, és hogy a logikai alkalmazás szabálymotor-projektje rendelkezik-e a kód futtatásához szükséges fájlokkal, nyissa meg a logikai alkalmazás projektjéhez tartozó alapértelmezett munkafolyamatot.

  1. A munkaterületen a LogicApp alatt bontsa ki a< csomópontot, nyissa meg a workflow.json>, és válassza a Tervező megnyitása lehetőséget.

    A megnyíló munkafolyamat-tervezőben a logikai alkalmazás projektjéhez tartozó alapértelmezett munkafolyamat a következő eseményindítóval és műveletekkel jelenik meg:

    • A HTTP-kérés fogadásakor elnevezett beépített kérelem-eseményindító.
    • A logikai alkalmazás Helyi szabályok meghívása függvény meghívása nevű beépített művelete.
    • A Válasz nevű beépített válaszművelet, amellyel csak a Kérés eseményindító használatakor válaszolhat a hívónak.
  2. Válassza ki a helyi szabályok meghívása függvény meghívása nevű műveletet ebben a logikai alkalmazásban.

    A művelet információs panelje a jobb oldalon nyílik meg.

    Képernyőkép a Visual Studio Code-ról, a munkafolyamat-tervezőről és az alapértelmezett munkafolyamatról eseményindítóval és műveletekkel.

  3. Ellenőrizze és ellenőrizze, hogy a függvénynév paraméter értéke a futtatni kívánt szabályfüggvényre van-e beállítva. Tekintse át vagy módosítsa a függvény által használt egyéb paraméterértékeket.

A kód és a munkafolyamat hibakeresése

  1. Ismételje meg a következő lépéseket az Azurite Storage Emulator háromszori elindításához: egyenként a következő Azure Storage-szolgáltatásokhoz:

    • Azure Blob Service
    • Az Azure üzenetsor-kezelési Queue szolgáltatása
    • Azure Table Service
    1. A Visual Studio Code View menüjében válassza a Parancskatalógus lehetőséget.

    2. A megjelenő parancssorban keresse meg és válassza az Azurite: Blob Service indítása lehetőséget.

    3. A megjelenő munkakönyvtár-listából válassza a LogicApp lehetőséget.

    4. Ismételje meg az alábbi lépéseket az Azurite: Queue Service indítása és az Azurite: Táblaszolgáltatás indítása.

    Sikeresnek bizonyul, ha a képernyő alján található Visual Studio Code tálcán látható a három futó tárolási szolgáltatás, például:

    Képernyőkép a Visual Studio Code tálcáról, amelyen az Azure Blob Service, az Azure Queue Service és az Azure Table Service fut.

  2. A Visual Studio Code tevékenységsávján válassza a Futtatás és hibakeresés lehetőséget. (Billentyűzet: Ctrl+Shift+D)

    Képernyőkép a Visual Studio Code tevékenységsávról, amelyen a futtatás és a hibakeresés van kiválasztva.

  3. A Futtatás és hibakeresés listában válassza a Csatolás a logikai alkalmazáshoz (LogicApp) lehetőséget, ha még nincs kijelölve, majd válassza a Lejátszás (zöld nyíl) lehetőséget.

    Képernyőkép a Futtatás és hibakeresés listáról, amelyen a Csatolás a logikai alkalmazáshoz elem van kiválasztva, és a Lejátszás gomb ki van jelölve.

    Megnyílik a terminálablak , és megjeleníti az elindított hibakeresési folyamatot. Ekkor megjelenik a Hibakeresési konzol ablak, és megjeleníti a hibakeresési állapotokat. A Visual Studio Code alján a tevékenységsáv narancssárgára változik, ami azt jelzi, hogy a .NET-hibakereső be van töltve.

  4. Töréspontok beállításához a függvénydefinícióban (<.cs) vagy munkafolyamat-definícióban (>) keresse meg azt a sorszámot, ahol a töréspontot használni szeretné, és válassza ki a bal oldalon lévő oszlopot, például:

    Képernyőkép a Visual Studio Code-ról és a nyitott függvénykódfájlról egy kódsor töréspontkészletével.

  5. Ha manuálisan szeretné futtatni a Kérelem eseményindítót a munkafolyamatban, nyissa meg a munkafolyamat Áttekintés lapját.

    1. A logikai alkalmazás projektjében nyissa meg a workflow.json fájl helyi menüjét, és válassza az Áttekintés lehetőséget.

      A munkafolyamat Áttekintés lapján a Futtatás eseményindító gomb érhető el, ha manuálisan szeretné elindítani a munkafolyamatot. A Munkafolyamat tulajdonságai területen a visszahívási URL-érték egy hívható végpont URL-címe, amelyet a munkafolyamat Kérés eseményindítója hoz létre. Erre az URL-címre küldhet kéréseket a munkafolyamat más alkalmazásokból való aktiválásához, beleértve az egyéb logikai alkalmazások munkafolyamatait is.

      Képernyőkép a Visual Studio Code-ról és a munkafolyamat áttekintési oldalának megnyitásáról.

  6. Az Áttekintés lap eszköztárán válassza a Futtatás eseményindítót.

    A munkafolyamat futtatása után a hibakereső aktiválja az első töréspontot.

  7. A Futtatás menüben vagy a hibakereső eszköztáron válasszon egy hibakeresési műveletet.

    A munkafolyamat futtatása után az Áttekintés lapon látható a futtatás befejeződött és a futtatás alapvető részletei.

  8. A munkafolyamat futtatásával kapcsolatos további információk áttekintéséhez válassza ki a befejezett futtatás lehetőséget. Vagy az Időtartam oszlop melletti listából válassza a Futtatás megjelenítése lehetőséget.

    Képernyőkép a Visual Studio Code-ról és a munkafolyamat-futtatás befejezéséről.

  9. Ha a logikai alkalmazásokat a Szabálymotor projekttel szeretné üzembe helyezni az Azure Logic Appsben, kövesse a Felkészülés az üzembe helyezésre című témakörben leírt lépéseket.