Azure Logic Apps를 사용하여 워크플로에서 XML 변환

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

B2B(엔터프라이즈 통합 B2B) 시나리오에서는 XML을 형식 간에 변환해야 할 수 있습니다. 논리 앱 워크플로는 XML 변환 작업 및 미리 정의된을 사용하여 XML을 변환할 수 있습니다.

예를 들어 YearMonthDay 날짜 형식(YYYYMMDD)을 사용하는 고객으로부터 B2B 주문 또는 청구서를 정기적으로 받는다고 가정합니다. 그러나 사용자의 조직은 MonthDayYear 날짜 형식(MMDDYYY)을 사용합니다. 고객 활동 데이터베이스에 주문 또는 청구서 세부 정보를 저장하기 전에 YearMonthDay 형식을 MonthDayYear 형식으로 변환하는 맵을 만들고 사용할 수 있습니다.

필수 조건

  • Azure 계정 및 구독 아직 구독이 없는 경우 Azure 체험 계정에 가입합니다.

  • 워크플로에서 필요한 경우 XML 변환 작업을 추가할 수 있도록 이미 트리거로 시작하는 논리 앱 워크플로입니다.

  • 엔터프라이즈 통합 및 B2B 워크플로에서 사용하기 위해 거래 업체, 규약, 인증서 등과 같은 아티팩트를 정의하고 저장하는 통합 계정 리소스. 이 리소스는 다음 요구 사항을 충족해야 합니다.

    • 논리 앱 리소스와 동일한 Azure 구독과 연결됩니다.

    • XML 변환 작업을 사용하려는 논리 앱 리소스와 동일한 위치 또는 Azure 지역에 있습니다.

    • 소비 논리 앱 리소스 및 워크플로에서 작업하는 경우 통합 계정에 다음 항목이 필요합니다.

    • 표준 논리 앱 리소스 및 워크플로에서 작업하는 경우 다음 시나리오에 따라 통합 계정을 논리 앱 리소스에 연결하거나, 논리 앱 리소스에 직접 맵을 업로드하거나, 둘 다 업로드할 수 있습니다.

      • 필요하거나 사용하려는 아티팩트가 있는 통합 계정이 이미 있는 경우 아티팩트를 사용하려는 여러 표준 논리 앱 리소스에 통합 계정을 연결할 수 있습니다. 이렇게 하면 각 개별 논리 앱에 맵을 업로드할 필요가 없습니다. 자세한 내용은 논리 앱 리소스를 통합 계정에 연결을 참조하세요.

      • 통합 계정이 없거나 동일한 논리 앱 리소스 내의 여러 워크플로에서 아티팩트를 사용하려는 경우 Azure Portal 또는 Visual Studio Code를 사용하여 논리 앱 리소스에 맵을 직접 추가할 수 있습니다.

        참고 항목

        기본 제공 커넥터인 Liquid를 사용하면 이전에 논리 앱 리소스 또는 연결된 통합 계정에 업로드한 맵을 선택할 수 있지만, 둘 다 선택할 수는 없습니다.

      따라서 통합 계정이 없거나 필요한 경우 업로드 옵션을 사용할 수 있습니다. 그렇지 않은 경우 연결 옵션을 사용할 수 있습니다. 어느 쪽이든 동일한 논리 앱 리소스 내의 모든 하위 워크플로에서 이러한 아티팩트를 사용할 수 있습니다.

    AS2, X12EDIFACT 작업을 사용하여 파트너, 계약 및 인증서와 같은 다른 아티팩트를 저장하려면 여전히 통합 계정이 필요합니다.

XML 변환 작업 추가

  1. Azure Portal에서 디자이너에서 표준 논리 앱 및 워크플로를 엽니다.

  2. 트리거 가 없는 빈 워크플로가 있는 경우 다음 일반 단계에 따라 원하는 트리거를 추가합니다. 그렇지 않은 경우 다음 단계를 계속 진행합니다.

    이 예제에서는 요청 트리거를 사용합니다.

  3. XML 변환 작업을 추가하려는 워크플로의 단계에서 다음 일반적인 단계에 따라 Transform XML이라는 작업을 추가합니다.

  4. 콘텐츠 상자에서 HTTP 요청에서 수신하는 XML 데이터를 사용하여 변환할 XML 콘텐츠를 지정합니다.

    1. 워크플로의 이전 작업에서 출력을 선택하려면 XML 변환 작업에서 콘텐츠 상자 내부를 클릭하고 동적 콘텐츠 목록 옵션(번개 아이콘)을 선택합니다.

    2. 동적 콘텐츠 목록에서 변환할 콘텐츠의 토큰을 선택합니다.

      Screenshot shows Standard workflow with opened dynamic content list.

      이 예에서는 트리거에서 본문 토큰을 선택합니다.

      참고 항목

      XML 콘텐츠를 선택해야 합니다. 콘텐츠가 XML이 아니거나 base64로 인코딩된 경우 콘텐츠를 처리하는 식을 지정해야 합니다. 예를 들어 식 함수를base64ToBinary() 사용하여 콘텐츠를 디코딩하거나 xml() 콘텐츠를 XML로 처리할 수 있습니다.

  5. 지도 원본 목록에서 맵을 업로드한 위치( LogicApp 리소스 또는 IntegrationAccount)를 선택합니다.

  6. 지도 목록에서 지도를 선택합니다.

  7. 완료되면 워크플로를 저장합니다.

    이제 XML 변환 작업 설정이 완료되었습니다. 실제 앱에서는 변환된 데이터를 SalesForce와 같은 LOB(기간 업무) 앱에 저장할 수 있습니다. 변환된 출력을 Salesforce로 보내려면 Salesforce 작업을 추가합니다.

  8. 변환 작업을 테스트하려면 워크플로를 트리거하고 실행합니다. 예를 들어 요청 트리거의 경우 요청을 트리거의 엔드포인트 URL로 보냅니다.

    XML 변환 작업은 워크플로가 트리거된 후, 변환에 XML 콘텐츠를 사용할 수 있을 때 실행됩니다.

고급 기능

맵에서 어셈블리 참조 또는 사용자 지정 코드 호출

XML 변환 작업은 XSLT 맵에서 사용자 지정 .NET 코드를 직접 호출할 수 있도록 맵에서 외부 어셈블리 참조를 지원합니다. 자세한 내용은 Azure Logic Apps의 워크플로에 대한 XSLT 맵 추가를 참조 하세요.

참조 확장 개체

표준 워크플로 에서 XML 변환 작업은 맵에 사용할 XML 확장 개체 지정을 지원합니다.

  1. XML 변환 작업에서 고급 매개 변수 목록을 열고 작업에 매개 변수를 추가하는 XML 확장 개체를 선택합니다.

  2. XML 확장 개체 상자에서 확장 개체를 지정합니다. 예를 들면 다음과 같습니다.

    Screenshot shows Transform XML action with XML Extension Object parameter and value.

바이트 순서 표시

기본적으로 변환의 응답은 BOM(바이트 순서 표시)으로 시작합니다. 코드 뷰 편집기에서 작업하는 경우에만 이 기능에 액세스할 수 있습니다. 이 기능을 사용하지 않도록 설정하려면 속성을 다음으로 transformOptions disableByteOrderMark설정합니다.

"Transform_XML": {
    "inputs": {
        "content": "@{triggerBody()}",
        "integrationAccount": {
            "map": {
                "name": "TestMap"
            }
        },
        "transformOptions": "disableByteOrderMark"
    },
    "runAfter": {},
    "type": "Xslt"
}

다음 단계