Kaarten maken om gegevens in werkstromen van logische apps te transformeren met Visual Studio Code
Van toepassing op: Azure Logic Apps (Standard)
Wanneer u berichten uitwisselt die verschillende XML- of JSON-indelingen gebruiken in een werkstroom van een logische app, moet u opgeven hoe u de gegevens van de bronindeling transformeert of converteert naar de doelindeling, bijvoorbeeld tussen XML-documenten of tussen JSON-documenten. Deze taak is belangrijk, met name wanneer u hiaten hebt tussen de gegevensstructuren in de bron- en doelschema's. In een schema worden de gegevenselementen, kenmerken en gegevenstypen in een XML- of JSON-document beschreven.
Als u transformaties tussen gegevensstructuren wilt definiëren en eventuele hiaten wilt overbruggen, kunt u een kaart (XSLT-bestand) maken waarmee de relaties tussen de gegevenselementen in de bron- en doelschema's worden opgegeven. U kunt een kaart visueel maken of bewerken met behulp van Visual Studio Code met de Azure Logic Apps-extensie (Standard) in de context van een standaard-logische app-project. Het hulpprogramma Data Mapper biedt een uniforme ervaring voor het toewijzen en transformeren met behulp van bewegingen voor slepen en neerzetten, vooraf gedefinieerde functies voor het bouwen van expressies en een manier om kaarten handmatig te testen voordat u ze in uw werkstromen gebruikt.
Nadat u de kaart hebt gemaakt, kunt u die kaart rechtstreeks aanroepen vanuit een werkstroom in uw logische app-project of vanuit een standaardwerkstroom voor logische apps in Azure Portal. Voor deze taak kunt u de actie Gegevenstoewijzingsbewerkingen met de naam Transformeren gebruiken met behulp van Data Mapper XSLT in uw werkstroom.
Deze handleiding laat zien hoe u een lege gegevenstoewijzing maakt, uw bron- en doelschema's kiest, verschillende soorten toewijzingen maakt tussen schema-elementen, uw kaart opslaat en test en vervolgens de kaart aanroept vanuit een werkstroom in uw logische app-project.
Beperkingen en bekende problemen
Data Mapper werkt momenteel alleen in Visual Studio Code die wordt uitgevoerd op Windows-besturingssystemen.
Data Mapper is momenteel alleen beschikbaar in Visual Studio Code, niet in De Azure-portal, en alleen vanuit Standaard logische app-projecten, niet met behulp van logische app-projecten voor verbruik.
Data Mapper biedt momenteel geen ondersteuning voor schema's die gebruikmaken van de bestandsindeling met door komma's gescheiden waarden (.csv).
Het codedeelvenster in Data Mapper is momenteel alleen-lezen.
De indeling en itemposities in Data Mapper zijn momenteel automatisch en alleen-lezen.
De functie Filter verwerkt correct numerieke voorwaarden die tussen dubbele aanhalingstekens staan, bijvoorbeeld ">=10". Deze functie gedraagt zich momenteel echter niet consistent voor tekenreeksvergelijkingen, zoals een controle of een itemnaam '= 'Pen' is.
Wanneer u een toewijzing maakt tussen de bovenliggende matrixelementen in de bron- en doelschema's, voegt de mapper automatisch een lus toe om de elementen van het matrixitem te herhalen. U moet echter nog steeds expliciet toewijzingen maken tussen de elementen van het bron- en doelmatrixitem.
Als u kaarten wilt aanroepen die zijn gemaakt met Data Mapper, kunt u alleen de actie Data Mapper Operations met de naam Transformeren gebruiken met behulp van Data Mapper XSLT. Gebruik voor toewijzingen die zijn gemaakt door een ander hulpprogramma de actie XML-bewerkingen met de naam XML transformeren.
Als u de kaarten wilt gebruiken die u met Data Mapper met werkstromen in Azure Portal maakt, moet u deze rechtstreeks toevoegen aan uw resource van de logische standaard-app.
Aangepaste functies worden momenteel niet ondersteund in deze release.
Vereisten
Visual Studio Code en de Azure Logic Apps-extensie (Standard) voor het maken van standaardwerkstromen voor logische apps.
Notitie
De voorheen afzonderlijke Data Mapper-extensie wordt nu samengevoegd met de Azure Logic Apps-extensie (Standard). Om conflicten te voorkomen, wordt elke bestaande versie van de Data Mapper-extensie verwijderd wanneer u de Azure Logic Apps-extensie (Standard) installeert of bijwerkt. Start Visual Studio Code opnieuw nadat de extensie is geïnstalleerd of bijgewerkt.
De bron- en doelschemabestanden die de gegevenstypen beschrijven die moeten worden getransformeerd. Deze bestanden kunnen de volgende indelingen hebben:
- Een XML-schemadefinitiebestand met de bestandsextensie .xsd
- Een JavaScript Object Notation-bestand met de bestandsextensie .json
Een standaard logische app-project met een stateful of stateless werkstroom met minimaal een trigger. Als u geen project hebt, volgt u deze stappen in Visual Studio Code:
Maak verbinding met uw Azure-account als u dat nog niet hebt gedaan.
Maak een lokale map, een lokaal standaard logische app-project en een stateful of stateless werkstroom. Selecteer Tijdens het maken van de werkstroom de optie Openen in het huidige venster.
Voorbeeldinvoergegevens als u de kaart wilt testen en controleert of de transformatie werkt zoals verwacht.
Als u de functie XSLT uitvoeren wilt gebruiken, moeten uw XSLT-fragmenten bestaan in bestanden die de bestandsextensie .xml of .xslt gebruiken. U moet uw XSLT-fragmenten in de map InlineXslt in de lokale projectmapstructuur plaatsen: Artifacts>DataMapper>Extensions>InlineXslt. Als deze mapstructuur niet bestaat, maakt u de ontbrekende mappen.
Een gegevenstoewijzing maken
Open in Visual Studio Code de map voor uw Standaard logische app-project.
Selecteer in het linkermenu van Visual Studio Code het Azure-pictogram .
Selecteer in het Azure-venster onder Data Mapper de optie Gegevenstoewijzing maken.
Op de titelbalk van Visual Studio Code wordt een promptvak geopend, zodat u een naam voor uw kaart kunt opgeven.
Voer in het promptvak een naam voor een gegevenstoewijzing in.
Voor deze handleiding gebruiken deze stappen de naam Example-data-map.
Met Data Mapper wordt een lege gegevenstoewijzing gemaakt en geopend.
Kies uw bron- en doelschema's door de volgende stappen uit te voeren:
Selecteer in het deelvenster Bron de optie Nieuwe>bladeren toevoegen om uw bronschema te zoeken en te uploaden.
Nadat u het bronschema hebt toegevoegd, wordt het deelvenster Bron gevuld met het XML-element 'knooppunten' voor de gegevenstypen in het bronschema, bijvoorbeeld:
Selecteer in het doelvenster Nieuwe>bladeren toevoegen om uw doelschema te zoeken en te uploaden.
Nadat u het doelschema hebt toegevoegd, wordt het doelvenster gevuld met het XML-element 'knooppunten' voor de gegevenstypen in het doelschema, bijvoorbeeld:
Tip
Als u problemen ondervindt met het laden van uw schema's, kunt u uw bron- en doelschemabestanden lokaal toevoegen aan de map Artefactenschema's / van uw logische app-project. Als u in dit scenario uw bron- en doelschema in Data Mapper wilt opgeven, opent u in de deelvensters Bron en Doel de bestaande lijst selecteren in plaats van nieuwe toe te voegen en selecteert u uw schema.
Schemagegevenstypen
In de volgende tabel worden de mogelijke gegevenstypen beschreven die in een schema kunnen worden weergegeven:
Symbool | Type | Meer info |
---|---|---|
![]() |
Complex (matrix) | Bevat items of herhalende itemknooppunten. Een matrixelement geeft ook het volgende verbindingspunt weer: ![]() |
![]() |
Bool | Alleen waar of onwaar |
![]() |
Complex | Een XML-object met onderliggende eigenschappen, vergelijkbaar met het JSON-type Object |
![]() |
Datum en tijd | |
![]() |
Decimal | |
![]() |
Geheel getal | Alleen gehele getallen |
![]() |
String |
Een directe toewijzing tussen elementen maken
Als u een eenvoudige transformatie wilt opgeven tussen elementen met hetzelfde type in de bron- en doelschema's, voert u de volgende stappen uit:
Als u wilt zien wat er in code gebeurt terwijl u de toewijzing maakt, selecteert u code weergeven in de rechterbovenhoek van de mapper.
Zoek op het mapper-oppervlak in het deelvenster Bron het bronelement dat u wilt toewijzen.
Bovenliggende elementen worden standaard automatisch uitgevouwen om hun onderliggende elementen weer te geven.
In dit voorbeeld wordt de toewijzing gestart vanuit het bronelement, maar u kunt ervoor kiezen om de toewijzing vanuit het doelelement te starten.
Beweeg de muiswijzer over de cirkel naast de naam van het bronelement totdat de aanwijzer verandert in een plusteken (+).
In dit voorbeeld wordt een toewijzing gemaakt die begint met het bronelement Werknemer-id .
Sleep een lijn en teken deze zodat het bronelement verbinding maakt met de cirkel voor het doelelement in het deelvenster Doel .
In dit voorbeeld wordt de toewijzing voltooid met het id-doelelement , dat hetzelfde gegevenstype heeft als het bronelement.
U hebt nu een directe toewijzing gemaakt tussen beide elementen met dezelfde gegevenstypen.
In het deelvenster Code ziet u de toewijzingsrelatie die u hebt gemaakt:
Tip
Als u wilt controleren of er problemen zijn met uw toewijzingen, selecteert u Problemen weergeven. Er wordt bijvoorbeeld een waarschuwing weergegeven in de lijst Problemen op het tabblad Waarschuwingen als u een toewijzing maakt tussen elementen met niet-overeenkomende gegevenstypen:
Een complexe toewijzing tussen elementen maken
Als u een complexere transformatie tussen elementen in de bron- en doelschema's wilt opgeven, bijvoorbeeld elementen die u wilt combineren of verschillende gegevenstypen wilt hebben, kunt u een of meer functies gebruiken die de gewenste transformatie in uw toewijzing uitvoeren.
Op het kaartperoppervlak is het functielabel kleurgecodeerd op basis van de functiegroep. Naast de functienaam wordt het symbool van de functie weergegeven, bijvoorbeeld:
De volgende tabel bevat de functiegroepen en enkele voorbeeldfuncties die u kunt gebruiken. Zie de functions-lijst in Data Mapper voor de volledige lijst.
Groep | Voorbeeldfuncties |
---|---|
Verzameling | Average, Count, Direct Access, Distinct values, Filter, Index, Join, Maximum, Minimum, Reverse, Sort, Subsequence, Sum |
Conversie | Tot heden, naar geheel getal, naar getal, naar tekenreeks |
Datum en tijd | Dagen, huidige datum, huidige tijd, is gelijk aan datum toevoegen |
Logische vergelijking | Gelijk aan, bestaat, groter, groter of gelijk, als, als, als anders, is Nil, is null, is getal, is tekenreeks, kleiner, kleiner of gelijk, logisch EN, logisch NIET, logisch OF, niet gelijk aan |
Wiskunde | Absoluut, Optellend, Boogtangens, Plafond, Cosinus, Delen, Exponentiële, Exponentiële waarde (grondtal 10), Vloer, Geheel delen, Logboek, Logboek (grondtal 10), Module, Vermenigvuldigen, Macht, Rond, Sinus, Vierkantswortel, Aftrekken, Tangens |
Tekenreeks | Codepunten naar tekenreeks, Concat, Contains, Ends with, Length, Lowercase, Name, Regular Expression Matches, Regular Expression Replace, Replace, Starts with, String to Codepoints, Substring, Substring after, Substring before, Trim, Trim, Trim Left, Trim Right, Uppercase |
Utility | Kopiëren, Fout, XPath uitvoeren, Datum/tijd opmaken, Nummer opmaken, XSLT uitvoeren |
Een functie zonder toewijzing toevoegen
In het voorbeeld in deze sectie worden gegevens in het bronelement getransformeerd van Tekenreeks naar Datum/tijd. Dit is het type doelelement. Het voorbeeld begint zonder eerst een toewijzing te maken en gebruikt de functie To Date , die één invoer accepteert.
Als u wilt zien wat er in code gebeurt terwijl u de toewijzing maakt, selecteert u code weergeven in de rechterbovenhoek van de mapper.
Zoek en selecteer in de lijst Functies de functie die u wilt gebruiken, waarmee de functie wordt toegevoegd aan het mapperoppervlak. Als de lijst Functies is samengevouwen, selecteert u in de linkerbovenhoek van de mapper het functiepictogram (
).
In dit voorbeeld wordt de functie Tot heden geselecteerd, die zich in de groep Conversiefunctie bevindt.
Notitie
Als er geen toewijzing op de kaart bestaat of als er een toewijzing is geselecteerd wanneer u een functie aan de kaart toevoegt, wordt de functie weergegeven, maar is deze niet verbonden met elementen of andere functies, bijvoorbeeld:
Verbind de functie met de bron- en doelelementen.
Sleep en teken een lijn tussen het bronelement en de cirkel aan de linkerrand van de functie. U kunt beginnen met het bronelement of de functie.
Sleep en teken een lijn tussen de rechterrand van de functie en het doelelement. U kunt beginnen vanaf het doelelement of de functie.
In het deelvenster Code ziet u de toewijzingsrelatie die u hebt gemaakt:
Selecteer op het kaartoppervlak de functieshape om de functiedetails weer te geven.
Bevestig of bewerk de invoer die u wilt gebruiken op het tabblad Invoer .
Voor sommige scenario's moet een transformatie worden gedefinieerd buiten het directe paar bron- en doelelementen. Als u bijvoorbeeld een transformatie tussen een paar matrices en hun items wilt definiëren, moet u een lus tussen de matrices maken. Als u een taak wilt uitvoeren wanneer de waarde van een element aan een voorwaarde voldoet, moet u een voorwaarde tussen elementen toevoegen.
Een functie toevoegen die gebruikmaakt van meerdere invoergegevens
In het voorbeeld in deze sectie worden meerdere bronelementen samengevoegd als invoer en wordt één uitvoer toegewezen aan het doelelement. In het voorbeeld wordt de functie Concat gebruikt, die meerdere invoer accepteert.
Als u wilt zien wat er in code gebeurt terwijl u de toewijzing maakt, selecteert u code weergeven in de rechterbovenhoek van de mapper.
Zoek en selecteer in de lijst Functies de functie die u wilt gebruiken, waarmee de functie wordt toegevoegd aan het mapperoppervlak.
Als de lijst Functies is samengevouwen, selecteert u in de linkerbovenhoek van de mapper het functiepictogram (
).
In dit voorbeeld selecteert u de functie Concat , die zich in de groep Tekenreeksfunctie bevindt.
Notitie
Als er geen toewijzing op de kaart bestaat of als er een toewijzing is geselecteerd wanneer u een functie aan de kaart toevoegt, wordt de functie weergegeven, maar is deze niet verbonden met elementen of andere functies, bijvoorbeeld:
Selecteer op het kaartoppervlak de functieshape om de functiedetails weer te geven.
Selecteer op het tabblad Invoer de bronschema-elementen die u als invoer wilt gebruiken.
In dit voorbeeld worden de bronschema-elementen Voornaam en Achternaam geselecteerd als de functie-invoer. De mapper voegt automatisch de respectieve toewijzingen toe tussen de bronelementen en de functie.
Als u de toewijzing wilt voltooien, sleept en tekent u een lijn tussen de rechterrand van de functie en het doelelement. U kunt beginnen met het doelelement of de functie.
In het deelvenster Code ziet u de toewijzingsrelaties die u hebt gemaakt:
Door matrices herhalen
Als uw bron- en doelschema's matrices bevatten, kunt u een lus maken om de items van de matrices te herhalen. In het voorbeeld in deze sectie wordt een lus gemaakt door een werknemersbronmatrix en een person-doelmatrix, samen met toewijzingen tussen de items van de matrices.
Als u wilt zien wat er in code gebeurt terwijl u de toewijzing maakt, selecteert u code weergeven in de rechterbovenhoek van de mapper.
Zoek op het kaartoppervlak in de deelvensters Bron en Doel de matrices die u wilt toewijzen.
Sleep een lijn tussen het paar matrixitems en teken deze. U kunt beginnen vanuit het deelvenster Bron of het doelvenster .
Het volgende voorbeeld begint vanuit het deelvenster Bron en wijst de naamitems in de bronmatrix Werknemer en de doelmatrix Persoon toe:
Nadat u klaar bent met het toewijzen van het eerste paar matrixitems, voegt de mapper automatisch een lus toe tussen de bovenliggende elementen van de bron- en doelmatrix, met het volgende verbindingspunttype:
In het volgende voorbeeld wordt de automatisch toegevoegde lus tussen de bovenliggende matrices werknemer en doelpersoon gemarkeerd:
In het deelvenster Code ziet u de toewijzing en lus die u hebt gemaakt:
Ga door met het toewijzen van de andere matrixelementen, bijvoorbeeld:
Een voorwaarde evalueren om een taak uit te voeren
Stel dat u een toewijzing wilt toevoegen die een voorwaarde evalueert en een taak uitvoert wanneer aan de voorwaarde wordt voldaan. Voor dit scenario kunt u meerdere functies gebruiken.
In het volgende voorbeeld, wanneer de aankoophoeveelheid groter is dan 20 items, berekent de toewijzing een korting die moet worden toegepast met behulp van de volgende functies:
Functiegroep | Functie | Doel in dit voorbeeld |
---|---|---|
Vergelijking | Groter | Controleer of de aankoophoeveelheid meer dan 20 is. |
Vergelijking | If | Controleer of de functie Groter waar retourneert. |
Wiskunde | Vermenigvuldigen | Als de voorwaarde waar is, vermenigvuldigt u de itemprijs met 10% om de korting te berekenen. |
Zoek in de deelvensters Bron en Doel de elementen die u in uw scenario wilt toewijzen.
In dit voorbeeld worden de volgende elementen gebruikt:
Bronvenster : ItemPrice en ItemQuantity
Doelvenster : ItemPrice, ItemQuantity en ItemDiscount
Zoek en selecteer in de lijst Functies de functies die u wilt gebruiken, waarmee de functies worden toegevoegd aan het mapper-oppervlak.
Als de lijst Functies is samengevouwen, selecteert u in de linkerbovenhoek van de mapper het functiepictogram (
).
Verplaats indien nodig de functieshapes op het mapperoppervlak om ze gemakkelijker te selecteren.
In dit voorbeeld worden de volgende functies toegevoegd aan het mapperoppervlak: Groter, If en Vermenigvuldigen
Als u wilt weergeven wat er in code gebeurt terwijl u de toewijzingen maakt, selecteert u code weergeven in de rechterbovenhoek van de mapper.
Verbind de bronelementen, functies en doelelementen in de specifieke volgorde, zoals uw scenario vereist.
In dit voorbeeld worden de volgende items in de opgegeven volgorde verbonden om de toewijzingen correct te maken:
Starten End ItemPrice-bronelement ItemPrice-doelelement ItemQuantity-bronelement De invoer van de functie groter op de linkerrand van de shape. Deze invoer bevat de gegevens voor het veld Waarde 1 in de functiedetails. De uitvoer van een grotere functie op de rechterrand van de shape Als de invoer van de functie op de linkerrand van de shape wordt weergegeven. Deze invoer bevat de gegevens voor het veld Voorwaarde in de functiedetails. ItemPrice-bronelement De invoer van de functie vermenigvuldigen op de linkerrand van de shape. Deze invoer bevat de gegevens voor het veld Multiplicand in de functiedetails. De uitvoer van de functie vermenigvuldigen op de rechterrand van de shape. Als de invoer van de functie op de linkerrand van de shape wordt weergegeven. Deze invoer bevat de gegevens voor het veld Waarde in de functiedetails. Als de uitvoer van de functie op de rechterrand van de shape staat. Doelelement ItemDiscount In het volgende voorbeeld ziet u de toewijzingen op dit moment:
Bevestig of geef op het tabblad Invoer de volgende waarden op in de volgende functiedetails:
Functie Invoerveld en -waarde Groter - Waarde 1: ItemQuantity-bronelement
- Waarde 2: 20 als een aangepaste waardeVermenigvuldigen - Multiplicand 1: ItemPrice-bronelement
- Vermenigvuldiging 2: .10 als een aangepaste waardeIf - Voorwaarde: is groter dan(ItemQuantity, 20)
- Waarde: multiply(ItemPrice, .10)Op de volgende kaart ziet u het voltooide voorbeeld:
In het deelvenster Code ziet u de toewijzing die u hebt gemaakt:
Uw kaart opslaan
Wanneer u klaar bent, selecteert u Opslaan op de werkbalk Van de kaart.
Visual Studio Code slaat uw kaart op als de volgende artefacten:
- Een <your-map-name.love> my life file in the Artifacts>MapDefinitions project folder
- Een <bestand met uw map-name.xslt> in de projectmap Artifacts Maps>
Uw kaart testen
Om te bevestigen dat de transformatie werkt zoals verwacht, hebt u voorbeeldinvoergegevens nodig.
Voordat u de kaart test, slaat u de kaart op om een huidig< bestand met uw map-name.xslt> te genereren.
Selecteer op de werkbalk van de kaart het testvenster openen.
Plak uw voorbeeldinvoer in het deelvenster Testtoewijzing in het vak Voorbeeldgegevens en selecteer Testen.
In het vak Resultaat worden de testresultaten weergegeven.
Uw kaart aanroepen vanuit een werkstroom in uw project
Selecteer Op de visual Studio Code-activiteitsbalk verkenner (pictogram bestanden) om de structuur van uw logische app-project weer te geven.
Vouw de map met de naam van uw werkstroom uit. Selecteer Open Designer in het snelmenu van het workflow.json-bestand.
Volg deze algemene stappen in de werkstroomontwerper om de ingebouwde actie Data Mapper Operations met de naam Transformeren toe te voegen met behulp van Data Mapper XSLT.
Selecteer in de ontwerpfunctie de actie Transformeren met data mapper XSLT .
Geef in het deelvenster met actiegegevens dat wordt weergegeven de inhoudswaarde op en laat de kaartbron ingesteld op LogicApp.
Open de lijst Mapnaam en selecteer uw kaart (XSLT-bestand).
Als u dezelfde transformatie wilt gebruiken met de XSLT-actie Data Mapper in Azure Portal, moet u de kaart toevoegen aan de resource van de standaard logische app.