다음을 통해 공유


Azure Logic Apps의 워크플로에 대한 플랫 파일의 XML 콘텐츠 인코딩 및 디코딩

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

B2B(Business-to-Business) 통합에서 거래 업체와 XML 콘텐츠를 교환하는 경우 콘텐츠를 보내기 전에 종종 인코딩해야 합니다. 인코딩된 XML 콘텐츠를 받으면 먼저 해당 콘텐츠를 디코딩해야 사용할 수 있습니다.

이 가이드에서는 플랫 파일 기본 제공 커넥터 작업 및 플랫 파일 스키마를 사용하여 워크플로에서 XML을 인코딩하고 디코딩하는 방법을 보여 줍니다.

커넥터 기술 참조

플랫 파일 인코딩 및 디코딩 작업은 소비 논리 앱 워크플로 및 표준 논리 앱 워크플로에 사용할 수 있습니다.

논리 앱 환경
Consumption 다중 테넌트 Azure Logic Apps
스탠다드 싱글 테넌트 Azure Logic Apps, App Service Environment v3 (Windows 플랜만 해당) 및 하이브리드 배포

자세한 내용은 통합 계정 기본 제공 커넥터를 참조하세요.

필수 구성 요소

  • Azure 계정 및 구독 무료 Azure 계정을 가져옵니다.

  • 플랫 파일 작업을 사용하려는 논리 앱 리소스 및 워크플로입니다.

    플랫 파일 작업에는 트리거가 포함되지 않습니다. 워크플로는 트리거로 시작하거나 모든 작업을 사용하여 원본 XML을 가져올 수 있습니다.

    이 문서의 예제에서는 HTTP 요청을 받을 때라는 요청 트리거를 사용합니다.

    자세한 내용은 다음을 참조하세요.

  • 엔터프라이즈 통합 및 B2B 워크플로에 대한 아티팩트를 정의하고 저장하는 통합 계정 리소스 입니다.

    • 통합 계정과 논리 앱 리소스는 모두 동일한 Azure 구독 및 Azure 지역에 있어야 합니다.

    • 플랫 파일 작업을 시작하기 전에 소비 논리 앱을 연결하거나 표준 논리 앱을 통합 계정에 연결하여 거래 업체 및 계약과 같은 아티팩트 작업을 수행해야 합니다. 통합 계정을 여러 소비 또는 표준 논리 앱 리소스에 연결하여 동일한 아티팩트를 공유할 수 있습니다.

    팁 (조언)

    표준 워크플로에서 거래 업체 및 계약과 같은 B2B 아티팩트를 사용하지 않는 경우 통합 계정이 필요하지 않을 수 있습니다. 대신 표준 논리 앱 리소스에 스키마를 직접 업로드할 수 있습니다. 어느 쪽이든 동일한 논리 앱 리소스의 모든 자식 워크플로에서 동일한 스키마를 사용할 수 있습니다. 여러 논리 앱 리소스에서 동일한 스키마를 사용하려면 통합 계정을 사용하고 연결해야 합니다.

  • XML 콘텐츠를 인코딩하거나 디코딩하는 방법을 지정하는 플랫 파일 스키마입니다.

    표준 워크플로에서 플랫 파일 작업을 사용하면 연결된 통합 계정 또는 이전에 논리 앱에 업로드한 스키마를 선택할 수 있지만 둘 다 선택할 수는 없습니다.

    자세한 내용은 통합 계정에 스키마 추가를 참조하세요.

  • 솔루션을 테스트하려면 HTTP 요청을 보낼 수 있는 도구를 설치하거나 사용하세요. 예를 들어:

    주의

    자격 증명, 비밀, 액세스 토큰, API 키 및 기타 유사한 정보와 같은 중요한 데이터가 있는 시나리오의 경우 필요한 보안 기능으로 데이터를 보호하는 도구를 사용해야 합니다. 이 도구는 오프라인 또는 로컬로 작동하며 온라인 계정에 로그인하거나 데이터를 클라우드에 동기화할 필요가 없습니다. 이러한 특성을 가진 도구를 사용하면 중요한 데이터를 대중에게 노출할 위험을 줄일 수 있습니다.

제한 사항

  • 디코딩하려는 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. 작업의 Content 매개 변수에서 다음 단계에 따라 트리거 또는 이전 작업의 출력인 인코딩할 XML 콘텐츠를 제공합니다.

    1. 콘텐츠 상자 내부를 선택한 다음 번개 아이콘을 선택하여 동적 콘텐츠 목록을 엽니다.

    2. 동적 콘텐츠 목록에서 인코딩할 XML 콘텐츠를 선택합니다.

    다음 예제에서는 열린 동적 콘텐츠 목록, HTTP 요청을 수신할 때 의 출력 및 트리거 출력에서 선택한 본문 콘텐츠를 보여 줍니다.

    스크린샷은 Azure 포털, 워크플로 디자이너, 플랫 파일 인코딩 작업 및 콘텐츠 매개 변수를 보여 주며, 인코딩을 위해 동적 콘텐츠 목록과 선택된 콘텐츠가 표시됩니다.

    참고

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

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

    스크린샷은 인코딩을 위해 선택한 스키마가 있는 디자이너 및 열린 스키마 이름 목록을 보여줍니다.

    참고

    스키마 목록이 비어 있으면 원인은 다음과 같습니다.

    • 논리 앱 리소스는 통합 계정에 연결되지 않습니다.
    • 연결된 통합 계정에는 스키마 파일이 없습니다.
    • 논리 앱 리소스에는 스키마 파일이 없습니다. 이러한 이유는 표준 논리 앱에만 적용됩니다.
  6. 작업에 다른 선택적 매개 변수를 추가하려면 고급 매개 변수 목록에서 해당 매개 변수 를 선택합니다.

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

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

플랫 파일 디코딩 작업 추가

  1. Azure Portal에서 논리 앱 리소스를 엽니다.

  2. 디자이너에서 워크플로를 엽니다.

    워크플로에 트리거 또는 워크플로에 필요한 다른 작업이 없는 경우 먼저 해당 작업을 추가합니다.

    이 예제에서는 HTTP 요청을 받을 때라는 요청 트리거를 사용합니다. 트리거를 추가하려면 워크플로를 시작하는 트리거 추가를 참조하세요.

  3. 디자이너에서 다음 일반 단계에 따라 플랫 파일 디코딩이라는 기본 제공 작업을 추가합니다.

  4. 작업의 Content 매개 변수에서 다음 단계를 수행하여 트리거 또는 이전 작업의 출력으로 디코딩할 XML 콘텐츠를 제공합니다.

    1. 콘텐츠 상자 내부를 선택한 다음 번개 아이콘을 선택하여 동적 콘텐츠 목록을 엽니다.

    2. 동적 콘텐츠 목록에서 디코딩할 XML 콘텐츠를 선택합니다.

    다음 예제에서는 열린 동적 콘텐츠 목록, HTTP 요청을 수신할 때 의 출력 및 트리거 출력에서 선택한 본문 콘텐츠를 보여 줍니다.

    스크린샷은 동적 콘텐츠 목록 및 디코딩을 위해 선택된 콘텐츠가 있는 Azure Portal, 워크플로 디자이너, 플랫 파일 디코딩 작업 및 콘텐츠 매개 변수를 보여줍니다.

    참고

    동적 콘텐츠 목록에 본문이 표시되지 않으면 HTTP 요청이 수신되는 경우 섹션 레이블 옆의 자세히 보기를 선택합니다. 콘텐츠 상자에 직접 디코딩할 콘텐츠를 입력할 수도 있습니다.

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

    스크린샷은 디코딩을 위해 선택한 스키마가 있는 디자이너 및 열린 스키마 이름 목록을 보여줍니다.

    참고

    스키마 목록이 비어 있으면 원인은 다음과 같습니다.

    • 논리 앱 리소스는 통합 계정에 연결되지 않습니다.
    • 연결된 통합 계정에는 스키마 파일이 없습니다.
    • 논리 앱 리소스에는 스키마 파일이 없습니다. 이러한 이유는 표준 논리 앱에만 적용됩니다.
  6. 워크플로를 저장합니다. 디자이너 도구 모음에서 저장을 선택합니다.

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

워크플로 테스트

워크플로를 트리거하려면 다음 단계를 따르세요:

  1. 요청 트리거에서 HTTP POST URL 매개 변수를 찾고 URL을 복사합니다.

  2. HTTP 요청 도구를 열고, 해당 지침에 따라 복사한 URL로 요청 트리거가 예상하는 메서드를 포함하는 HTTP 요청을 보내세요.

    이 예제는 URL과 함께 POST 메서드를 사용합니다.

  3. 인코딩 또는 디코딩하려는 XML 콘텐츠를 요청 본문에 포함하세요.

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