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 wartości rozdzielanych 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 pliku json
  • 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łączenie do konta 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.

    Screenshot showing Visual Studio Code with Data Mapper tool, Azure window open, and selected button for Create new data map.

  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.

      Screenshot showing Visual Studio Code with Data Mapper open, new data map, and selected option for Add a source schema.

    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:

    Screenshot showing the Data Mapper open and data map with sample source and target schemas.

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

Symbol Typ Więcej informacji
Icon representing an Array data type. Tablica Zawiera elementy lub powtarzające się węzły elementów
Icon representing a Binary data type. Plik binarny
Icon representing a Bool data type. Bool Tylko prawda czy fałsz
Icon representing a Complex data type. Złożone Obiekt XML z właściwościami podrzędnymi podobny do typu JSON obiektu
Icon representing a DateTime data type. Data/godzina
Icon representing a Decimal data type. Dziesiętne
Icon representing an Integer data type. Integer tylko liczby KtoTo le
Icon representing the NULL symbol. Null (zero) Nie typ danych, ale pojawia się, gdy istnieje błąd lub nieprawidłowy typ
Icon representing a Number data type. Liczba Liczba całkowita JSON lub liczba dziesiętna
Icon representing an Object data type. Obiekt Obiekt JSON z właściwościami podrzędnymi podobny do typu złożonego XML
Icon representing a String data type. 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:

    Screenshot showing map navigation bar.

    Opcja Alternatywny gest
    Pomniejszanie Na powierzchni mapy naciśnij klawisze 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 (Icon for Show source schema.).

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 (+).

    Screenshot showing the data map and starting a mapping between EmployeeID and ID in the source and target schema, respectively.

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

    Screenshot showing the data map and ending a mapping between EmployeeID and ID in the source and target schema, respectively.

    Utworzono bezpośrednie mapowanie między obydwoma elementami.

    Screenshot showing the data map and a finished mapping between EmployeeID and ID in the source and target schema, respectively.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Screenshot showing code view with direct mapping between EmployeeID and ID in the source and target schema, respectively.

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:

Screenshot showing direct mapping between mismatching data types.

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ć:

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

Screenshot showing example function label.

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 (Icon for Show functions.).

    Screenshot showing source and target schema elements plus the selected function, Show functions.

  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.

    Screenshot showing the selected function named To 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:

    Screenshot showing the disconnected function, To date.

  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łączenie funkcji do elementów źródłowych i docelowych.

    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.

      Screenshot showing start mapping between source element and function.

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

      Screenshot showing finish mapping between function and target element.

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

    Screenshot showing Properties tab for the function, 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:

    Screenshot showing code view with direct mapping relationship between source and target elements.

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:

    Screenshot shows Visual Studio Code with elements from source and target schemas with mapping relationship and option to Insert function.

  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 (Icon for Show functions.).

    Screenshot showing source and target schema elements and the selected function named Show functions.

  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 :

    Screenshot showing the selected function named 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:

    Screenshot showing the disconnected function, 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.

    Screenshot showing multiple source data elements selected as function inputs.

  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.

    Screenshot showing finished mapping from function with multiple inputs to target element.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Screenshot showing code view with complex mapping relationship between source and target elements.

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.

    Screenshot showing the data map and drawing a connection between Name array items in the source and target arrays, Employee and Person, respectively.

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

    Screenshot showing loop mapping between the Name array items plus the source and target arrays, Employee and Person, respectively.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Screenshot showing code view with looping relationship between source and target arrays, Employee and Person, respectively.

  6. Kontynuuj mapowanie innych elementów tablicy.

    Screenshot showing continue looping mapping between other array items in source and target arrays.

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:

    Screenshot showing the data map and elements to map.

  3. W lewym górnym rogu mapy wybierz pozycję Pokaż funkcje (Icon for Show functions.).

  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łączenie elementów źródłowych, funkcji i elementów docelowych 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
    Pomnoż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:

    Screenshot showing finished condition example.

    Okno widoku kodu odzwierciedla utworzoną relację mapowania:

    Screenshot showing code view with conditional mapping between source and target elements using the functions, Greater, If, and 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 your-map-name.yml> w folderze projektu Artifacts>MapDefinitions<
  • Plik your-map-name.xslt> w folderze Project Artifacts Mapy><

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. Z menu skrótów pliku workflow.json wybierz pozycję Otwórz Projektant.

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

    Screenshot shows Visual Studio Code, Standard workflow designer, with selected action named Transform using Data Mapper XSLT and action properties.

    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ą, która opisuje przeznaczenie 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.

    Poniższy przykład przedstawia 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