Share via


Azure Logic Apps에서 워크플로를 사용하여 파트너 간에 B2B 메시지 교환

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

거래 업체와 규약을 정의하는 통합 계정이 있는 경우 Azure Logic Apps를 사용하여 거래 업체 간에 메시지를 교환하는 자동화된 B2B(Business to Business) 워크플로를 만들 수 있습니다. 워크플로는 AS2, X12, EDIFACT, RosettaNet과 같은 산업 표준 프로토콜을 지원하는 커넥터를 사용할 수 있습니다. Office 365 Outlook, SQL Server, Salesforce와 같은 기타 Azure Logic Apps 커넥터에서 제공하는 작업도 포함할 수 있습니다.

이 문서에서는 요청 트리거를 사용하여 HTTP 요청을 수신하고, AS2 디코드X12 디코드 작업을 사용하여 메시지 콘텐츠를 디코드하고, 응답 작업을 사용하여 응답을 반환할 수 있는 예제 논리 앱 워크플로를 만드는 방법을 보여 줍니다. 예제에서는 Azure Portal의 워크플로 디자이너를 사용하지만 Visual Studio의 워크플로 디자이너에서도 유사한 단계를 수행할 수 있습니다.

논리 앱을 처음 접하는 경우 Azure Logic Apps란?을 검토하세요. B2B 엔터프라이즈 통합에 대한 자세한 내용은 Azure Logic Apps를 사용하는 B2B 엔터프라이즈 통합 워크플로를 참조하세요.

필수 조건

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

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

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

    • 논리 앱 리소스와 동일한 위치 또는 동일한 Azure 지역에 있습니다.

    • 논리 앱(사용량) 리소스 종류를 사용하는 경우 워크플로에서 아티팩트를 사용할 수 있도록 먼저 통합 계정이 논리 앱 리소스에 연결되어야 합니다.

    • 논리 앱(표준) 리소스 종류를 사용하는 경우에는 통합 계정이 논리 앱 리소스에 연결되지 않아도 되지만 AS2, X12 또는 EDIFACT 작업을 사용하는 것은 물론 파트너, 규약, 인증서와 같은 다른 아티팩트를 저장해야 합니다. 통합 계정은 동일한 Azure 구독을 사용하고 논리 앱 리소스와 동일한 위치에 있어야 하는 등의 다른 요구 사항을 계속 충족해야 합니다.

    참고 항목

    현재, 논리 앱(사용량) 리소스 종류만 RosettaNet 작업을 지원합니다. 논리 앱(표준) 리소스 종류에는 RosettaNet 작업이 포함되지 않습니다.

  • 통합 계정에 둘 이상의 거래 업체가 있습니다. 두 파트너에 대한 정의에서 동일한 비즈니스 ID 한정자(AS2, X12, EDIFACT 또는 RosettaNet)를 사용해야 합니다.

  • 이 워크플로에서 사용 중인 파트너에 대한 AS2 규약 및 X12 규약. 각 규약에는 호스트 거래 업체와 게스트 거래 업체가 필요합니다.

  • 요청 트리거와 다음 작업을 추가할 수 있는 빈 워크플로가 있는 논리 앱 리소스

요청 트리거 추가

이 예제의 워크플로를 시작하려면 요청 트리거를 추가합니다.

  1. Azure Portal의 워크플로 디자이너에서 논리 앱 리소스와 빈 워크플로를 엽니다.

  2. 디자이너 검색 상자에서 모두를 선택합니다(선택되지 않은 경우). 검색 상자에 when a http request를 입력합니다. HTTP 요청을 수신하는 경우라는 요청 트리거를 선택합니다.

    Screenshot showing Azure portal and multi-tenant designer with

  3. 트리거에서 요청 본문 JSON 스키마 상자는 비워 둡니다.

    트리거가 플랫 파일 형식으로 X12 메시지를 수신하기 때문입니다.

    Screenshot showing multi-tenant designer and Request trigger properties.

  4. 완료되면 디자이너 도구 모음에서 저장을 선택합니다.

    이 단계에서는 나중에 논리 앱 워크플로를 트리거하는 요청을 전송하는 데 사용하는 HTTP POST URL을 생성합니다.

    Screenshot showing multi-tenant designer and generated URL for Request trigger.

  5. 나중에 사용하기 위해 URL을 복사하고 저장합니다.

AS2 디코드 작업 추가

이제 AS2 및 X12 작업을 사용하는, 이 예제에 대한 B2B 작업을 추가합니다.

  1. 트리거 아래에서 새 단계를 선택합니다.

    요청 트리거 세부 정보를 숨기려면 트리거의 제목 표시줄을 선택합니다.

    Screenshot showing multi-tenant designer and trigger with

  2. 작업 선택 검색 상자에서 모두를 선택합니다(선택되지 않은 경우). 검색 상자에 as2를 입력하고 AS2 디코드를 선택합니다.

    Screenshot showing multi-tenant designer with the

  3. 작업의 디코드할 메시지 속성에 AS2 작업에서 디코드할 입력(요청 트리거의 body 출력)을 입력합니다. 동적 콘텐츠 목록에서 선택하거나 식으로 입력하여 다음과 같은 여러 가지 방법으로 이 콘텐츠를 작업 입력으로 지정할 수 있습니다.

    • 사용 가능한 트리거 출력을 표시하는 목록에서 선택하려면 디코딩할 메시지 상자 내부를 클릭합니다. 동적 콘텐츠 목록이 나타나면 HTTP 요청을 받은 경우 아래에서 본문 속성 값을 선택합니다. 예를 들면 다음과 같습니다.

      Screenshot showing multi-tenant designer with dynamic content list and

      트리거 출력이 표시되지 않으면 동적 속성 목록에서 HTTP 요청을 수신하는 경우 아래의 자세히 보기를 선택합니다.

    • 트리거의 body 출력을 참조하는 식을 입력하려면 디코딩할 메시지 상자 내부를 클릭합니다. 동적 콘텐츠 목록이 표시되면 을 선택합니다. 식 편집기에서 다음 식을 입력하고 확인을 선택합니다.

      triggerOutputs()['body']

      또는 디코드할 메시지 상자에 다음 식을 직접 입력합니다.

      @triggerBody()

      식은 Body 토큰으로 확인됩니다.

      Screenshot showing multi-tenant designer with resolved

  4. 작업의 메시지 헤더 속성에서 AS2 작업에 필요한 헤더를 모두 입력합니다. 요청 트리거의 headers 출력에 나와 있습니다.

    1. 트리거의 headers 출력을 참조하는 식을 입력하려면 메시지 헤더를 텍스트 모드로 전환을 선택합니다.

      Screenshot showing multi-tenant designer with

    2. 메시지 헤더 상자 내부를 클릭합니다. 동적 콘텐츠 목록이 표시되면 을 선택합니다. 식 편집기에서 다음 식을 입력하고 확인을 선택합니다.

      triggerOutputs()['Headers']

      AS2 디코드 작업에서 해당 식이 이제 토큰으로 표시됩니다.

      Screenshot showing multi-tenant designer and the

    3. 헤더 토큰으로 확인할 식 토큰을 가져오려면 디자이너와 코드 보기 간을 전환합니다. 이 단계가 완료된 후 AS2 디코드 작업은 다음 예제와 같이 표시됩니다.

      Screenshot showing multi-tenant designer and resolved headers output from trigger.

응답 작업을 메시지 수신으로 추가

메시지가 수신되었음을 거래 업체에 알리기 위해 조건 및 응답 작업을 사용하여 AS2 MDN(메시지 처리 알림)이 포함된 응답을 반환할 수 있습니다. AS2 작업 바로 뒤에 이러한 작업을 추가하면 AS2 작업이 성공할 경우 논리 앱 워크플로가 처리를 계속할 수 있습니다. AS2 작업이 실패하면 논리 앱 워크플로가 처리를 중지합니다.

  1. AS2 디코딩 작업 아래에서 새 단계를 선택합니다.

  2. 작업 선택 검색 상자에서 기본 제공를 선택합니다(아직 선택되지 않은 경우). 검색 상자에 condition를 입력합니다. 조건 작업을 선택합니다.

    Screenshot showing multi-tenant designer and the

    이제 경로를 포함하여 조건이 충족되었는지 확인하는 조건 셰이프가 나타납니다.

    Screenshot showing multi-tenant designer and the condition shape with empty paths.

  3. 이제 평가할 조건을 지정합니다. 값 선택 상자에 다음 식을 입력합니다.

    @body('AS2_Decode')?['AS2Message']?['MdnExpected']

    가운데 상자에서 비교 작업이 is equal to로 설정되었는지 확인합니다. 오른쪽 상자에 값 Expected를 입력합니다.

  4. 논리 앱 워크플로 저장 이 토큰으로 확인할 식을 가져오려면 디자이너와 코드 보기 간을 전환합니다.

    Screenshot showing multi-tenant designer and the condition shape with an operation.

  5. 이제 AS2 디코드 작업의 성공 여부에 따라 반환할 응답을 지정합니다.

    1. AS2 디코드 작업이 성공한 경우를 위해 True 셰이프에서 작업 추가를 선택합니다. 작업 선택 검색 상자에 response를 입력하고 응답을 선택합니다.

      Screenshot showing multi-tenant designer and the

    2. AS2 디코드 작업의 출력에서 AS2 MDN에 액세스하려면 다음 식을 지정합니다.

      • 응답 작업의 헤더 속성에 다음 식을 입력합니다.

        @body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']

      • 응답 작업의 본문 속성에 다음 식을 입력합니다.

        @body('AS2_Decode')?['OutgoingMdn']?['Content']

    3. 토큰으로 확인할 식을 가져오려면 디자이너와 코드 보기 간을 전환합니다.

      Screenshot showing multi-tenant designer and resolved expression to access AS2 MDN.

    4. AS2 디코드 작업이 실패한 경우를 위해 False 셰이프에서 작업 추가를 선택합니다. 작업 선택 검색 상자에 response를 입력하고 응답을 선택합니다. 원하는 상태와 오류를 반환하도록 응답 작업을 설정합니다.

  6. 논리 앱 워크플로 저장

X12 메시지 디코드 작업 추가

이제 X12 메시지 디코딩 작업을 추가합니다.

  1. 응답 작업에서 작업 추가를 선택합니다.

  2. 작업 선택 아래의 검색 상자에 x12 decode를 입력하고 X12 메시지 디코드를 선택합니다.

    Screenshot showing multi-tenant designer and the

  3. X12 작업 중에 연결 정보를 묻는 메시지가 표시되면 연결 이름을 입력하고 사용할 통합 계정을 선택한 다음, 만들기를 선택합니다.

    Screenshot showing multi-tenant designer and connection to integration account.

  4. 이제 X12 작업에 대한 입력을 지정합니다. 이 예제에서는 메시지 콘텐츠에 해당하는 AS2 작업의 출력을 사용하지만 이 콘텐츠는 JSON 개체 형식이며 base64로 인코딩됩니다. 따라서 이 콘텐츠를 문자열로 변환해야 합니다.

    디코드할 X12 플랫 파일 메시지 상자에 다음 식을 입력하여 AS2 출력을 변환합니다.

    @base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])

  5. 논리 앱 워크플로 저장 이 토큰으로 확인할 식을 가져오려면 디자이너와 코드 보기 간을 전환합니다.

    Screenshot showing multi-tenant designer and conversion from base64-encoded content to a string.

  6. 논리 앱 워크플로 저장

    이 논리 앱 워크플로에 대한 추가 단계(예: 메시지 콘텐츠를 디코드하고 해당 콘텐츠를 JSON 개체 형식으로 출력)가 필요한 경우 논리 앱 워크플로에 필요한 작업을 계속 추가합니다.

이제 B2B 논리 앱 워크플로 설정이 완료되었습니다. 실제 앱에서는 디코딩된 X12 데이터를 LOB(기간 업무) 앱 또는 데이터 스토리지에 저장하려고 할 수도 있습니다. 예를 들어 다음 설명서를 검토합니다.

자신의 LOB 앱을 연결하고 논리 앱에서 이러한 API를 사용하려면 추가 작업을 추가하거나 사용자 지정 API를 작성하면 됩니다.

다음 단계