Tworzenie map w celu przekształcania danych w przepływach pracy aplikacji logiki za pomocą programu Visual Studio Code
Dotyczy: Azure Logic Apps (Standardowa)
Podczas wymiany komunikatów używających różnych formatów XML lub JSON w przepływie pracy aplikacji logiki należy określić sposób przekształcania lub konwertowania danych z formatu źródłowego na format docelowy, na przykład między dokumentami XML lub między dokumentami JSON. To zadanie jest ważne szczególnie w przypadku przerw między strukturami danych w schemacie źródłowym i docelowym. Schemat opisuje elementy danych, atrybuty i typy danych w dokumencie XML lub JSON.
Aby zdefiniować przekształcenia między strukturami danych i wypełnić wszelkie luki, można utworzyć mapę (plik xslt), który określa relacje między elementami danych w schemacie źródłowym i docelowym. Możesz wizualnie utworzyć lub edytować mapę przy użyciu programu Visual Studio Code z rozszerzeniem usługi Azure Logic Apps (Standard) w kontekście projektu aplikacji logiki w warstwie Standardowa. Narzędzie Mapowanie danych zapewnia ujednolicone środowisko mapowania i przekształcania przy użyciu gestów przeciągania i upuszczania, wstępnie utworzonych funkcji do tworzenia wyrażeń oraz sposobu ręcznego testowania map przed użyciem ich w przepływach pracy.
Po utworzeniu mapy możesz bezpośrednio wywołać mapę z przepływu pracy w projekcie aplikacji logiki lub z przepływu pracy aplikacji logiki w warstwie Standardowa w witrynie Azure Portal. W tym zadaniu możesz użyć akcji Operacje mapowania danych o nazwie Przekształć przy użyciu mapera danych XSLT w przepływie pracy.
W tym przewodniku z instrukcjami pokazano, jak utworzyć pustą mapę danych, wybrać schematy źródłowe i docelowe, utworzyć różne rodzaje mapowań między elementami schematu, zapisać i przetestować mapę, a następnie wywołać mapę z przepływu pracy w projekcie aplikacji logiki.
Ograniczenia i znane problemy
Maper danych działa obecnie tylko w programie Visual Studio Code uruchomionym w systemach operacyjnych Windows.
Maper danych jest obecnie dostępny tylko w programie Visual Studio Code, a nie w witrynie Azure Portal i tylko w projektach aplikacji logiki w warstwie Standardowa, a nie w projektach aplikacji logiki Zużycie.
Maper danych obecnie nie obsługuje schematów korzystających z formatu pliku rozdzielanego przecinkami (.csv).
Okienko Kod w maperze danych jest obecnie tylko do odczytu.
Układ i pozycje elementów w maperze danych są obecnie automatyczne i tylko do odczytu.
Funkcja Filter poprawnie przetwarza warunki liczbowe ujęte w znaki podwójnego cudzysłowu, na przykład ">=10". Jednak ta funkcja obecnie nie zachowuje się spójnie w przypadku porównań ciągów, takich jak sprawdzanie, czy nazwa elementu to "= "Pen".
Podczas tworzenia mapowania między elementami macierzy nadrzędnej w schematach źródłowych i docelowych maper automatycznie dodaje pętlę do iteracji elementów elementu tablicy. Należy jednak nadal jawnie tworzyć mapowania między elementami elementu tablicy źródłowej i docelowej.
Aby wywołać mapy utworzone za pomocą mapowania danych, możesz użyć tylko akcji Operacje mapowania danych o nazwie Przekształć przy użyciu mapowania danych XSLT. W przypadku map utworzonych przez inne narzędzie użyj akcji Operacje XML o nazwie Przekształć xml.
Aby użyć map utworzonych za pomocą narzędzia Maper danych z przepływami pracy w witrynie Azure Portal, musisz dodać je bezpośrednio do zasobu aplikacji logiki w warstwie Standardowa.
Funkcje niestandardowe nie są obecnie obsługiwane w tej wersji.
Wymagania wstępne
Program Visual Studio Code i rozszerzenie usługi Azure Logic Apps (Standard) służące do tworzenia standardowych przepływów pracy aplikacji logiki.
Uwaga
Wcześniej oddzielne rozszerzenie mapowania danych zostało teraz scalone z rozszerzeniem usługi Azure Logic Apps (Standard). Aby uniknąć konfliktów, podczas instalowania lub aktualizowania rozszerzenia usługi Azure Logic Apps (Standard) wszelkie istniejące wersje rozszerzenia mapowania danych zostaną usunięte. Po zainstalowaniu lub aktualizacji rozszerzenia uruchom ponownie program Visual Studio Code.
Pliki schematu źródłowego i docelowego, które opisują typy danych do przekształcenia. Te pliki mogą mieć następujące formaty:
- Plik definicji schematu XML z rozszerzeniem .xsd
- Plik notacji obiektów JavaScript z rozszerzeniem .json pliku
Standardowy projekt aplikacji logiki, który zawiera stanowy lub bezstanowy przepływ pracy z wyzwalaczem co najmniej. Jeśli nie masz projektu, wykonaj następujące kroki w programie Visual Studio Code:
Połącz się z kontem platformy Azure, jeśli jeszcze tego nie zrobiono.
Utwórz folder lokalny, lokalny projekt aplikacji logiki w warstwie Standardowa oraz stanowy lub bezstanowy przepływ pracy. Podczas tworzenia przepływu pracy wybierz pozycję Otwórz w bieżącym oknie.
Przykładowe dane wejściowe, jeśli chcesz przetestować mapę i sprawdzić, czy transformacja działa zgodnie z oczekiwaniami.
Aby użyć funkcji Run XSLT, fragmenty kodu XSLT muszą istnieć w plikach używających rozszerzenia nazwy pliku .xml lub xslt . Fragmenty kodu XSLT należy umieścić w folderze InlineXslt w lokalnej strukturze folderu projektu: Artifacts>DataMapper>Extensions>InlineXslt. Jeśli ta struktura folderów nie istnieje, utwórz brakujące foldery.
Tworzenie mapy danych
W programie Visual Studio Code otwórz folder dla projektu aplikacji logiki w warstwie Standardowa.
W menu po lewej stronie programu Visual Studio Code wybierz ikonę platformy Azure .
W oknie platformy Azure w obszarze Maper danych wybierz pozycję Utwórz mapę danych.
Na pasku tytułu programu Visual Studio Code zostanie otwarte okno monitu, aby podać nazwę mapy.
W wierszu polecenia wprowadź nazwę mapy danych.
W tym przewodniku te kroki używają nazwy Example-data-map.
Maper danych tworzy i otwiera pustą mapę danych.
Wybierz schematy źródłowe i docelowe, wykonując następujące kroki:
W okienku Źródło wybierz pozycję Dodaj nową>przeglądaj, aby znaleźć i przekazać schemat źródłowy.
Po dodaniu schematu źródłowego okienko Źródło zostanie wypełnione elementem XML "nodes" dla typów danych w schemacie źródłowym, na przykład:
W okienku Miejsce docelowe wybierz pozycję Dodaj nową>przeglądaj, aby znaleźć i przekazać schemat docelowy.
Po dodaniu schematu docelowego okienko Miejsce docelowe zostanie wypełnione elementem XML "nodes" dla typów danych w schemacie docelowym, na przykład:
Napiwek
Jeśli wystąpią problemy z ładowaniem schematów, możesz lokalnie dodać pliki schematu źródłowego i docelowego do folderu Artifacts Schemas/ projektu aplikacji logiki. W tym scenariuszu, aby określić schemat źródłowy i docelowy w maperze danych, w okienku Źródło i miejsce docelowe otwórz listę Wybierz istniejącą , a nie użyj polecenia Dodaj nowy, a następnie wybierz schemat.
Typy danych schematu
W poniższej tabeli opisano możliwe typy danych, które mogą być wyświetlane w schemacie:
Symbol | Typ | Więcej informacji |
---|---|---|
![]() |
Złożona (tablica) | Zawiera elementy lub powtarzające się węzły elementów. Element tablicy wyświetla również następujący punkt połączenia: ![]() |
![]() |
Bool | Tylko prawda czy fałsz |
![]() |
Complex | Obiekt XML z właściwościami podrzędnymi podobny do typu JSON obiektu |
![]() |
DateTime | |
![]() |
Dziesiętne | |
![]() |
Integer | Tylko liczby całkowite |
![]() |
String |
Tworzenie bezpośredniego mapowania między elementami
Aby określić prostą transformację między elementami o tym samym typie w schemacie źródłowym i docelowym, wykonaj następujące kroki:
Aby wyświetlić, co się stanie w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapera wybierz pozycję Wyświetl kod.
Na powierzchni mapowania w okienku Źródło znajdź element źródłowy, który chcesz mapować.
Domyślnie elementy nadrzędne są automatycznie rozszerzane w celu wyświetlania ich elementów podrzędnych.
W tym przykładzie rozpoczyna się mapowanie z elementu źródłowego, ale możesz rozpocząć mapowanie z elementu docelowego.
Przenieś wskaźnik myszy na okrąg obok nazwy elementu źródłowego, aż wskaźnik zmieni się na znak plus (+).
W tym przykładzie tworzone jest mapowanie rozpoczynające się od elementu źródłowego Identyfikator pracownika.
Przeciągnij i narysuj linię, aby element źródłowy łączył się z okręgiem elementu docelowego w okienku Miejsce docelowe .
W tym przykładzie wykonano mapowanie za pomocą elementu docelowego identyfikatora , który ma ten sam typ danych co element źródłowy.
Utworzono bezpośrednie mapowanie między obydwoma elementami, które mają te same typy danych.
W okienku Kod jest wyświetlana utworzona relacja mapowania:
Napiwek
Aby sprawdzić, czy mapowania mają jakiekolwiek problemy, wybierz pozycję Wyświetl problemy. Na przykład na liście Problemy na karcie Ostrzeżenia zostanie wyświetlone ostrzeżenie, jeśli utworzysz mapowanie między elementami, które mają niezgodne typy danych:
Tworzenie złożonego mapowania między elementami
Aby określić bardziej skomplikowaną transformację między elementami w schemacie źródłowym i docelowym, na przykład elementami, które mają zostać połączone lub mają różne typy danych, można użyć co najmniej jednej funkcji wykonującej transformację, którą chcesz wykonać w mapowaniu.
Na powierzchni mapowania etykieta funkcji jest oznaczona kolorami na podstawie grupy funkcji. Obok nazwy funkcji zostanie wyświetlony symbol funkcji, na przykład:
W poniższej tabeli wymieniono grupy funkcji i kilka przykładowych funkcji, których można użyć. Aby uzyskać pełną listę, zobacz listę funkcji w maperze danych.
Grupuj | Przykładowe funkcje |
---|---|
Kolekcja | Average, Count, Direct Access, Distinct values, Filter, Index, Join, Maximum, Minimum, Reverse, Sort, Subsequence, Sum |
Konwersja | Do daty, do liczby całkowitej, do liczby, do ciągu |
Data i godzina | Dodawanie dni, bieżąca data, bieżąca godzina, data równa się dacie |
Porównanie logiczne | Równe, Istnieje, Większe, Większe lub równe, If, If Else, Is Nil, Is Null, Is Number, Is String, Less, Less, Less lub Equal, Logical AND, Logical NOT, Logical OR, Not, Logical OR, Not Equal |
Matematyka | Absolute, Add, Arctangent, Ceiling, Cosine, Divide, Exponential, Exponential (base 10), Floor, Integer Divide, Log, Log (base 10), Module, Multiply, Power, Round, Sine, Square Root, Subtract, Tangent |
ciąg | Punkty kodu do ciągu, 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 Left, Trim Right, Uppercase |
Narzędzie | Kopiowanie, błąd, wykonywanie XPath, formatowanie daty/godziny, numer formatu, uruchamianie XSLT |
Dodawanie funkcji bez mapowania
Przykład w tej sekcji przekształca dane w elemecie źródłowym z string na DateTime, który jest typem elementu docelowego. Przykład rozpoczyna się bez uprzedniego utworzenia mapowania i używa funkcji To Date , która akceptuje pojedyncze dane wejściowe.
Aby wyświetlić, co się stanie w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapera wybierz pozycję Wyświetl kod.
Na liście Funkcje znajdź i wybierz funkcję, której chcesz użyć, która dodaje funkcję do powierzchni mapowania. Jeśli lista Funkcji jest zwinięta, w lewym górnym rogu mapera wybierz ikonę funkcji (
).
W tym przykładzie wybiera funkcję Do daty , która znajduje się w grupie funkcji Konwersja .
Uwaga
Jeśli mapowanie nie istnieje na mapie lub jeśli podczas dodawania funkcji do mapy nie wybrano mapowania, funkcja jest wyświetlana, ale nie jest połączona z żadnymi elementami ani innymi funkcjami, na przykład:
Połącz funkcję z elementami źródłowymi i docelowymi.
Przeciągnij i narysuj linię między elementem źródłowym a okręgiem na lewej krawędzi funkcji. Możesz rozpocząć od elementu źródłowego lub funkcji.
Przeciągnij i narysuj linię między prawą krawędzią funkcji a elementem docelowym. Możesz rozpocząć od elementu docelowego lub funkcji.
W okienku Kod jest wyświetlana utworzona relacja mapowania:
Na powierzchni mapera wybierz kształt funkcji, aby wyświetlić szczegóły funkcji.
Na karcie Dane wejściowe potwierdź lub edytuj dane wejściowe do użycia.
Niektóre scenariusze wymagają zdefiniowania przekształcenia poza natychmiastową parę elementów źródłowych i docelowych. Aby na przykład zdefiniować przekształcenie między parą tablic i ich elementów, należy utworzyć pętlę między tablicami. Lub, aby wykonać zadanie, gdy wartość elementu spełnia warunek, należy dodać warunek między elementami.
Dodawanie funkcji korzystającej z wielu danych wejściowych
Przykład w tej sekcji łączy wiele elementów źródłowych jako dane wejściowe i mapuje pojedyncze dane wyjściowe na element docelowy. W przykładzie użyto funkcji Concat , która akceptuje wiele danych wejściowych.
Aby wyświetlić, co się stanie w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapera wybierz pozycję Wyświetl kod.
Na liście Funkcje znajdź i wybierz funkcję, której chcesz użyć, która dodaje funkcję do powierzchni mapowania.
Jeśli lista Funkcji jest zwinięta, w lewym górnym rogu mapera wybierz ikonę funkcji (
).
W tym przykładzie wybiera funkcję Concat , która znajduje się w grupie funkcji String .
Uwaga
Jeśli mapowanie nie istnieje na mapie lub jeśli podczas dodawania funkcji do mapy nie wybrano mapowania, funkcja jest wyświetlana, ale nie jest połączona z żadnymi elementami ani innymi funkcjami, na przykład:
Na powierzchni mapera wybierz kształt funkcji, aby wyświetlić szczegóły funkcji.
Na karcie Dane wejściowe wybierz elementy schematu źródłowego do użycia jako dane wejściowe.
W tym przykładzie jako dane wejściowe funkcji wybierane są elementy schematu źródłowego FirstName i LastName . Maper automatycznie dodaje odpowiednie mapowania między elementami źródłowymi a funkcją.
Aby ukończyć mapowanie, przeciągnij i narysuj linię między prawą krawędzią funkcji a elementem docelowym. Możesz rozpocząć od elementu docelowego lub funkcji.
W okienku Kod są wyświetlane utworzone relacje mapowania:
Iterowanie po tablicach
Jeśli schematy źródłowe i docelowe zawierają tablice, można utworzyć pętlę do iterowania elementów tablic. W przykładzie w tej sekcji jest tworzona pętla za pośrednictwem tablicy źródłowej Employee i tablicy docelowej Person wraz z mapowaniami między elementami tablic.
Aby wyświetlić, co się stanie w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapera wybierz pozycję Wyświetl kod.
Na powierzchni mapowania w okienkach Źródło i Miejsce docelowe znajdź tablice, które chcesz mapować.
Przeciągnij i narysuj linię między parą elementów tablicy. Możesz rozpocząć od okienka Źródło lub okienka Miejsce docelowe .
Poniższy przykład rozpoczyna się od okienka Źródło i mapuje elementy Nazwa w tablicy źródłowej Employee i tablicy docelowej Person :
Po zakończeniu mapowania pierwszej pary elementów tablicy maper automatycznie dodaje pętlę między elementami nadrzędnymi źródłowej i docelowej tablicy, które mają następujący typ punktu połączenia:
W poniższym przykładzie wyróżniono automatycznie dodaną pętlę między źródłowymi tablicami nadrzędnymi Employee i target Person :
Okienko Kod zawiera utworzone mapowanie i pętlę:
Kontynuuj mapowanie innych elementów tablicy, na przykład:
Ocena warunku w celu wykonania zadania
Załóżmy, że chcesz dodać mapowanie, które ocenia warunek i wykonuje zadanie po spełnieniu warunku. W tym scenariuszu można użyć wielu funkcji.
W poniższym przykładzie, gdy ilość zakupu przekracza 20 elementów, mapowanie oblicza rabat do zastosowania przy użyciu następujących funkcji:
Grupa funkcji | Function | Cel w tym przykładzie |
---|---|---|
Porównanie | Większa | Sprawdź, czy ilość zakupu jest większa niż 20. |
Porównanie | If | Sprawdź, czy funkcja Greater zwraca wartość true. |
Matematyka | Mnożyć | Jeśli warunek ma wartość true, pomnóż cenę elementu o 10%, aby obliczyć rabat. |
W okienkach Źródło i miejsce docelowe znajdź elementy do mapowania w scenariuszu.
W tym przykładzie użyto następujących elementów:
Okienko źródła : ItemPrice i ItemQuantity
Okienko docelowe : ItemPrice, ItemQuantity i ItemDiscount
Na liście Funkcje znajdź i wybierz funkcje, których chcesz użyć, co dodaje funkcje do powierzchni mapowania.
Jeśli lista Funkcji jest zwinięta, w lewym górnym rogu mapera wybierz ikonę funkcji (
).
W razie potrzeby przenieś kształty funkcji na powierzchni mapowania, aby ułatwić ich wybór.
W tym przykładzie dodano następujące funkcje do powierzchni mapowania: Greater, If i Multiply
Aby wyświetlić, co się dzieje w kodzie podczas tworzenia mapowań, w prawym górnym rogu mapera wybierz pozycję Wyświetl kod.
Połącz elementy źródłowe, funkcje i elementy docelowe w określonej kolejności, zgodnie z wymaganiami scenariusza.
Ten przykład łączy następujące elementy w określonej kolejności, aby poprawnie utworzyć mapowania:
Rozpoczęcie Zakończenie ItemPrice , element źródłowy Element docelowy ItemPrice ItemQuantity , element źródłowy Dane wejściowe funkcji Greater na lewej krawędzi kształtu. Te dane wejściowe zawierają dane pola Wartość 1 w szczegółach funkcji. Dane wyjściowe funkcji Greater na prawej krawędzi kształtu Jeśli dane wejściowe funkcji są wprowadzane na lewej krawędzi kształtu. Te dane wejściowe zawierają dane pola Warunek w szczegółach funkcji. ItemPrice , element źródłowy Pomnożenie danych wejściowych funkcji na lewej krawędzi kształtu. Te dane wejściowe zawierają dane dla pola Multiplicand w szczegółach funkcji. Pomnożenie danych wyjściowych funkcji na prawej krawędzi kształtu. Jeśli dane wejściowe funkcji są wprowadzane na lewej krawędzi kształtu. Te dane wejściowe udostępniają dane pola Wartość w szczegółach funkcji. Jeśli dane wyjściowe funkcji są wyświetlane na prawej krawędzi kształtu. ItemDiscount , element docelowy W poniższym przykładzie przedstawiono mapowania w tym momencie:
W poniższych szczegółach funkcji na karcie Dane wejściowe potwierdź lub podaj następujące wartości:
Function Pole wejściowe i wartość Większa - Wartość 1. Element źródłowy ItemQuantity
- Wartość 2: 20 jako wartość niestandardowaMnożyć - Multiplicand 1: ItemPrice , element źródłowy
- Mnożenie 2: .10 jako wartość niestandardowaIf - Warunek: is-greater-than(ItemQuantity, 20)
- Wartość: multiply(ItemPrice, .10)Na poniższej mapie przedstawiono gotowy przykład:
W okienku Kod wyświetlane jest utworzone mapowanie:
Zapisz mapę
Gdy wszystko będzie gotowe, na pasku narzędzi mapy wybierz pozycję Zapisz.
Program Visual Studio Code zapisuje mapę jako następujące artefakty:
- Plik <życia your-map-name.love> w folderze projektu Artifacts>MapDefinitions
- Plik your-map-name.xslt> w folderze projektu Artifacts Maps><
Testowanie mapy
Aby potwierdzić, że transformacja działa zgodnie z oczekiwaniami, potrzebne będą przykładowe dane wejściowe.
Przed przetestowaniem mapy zapisz mapę, aby wygenerować bieżący< plik your-map-name.xslt.>
Na pasku narzędzi mapy wybierz pozycję Otwórz panel testowy.
W okienku Mapa testu w polu Przykładowe dane wklej przykładowe dane wejściowe i wybierz pozycję Testuj.
Pole Wynik zawiera wyniki testu.
Wywoływanie mapy z przepływu pracy w projekcie
Na pasku działań programu Visual Studio Code wybierz pozycję Eksplorator (ikona plików), aby wyświetlić strukturę projektu aplikacji logiki.
Rozwiń folder, który ma nazwę przepływu pracy. W menu skrótów pliku workflow.json wybierz pozycję Otwórz projektanta.
W projektancie przepływu pracy wykonaj następujące ogólne kroki, aby dodać wbudowaną akcję Operacje mapowania danych o nazwie Przekształć przy użyciu mapera danych XSLT.
W projektancie wybierz akcję Przekształć przy użyciu mapowania danych XSLT .
W wyświetlonym okienku informacji o akcji określ wartość Zawartość i pozostaw wartość Źródło mapy ustawioną na LogicApp.
Otwórz listę Nazwa mapy i wybierz mapę (plik xslt).
Aby użyć tej samej akcji Transform using Data Mapper XSLT w witrynie Azure Portal, musisz dodać mapę do zasobu standardowej aplikacji logiki.
Powiązana zawartość
- Aby uzyskać informacje na temat przekształceń danych przy użyciu operacji B2B w usłudze Azure Logic Apps, zobacz Dodawanie map dla przekształceń w przepływach pracy za pomocą usługi Azure Logic Apps