다음을 통해 공유


Visual Studio Code를 사용하여 Azure Logic Apps에서 데이터를 변환하는 맵 만들기

적용 대상: Azure Logic Apps(표준)

Azure Logic Apps 워크플로에서 다양한 XML 또는 JSON 형식의 메시지를 교환하려면 데이터를 한 형식에서 다른 형식으로 변환해야 합니다. 특히 원본과 대상 스키마 구조 간에 차이가 있는 경우에는 더 그렇습니다. 데이터 변환은 이러한 격차를 해소하는 데 도움이 됩니다. 이 작업에서는 원본 스키마와 대상 스키마의 데이터 요소 간 변환을 정의하는 맵을 만들어야 합니다.

맵을 시각적으로 만들고 편집하려면 표준 논리 앱 프로젝트의 컨텍스트 내에서 Azure Logic Apps(표준) 확장에서 Visual Studio Code를 사용할 수 있습니다. 데이터 매퍼 도구는 끌어서 놓기 제스처를 사용하는 XSLT 매핑 및 변환, 미리 빌드된 식 만들기 함수 라이브러리 및 워크플로에서 만들고 사용하는 맵을 수동으로 테스트하는 방법에 대한 통합 환경을 제공합니다.

맵이 만들어지면 논리 앱 프로젝트 또는 Azure Portal의 워크플로에서 해당 맵을 직접 호출할 수 있습니다. 이 작업의 경우 워크플로에서 데이터 매퍼 XSLT를 사용하여 변환이라는 데이터 매퍼 작업 작업을 사용할 수 있습니다.

이 방법 가이드에서는 빈 데이터 맵을 만들고, 원본 및 대상 스키마를 선택하고, 스키마 요소를 선택하여 매핑을 시작하고, 다양한 매핑을 만들고, 맵을 저장 및 테스트한 다음, 논리 앱 프로젝트의 워크플로에서 맵을 호출하는 방법을 보여줍니다.

제한 사항 및 알려진 문제

  • 데이터 매퍼는 현재 Windows 운영 체제에서 실행되는 Visual Studio Code에서만 작동합니다.

  • 데이터 매퍼는 현재 Azure Portal이 아닌 Visual Studio Code에서만 사용할 수 있으며 사용량 논리 앱 프로젝트가 아닌 표준 논리 앱 프로젝트 내에서만 사용할 수 있습니다.

  • 데이터 매퍼는 현재 쉼표로 구분된 값(.csv) 파일을 지원하지 않습니다.

  • 데이터 매퍼의 코드 보기 창은 현재 읽기 전용입니다.

  • 맵 레이아웃과 항목 위치는 현재 자동이며 읽기 전용입니다.

  • 데이터 매퍼 도구를 사용하여 만든 맵을 호출하려면 데이터 매퍼 XSLT를 사용하여 변환이라는 데이터 매퍼 작업 작업만 사용할 수 있습니다. 다른 도구를 사용하여 만든 맵의 경우 XML 변환이라는 XML 작업 작업을 사용합니다.

  • 데이터 매퍼 도구를 사용하지만 Azure Portal에서 만든 맵을 사용하려면 해당 맵을 표준 논리 앱 리소스에 직접 추가해야 합니다.

필수 조건

  • 표준 논리 앱 워크플로를 만들 수 있는 Visual Studio Code 및 Azure Logic Apps(표준) 확장

    참고 항목

    이전에는 개별 확장이었던 데이터 매퍼 확장이 이제 Azure Logic Apps(표준) 확장과 병합됩니다. 충돌을 방지하기 위해 Azure Logic Apps(표준) 확장을 설치하거나 업데이트할 때 기존 버전의 데이터 매퍼 확장이 제거됩니다. 확장이 설치되거나 업데이트되면 Visual Studio Code를 다시 시작하세요.

  • 변환할 데이터 형식을 설명하는 원본 및 대상 스키마 파일. 이러한 파일은 다음 형식 중 하나일 수 있습니다.

    • .xsd 파일 확장명을 사용하는 XML 스키마 정의 파일
    • .json 파일 확장명을 사용하는 JavaScript 개체 표기법 파일
  • 하나 이상의 트리거가 있는 상태 저장 또는 상태 비저장 워크플로를 포함하는 표준 논리 앱 프로젝트. 프로젝트가 없는 경우 Visual Studio Code에서 다음 단계를 수행합니다.

    1. 아직 연결하지 않은 경우 Azure 계정에 연결합니다.

    2. 로컬 폴더, 로컬 표준 논리 앱 프로젝트, 상태 저장 또는 상태 비저장 워크플로를 만듭니다. 워크플로를 만드는 동안 현재 창에서 열기를 선택합니다.

  • 맵을 테스트하고 변환이 예상대로 작동하는지 확인하려는 경우 입력 데이터를 샘플링합니다.

  • XSLT 실행 함수를 사용하려면 XSLT 코드 조각이 .xml 또는 .xslt 파일 이름 확장명을 사용하는 파일에 있어야 합니다. XSLT 코드 조각을 로컬 프로젝트 폴더 구조(Artifacts>DataMapper>Extensions >InlineXslt)의 InlineXslt 폴더에 배치해야 합니다. 이 폴더 구조가 없으면 누락된 폴더를 만드세요.

데이터 맵 만들기

  1. Visual Studio Code의 왼쪽 메뉴에서 Azure 아이콘을 선택합니다.

  2. Azure 창의 데이터 매퍼 섹션 아래에서 새 데이터 맵 만들기를 선택합니다.

    데이터 매퍼 도구, Azure 창이 열려 있고 새 데이터 맵 만들기에 대해 선택한 단추가 있는 Visual Studio Code를 보여 주는 스크린샷

  3. 데이터 맵의 이름을 제공합니다.

  4. 다음 단계에 따라 원본 및 대상 스키마를 지정합니다.

    1. 맵 표면에서 원본 스키마 추가를 선택합니다.

      데이터 매퍼가 열려 있는 Visual Studio Code, 새 데이터 맵 및 원본 스키마 추가에 대해 선택한 옵션을 보여 주는 스크린샷

    2. 열리는 구성 창에서 새로 추가>찾아보기를 차례로 선택합니다.

    3. 원본 스키마 파일을 찾아서 선택한 다음, 추가를 선택합니다.

      원본 스키마가 열기 창에 표시되지 않으면 파일 형식 목록에서 XSD 파일(*.xsd)모든 파일(*.*)로 변경합니다.

      이제 맵 표면에 원본 스키마의 데이터 형식이 표시됩니다. 이 가이드의 예는 다음과 같습니다.

    4. 맵 표면에서 대상 스키마 추가를 선택합니다.

    5. 열리는 구성 창에서 새로 추가>찾아보기를 차례로 선택합니다.

    6. 대상 스키마 파일을 찾아서 선택한 다음, 추가를 선택합니다.

      대상 스키마가 열기 창에 표시되지 않으면 파일 형식 목록에서 XSD 파일(*.xsd)모든 파일(*.*)로 변경합니다.

      이제 맵 표면에 대상 스키마의 데이터 형식이 표시됩니다.

    또는 원본 및 대상 스키마 파일을 논리 앱 프로젝트의 Artifacts/Schemas 폴더에 로컬로 추가하여 Visual Studio Code에 표시할 수도 있습니다. 이 경우 새로 추가 대신 기존 항목 선택을 선택하여 데이터 매퍼 도구의 구성 창에서 원본 및 대상 스키마를 지정할 수 있습니다.

    완료되면 맵은 다음 예와 비슷합니다.

    샘플 원본 및 대상 스키마가 있는 데이터 매퍼 열기 및 데이터 맵을 보여 주는 스크린샷

다음 표에서는 스키마에 나타날 수 있는 가능한 데이터 형식을 설명합니다.

기호 Type 추가 정보
배열 데이터 형식을 나타내는 아이콘입니다. 배열 항목 또는 반복 항목 노드를 포함합니다.
이진 데이터 형식을 나타내는 아이콘입니다. 이진
Bool 데이터 형식을 나타내는 아이콘입니다. Bool 참 또는 거짓만
복합 데이터 형식을 나타내는 아이콘입니다. 복합 Object JSON 형식과 비슷한 자식 속성이 있는 XML 개체
DateTime 데이터 형식을 나타내는 아이콘입니다. DateTime
10진수 데이터 형식을 나타내는 아이콘입니다. 소수
정수 데이터 형식을 나타내는 아이콘입니다. 정수 정수만
NULL 기호를 나타내는 아이콘입니다. Null 데이터 형식이 아니지만, 오류 또는 잘못된 형식이 있으면 나타납니다.
숫자 데이터 형식을 나타내는 아이콘입니다. number JSON 정수 또는 10진수
개체 데이터 형식을 나타내는 아이콘입니다. Object Complex XML 형식과 비슷한 자식 속성이 있는 JSON 개체
문자열 데이터 형식을 나타내는 아이콘입니다. 문자열

맵을 탐색하려면 다음과 같은 옵션이 있습니다.

  • 이동하려면 포인터를 맵 표면 주위로 끕니다. 또는 마우스 휠을 누른 채 마우스 또는 트랙볼을 이동합니다.

  • 맵에서 한 수준 아래로 이동하면 맵의 왼쪽 아래 모서리에 다음 옵션 중에서 선택할 수 있는 탐색 모음이 나타납니다.

    지도 탐색 모음을 보여 주는 스크린샷

    옵션 대체 제스처
    축소 맵 표면에서 SHIFT 키를 누르고 두 번 선택합니다.
    또는
    마우스 휠을 사용하여 아래로 스크롤합니다.
    확대 맵 표면에서 두 번 선택합니다.
    또는
    마우스 휠을 사용하여 위로 스크롤합니다.
    크기에 맞게 없음
    미니맵 표시(숨기기) 없음
  • 맵에서 한 수준 위로 이동하려면 맵 위쪽의 이동 경로에서 이전 수준을 선택합니다.

매핑할 대상 및 원본 요소 선택

  1. 맵 표면의 오른쪽에서 시작하는 대상 스키마 영역에서 매핑하려는 대상 요소를 선택합니다. 원하는 요소가 부모 요소의 자식인 경우 먼저 부모 요소를 찾아서 확장합니다.

  2. 이제 왼쪽의 원본 스키마 영역에서 요소 선택을 선택합니다.

  3. 표시되는 원본 스키마 창에서 맵에 표시할 하나 이상의 원본 요소를 선택합니다.

    • 부모 및 직접 자식 항목을 포함하려면 부모 항목의 바로 가기 메뉴를 열고 자식 추가를 선택합니다.

    • 하위 부모를 포함하여 부모 및 해당 부모의 모든 자식을 포함하려면 최상위 부모의 바로 가기 메뉴를 열고 자식 추가(재귀)를 선택합니다.

  4. 완료되면 원본 스키마 창을 닫을 수 있습니다. 나중에 언제든지 더 많은 원본 요소를 추가할 수 있습니다. 맵의 왼쪽 위 모서리에서 원본 스키마 표시(원본 스키마 표시 아이콘)를 선택합니다.

요소 간 직접 매핑 만들기

원본 스키마와 대상 스키마에서 동일한 형식인 요소 간에 변환하려면 다음 단계를 수행합니다.

  1. 매핑을 만드는 동안 코드에서 수행되는 작업을 검토하려면 맵의 오른쪽 위 모서리에서 코드 표시를 선택합니다.

  2. 아직 선택하지 않은 경우 맵에서 대상 요소를 선택한 다음, 매핑할 원본 요소를 선택합니다.

  3. 원과 더하기 기호(+)가 모두 표시되도록 포인터를 원본 요소 위로 이동합니다.

    원본 및 대상 스키마의 EmployeeID와 ID 간의 매핑 시작 및 데이터 맵을 보여 주는 스크린샷

  4. 선이 표시되는 원에 연결되도록 선을 대상 요소로 끕니다.

    원본 스키마와 대상 스키마의 EmployeeID와 ID 간의 매핑 종료 및 데이터 맵을 보여 주는 스크린샷.

    이제 두 요소 간에 직접 매핑이 만들어졌습니다.

    원본 스키마와 대상 스키마의 EmployeeID와 ID 간의 데이터 맵 및 완성된 매핑을 보여 주는 스크린샷.

    코드 보기 창에는 방금 만든 매핑 관계가 반영됩니다.

    원본 스키마와 대상 스키마의 EmployeeID와 ID 간에 직접 매핑된 코드 보기를 보여 주는 스크린샷

참고 항목

데이터 형식이 일치하지 않는 요소 간에 매핑을 만들면 다음과 같이 대상 요소에 경고가 표시됩니다.

일치하지 않는 데이터 형식 간의 직접 매핑을 보여 주는 스크린샷

복잡한 요소 간 매핑 만들기

결합하려는 요소 또는 데이터 형식이 다른 요소와 같이 원본 스키마와 대상 스키마의 더 복잡한 요소 간 변환의 경우 하나 이상의 함수를 사용하여 해당 변환에 대한 작업을 수행할 수 있습니다.

다음 표에는 사용 가능한 함수 그룹과 사용할 수 있는 예제 함수가 나와 있습니다.

그룹 예제 함수
컬렉션 Average, Count, Direct Access, Distinct values, Filter, Index, Join, Maximum, Minimum, Reverse, Sort, Subsequence, Sum
전환 To date, To integer, To number, To string
날짜 및 시간 일 추가
논리 비교 Equal, Exists, Greater, Greater or equal, If, If else, Is nil, Is null, Is number, Is string, Less, Less or equal, 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
문자열 Code points to string, 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
Utility Copy, Error, Execute XPath, Format date-time, Format number, Run XSLT

맵에서 함수의 레이블은 다음 예와 같으며 함수 그룹에 따라 색으로 구분됩니다. 함수 이름의 왼쪽에는 해당 함수에 대한 기호가 나타납니다. 함수 이름의 오른쪽에는 함수 출력의 데이터 형식에 대한 기호가 나타납니다.

예제 함수 레이블을 보여 주는 스크린샷

매핑 관계 없이 함수 추가

이 섹션의 예에서는 원본 요소 형식을 String 형식에서 대상 요소 형식과 일치하는 DateTime 형식으로 변환합니다. 이 예에서는 단일 입력을 사용하는 To date 함수를 사용합니다.

  1. 매핑을 만드는 동안 코드에서 수행되는 작업을 검토하려면 맵의 오른쪽 위 모서리에서 코드 표시를 선택합니다.

  2. 아직 선택하지 않은 경우 맵에서 대상 요소를 선택한 다음, 매핑할 원본 요소를 선택합니다.

  3. 맵의 왼쪽 위 모서리에서 함수 표시(함수 표시 아이콘입니다.)를 선택합니다.

    원본 및 대상 스키마 요소와 선택한 함수, 함수 표시를 보여 주는 스크린샷

  4. 열리는 함수 목록에서 사용하려는 함수를 찾아서 선택합니다. 그러면 해당 함수가 맵에 추가됩니다. 함수가 맵에 표시되지 않으면 맵 표면을 축소해 보세요.

    이 예에서는 To date 함수를 선택합니다. 동일한 방식으로 사용자 지정 함수를 찾아서 선택할 수도 있습니다. 자세한 내용은 사용자 지정 함수 만들기를 참조하세요.

    To date라는 선택한 함수를 보여 주는 스크린샷.

    참고 항목

    매핑 선이 없거나 함수를 맵에 추가할 때 선택되는 경우 다음과 같이 해당 함수가 맵에 표시되지만 모든 요소 또는 다른 함수와의 연결이 끊어집니다.

    연결이 끊긴 함수 To date를 보여 주는 스크린샷.

  5. 함수 셰이프를 확장하여 함수의 세부 정보와 연결점을 표시합니다. 함수 셰이프를 확장하려면 셰이프 내부를 선택합니다.

  6. 함수를 원본 및 대상 요소에 연결합니다.

    1. 원본 요소와 함수의 왼쪽 가장자리 사이에 선을 끌어서 그립니다. 원본 요소 또는 함수에서 시작할 수 있습니다.

      원본 요소와 함수 간의 매핑 시작을 보여 주는 스크린샷

    2. 함수의 오른쪽 가장자리와 대상 요소 사이에 선을 끌어서 그립니다. 대상 요소 또는 함수에서 시작할 수 있습니다.

      함수와 대상 요소 간의 완료 매핑을 보여 주는 스크린샷

  7. 함수의 속성 탭에서 사용할 입력을 확인하거나 편집합니다.

    함수의 속성 탭을 보여 주는 스크린샷

    배열과 같은 일부 데이터 형식의 경우 변환 범위가 사용할 수 있는 것처럼 보일 수도 있습니다. 이 범위는 일반적으로 배열과 같은 직접 요소이지만, 일부 시나리오에서는 직접 요소 이외의 범위가 존재할 수도 있습니다.

    코드 보기 창에는 방금 만든 매핑 관계가 반영됩니다.

    원본 요소와 대상 요소 간의 직접 매핑 관계가 있는 코드 보기를 보여 주는 스크린샷

예를 들어 배열 항목을 반복하려면 배열 간 루프 만들기를 참조하세요. 요소 값이 조건을 충족하는 경우 작업을 수행하려면 요소 간 조건 추가를 참조하세요.

기존 매핑 관계에 함수 추가

원본 요소와 대상 요소 간에 매핑 관계가 이미 있는 경우 다음 단계에 따라 함수를 추가할 수 있습니다.

  1. 맵에서 만든 매핑에 대한 선을 선택합니다.

  2. 포인터를 선택한 선 위로 이동하고, 다음과 같이 표시되는 함수 삽입 더하기 기호(+)를 선택합니다.

    스크린샷은 매핑 관계 및 Insert 함수 옵션이 있는 원본 및 대상 스키마의 요소가 있는 Visual Studio Code를 보여줍니다.

  3. 열리는 함수 목록에서 사용하려는 함수를 찾아 선택합니다.

    함수가 맵에 나타나며 원본 요소와 대상 요소 간에 자동으로 연결됩니다.

여러 입력이 있는 함수 추가

이 섹션의 예에서는 결과를 대상 요소 형식에 매핑할 수 있도록 여러 원본 요소 형식을 연결합니다. 이 예에서는 여러 입력을 사용하는 Concat 함수를 사용합니다.

  1. 매핑을 만드는 동안 코드에서 수행되는 작업을 검토하려면 맵의 오른쪽 위 모서리에서 코드 표시를 선택합니다.

  2. 아직 선택하지 않은 경우 맵에서 대상 요소를 선택한 다음, 매핑할 원본 요소를 선택합니다.

  3. 맵의 왼쪽 위 모서리에서 함수 표시(함수 표시 아이콘입니다.)를 선택합니다.

    원본 및 대상 스키마 요소와 함수 표시라는 선택한 함수를 보여 주는 스크린샷

  4. 열리는 함수 목록에서 사용하려는 함수를 찾아서 선택합니다. 그러면 해당 함수가 맵에 추가됩니다. 함수가 맵에 표시되지 않으면 맵 표면을 축소해 보세요.

    이 예에서는 Concat 함수를 선택합니다.

    Concat이라는 선택한 함수를 보여 주는 스크린샷

    참고 항목

    매핑 선이 없거나 함수를 맵에 추가할 때 선택되는 경우 해당 함수가 맵에 표시되지만 모든 요소 또는 다른 함수와의 연결이 끊어집니다. 함수에 구성이 필요한 경우 다음과 같이 함수의 오른쪽 위 모서리에 빨간색 점이 표시됩니다.

    연결이 끊긴 함수 Concat을 보여 주는 스크린샷

  5. 함수 셰이프를 확장하여 함수의 세부 정보와 연결점을 표시합니다. 함수 셰이프를 확장하려면 셰이프 내부를 선택합니다.

  6. 함수 정보 창에 있는 속성 탭의 입력 아래에서 입력으로 사용할 원본 데이터 요소를 선택합니다.

    이 예에서는 FirstNameLastName 원본 요소를 함수 입력으로 선택하여 해당 연결을 맵에 자동으로 추가합니다.

    함수 입력으로 선택된 여러 원본 데이터 요소를 보여 주는 스크린샷

  7. 매핑을 완료하려면 함수의 오른쪽 가장자리와 대상 요소 사이에 선을 끌어서 그립니다. 대상 요소 또는 함수에서 시작할 수 있습니다.

    여러 입력이 있는 함수에서 대상 요소로의 완성된 매핑을 보여 주는 스크린샷

    코드 보기 창에는 방금 만든 매핑 관계가 반영됩니다.

    원본 요소와 대상 요소 간의 복잡한 매핑 관계가 있는 코드 보기를 보여 주는 스크린샷

배열 간 루프 만들기

원본 및 대상 스키마에 배열이 포함되는 경우 해당 배열의 항목을 반복하는 루프 매핑 관계를 만들 수 있습니다. 이 섹션의 예에서는 Employee 원본 배열과 Person 대상 배열을 반복합니다.

  1. 매핑을 만드는 동안 코드에서 수행되는 작업을 검토하려면 맵의 오른쪽 위 모서리에서 코드 표시를 선택합니다.

  2. 맵의 대상 스키마 영역에서 매핑하려는 대상 배열 요소와 대상 배열 항목 요소를 선택합니다.

  3. 맵의 대상 스키마 영역에서 대상 배열 요소 및 배열 항목을 확장합니다.

  4. 원본 스키마 영역에서 원본 배열 요소와 배열 항목 요소를 맵에 추가합니다.

  5. 원본과 대상 요소 간의 직접 매핑을 만듭니다.

    데이터 맵을 보여 주는 스크린샷과 원본 및 대상 배열의 이름 배열 항목(Employee 및 Person) 간의 연결을 각각 그립니다.

    일치하는 배열 항목 쌍 간에 매핑 관계를 처음 만들면 매핑 관계가 부모 배열 수준에서 자동으로 만들어집니다.

    이름 배열 항목과 원본 및 대상 배열, Employee 및 Person 간의 루프 매핑을 보여 주는 스크린샷.

    코드 보기 창에는 방금 만든 매핑 관계가 반영됩니다.

    원본 배열과 대상 배열, Employee 및 Person 간의 루프 관계가 각각 있는 코드 보기를 보여 주는 스크린샷.

  6. 다른 배열 요소를 계속 매핑합니다.

    원본 및 대상 배열의 다른 배열 항목 간에 계속 반복 매핑을 보여 주는 스크린샷

요소 간에 수행할 조건 및 작업 설정

조건을 평가하고 조건이 충족되면 작업을 수행하는 매핑 관계를 추가하려면 If 함수, 비교 함수(예: Greater) 및 수행할 작업(예: Multiply)과 같은 여러 함수를 사용할 수 있습니다.

이 섹션의 예에서는 다음 함수를 사용하여 구매 수량이 20개 항목을 초과하면 적용할 할인을 계산합니다.

  • Greater: 항목 수량이 20개보다 큰지 확인합니다.
  • If: Greater 함수에서 true를 반환하는지 확인합니다.
  • Multiply: 항목 가격에 10%와 항목 수량을 곱하여 할인을 계산합니다.
  1. 매핑을 만드는 동안 코드에서 수행되는 작업을 검토하려면 맵의 오른쪽 위 모서리에서 코드 표시를 선택합니다.

  2. 아직 선택하지 않은 경우 맵에서 대상 요소를 선택한 다음, 매핑할 원본 요소를 선택합니다.

    이 예에서는 다음 요소를 선택합니다.

    매핑할 데이터 맵 및 요소를 보여 주는 스크린샷

  3. 맵의 왼쪽 위 모서리에서 함수 표시(함수 표시 아이콘입니다.)를 선택합니다.

  4. Greater, IfMultiply 함수를 맵에 추가합니다.

  5. 모든 함수 셰이프를 확장하여 함수 세부 정보와 연결점을 표시합니다.

  6. 원본 요소, 함수, 대상 요소를 다음과 같이 연결합니다.

    • 원본 스키마의 ItemPrice 요소 - 대상 스키마의 ItemPrice 요소
    • 원본 스키마의 ItemQuantity 요소 - Greater 함수의 Value 필드
    • Greater 함수의 출력 - If 함수의 Condition 필드
    • 원본 스키마의 ItemPrice 요소 - Multiply 함수의 Multiplicand 0* 필드
    • Multiply 함수의 출력 - If 함수의 필드
    • If 함수의 출력 - 대상 스키마의 ItemDiscount 요소

    참고 항목

    If 함수에서 ANY라는 단어는 함수 이름의 오른쪽에 표시되어 출력 값을 모든 항목에 할당할 수 있음을 나타냅니다.

  7. 다음 함수의 속성 탭에서 다음 값을 지정합니다.

    함수 입력 매개 변수 및 값
    더 큼 - Value #1: ItemQuantity라는 원본 요소
    - Value #2: 20
    곱하기 - Multiplicand #1: ItemPrice라는 원본 요소
    - Multiplicand #2: .10
    If - Condition: is-greater-than(ItemQuantity,20)
    - Value: multiply(ItemPrice, .10)

    완성된 맵의 예는 다음과 같습니다.

    완료된 조건 예제를 보여 주는 스크린샷

    코드 보기 창에는 방금 만든 매핑 관계가 반영됩니다.

    함수, Greater, If 및 Multiply를 사용하여 소스 요소와 대상 요소 간의 조건부 매핑이 있는 코드 보기를 보여 주는 스크린샷

맵 저장

완료되면 맵 도구 모음에서 저장을 선택합니다.

Visual Studio Code에서 맵을 다음 아티팩트로 저장합니다.

  • <your-map-name>.yml 파일을 Artifacts>MapDefinitions 프로젝트 폴더에 저장
  • <your-map-name>.xslt 파일을 Artifacts>Maps 프로젝트 폴더에 저장

언제든지 XSLT 파일 생성

언제든지 <your-map-name>.xslt 파일을 생성하려면 맵 도구 모음에서 XSLT 생성을 선택합니다.

맵 테스트

변환이 예상대로 작동하는지 확인하려면 샘플 입력 데이터가 필요합니다.

  1. 맵을 테스트하려면 먼저 최신 <your-map-name>.xslt 파일을 생성해야 합니다.

  2. 맵 도구 모음에서 테스트를 선택합니다.

  3. 테스트 맵 창의 입력 창에서 샘플 입력 데이터를 붙여넣은 다음, 테스트를 선택합니다.

    테스트 창이 출력 탭으로 전환되고 테스트의 상태 코드와 응답 본문이 표시됩니다.

프로젝트의 워크플로에서 맵 호출

  1. Visual Studio Code의 왼쪽 메뉴에서 탐색기(파일 아이콘)를 선택하여 논리 앱 프로젝트 구조를 확인합니다.

  2. 워크플로 이름이 있는 폴더를 확장합니다. workflow.json 파일의 바로 가기 메뉴에서 디자이너 열기를 선택합니다.

  3. 워크플로 디자이너에서 데이터 매퍼 XSLT를 사용하여 변환이라는 데이터 매퍼 작업 기본 제공 작업을 추가하는 일반 단계를 수행합니다.

  4. 디자이너에서 데이터 매퍼 XSLT를 사용하여 변환 작업을 선택합니다.

  5. 표시되는 작업 정보 창에서 콘텐츠 값을 지정하고 맵 원본논리 앱으로 설정된 상태로 둡니다. 맵 이름 목록에서 사용하려는 맵 파일(.xslt)을 선택합니다.

    스크린샷은 데이터 매퍼 XSLT 및 작업 속성을 사용하여 Transform이라는 선택된 작업이 있는 Visual Studio Code, 표준 워크플로 디자이너를 보여줍니다.

    Azure Portal에서 동일한 데이터 매퍼 XSLT를 사용하여 변환 작업을 사용하려면 맵을 표준 논리 앱 리소스에 추가해야 합니다.

사용자 지정 함수 만들기

데이터 매퍼 도구에서 사용할 수 있는 사용자 고유의 함수를 만들려면 다음 단계를 수행합니다.

  1. 함수의 용도를 설명하는 의미 있는 이름이 있는 XML(.xml) 파일을 만듭니다.

    여러 함수가 관련되는 경우 단일 파일을 이러한 함수에 사용할 수 있습니다. 모든 파일 이름을 사용할 수 있지만 의미 있는 파일 이름 또는 범주를 사용하면 함수를 더 쉽게 식별하고, 찾고, 검색할 수 있습니다.

  2. XML 파일에서 다음 스키마를 함수 정의에 사용해야 합니다.

    <?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>
    

    "function"이라는 각 XML 요소는 몇 가지 특성을 더 사용하여 XSLT3.0 스타일 함수를 구현합니다. 데이터 매퍼 함수 목록에는 함수 이름, 설명, 매개 변수 이름 및 매개 변수 형식이 포함됩니다.

    다음 예제에서는 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. 로컬 컴퓨터에서 표준 논리 앱 프로젝트에 대한 폴더를 엽니다.

  4. Artifacts 폴더를 열고, 없는 경우 DataMapper>Extensions>Functions 폴더 구조를 만듭니다.

  5. 함수의 XML 파일을 Functions 폴더에 저장합니다.

  6. 데이터 매퍼 도구의 함수 목록에서 사용자 지정 함수를 찾으려면 해당 함수를 검색하거나 사용자 지정 함수 컬렉션을 확장합니다.

다음 단계