Udostępnij za pośrednictwem


Tworzenie map w celu przekształcania danych w usłudze Azure Logic Apps za pomocą programu Visual Studio Code

Dotyczy: Azure Logic Apps (Standardowa)

Aby wymieniać komunikaty, które mają różne formaty XML lub JSON w przepływie pracy usługi Azure Logic Apps, musisz przekształcić dane z jednego formatu na inny, zwłaszcza jeśli występują luki między strukturami schematu źródłowego i docelowego. Przekształcanie danych pomaga wypełnić te luki. W tym zadaniu należy utworzyć mapę definiującą transformację między elementami danych w schemacie źródłowym i docelowym.

Aby wizualnie utworzyć i edytować mapę, możesz użyć 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 XSLT przy użyciu gestów przeciągania i upuszczania, wstępnie utworzonej biblioteki funkcji do tworzenia wyrażeń oraz ręcznego testowania map tworzonych i używanych 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 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, wybrać elementy schematu, aby rozpocząć mapowanie, utworzyć różne mapowania, 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 plików rozdzielonych przecinkami (.csv).

  • Okienko Widok kodu mapera danych jest obecnie tylko do odczytu.

  • Układ mapy i położenie elementu są obecnie automatyczne i tylko do odczytu.

  • Aby wywołać mapy utworzone za pomocą narzędzia Maper danych, można 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 Mapowanie danych, ale w witrynie Azure Portal, należy dodać je bezpośrednio do zasobu standardowej aplikacji logiki.

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
  • Projekt standardowej aplikacji logiki, który zawiera stanowy lub bezstanowy przepływ pracy z co najmniej wyzwalaczem. Jeśli nie masz projektu, wykonaj następujące kroki w programie Visual Studio Code:

    1. Połącz się z kontem platformy Azure, jeśli jeszcze tego nie zrobiono.

    2. 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

  1. W menu po lewej stronie programu Visual Studio Code wybierz ikonę platformy Azure .

  2. W okienku Azure w sekcji Maper danych wybierz pozycję Utwórz nową mapę danych.

    Zrzut ekranu przedstawiający program Visual Studio Code z narzędziem mapy danych, otwartym oknem platformy Azure i wybranym przyciskiem Utwórz nową mapę danych.

  3. Podaj nazwę mapy danych.

  4. Określ schematy źródłowe i docelowe, wykonując następujące kroki:

    1. Na powierzchni mapy wybierz pozycję Dodaj schemat źródłowy.

      Zrzut ekranu przedstawiający program Visual Studio Code z otwartym maperem danych, nową mapą danych i wybraną opcją Dodaj schemat źródłowy.

    2. W otwartym okienku Konfigurowanie wybierz pozycję Dodaj nowe>przeglądaj.

    3. Znajdź i wybierz plik schematu źródłowego, a następnie wybierz pozycję Dodaj.

      Jeśli schemat źródłowy nie jest wyświetlany w oknie Otwórz , z listy typów plików zmień plik XSD (*.xsd) na Wszystkie pliki (*.*).

      Na powierzchni mapy są teraz wyświetlane typy danych ze schematu źródłowego. Przykłady w tym przewodniku:

    4. Na powierzchni mapy wybierz pozycję Dodaj schemat docelowy.

    5. W otwartym okienku Konfigurowanie wybierz pozycję Dodaj nowe>przeglądaj.

    6. Znajdź i wybierz docelowy plik schematu, a następnie wybierz pozycję Dodaj.

      Jeśli schemat docelowy nie jest wyświetlany w oknie Otwórz , z listy typów plików zmień plik XSD (*.xsd) na Wszystkie pliki (*.*).

      Na powierzchni mapy są teraz wyświetlane typy danych ze schematu docelowego.

    Alternatywnie możesz również lokalnie dodać pliki schematu źródłowego i docelowego do projektu aplikacji logiki w folderze Artifacts Schemas( Schematy artefaktów/), aby były wyświetlane w programie Visual Studio Code. W takim przypadku możesz określić schemat źródłowy i docelowy w narzędziu Maper danych w okienku Konfigurowanie , wybierając pozycję Wybierz istniejącą, a nie Dodaj nową.

    Gdy wszystko będzie gotowe, mapa będzie wyglądać podobnie do poniższego przykładu:

    Zrzut ekranu przedstawiający otwartą mapę danych i mapę danych z przykładowymi schematami źródłowymi i docelowymi.

W poniższej tabeli opisano możliwe typy danych, które mogą być wyświetlane w schemacie:

Symbol Typ Więcej informacji
Ikona reprezentująca typ danych Tablica. Tablica Zawiera elementy lub powtarzające się węzły elementów
Ikona reprezentująca typ danych binarnych. Plik binarny
Ikona reprezentująca typ danych logicznych. Bool Tylko prawda czy fałsz
Ikona reprezentująca typ danych złożonych. Complex Obiekt XML z właściwościami podrzędnymi podobny do typu JSON obiektu
Ikona reprezentująca typ danych DateTime. DateTime
Ikona reprezentująca typ danych dziesiętnych. Dziesiętne
Ikona reprezentująca typ danych liczba całkowita. Integer Tylko liczby całkowite
Ikona reprezentująca symbol NULL. Null (zero) Nie typ danych, ale pojawia się, gdy istnieje błąd lub nieprawidłowy typ
Ikona reprezentująca typ danych Liczba. Liczba Liczba całkowita JSON lub liczba dziesiętna
Ikona reprezentująca typ danych obiektu. Objekt Obiekt JSON z właściwościami podrzędnymi podobny do typu złożonego XML
Ikona reprezentująca typ danych Ciąg. String

Aby poruszać się po mapie, dostępne są następujące opcje:

  • Aby posunąć się, przeciągnij wskaźnik wokół powierzchni mapy. Lub naciśnij i przytrzymaj koło myszy, podczas gdy przenosisz mysz lub trackball.

  • Po przeniesieniu jednego poziomu w dół do mapy w lewym dolnym rogu mapy zostanie wyświetlony pasek nawigacyjny, w którym można wybrać jedną z następujących opcji:

    Zrzut ekranu przedstawiający pasek nawigacyjny mapy.

    Opcja Alternatywny gest
    Pomniejszanie Na powierzchni mapy naciśnij SHIFT + double select.
    -lub-
    Przewiń w dół za pomocą kółka myszy.
    Powiększenie Na powierzchni mapy wybierz dwukrotnie.
    -lub-
    Przewiń w górę za pomocą kółka myszy.
    Powiększenie, aby dopasować Brak
    Pokaż (Ukryj) minimapę Brak
  • Aby przejść w górę o jeden poziom na mapie, na ścieżce do stron nadrzędnych w górnej części mapy wybierz poprzedni poziom.

Wybieranie elementów docelowych i źródłowych do mapowania

  1. Na powierzchni mapy, począwszy od prawej strony, w obszarze schematu docelowego wybierz element docelowy, który chcesz zamapować. Jeśli żądany element jest elementem podrzędnym elementu nadrzędnego, znajdź i rozwiń element nadrzędny jako pierwszy.

  2. Teraz po lewej stronie w obszarze schematu źródłowego wybierz pozycję Wybierz element.

  3. W wyświetlonym oknie Schemat źródłowy wybierz co najmniej jeden element źródłowy, który ma być wyświetlany na mapie.

    • Aby dołączyć element nadrzędny i bezpośrednie elementy podrzędne, otwórz menu skrótów elementu nadrzędnego i wybierz pozycję Dodaj elementy podrzędne.

    • Aby uwzględnić element nadrzędny i wszystkie elementy podrzędne dla tego elementu nadrzędnego, w tym wszystkie elementy podrzędne, otwórz menu skrótów nadrzędnego najwyższego poziomu i wybierz pozycję Dodaj elementy podrzędne (rekursywne).

  4. Po zakończeniu możesz zamknąć okno schematu źródłowego. Zawsze możesz dodać więcej elementów źródłowych później. Na mapie w lewym górnym rogu wybierz pozycję Pokaż schemat źródłowy (Ikona pokaż schemat źródłowy.).

Tworzenie bezpośredniego mapowania między elementami

Aby uzyskać prostą transformację między elementami o tym samym typie w schematach źródłowych i docelowych, wykonaj następujące kroki:

  1. Aby sprawdzić, co się dzieje w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapy wybierz pozycję Pokaż kod.

  2. Jeśli jeszcze tego nie zrobiono, na mapie wybierz elementy docelowe, a następnie elementy źródłowe, które chcesz mapować.

  3. Przenieś wskaźnik nad elementem źródłowym, aby pojawić się zarówno okrąg, jak i znak plus (+).

    Zrzut ekranu przedstawiający mapę danych i rozpoczęcie mapowania między identyfikatorem pracownika i identyfikatorem odpowiednio w schemacie źródłowym i docelowym.

  4. Przeciągnij linię do elementu docelowego, aby linia łączyła się z wyświetlonym okręgiem.

    Zrzut ekranu przedstawiający mapę danych i zakończenie mapowania między identyfikatorem pracownika i identyfikatorem odpowiednio w schemacie źródłowym i docelowym.

    Utworzono bezpośrednie mapowanie między obydwoma elementami.

    Zrzut ekranu przedstawiający mapę danych i zakończone mapowanie odpowiednio między identyfikatorem pracownika i identyfikatorem w schemacie źródłowym i docelowym.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Zrzut ekranu przedstawiający widok kodu z bezpośrednim mapowaniem między identyfikatorem pracownika i identyfikatorem odpowiednio w schemacie źródłowym i docelowym.

Uwaga

Jeśli utworzysz mapowanie między elementami, w których ich typy danych nie są zgodne, na przykład w elemecie docelowym pojawi się ostrzeżenie:

Zrzut ekranu przedstawiający bezpośrednie mapowanie między niezgodnymi typami danych.

Tworzenie złożonego mapowania między elementami

W przypadku bardziej złożonej transformacji między elementami w schematach źródłowych i docelowych, takich jak elementy, które chcesz połączyć lub które mają różne typy danych, można użyć co najmniej jednej funkcji do wykonywania zadań dla tej transformacji.

W poniższej tabeli wymieniono dostępne grupy funkcji i przykładowe funkcje, których można użyć:

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 Dodaj dni
Porównanie logiczne Równe, Istnieje, Większe, Większe lub równe, If, If else, Is zero, Is null, Is number, Is string, Less, Less, Less, Logical AND, Logical NOT, Logical OR, Not Equal
Math 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
String Kod wskazuje ciąg, Concat, Contains, Ends with, Length, Lowercase, Name, Regular expression matches, Regular expression replace, Replace, Starts with, String to code-points, Substring, Substring after, Substring before, Trim, Trim left, Trim right, Uppercase
Narzędzie Kopiuj, Błąd, Wykonaj XPath, Formatuj datę i godzinę, Numer formatu, Uruchom XSLT

Na mapie etykieta funkcji wygląda jak w poniższym przykładzie i jest oznaczona kolorami na podstawie grupy funkcji. Po lewej stronie nazwy funkcji zostanie wyświetlony symbol funkcji. Po prawej stronie nazwy funkcji zostanie wyświetlony symbol typu danych danych wyjściowych funkcji.

Zrzut ekranu przedstawiający przykładową etykietę funkcji.

Dodawanie funkcji bez relacji mapowania

Przykład w tej sekcji przekształca typ elementu źródłowego z typu Ciąg na Typ daty/godziny, który odpowiada typowi elementu docelowego. W przykładzie użyto funkcji Do daty , która przyjmuje pojedyncze dane wejściowe.

  1. Aby sprawdzić, co się dzieje w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapy wybierz pozycję Pokaż kod.

  2. Jeśli jeszcze tego nie zrobiono, na mapie wybierz elementy docelowe, a następnie elementy źródłowe, które chcesz mapować.

  3. W lewym górnym rogu mapy wybierz pozycję Pokaż funkcje (Ikona pokaż funkcje.).

    Zrzut ekranu przedstawiający elementy schematu źródłowego i docelowego oraz wybraną funkcję Pokaż funkcje.

  4. Z listy funkcji, która zostanie otwarta, znajdź i wybierz funkcję, której chcesz użyć, co spowoduje dodanie funkcji do mapy. Jeśli funkcja nie jest widoczna na mapie, spróbuj powiększyć powierzchnię mapy.

    W tym przykładzie wybrano funkcję Do daty . Możesz również znaleźć i wybrać dowolne funkcje niestandardowe w taki sam sposób. Aby uzyskać więcej informacji, zobacz Tworzenie funkcji niestandardowej.

    Zrzut ekranu przedstawiający wybraną funkcję o nazwie Do date.

    Uwaga

    Jeśli nie istnieje linia mapowania lub jest zaznaczona podczas dodawania funkcji do mapy, funkcja jest wyświetlana na mapie, ale odłączona od dowolnych elementów lub innych funkcji, na przykład:

    Zrzut ekranu przedstawiający funkcję rozłączoną z datą.

  5. Rozwiń kształt funkcji, aby wyświetlić szczegóły i punkty połączenia funkcji. Aby rozwinąć kształt funkcji, zaznacz wewnątrz kształtu.

  6. Połącz funkcję z elementami źródłowymi i docelowymi.

    1. Przeciągnij i narysuj linię między elementami źródłowymi a lewą krawędzią funkcji. Możesz rozpocząć od elementów źródłowych lub z funkcji.

      Zrzut ekranu przedstawiający mapowanie początkowe między elementem źródłowym i funkcją.

    2. Przeciągnij i narysuj linię między prawą krawędzią funkcji a elementem docelowym. Możesz uruchomić element docelowy lub z funkcji.

      Zrzut ekranu przedstawiający mapowanie zakończenia między funkcją a elementem docelowym.

  7. Na karcie Właściwości funkcji potwierdź lub edytuj dane wejściowe do użycia.

    Zrzut ekranu przedstawiający kartę Właściwości dla funkcji To date.

    W przypadku niektórych typów danych, takich jak tablice, zakres przekształcenia może być również dostępny. Ten zakres jest zwykle bezpośrednim elementem, takim jak tablica, ale w niektórych scenariuszach zakres może istnieć poza bezpośrednim elementem.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Zrzut ekranu przedstawiający widok kodu z bezpośrednią relacją mapowania między elementami źródłowymi i docelowymi.

Aby na przykład iterować elementy tablicy, zobacz Tworzenie pętli między tablicami. Aby wykonać zadanie, gdy wartość elementu spełnia warunek, zobacz Dodawanie warunku między elementami.

Dodawanie funkcji do istniejącej relacji mapowania

Jeśli relacja mapowania już istnieje między elementami źródłowymi i docelowymi, możesz dodać funkcję, wykonując następujące kroki:

  1. Na mapie wybierz wiersz dla utworzonego mapowania.

  2. Przenieś wskaźnik nad zaznaczonym wierszem, a następnie wybierz wyświetloną funkcję Insert i znak (+), na przykład:

    Zrzut ekranu przedstawiający program Visual Studio Code z elementami ze schematów źródłowych i docelowych z relacją mapowania i opcją wstawiania funkcji.

  3. Z listy funkcji, która zostanie otwarta, znajdź i wybierz funkcję, której chcesz użyć.

    Funkcja jest wyświetlana na mapie i jest automatycznie połączona między elementami źródłowymi i docelowymi.

Dodawanie funkcji z wieloma danymi wejściowymi

Przykład w tej sekcji łączy wiele typów elementów źródłowych, dzięki czemu można mapować wyniki na typ elementu docelowego. W przykładzie użyto funkcji Concat , która przyjmuje wiele danych wejściowych.

  1. Aby sprawdzić, co się dzieje w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapy wybierz pozycję Pokaż kod.

  2. Jeśli jeszcze tego nie zrobiono, na mapie wybierz elementy docelowe, a następnie elementy źródłowe, które chcesz mapować.

  3. W lewym górnym rogu mapy wybierz pozycję Pokaż funkcje (Ikona pokaż funkcje.).

    Zrzut ekranu przedstawiający elementy schematu źródłowego i docelowego oraz wybraną funkcję o nazwie Pokaż funkcje.

  4. Z listy funkcji, która zostanie otwarta, znajdź i wybierz funkcję, której chcesz użyć, co spowoduje dodanie funkcji do mapy. Jeśli funkcja nie jest widoczna na mapie, spróbuj powiększyć powierzchnię mapy.

    W tym przykładzie wybrano funkcję Concat :

    Zrzut ekranu przedstawiający wybraną funkcję o nazwie Concat.

    Uwaga

    Jeśli nie istnieje linia mapowania lub zostanie wybrana podczas dodawania funkcji do mapy, funkcja zostanie wyświetlona na mapie, ale odłączona od dowolnych elementów lub innych funkcji. Jeśli funkcja wymaga konfiguracji, czerwona kropka pojawi się w prawym górnym rogu funkcji, na przykład:

    Zrzut ekranu przedstawiający rozłączone funkcje Concat.

  5. Rozwiń kształt funkcji, aby wyświetlić szczegóły i punkty połączenia funkcji. Aby rozwinąć kształt funkcji, zaznacz wewnątrz kształtu.

  6. W okienku informacji o funkcji na karcie Właściwości w obszarze Dane wejściowe wybierz elementy danych źródłowych do użycia jako dane wejściowe.

    W tym przykładzie jako dane wejściowe funkcji wybierane są elementy źródłowe FirstName i LastName , które automatycznie dodają odpowiednie połączenia na mapie.

    Zrzut ekranu przedstawiający wiele elementów danych źródłowych wybranych jako dane wejściowe funkcji.

  7. Aby ukończyć przeciąganie mapowania i rysowanie linii między prawą krawędzią funkcji a elementem docelowym. Możesz uruchomić element docelowy lub z funkcji.

    Zrzut ekranu przedstawiający ukończone mapowanie z funkcji z wieloma danymi wejściowymi na element docelowy.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Zrzut ekranu przedstawiający widok kodu ze złożoną relacją mapowania między elementami źródłowymi i docelowymi.

Tworzenie pętli między tablicami

Jeśli schematy źródłowe i docelowe zawierają tablice, można utworzyć relację mapowania pętli, która iteruje przez elementy w tych tablicach. Przykład w tej sekcji wykonuje pętle za pośrednictwem tablicy źródłowej Employee i tablicy docelowej Person.

  1. Aby sprawdzić, co się dzieje w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapy wybierz pozycję Pokaż kod.

  2. Na mapie w obszarze schematu docelowego wybierz docelowy element tablicy i elementy elementu tablicy docelowej, które chcesz mapować.

  3. Na mapie w obszarze schematu docelowego rozwiń docelowy element tablicy i elementy tablicy.

  4. W obszarze schematu źródłowego dodaj do mapy element tablicy źródłowej i elementy elementu tablicy.

  5. Utwórz bezpośrednie mapowanie między elementami źródłowymi i docelowymi.

    Zrzut ekranu przedstawiający mapę danych i rysując połączenie między elementami tablicy Nazw odpowiednio w tablicach źródłowych i docelowych, Employee i Person.

    Po pierwszym utworzeniu relacji mapowania między pasującą parą elementów tablicy relacja mapowania jest tworzona automatycznie na poziomie macierzy nadrzędnej.

    Zrzut ekranu przedstawiający mapowanie pętli między elementami tablicy Nazwa oraz tablicami źródłowymi i docelowymi, odpowiednio Pracownikiem i Osobą.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Zrzut ekranu przedstawiający widok kodu z relacją pętli między tablicami źródłowymi i docelowymi, odpowiednio Pracownik i Osoba.

  6. Kontynuuj mapowanie innych elementów tablicy.

    Zrzut ekranu przedstawiający mapowanie kontynuacji pętli między innymi elementami tablicy źródłowej i docelowej.

Konfigurowanie warunku i zadania do wykonania między elementami

Aby dodać relację mapowania, która ocenia warunek i wykonuje zadanie po spełnieniu warunku, można użyć wielu funkcji, takich jak funkcja If, funkcja porównania, taka jak Greater, i zadanie do wykonania, takie jak Pomnożenie.

Przykład w tej sekcji oblicza rabat, który ma być stosowany, gdy ilość zakupu przekracza 20 elementów przy użyciu następujących funkcji:

  • Większe: Sprawdź, czy ilość elementu jest większa niż 20.
  • Jeśli: Sprawdź, czy funkcja Greater zwraca wartość true.
  • Mnożenie: oblicz rabat, mnożąc cenę elementu o 10% i ilość elementu.
  1. Aby sprawdzić, co się dzieje w kodzie podczas tworzenia mapowania, w prawym górnym rogu mapy wybierz pozycję Pokaż kod.

  2. Jeśli jeszcze tego nie zrobiono, na mapie wybierz elementy docelowe, a następnie elementy źródłowe, które chcesz mapować.

    W tym przykładzie wybierane są następujące elementy:

    Zrzut ekranu przedstawiający mapę danych i elementy do mapowania.

  3. W lewym górnym rogu mapy wybierz pozycję Pokaż funkcje (Ikona pokaż funkcje.).

  4. Dodaj następujące funkcje do mapy: Greater, If i Multiply

  5. Rozwiń wszystkie kształty funkcji, aby wyświetlić szczegóły funkcji i punkty połączenia.

  6. Połącz elementy źródłowe, funkcje i elementy docelowe w następujący sposób:

    • Element ItemPrice schematu źródłowego do elementu ItemPrice schematu docelowego
    • Element ItemQuantity schematu źródłowego do pola Value funkcji Greater
    • Dane wyjściowe funkcji Greater w polu Warunek funkcji If
    • Element ItemPrice schematu źródłowego do pola Mnożenie funkcji Multiplicand 0*
    • Dane wyjściowe funkcji Pomnóż do pola Wartość funkcji If
    • Dane wyjściowe funkcji If do elementu ItemDiscount schematu docelowego

    Uwaga

    W funkcji If wyraz ANY pojawia się po prawej stronie nazwy funkcji, co oznacza, że można przypisać wartość wyjściową do dowolnego elementu.

  7. W następujących funkcjach na karcie Właściwości określ następujące wartości:

    Function Parametr wejściowy i wartość
    Większa - Wartość 1. Element źródłowy o nazwie ItemQuantity
    - Wartość 2: 20
    Mnożyć - Multiplicand #1: element źródłowy o nazwie ItemPrice
    - Mnożenie #2: .10
    If - Warunek: is-greater-than(ItemQuantity,20)
    - Wartość: multiply(ItemPrice, .10)

    Na poniższej mapie przedstawiono gotowy przykład:

    Zrzut ekranu przedstawiający przykład ukończonego warunku.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Zrzut ekranu przedstawiający widok kodu z mapowaniem warunkowym między elementami źródłowymi i docelowymi przy użyciu funkcji Greater, If i Multiply.

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 nazwa-mapy>.yml w folderze projektu Artifacts>MapDefinitions<
  • Plik your-map-name.xslt> w folderze projektu Artifacts Maps><

Generowanie pliku XSLT w dowolnym momencie

Aby wygenerować <plik your-map-name.xslt> w dowolnym momencie, na pasku narzędzi mapy wybierz pozycję Generuj XSLT.

Testowanie mapy

Aby potwierdzić, że transformacja działa zgodnie z oczekiwaniami, potrzebne będą przykładowe dane wejściowe.

  1. Przed przetestowaniem mapy pamiętaj o wygenerowaniu najnowszego< pliku your-map-name.xslt.>

  2. Na pasku narzędzi mapy wybierz pozycję Testuj.

  3. W okienku Mapa testu w oknie Dane wejściowe wklej przykładowe dane wejściowe, a następnie wybierz pozycję Testuj.

    Okienko testowania przechodzi na kartę Dane wyjściowe i pokazuje kod stanu testu i treść odpowiedzi.

Wywoływanie mapy z przepływu pracy w projekcie

  1. W menu po lewej stronie programu Visual Studio Code wybierz pozycję Eksplorator (ikona plików), aby wyświetlić strukturę projektu aplikacji logiki.

  2. Rozwiń folder, który ma nazwę przepływu pracy. W menu skrótów pliku workflow.json wybierz pozycję Otwórz projektanta.

  3. 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.

  4. W projektancie wybierz akcję Przekształć przy użyciu mapowania danych XSLT .

  5. W wyświetlonym okienku informacji o akcji określ wartość Zawartość i pozostaw źródło mapy ustawione na aplikację logiki. Z listy Nazwa mapy wybierz plik mapy (.xslt), którego chcesz użyć.

    Zrzut ekranu przedstawiający program Visual Studio Code, projektant przepływu pracy w warstwie Standardowa z wybraną akcją o nazwie Przekształć przy użyciu mapera danych XSLT i właściwości akcji.

    Aby użyć tej samej akcji Transform using Data Mapper XSLT w witrynie Azure Portal, musisz dodać mapę do zasobu standardowej aplikacji logiki.

Tworzenie funkcji niestandardowej

Aby utworzyć własną funkcję, której można użyć z narzędziem Maper danych, wykonaj następujące kroki:

  1. Utwórz plik XML (.xml), który ma zrozumiałą nazwę opisową przeznaczenia funkcji.

    Jeśli masz wiele powiązanych funkcji, możesz użyć jednego pliku dla tych funkcji. Chociaż można użyć dowolnej nazwy pliku, zrozumiała nazwa pliku lub kategoria ułatwia identyfikowanie, znajdowanie i odnajdywanie funkcji.

  2. W pliku XML należy użyć następującego schematu dla definicji funkcji:

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:element name="customfunctions">
          <xs:complexType>
             <xs:sequence>
                <xs:element maxOccurs="unbounded" name="function">
                   <xs:complexType>
                      <xs:sequence>
                         <xs:element maxOccurs="unbounded" name="param">
                            <xs:complexType>
                                <xs:attribute name="name" type="xs:string" use="required" />
                                <xs:attribute name="as" type="xs:string" use="required" />
                            </xs:complexType>
                         </xs:element>
                         <xs:any minOccurs="0" />
                      </xs:sequence>
                      <xs:attribute name="name" type="xs:string" use="required" />
                      <xs:attribute name="as" type="xs:string" use="required" />
                      <xs:attribute name="description" type="xs:string" use="required" />
                   </xs:complexType>
                </xs:element>
             </xs:sequence>
          </xs:complexType>
       </xs:element>
    </xs:schema>
    

    Każdy element XML o nazwie "function" implementuje funkcję stylu XSLT3.0 z kilkoma atrybutami. Lista funkcji mapowania danych zawiera nazwę funkcji, opis, nazwy parametrów i typy parametrów.

    W poniższym przykładzie przedstawiono implementację pliku SampleFunctions.xml :

    <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <customfunctions>
       <function name="age" as="xs:float" description="Returns the current age.">
          <param name="inputDate" as="xs:date"/> 
          <value-of select="round(days-from-duration(current-date() - xs:date($inputDate)) div 365.25, 1)"/>
       </function> 
       <function name="custom-if-then-else" as="xs:string" description="Evaluates the condition and returns corresponding value.">
          <param name="condition" as="xs:boolean"/>
          <param name="thenResult" as="xs:anyAtomicType"/>
          <param name="elseResult" as="xs:anyAtomicType"/>
          <choose>
             <when test="$condition">
                <value-of select="$thenResult"></value-of>
             </when>
             <otherwise>
                <value-of select="$elseResult"></value-of>
             </otherwise>
          </choose>
       </function>
    </customfunctions>
    
  3. Na komputerze lokalnym otwórz folder projektu aplikacji logiki w warstwie Standardowa.

  4. Otwórz folder Artifacts i utwórz następującą strukturę folderów, jeśli nie istnieje: Funkcje rozszerzenia>DataMapper.>

  5. W folderze Functions zapisz plik XML funkcji.

  6. Aby znaleźć funkcję niestandardową na liście funkcji narzędzia Maper danych, wyszukaj funkcję lub rozwiń kolekcję Funkcje niestandardowe.

Następne kroki