Azure Logic Apps에서 플랫 파일 인코딩 및 디코딩

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

B2B(비즈니스 대 비즈니스) 시나리오에서 비즈니스 파트너에게 XML 콘텐츠를 보내기 전에 먼저 해당 콘텐츠를 인코딩할 수 있습니다. 인코딩된 XML 콘텐츠를 받는 경우 먼저 해당 콘텐츠를 디코딩해야 합니다. Azure Logic Apps에서 논리 앱 워크플로를 빌드하는 경우 플랫 파일 기본 제공 커넥터 작업과 인코딩 및 디코딩에 대한 플랫 파일 스키마를 사용하여 플랫 파일을 인코딩 및 디코딩할 수 있습니다. 다중 테넌트 소비 논리 앱 워크플로 및 단일 테넌트 표준 논리 앱 워크플로에서 플랫 파일 작업을 사용할 수 있습니다.

사용할 수 있는 플랫 파일 트리거는 없지만 트리거 또는 작업을 사용하여 원본 XML 콘텐츠를 워크플로에 공급할 수 있습니다. 예를 들어 기본 제공 커넥터 트리거, Azure Logic Apps 또는 다른 앱에서 사용할 수 있는 관리형 커넥터 트리거 또는 Azure 호스팅 커넥터 트리거를 사용할 수 있습니다.

이 문서에서는 플랫 파일 인코딩 및 디코딩 작업을 워크플로에 추가하는 방법을 보여 줍니다.

  • 플랫 파일 인코딩 또는 디코딩 작업을 워크플로에 추가합니다.
  • 사용하려는 스키마 파일을 선택합니다.

자세한 내용은 다음 설명서를 검토하세요.

필수 조건

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

  • 플랫 파일 작업을 사용할 논리 앱 워크플로(비어 있거나 기존)

    빈 워크플로가 있는 경우 워크플로를 시작할 트리거를 사용합니다. 이 예제에서는 요청 트리거를 사용합니다.

  • 논리 앱 리소스 및 워크플로. 플랫 파일 작업에는 사용 가능한 트리거가 없으므로 워크플로에 적어도 하나의 트리거가 포함되어야 합니다. 자세한 내용은 다음 설명서를 참조하세요.

  • XML 콘텐츠를 인코딩 및 디코딩하기 위한 플랫 파일 스키마. 자세한 내용은 Azure Logic Apps를 사용하여 워크플로에서 사용할 스키마 추가를 참조하세요.

  • 사용량 또는 표준 논리 앱 워크플로에서 작업하는지 여부에 따라 통합 계정 리소스가 필요합니다. 일반적으로 엔터프라이즈 통합 및 B2B 워크플로에서 사용할 아티팩트를 정의하고 저장하려는 경우 이 리소스가 필요합니다.

    Important

    함께 작업하려면 통합 계정과 논리 앱 리소스가 모두 동일한 Azure 구독 및 Azure 지역에 있어야 합니다.

    • 사용량 논리 앱 워크플로에서 작업하는 경우 논리 앱 리소스에 통합 계정에 대한 링크가 필요합니다.

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

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

      • 플랫 파일 기본 제공 커넥터를 사용하면 이전에 논리 앱 리소스 또는 연결된 통합 계정에 업로드한 스키마를 선택할 수 있습니다. 그런 다음, 동일한 논리 앱 리소스 내의 모든 하위 워크플로에서 이 아티팩트를 사용할 수 있습니다.

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

제한 사항

  • 디코딩하려는 XML 콘텐츠는 UTF-8 형식으로 인코딩되어야 합니다.

  • 플랫 파일 스키마에서 포함된 XML 그룹에 1보다 큰 값으로 설정된 max count 속성의 수가 너무 많지 않은지 확인합니다. max count 속성이 1보다 큰 다른 XML 그룹 내부에 max count 속성 값이 1보다 큰 XML 그룹을 중첩하지 마세요.

  • Azure Logic Apps에서 플랫 파일 스키마를 구문 분석할 때와 스키마에서 다음 조각의 선택을 허용할 때마다 Azure Logic Apps는 해당 조각에 대한 기호예측을 생성합니다. 스키마가 너무 많은 구성을 허용하는 경우(예: 100,000 이상) 스키마 확장이 너무 커져 리소스와 시간이 너무 많이 소모됩니다.

스키마 업로드

스키마가 만들어지면 이제 다음 시나리오에 따라 스키마를 업로드해야 합니다.

플랫 파일 인코딩 작업 추가

  1. 아직 열려 있지 않은 경우 Azure Portal의 디자이너에서 논리 앱 워크플로를 엽니다.

  2. 워크플로에 트리거 또는 워크플로에 필요한 다른 작업이 없는 경우 먼저 해당 작업을 추가합니다. 플랫 파일 작업에는 사용할 수 있는 트리거가 없습니다.

    이 예는 HTTP 요청이 수신될 때라는 요청 트리거로 계속됩니다.

  3. 워크플로 디자이너의 플랫 파일 작업을 추가할 단계 아래에서 새 단계를 선택합니다.

  4. 작업 선택 검색 상자에서 기본 제공을 선택합니다. 검색 상자에서 플랫 파일을 입력합니다.

  5. 작업 목록에서 플랫 파일 인코딩이라는 작업을 선택합니다.

    Screenshot showing Azure portal and Consumption workflow designer with

  6. 작업의 콘텐츠 속성에서 다음 단계에 따라 인코딩하려는 트리거 또는 이전 작업의 출력을 제공합니다.

    1. 콘텐츠 상자 내부를 클릭하여 동적 콘텐츠 목록을 표시합니다.

    2. 동적 콘텐츠 목록에서 인코딩하려는 플랫 파일 콘텐츠를 선택합니다.

      이 예의 경우 동적 콘텐츠 목록의 HTTP 요청이 수신될 때에서 트리거의 본문 콘텐츠 출력을 나타내는 본문 토큰을 선택합니다.

    Screenshot showing Consumption workflow designer and

    참고 항목

    Body 속성이 동적 콘텐츠 목록에 표시되지 않으면 HTTP 요청이 수신될 때 섹션 레이블 옆에 있는 더보기를 선택합니다. 인코딩할 콘텐츠를 콘텐츠 상자에 직접 입력할 수도 있습니다.

  7. 스키마 이름 목록에서 스키마를 선택합니다.

    Screenshot showing Consumption workflow designer and opened

    참고 항목

    스키마 목록이 비어 있는 경우 논리 앱 리소스가 통합 계정에 연결되지 않았거나, 통합 계정에 스키마 파일이 포함되지 않은 것입니다.

    완료되면 작업은 다음과 비슷합니다.

    Screenshot showing Consumption workflow with finished

  8. 다른 선택적 매개 변수를 작업에 추가하려면 새 매개 변수 추가 목록에서 해당 매개 변수를 선택합니다.

    매개 변수 설명
    빈 노드 생성 모드 ForcedDisabled 또는 HonorSchemaNodeProperty 또는 ForcedEnabled 플랫 파일 인코딩으로 빈 노드 생성에 사용할 모드

    BizTalk의 경우 플랫 파일 스키마에는 빈 노드 생성을 제어하는 속성이 있습니다. 플랫 파일 스키마의 빈 노드 생성 속성 동작을 따르거나 이 설정을 사용하여 Azure Logic Apps에서 빈 노드를 생성하거나 생략하도록 할 수 있습니다. 자세한 내용은 빈 요소에 대한 태그를 참조하세요.
    XML 정규화 또는 아니요를 선택합니다. 플랫 파일 인코딩에서 XML 정규화를 사용하거나 사용하지 않도록 지정하는 설정 자세한 내용은 XmlTextReader.Normalization을 참조하세요.
  9. 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

플랫 파일 디코딩 작업 추가

  1. 아직 열려 있지 않은 경우 Azure Portal의 디자이너에서 논리 앱 워크플로를 엽니다.

  2. 워크플로에 트리거 또는 워크플로에 필요한 다른 작업이 없는 경우 먼저 해당 작업을 추가합니다. 플랫 파일 작업에는 사용할 수 있는 트리거가 없습니다.

    이 예는 HTTP 요청이 수신될 때라는 요청 트리거로 계속됩니다.

  3. 워크플로 디자이너의 플랫 파일 작업을 추가할 단계 아래에서 새 단계를 선택합니다.

  4. 작업 선택 검색 상자에서 기본 제공을 선택합니다. 검색 상자에서 플랫 파일을 입력합니다.

  5. 작업 목록에서 플랫 파일 디코딩이라는 작업을 선택합니다.

    Screenshot showing Azure portal and Consumption workflow designer with

  6. 작업의 콘텐츠 속성에서 다음 단계에 따라 디코딩하려는 트리거 또는 이전 작업의 출력을 제공합니다.

    1. 콘텐츠 상자 내부를 클릭하여 동적 콘텐츠 목록을 표시합니다.

    2. 동적 콘텐츠 목록에서 인코딩하려는 플랫 파일 콘텐츠를 선택합니다.

      이 예의 경우 동적 콘텐츠 목록의 HTTP 요청이 수신될 때에서 트리거의 본문 콘텐츠 출력을 나타내는 본문 토큰을 선택합니다.

    Screenshot showing the Consumption workflow designer and

    참고 항목

    Body 속성이 동적 콘텐츠 목록에 표시되지 않으면 HTTP 요청이 수신될 때 섹션 레이블 옆에 있는 더보기를 선택합니다. 인코딩할 콘텐츠를 콘텐츠 상자에 직접 입력할 수도 있습니다.

  7. 스키마 이름 목록에서 스키마를 선택합니다.

    Screenshot showing Consumption workflow designer and opened

    참고 항목

    스키마 목록이 비어 있는 경우 논리 앱 리소스가 통합 계정에 연결되지 않았거나, 통합 계정에 스키마 파일이 포함되지 않은 것입니다.

    완료되면 작업은 다음과 비슷합니다.

    Screenshot showing Consumption workflow with finished

  8. 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

이제 플랫 파일 디코딩 작업을 설정했습니다. 실제 앱에서는 디코딩된 데이터를 Salesforce와 같은 LOB(기간 업무) 앱에 저장할 수 있습니다. 또는 디코딩된 데이터를 거래 업체에 보낼 수도 있습니다. 디코딩 작업의 출력을 Salesforce 또는 거래 업체로 보내려면 Azure Logic Apps에서 사용할 수 있는 다른 커넥터를 사용합니다.

워크플로 테스트

  1. Postman 또는 이와 비슷한 도구와 POST 메서드를 사용하여 요청 트리거의 HTTP POST URL 속성에 표시되는 요청 트리거의 URL에 대한 호출을 보내고, 요청 본문에 인코딩하거나 디코딩하려는 XML 콘텐츠를 포함합니다.

  2. 워크플로 실행이 완료되면 워크플로의 실행 기록으로 이동하여 플랫 파일 작업의 입력 및 출력을 검사합니다.

다음 단계