Azure Logic Apps의 워크플로에서 SAP에 연결

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

이 여러 부분으로 구성된 방법 가이드에서는 SAP 커넥터를 사용하여 Azure Logic Apps의 워크플로에서 SAP 서버에 액세스하는 방법을 보여줍니다. SAP 커넥터의 작업을 사용하여 SAP 서버 또는 다른 시스템의 이벤트에 의해 트리거될 때 실행되는 자동화된 워크플로를 생성하고 SAP 서버에서 리소스를 관리하는 작업을 실행할 수 있습니다.

표준 및 사용량 논리 앱 워크플로는 모두 다중 테넌트 Azure에서 호스트되고 실행되는 SAP 관리형 커넥터를 제공합니다. 표준 워크플로는 단일 테넌트 Azure Logic Apps에서 호스트되고 실행되는 SAP 기본 제공 커넥터도 제공합니다. ISE(통합 서비스 환경)에서 사용량 워크플로를 만들고 호스트하는 경우 SAP 커넥터의 ISE 네이티브 버전을 사용할 수도 있습니다. 자세한 내용은 커넥터 기술 참조를 참고하세요.

SAP 호환성

SAP 커넥터는 다음과 같은 유형의 SAP 시스템과 호환됩니다.

  • S/4 HANA 같은 온-프레미스 및 클라우드 기반 HANA 기반 SAP 시스템

  • R/3 및 ECC 같은 클래식 온-프레미스 SAP 시스템

SAP에서 연결하려는 SAP 시스템 버전을 지원해야 합니다. 그렇지 않으면 발생할 수 있는 문제를 해결할 수 없습니다. SAP 시스템 버전 및 유지 관리 정보에 대한 자세한 내용은 SAP PAM(제품 가용성 매트릭스)을 검토하세요.

SAP 커넥터는 다음과 같은 SAP NetWeaver 기반 시스템의 메시지 및 데이터 통합 유형을 지원합니다.

  • IDoc(중간 문서)

  • BAPI(비즈니스 애플리케이션 프로그래밍 인터페이스)

  • RFC(원격 함수 호출) 및 tRFC(트랜잭션 RFC)

SAP 커넥터는 SAP .NET Connector(NCo) 라이브러리를 사용합니다.

SAP 커넥터 작업을 사용하려면 먼저 연결을 인증하고 다음 옵션을 사용해야 합니다.

SNC는 SAP NetWeaver SSO(Single Sign-On) 또는 외부 제품의 보안 기능에 사용할 수 있습니다. SNC를 사용하는 경우 SNC 필수 조건ISE 커넥터에 대한 SNC 필수 조건을 검토하세요.

커넥터 기술 참조

SAP 커넥터는 논리 앱 유형 및 호스트 환경에 따라 여러 버전이 있습니다.

논리 앱 환경 커넥터 버전
소비 다중 테넌트 Azure Logic Apps 디자이너에서 엔터프라이즈 레이블 아래에 표시되는 관리형 커넥터. 자세한 내용은 다음 설명서를 검토하세요.

- SAP 관리형 커넥터 참조
- Azure Logic Apps의 관리형 커넥터
소비 ISE(통합 서비스 환경) 엔터프라이즈 레이블 아래 디자이너에 표시되는 관리형 커넥터 및 ISE 레이블의 디자이너에 표시되고 관리형 커넥터와 메시지 한도가 다른 ISE 네이티브 버전

참고: 관리형 버전이 아닌 ISE 네이티브 버전을 사용해야 합니다.

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

- SAP 관리형 커넥터 참조
- ISE 메시지 제한
- Azure Logic Apps의 관리형 커넥터
Standard 단일 테넌트 Azure Logic Apps 및 App Service Environment v3(Windows 플랜만 해당) 런타임>공유 아래의 커넥터 갤러리에 표시되는 관리형 커넥터 및 런타임>앱 내의 커넥터 갤러리에 표시되고 서비스 공급자 기반인 기본 제공 커넥터. 기본 제공 커넥터는 온-프레미스 데이터 게이트웨이 없이 연결 문자열을 사용하여 Azure 가상 네트워크에 직접 액세스할 수 있습니다. 자세한 내용은 다음 설명서를 검토하세요.

- SAP 관리형 커넥터 참조
- SAP 기본 제공 커넥터 참조

- Azure Logic Apps의 관리형 커넥터
- Azure Logic Apps의 기본 제공 커넥터

커넥터 차이점

SAP 기본 제공 커넥터는 다음과 같은 점에서 SAP 관리형 커넥터 및 SAP ISE 버전 커넥터와 크게 다릅니다.

  • 온-프레미스 연결에는 온-프레미스 데이터 게이트웨이가 필요하지 않습니다.

    대신 SAP 기본 제공 커넥터는 통합 가상 네트워크의 SAP 서버와 직접 통신하므로 네트워크 게이트웨이에 대한 홉, 대기 시간, 오류 지점이 방지됩니다. 논리 앱 워크플로 애플리케이션을 사용하여 재배포할 수 없는 SAP 클라이언트 라이브러리를 업로드하거나 배포해야 합니다. 자세한 내용은 이 가이드의 필수 구성 요소를 참조하세요.

  • 최대 100MB의 페이로드 크기가 지원되므로 대규모 요청에 Blob URI를 사용할 필요가 없습니다.

  • 특정 작업은 BAPI 호출, RFC 호출, IDoc 보내기에 사용할 수 있습니다. 이러한 전용 작업은 더 나은 상태 저장 BAPI, RFC 트랜잭션, IDoc 중복 제거 환경을 제공하며 이전 SOAP WCF(Windows Communication Foundation) 메시징 모델을 사용하지 않습니다.

    BAPI 호출 작업에는 반환된 JSON과 함께 최대 2개의 응답, 즉 호출된 BAPI의 XML 응답 및 자동 커밋을 사용하는 경우 BAPI 커밋이나 BAPI 롤백 응답이 포함됩니다. 이 기능은 자동 커밋의 결과가 자동으로 실행되고 로그를 통해서만 관찰할 수 있는 SAP 관리형 커넥터 문제를 해결합니다.

  • 관리형 커넥터 및 ISE 버전 커넥터에 비해 시간 제한이 5분으로 더 깁니다.

    SAP 기본 제공 커넥터는 공유 또는 글로벌 커넥터 인프라를 사용하지 않습니다. 즉, 시간 제한은 SAP 관리형 커넥터(2분) 및 SAP ISE 버전 커넥터(4분)에 비해 5분으로 더 깁니다. 장기 실행 요청은 장기 실행 웹후크 기반 요청 작업 패턴을 구현하지 않고도 작동합니다.

  • 기본적으로 SAP 기본 제공 커넥터 작업은 상태 비정상입니다. 그러나 이러한 작업에 대해 상태 저장 모드(선호도)를 사용하도록 설정할 수 있습니다.

    상태 저장 모드에서 SAP 기본 제공 커넥터는 고가용성 및 수평 스케일 아웃 구성을 지원합니다. 이에 비해 SAP 관리형 커넥터에는 트리거의 경우 단일 인스턴스로 제한되고 작업의 경우 장애 조치(failover) 모드에서 클러스터로 제한되는 온-프레미스 데이터 게이트웨이와 관련된 제한 사항이 있습니다. 자세한 내용은 SAP 관리형 커넥터 - 알려진 문제 및 제한 사항을 참조하세요.

  • 표준 논리 앱 워크플로는 SAP NCo 3.0 버전이 아닌 SAP NCo 3.1 클라이언트 라이브러리를 사용합니다(필수). 자세한 내용은 필수 구성 요소를 참조하세요.

  • 표준 논리 앱 워크플로는 PSE(개인 보안 환경) 및 PSE 암호를 지정할 수 있는 애플리케이션 설정을 제공합니다.

    이 변경으로 인해 여러 PSE 파일을 업로드할 수 없게 됩니다. 여러 PSE 파일의 업로드는 지원되지 않으며 SAP 연결 오류가 발생하게 됩니다. 사용량 논리 앱 워크플로에서 SAP 관리형 커넥터를 사용하면 연결 매개 변수를 통해 이러한 값을 지정할 수 있습니다. 이를 통해 여러 PSE 파일을 업로드할 수 있었지만 이제 지원되지 않아 SAP 연결 오류가 발생합니다.

  • 스키마 생성 작업

    • BAPI, IDoc, RFC, tRFC와 같은 여러 작업 유형 또는 SapActionUris 매개 변수 및 파일 시스템 선택기 환경을 사용하는 SAP 관리형 커넥터의 동일한 작업 중에서 선택할 수 있습니다.

    • 매개 변수 이름을 사용자 지정 값으로 직접 제공할 수 있습니다. 예를 들어 RFC 호출 작업에서 RFC Name 매개 변수를 지정할 수 있습니다. 이에 비해 SAP 관리형 커넥터에서는 복잡한 작업 URI 매개 변수 이름을 제공해야 했습니다.

    • 기본적으로 이 작업은 SAP 관리형 커넥터에서 지원하는 단일 작업 실행에서의 RFC, BAPI 또는 IDoc에 대한 여러 스키마 생성을 지원하지 않습니다. 이제 이 기능 변경 사항으로 인해 단일 호출에서 대량의 콘텐츠를 보내려는 시도를 방지할 수 있습니다.

커넥터 매개 변수

SAP 커넥터는 간단한 문자열 및 숫자 입력과 함께 다음 테이블 매개 변수(Type=ITAB 입력)를 허용합니다.

  • 이전 SAP 릴리스에 대한 테이블 방향 매개 변수(입력 및 출력 모두)
  • 최신 SAP 릴리스의 테이블 방향 매개 변수를 대체하는 매개 변수 변경 사항
  • 계층적 테이블 매개 변수

알려진 문제 및 제한 사항

SAP 관리형 커넥터

  • 현재 SAP 커넥터는 SAP 라우터 문자열을 지원하지 않습니다. 온-프레미스 데이터 게이트웨이는 게이트웨이가 연결하려는 SAP 시스템에 직접 연결할 수 있는 가상 네트워크에 있어야 합니다.

  • 일반적으로 SAP 트리거는 데이터 게이트웨이 클러스터를 지원하지 않습니다. 일부 장애 조치(failover)에서는 SAP 시스템과 통신하는 데이터 게이트웨이 노드가 활성 노드와 달라서 예기치 않은 동작이 발생할 수 있습니다.

    • 메시지 보내기 시나리오의 경우 장애 조치(failover) 모드의 데이터 게이트웨이 클러스터가 지원됩니다.

    • 상태 저장 SAP 작업은 부하 분산 모드에서 데이터 게이트웨이 클러스터를 지원하지 않습니다. 상태 저장 통신은 동일한 데이터 게이트웨이 클러스터 노드에 유지되어야 합니다. 비클러스터 모드에서 또는 장애 조치(failover) 전용으로 설정된 클러스터에서 데이터 게이트웨이를 사용합니다. 예를 들어 이러한 작업에는 다음이 포함됩니다.

      • 세션 ID 값을 지정하는 모든 작업
      • [BAPI] 트랜잭션 커밋
      • [BAPI] 롤백 트랜잭션
      • [BAPI - RFC] 상태 저장 세션 닫기
      • [BAPI - RFC] 상태 저장 세션 만들기
  • [BAPI] SAP의 메서드 호출이라는 작업의 경우 작업에서 반환된 CallBapiResponse 개체에 하나 이상의 경고가 있는 경우 자동 커밋 기능은 BAPI 변경 사항을 커밋하지 않습니다. 경고에도 불구하고 BAPI 변경 사항을 커밋하려면 다음 단계를 수행합니다.

    1. [BAPI - RFC] 상태 저장 세션 만들기라는 작업을 사용하여 명시적으로 세션을 만듭니다.
    2. [BAPI] SAP의 메서드 호출이라는 작업에서 자동 커밋 기능을 사용하지 않도록 설정합니다.
    3. 대신 [BAPI] 트랜잭션 커밋이라는 작업을 호출합니다.

SAP 메시지 서버에 대한 IP 기반 연결(부하가 분산된 구성)

SAP 메시지 서버에 연결할 IP 주소를 지정하는 경우(예: 부하 분산 장치) "호스트 이름 SAPDBSERVER01.example.com 알 수 없음"과 유사한 오류 메시지와 함께 연결이 실패할 수 있습니다. 메시지 서버는 백 엔드 SAP 애플리케이션 서버 또는 부하 분산 장치 뒤에 있는 서버에 대한 연결에 호스트 이름을 사용하도록 SAP 커넥터에 지시합니다. DNS가 호스트 이름을 확인할 수 없으면 연결이 실패합니다.

이 문제의 경우 다음과 같은 해결 방법 또는 솔루션이 있습니다.

  • SAP 커넥터용 온-프레미스 데이터 게이트웨이가 있는 컴퓨터 또는 ISE 기반 SAP 커넥터용 ISE 커넥터 호스트와 같이 연결을 수행하는 클라이언트가 메시지 서버에서 반환된 호스트 이름을 확인할 수 있는지 확인합니다.

  • RZ11 트랜잭션에서 ms/lg_with_hostname=0으로 명명된 SAP 설정을 변경하거나 추가합니다.

문제 컨텍스트 또는 배경

SAP는 .NET 커넥터(NCo)를 버전 3.1로 업그레이드하여 커넥터가 메시지 서버에서 백엔드 서버에 대한 연결을 요청하는 방식을 변경했습니다. 이제 커넥터는 ms/lg_with_hostname=0`으로 명명된 설정을 통해 이전 API를 사용하도록 강제하지 않는 한 메시지 서버에서 애플리케이션 서버 확인을 위해 새 API를 사용합니다. 자세한 내용은 SAP KB 문서 3305039 - 로그온 그룹 로그인 중에 SMLG IP 주소 설정이 고려되지 않음을 참조하세요.

필수 조건

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

  • Azure Logic Apps에서 액세스하려는 SAP 애플리케이션 서버 또는 SAP 메시지 서버.

    • RFC 사용을 허용하도록 SAP 서버 및 사용자 계정을 설정합니다.

      지원되는 사용자 계정 유형 및 각 작업 유형(RFC, BAPI, IDoc)에 필요한 최소 권한 부여를 비롯한 자세한 내용은 SAP 참고 사항: 460089 - 외부 RFC 프로그램에 대한 최소 권한 부여 프로필을 검토하세요.

    • SAP 사용자 계정은 다음 작업을 위해 RFC_METADATA 함수 그룹 및 해당 함수 모듈에 액세스해야 합니다.

      작업 기능 모듈에 대한 액세스
      RFC 작업 RFC_GROUP_SEARCHDD_LANGU_TO_ISOLA
      BAPI 작업 BAPI_TRANSACTION_COMMIT, BAPI_TRANSACTION_ROLLBACK, RPY_BOR_TREE_INIT, SWO_QUERY_METHODSSWO_QUERY_API_METHODS
      IDoc 작업 IDOCTYPES_LIST_WITH_MESSAGES, IDOCTYPES_FOR_MESTYPE_READ, INBOUND_IDOCS_FOR_TID, OUTBOUND_IDOCS_FOR_TID, GET_STATUS_FROM_IDOCNRIDOC_RECORD_READ
      SAP 테이블 읽기 작업 RFC BBP_RFC_READ_TABLE 또는 RFC_READ_TABLE 중 하나입니다.
      SAP 연결을 위해 SAP 서버에 대한 엄격한 최소 액세스 권한 부여 RFC_METADATA_GETRFC_METADATA_GET_TIMESTAMP
  • SAP 서버에 액세스하려는 논리 앱 워크플로.

  • 기본적으로 SAP 기본 제공 커넥터 작업은 상태 비정상입니다. 상태 저장 모드에서 이러한 작업을 실행하려면 상태 비저장 기본 제공 커넥터에 대해 상태 저장 모드 사용을 참조하세요.

  • 메시지를 받는 경우라는 SAP 관리형 또는 기본 제공 커넥터 트리거를 사용하려면 다음 작업을 완료합니다.

    • SAP 게이트웨이 보안 권한 또는 ACL(액세스 제어 목록)을 설정합니다. secinforeginfo 파일을 보여 주는 게이트웨이 모니터(T-Code SMGW) 대화 상자에서 이동 메뉴를 열고 Expert 함수>외부 보안>ACL 파일 유지 관리를 선택합니다.

      다음 권한 설정이 필요합니다.

      P TP=LOGICAPP HOST=<on-premises-gateway-server-IP-address> ACCESS=*

      이 줄의 형식은 다음과 같습니다.

      P TP=<trading-partner-identifier-(program-name)-or-*-for-all-partners> HOST=<comma-separated-list-with-external-host-IP-or-network-names-that-can-register-the-program> ACCESS=<*-for-all-permissions-or-a-comma-separated-list-of-permissions>

      SAP 게이트웨이 보안 권한을 구성하지 않으면 다음 오류가 수신될 수 있습니다.

      호스트 <host-name>의 tp Microsoft.PowerBI.EnterpriseGateway의 등록이 허용되지 않음

      자세한 내용은 SAP Note 1850230 - GW: "tp <프로그램 ID> 등록이 허용되지 않음"을 검토하세요.

    • ACL(액세스 제어 목록) 문제를 찾는 데 도움이 되도록 SAP 게이트웨이 보안 로깅을 설정합니다. 자세한 내용은 게이트웨이 로깅 설정에 대한 SAP 도움말 항목을 검토하세요.

    • RFC 연결 구성(T-Code SM59) 대화 상자에서 TCP/IP 유형의 RFC 연결을 만듭니다. 활성화 유형등록된 서버 프로그램으로 설정되어 있는지 확인합니다. RFC 연결의 대상 시스템이 있는 통신 유형 값을 유니코드로 설정합니다.

    • 플랫 파일 디코딩 작업과 함께 FlatFile로 설정된 IDOC 형식 매개 변수와 함께 이 SAP 트리거를 사용하는 경우 이 값을 true로 설정하여 플랫 파일 스키마에서 early_terminate_optional_fields 속성을 사용해야 합니다.

      이 요구 사항은 tRFC 호출 IDOC_INBOUND_ASYNCHRONOUS에서 SAP가 보낸 플랫 파일 IDoc 데이터 레코드가 전체 SDATA 필드 길이로 채워지지 않기 때문에 필요합니다. Azure Logic Apps는 SAP에서 받은 대로 패딩 없이 플랫 파일 IDoc 원본 데이터를 제공합니다. 또한 이 SAP 트리거를 플랫 파일 디코딩 작업과 결합할 때 작업에 제공된 스키마가 일치해야 합니다.

    참고 항목

    사용량 및 표준 워크플로에서 메시지를 받는 경우라는 SAP 관리형 트리거는 동일한 URI 위치를 사용하여 웹후크 구독의 갱신과 구독 취소를 모두 수행합니다. 갱신 작업에는 HTTP PATCH 메서드가 사용되고, 구독 취소 작업에는 HTTP DELETE 메서드가 사용됩니다. 이 동작으로 인해 갱신 작업이 트리거 기록에 구독 취소 작업으로 표시될 수 있지만, 트리거는 DELETE가 아닌 PATCH를 HTTP 메서드로 사용하므로 작업은 여전히 갱신 작업입니다.

    표준 워크플로에서 메시지를 받는 경우라는 SAP 기본 제공 트리거는 대신 Azure Functions 트리거를 사용하며 SAP의 실제 콜백만 표시합니다.

    • WEBSITE_PRIVATE_IP: 이 환경 변수 값을 localhost 주소 127.0.0.1로 설정합니다.
    • WEBSITE_PRIVATE_PORTS: 이 환경 변수 값을 로컬 컴퓨터에서 사용 가능한 포트 2개로 설정하고 값을 쉼표(,)로 구분합니다(예: 8080,8088).
  • SAP 서버로 전송할 메시지 콘텐츠(예: 샘플 IDoc 파일). 이 콘텐츠는 XML 형식이어야 하며 사용하려는 SAP 작업의 네임스페이스를 포함해야 합니다. IDoc 파일을 XML 봉투에 래핑하여 플랫 파일 스키마를 통해 전송할 수 있습니다.

네트워크 연결 필수 구성 요소

SAP 시스템에는 SAP NCo(.NET Connector) 라이브러리의 호스트로부터의 네트워크 연결이 필요합니다.

  • 다중 테넌트 Azure Logic Apps의 사용량 논리 앱 워크플로의 경우 온-프레미스 데이터 게이트웨이가 SAP NCo(.NET Connector) 라이브러리를 호스트합니다. 온-프레미스 데이터 게이트웨이 클러스터를 사용하는 경우 클러스터의 모든 노드에는 SAP 시스템에 대한 네트워크 연결이 필요합니다.

  • 단일 테넌트 Azure Logic Apps의 표준 논리 앱 워크플로의 경우 논리 앱 리소스가 SAP NCo(.NET Connector) 라이브러리를 호스트합니다. 따라서 논리 앱 리소스 자체는 가상 네트워크 통합을 활성화해야 하며 해당 가상 네트워크는 SAP 시스템에 대한 네트워크 연결이 있어야 합니다.

  • ISE의 사용량 논리 앱 워크플로의 경우 ISE 가상 네트워크가 SAP NCo(.NET Connector) 라이브러리를 호스트합니다.

SAP 시스템에 필요한 네트워크 연결에 포함되는 서버 및 서비스는 다음과 같습니다.

  • SAP Application Server, Dispatcher 서비스(모든 로그온 유형의 경우)

    SAP 시스템에는 여러 SAP Application Server가 포함될 수 있습니다. SAP NCo(.NET Connector) 라이브러리의 호스트에는 각 서버 및 해당 서비스에 대한 액세스 권한이 필요합니다.

  • SAP Message Server, Message 서비스(로그온 유형 그룹의 경우)

    Message Server 및 서비스는 하나 이상의 Application Server의 Dispatcher 서비스로 리디렉션됩니다. SAP NCo(.NET Connector) 라이브러리의 호스트에는 각 서버 및 해당 서비스에 대한 액세스 권한이 필요합니다.

  • SAP Gateway Server, Gateway 서비스

  • SAP Gateway Server, Gateway 보안 서비스

    SAP 시스템에 필요한 네트워크 연결에는 SNC(보안 네트워크 통신)에서 사용할 이 서버 및 서비스도 포함됩니다.

Application Server, Dispatcher 서비스에서 Gateway Server, Gateway 서비스로의 요청 리디렉션은 SAP NCo(.NET Connector) 라이브러리 내에서 자동으로 발생합니다. Application Server, Dispatcher 서비스 정보만 연결 매개 변수에 제공되는 경우에도 이 리디렉션이 수행됩니다.

SAP 시스템 앞에서 부하 분산 장치를 사용하는 경우 모든 서비스를 해당 서버로 리디렉션해야 합니다. SAP 서비스 및 포트에 대한 자세한 내용은 모든 SAP 제품의 TCP/IP 포트를 검토하세요.

참고 항목

SAP NCo(.NET Connector) 라이브러리 호스트에서의 네트워크 연결을 활성화하고 방화벽 및 네트워크 보안 그룹에서 필요한 포트가 열려 있는지 확인합니다. 그렇지 않으면 NI(네트워크 인터페이스) 구성 요소에서 파트너에 도달하지 못함과 같은 오류가 발생하고 WSAECONNREFUSED: 연결이 거부됨과 같은 오류 텍스트가 표시됩니다.

SAP NCo 클라이언트 라이브러리 필수 구성 요소

SAP 커넥터를 사용하려면 Microsoft .NET 3.1용 SAP Connector NCo 클라이언트 라이브러리를 설치해야 합니다. 다음 목록에서는 SAP 커넥터를 사용하는 워크플로를 기반으로 SAP NCo 클라이언트 라이브러리의 필수 구성 요소를 설명합니다.

  • 버전:

    • 온-프레미스 데이터 게이트웨이를 사용하는 사용량 논리 앱 워크플로의 경우 최신 64비트 버전의 Microsoft .NET 3.1.3.0용 SAP 커넥터 - Windows 64비트(x64)를 설치해야 합니다. 데이터 게이트웨이는 64비트 시스템에서만 실행됩니다. 지원되지 않는 32비트 버전을 설치하면 "잘못된 이미지" 오류가 발생합니다.

    • 표준 논리 앱 워크플로의 경우 .NET Framework 4.6.2로 컴파일된 Microsoft .NET 3.1.3.0용 SAP 커넥터(NCo 3.1)의 최신 64비트 또는 32비트 버전을 설치할 수 있습니다. 그러나 표준 논리 앱 리소스의 구성과 일치하는 버전을 설치해야 합니다. 논리 앱에서 사용하는 버전을 확인하려면 다음 단계를 수행합니다.

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

      2. 논리 앱 리소스 메뉴의 설정에서 구성을 선택합니다.

      3. 구성 페이지에서 일반 설정 탭을 선택합니다. 플랫폼 설정에서 플랫폼 값이 64비트 또는 32비트로 설정되어 있는지 확인합니다.

      4. 플랫폼 구성과 일치하는 .NET Framework 4.6.2로 컴파일된 Microsoft .NET 3.1.3.0용 SAP 커넥터(NCo 3.1) 버전을 설치해야 합니다.

  • 다음과 같이 시나리오에 따라 클라이언트 라이브러리의 기본 설치 폴더에서 어셈블리(.dll) 파일을 다른 위치로 복사합니다. 또는 필요에 따라 SAP 관리형 커넥터만 사용하는 경우 SAP NCo 클라이언트 라이브러리를 설치할 때 전역 어셈블리 캐시 등록을 선택합니다. ISE zip 보관 및 SAP 기본 제공 커넥터는 현재 GAC 등록을 지원하지 않습니다.

    • 다중 테넌트 Azure Logic Apps에서 실행되고 온-프레미스 데이터 게이트웨이를 사용하는 사용량 워크플로의 경우 다음 어셈블리(.dll) 파일을 온-프레미스 데이터 게이트웨이 설치 폴더에 복사합니다(예: C:\Program Files\On-Premises Data Gateway). SAP NCo 3.0 클라이언트 라이브러리에는 다음 어셈블리가 포함되어 있습니다.

      • libicudecnumber.dll
      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

      어셈블리 파일을 데이터 게이트웨이의 설치 폴더에 복사해야 합니다. 그렇지 않으면 SAP 연결이 계정 정보 및/또는 권한을 확인하고 다시 시도하세요.라는 오류 메시지와 함께 실패할 수 있습니다. .NET 어셈블리 바인딩 로그 뷰어를 사용하여 추가 문제를 해결할 수 있습니다. 이 도구를 사용하여 어셈블리 파일이 올바른 위치에 있는지 확인할 수 있습니다.

    • 표준 워크플로의 경우 다음 어셈블리(.dll) 파일을 각각 Azure Portal에서 또는 Visual Studio Code에서 로컬로 워크플로를 빌드하는 논리 앱 리소스 또는 프로젝트에 업로드할 수 있는 위치에 복사합니다. SAP NCo 3.1 클라이언트 라이브러리에는 다음 어셈블리가 포함됩니다.

      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll
    • ISE의 사용량 워크플로의 경우 대신 ISE 필수 구성 요소를 따르세요.

SAP NCo 클라이언트 라이브러리, .NET Framework, .NET 런타임, 데이터 게이트웨이 간에는 다음 관계가 존재합니다.

  • Microsoft SAP 어댑터와 게이트웨이 호스트 서비스는 둘 다 .NET Framework 4.7.2를 사용합니다.

  • SAP NCo for .NET Framework 4.0은 .NET 런타임 4.0~4.8을 사용하는 프로세스에서 작동합니다.

  • SAP NCo for .NET Framework 2.0은 .NET 런타임 2.0~3.5를 사용하는 프로세스에서 작동하지만, 최신 게이트웨이에서는 더 이상 작동하지 않습니다.

SNC 필수 구성 요소

온-프레미스 데이터 게이트웨이 및 선택적으로 SNC를 사용하는 다중 테넌트 Azure Logic Apps의 사용량 워크플로의 경우 다음 설정도 구성해야 합니다.

  • SNC 라이브러리 버전 및 해당 종속성이 SAP 환경과 호환되는지 확인합니다. 라이브러리 호환성 문제를 해결하기 위해 온-프레미스 데이터 게이트웨이 및 데이터 게이트웨이 로그를 사용할 수 있습니다.

  • SAP NCo 3.0 클라이언트 라이브러리의 다음 어셈블리(.dll) 파일을 온-프레미스 데이터 게이트웨이의 설치 폴더에 복사했는지 확인합니다(예: C:\Program Files\On-Premises Data Gateway).

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • SAPGENPSE 유틸리티의 경우 sapgenpse.exe를 사용해야 합니다.

  • PSE(개인 보안 환경)에 연결을 제공하는 경우 온-프레미스 데이터 게이트웨이에 대한 PSE 및 SECUDIR을 복사하고 설정할 필요가 없습니다.

  • sapseculib, Kerberos 또는 NTLM과 같은 외부 보안 제품을 통해 SNC를 활성화하는 경우 SNC 라이브러리가 데이터 게이트웨이를 설치한 것과 동일한 컴퓨터에 있는지 확인합니다. 이 작업의 경우 로컬 컴퓨터에서 데이터 게이트웨이를 설치한 곳과 동일한 폴더에 SNC 라이브러리의 이진 파일을 복사합니다(예: C:\Program Files\On-Premises Data Gateway).

    참고 항목

    데이터 게이트웨이 설치 및 SNC 라이브러리가 있는 컴퓨터에서 SNC_LIBSNC_LIB_64에 대한 환경 변수를 설정하지 마세요. 설정하면 해당 변수가 커넥터를 통해 전달되는 SNC 라이브러리 값보다 우선적으로 적용됩니다.

  • SNC에 SSO(Single Sign-On)를 사용하려면 데이터 게이트웨이 서비스가 SAP 사용자에 매핑된 사용자로 실행되고 있는지 확인합니다. 게이트웨이 서비스 계정의 기본 계정을 변경하려면 계정 변경을 선택하고 사용자 자격 증명을 입력합니다.

    게이트웨이 서비스 계정 변경 버튼이 선택된 온-프레미스 데이터 게이트웨이 설치 프로그램 및 서비스 설정 페이지를 보여주는 스크린샷.

SNC를 활성화하는 방법에 대한 자세한 내용은 SNC(보안 네트워크 통신) 사용을 검토하세요.

Azure Logic Apps 환경 필수 구성 요소

다중 테넌트 Azure Logic Apps의 사용량 워크플로의 경우 SAP 관리형 커넥터는 온-프레미스 데이터 게이트웨이를 통해 SAP 시스템과 통합됩니다. 예를 들어 워크플로에서 SAP 시스템에 메시지를 보내는 시나리오에서 데이터 게이트웨이는 RFC 클라이언트 역할을 하며 워크플로에서 받은 요청을 SAP로 전달합니다. 마찬가지로 워크플로가 SAP에서 메시지를 받는 시나리오에서 데이터 게이트웨이는 SAP에서 요청을 수신하고 워크플로에 전달하는 RFC 서버 역할을 합니다.

  1. 연결하는 SAP 시스템과 동일한 가상 네트워크에 있는 호스트 컴퓨터 또는 가상 머신에 온-프레미스 데이터 게이트웨이를 다운로드하여 설치합니다.

    게이트웨이는 온-프레미스 데이터 및 리소스에 안전하게 액세스하는 데 도움이 됩니다. 지원되는 버전의 게이트웨이를 사용해야 합니다. 게이트웨이에 문제가 발생하면 최신 버전으로 업그레이드합니다. 문제를 해결하는 업데이트가 포함되어 있을 수 있습니다.

  2. Azure Portal에서 온-프레미스 데이터 게이트웨이 설치를 위한 Azure 게이트웨이 리소스를 만듭니다.

  3. 온-프레미스 데이터 게이트웨이 설치 위치와 동일한 로컬 컴퓨터에서 최신 SAP NCo 클라이언트 라이브러리를 다운로드하여 설치합니다.

  4. 온-프레미스 데이터 게이트웨이 설치 위치인 호스트 컴퓨터에 대해 네트워크 호스트 이름 및 서비스 이름 확인을 구성합니다.

    • 호스트 이름 또는 서비스 이름을 Azure Logic Apps의 연결에 사용하려면 서비스와 함께 각 SAP 애플리케이션, 메시지 및 게이트웨이 서버에 대한 이름 확인을 설정해야 합니다.

      • 온프레미스 데이터 게이트웨이 설치를 위해 호스트 컴퓨터에 사용할 수 있는 DNS 서버 또는 %windir%\System32\drivers\etc\hosts 파일에서 네트워크 호스트 이름 확인을 설정합니다.

      • %windir%\System32\drivers\etc\services 파일에서 서비스 이름 확인을 설정합니다.

    • 네트워크 호스트 이름 또는 서비스 이름을 연결에 사용하지 않으려면 호스트 IP 주소와 서비스 포트 번호를 대신 사용할 수 있습니다.

    • SAP 시스템에 대한 DNS 항목이 없는 경우 다음 예제에서는 호스트 파일에 대한 샘플 항목을 보여 줍니다.

      10.0.1.9           sapserver                   # SAP single-instance system host IP by simple computer name
      10.0.1.9           sapserver.contoso.com       # SAP single-instance system host IP by fully qualified DNS name
      

      다음 목록은 서비스 파일에 대한 항목의 샘플 집합입니다.

      sapdp00            3200/tcp              # SAP system instance 00 dialog (application) service port
      sapgw00            3300/tcp              # SAP system instance 00 gateway service port
      sapmsDV6           3601/tcp              # SAP system ID DV6 message service port
      

SNC(보안 네트워크 통신) 사용

다중 테넌트 Azure Logic Apps에서 실행되는 사용량 워크플로의 경우 인증에 SNC를 사용할 수 있으며 이는 데이터 게이트웨이를 사용할 때만 적용됩니다. 시작하기 전에 필요한 모든 필수 구성 요소SNC 필수 구성 요소를 충족했는지 확인합니다.

  1. Azure Portal에서 디자이너를 통해 사용량 논리 앱 및 워크플로를 엽니다.

  2. SAP 관리형 커넥터 작업을 추가하거나 편집합니다.

  3. SAP 연결 정보 상자에서 다음 필수 정보를 제공합니다. 선택하는 인증 유형에 따라 사용 가능한 옵션이 달라집니다.

    사용량에 대한 SAP 연결 설정을 보여주는 스크린샷.

    참고 항목

    SAP 사용자 이름SAP 암호 필드는 선택 사항입니다. 사용자 이름과 암호를 제공하지 않으면 커넥터는 이후 단계에서 인증을 위해 제공된 클라이언트 인증서를 사용합니다.

  4. SNC를 사용하도록 설정하려면 SAP 연결 정보 상자에 다음 필수 정보를 대신 제공합니다.

    사용량에서 SNC가 활성화된 SAP 연결 설정을 보여주는 스크린샷.

    매개 변수 설명
    SNC 사용 확인란을 선택합니다.
    SNC 라이브러리 다음 값 중 하나를 입력합니다.

    - SNC 라이브러리의 이름(예: sapsnc.dll)
    - NCo 설치 위치의 상대 경로(예: .\security\sapsnc.dll)
    - NCo 설치 위치의 절대 경로(예: c:\security\sapsnc.dll)
    SNC SSO SNC ID를 사용하여 로그온 또는 RFC 수준에서 제공된 사용자 이름/암호를 사용하여 로그온을 선택합니다.

    일반적으로 SNC ID는 호출자를 인증하는 데 사용됩니다. 대신 사용자 이름 및 암호를 사용하여 인증하도록 선택할 수 있지만 이 매개 변수 값은 여전히 암호화됩니다.
    SNC 내 이름 대부분의 경우 이 값을 생략할 수 있습니다. 설치된 SNC 솔루션은 일반적으로 자체 SNC 이름을 알고 있습니다. 솔루션이 여러 ID를 지원하는 경우 이 특정 대상 또는 서버에 사용할 ID를 지정해야 할 수 있습니다.
    SNC 파트너 이름 백 엔드 SNC의 이름(예: p:CN=DV3, OU=LA, O=MS, C=US)을 입력합니다.
    SNC 보호 품질 이 특정 대상 또는 서버와의 SNC 통신에 사용할 서비스 품질을 선택합니다. 기본값은 백 엔드 시스템에서 정의합니다. 최대값은 SNC에 사용되는 보안 제품에 의해 정의됩니다.
    SNC 인증서 SAP에 클라이언트를 식별하는 데 사용할 인증서의 base64로 인코딩된 공개 키를 입력합니다.

    참고: - PEM 헤더나 바닥글을 포함하지 마세요.

    - 여기에 클라이언트 인증서의 프라이빗 키를 입력하지 마세요. PSE(개인 보안 환경)에는 이 인증서에 대해 일치하는 프라이빗 키가 포함되어야 하며 다른 프라이빗 인증서가 포함될 수 있습니다. 자세한 내용은 다음 매개 변수를 검토하세요.
    PSE SNC PSE(개인 보안 환경)를 base64로 인코딩된 이진으로 입력합니다.

    - 지문이 SNC 인증서 매개 변수의 클라이언트 인증서에 대한 공개 키와 일치하는 클라이언트 인증서에 대한 프라이빗 키가 PSE에 포함되어야 합니다.

    - PSE에 여러 클라이언트 인증서가 포함될 수도 있지만 다른 클라이언트 인증서를 사용하려면 대신 별도의 워크플로를 만듭니다.

    - 표준 논리 앱 리소스에 대해 둘 이상의 SNC 클라이언트 인증서를 사용하는 경우 모든 연결에 동일한 PSE를 제공해야 합니다. PSE는 모든 연결 각각에 클라이언트 인증서에 대해 일치하는 프라이빗 키를 포함해야 합니다. 각 연결에 대한 특정 프라이빗 인증서와 일치하도록 SNC 인증서 매개 변수를 설정해야 합니다.
  5. 연결 만들기를 완료하려면 만들기를 선택합니다.

    매개 변수가 정확하면 연결이 만들어집니다. 매개 변수에 문제가 있는 경우 연결 만들기 대화 상자에 오류 메시지가 표시됩니다. 연결 매개 변수 문제를 해결하기 위해 온-프레미스 데이터 게이트웨이 설치 및 게이트웨이의 로컬 로그를 사용할 수 있습니다.

이진 PSE 파일을 base64로 인코딩된 형식으로 변환합니다.

  1. PowerShell 스크립트를 사용합니다. 예를 들어 다음과 같습니다.

    Param ([Parameter(Mandatory=$true)][string]$psePath, [string]$base64OutputPath)
    $base64String = [convert]::ToBase64String((Get-Content -path $psePath -Encoding byte))
    if ($base64OutputPath -eq $null)
    {
        Write-Output $base64String
    }
    else
    {
        Set-Content -Path $base64OutputPath -Value $base64String
        Write-Output "Output written to $base64OutputPath"
    } 
    
  2. 스크립트를 pseConvert.ps1 파일로 저장한 다음, 스크립트를 호출합니다. 예를 들면 다음과 같습니다.

    .\pseConvert.ps1 -psePath "C:\Temp\SECUDIR\request.pse" -base64OutputPath "connectionInput.txt"
    Output written to connectionInput.txt 
    

    출력 경로 매개 변수를 제공하지 않으면 콘솔에 대한 스크립트 출력에 줄 바꿈이 포함됩니다. 연결 입력 매개 변수에 대해 base64로 인코딩된 문자열의 줄 바꿈을 제거합니다.

SAP에서 워크플로로 IDoc 보내기 설정 및 테스트

논리 앱 워크플로에서 SAP 구성을 테스트하는 경우에만 이 단계를 수행합니다. 프로덕션 환경은 추가 구성이 필요합니다.

SAP에서 워크플로로 IDoc를 보내려면 다음과 같은 최소 구성이 필요합니다.

  1. RFC 대상을 만듭니다.
  2. ABAP 연결을 만듭니다.
  3. 수신 포트 만들기
  4. 송신 포트 만들기
  5. 논리 시스템 파트너 만들기
  6. 파트너 프로필 만들기
  7. 메시지 보내기 테스트

RFC 대상 만들기

이 대상은 논리 앱 워크플로를 수신 포트로 식별합니다.

  1. SAP에서 RFC 연결 구성 설정을 엽니다. /n 접두사를 사용해 sm59 트랜잭션 코드(T-Code)를 사용할 수 있습니다.

  2. TCP/IP 연결>만들기를 선택합니다.

  3. 다음 설정을 사용하여 새 RFC 대상을 만듭니다.

    1. RFC 대상에 이름을 입력합니다.

    2. 기술 설정 탭의 정품 인증 유형에서 등록된 서버 프로그램을 선택합니다.

    3. 프로그램 ID에 값을 입력합니다. SAP 서버에서 워크플로의 트리거는 이 식별자를 사용하여 등록됩니다.

      Important

      SAP 프로그램 ID는 대/소문자를 구분합니다. 워크플로와 SAP 서버를 구성할 때 프로그램 ID에 동일한 대/소문자 형식을 일관되게 사용해야 합니다. 그렇지 않으면 SAP에 IDoc를 보내려고 할 때 tRFC 모니터(T-코드 SM58)에서 다음과 같은 오류가 발생할 수 있습니다.

      • 함수 IDOC_INBOUND_ASYNCHRONOUS 찾을 수 없음
      • ABAP RFC가 아닌 클라이언트(파트너 유형)는 지원되지 않음

      SAP에 대한 자세한 내용은 다음 참고 사항을 검토하세요(로그인 필요).

    4. 유니코드 탭에서 대상 시스템과 통신 형식으로 유니코드를 선택합니다.

      참고 항목

      SAP .NET 클라이언트 라이브러리는 유니코드 문자 인코딩만 지원합니다. SAP에서 Azure Logic Apps로 IDoc을 보낼 때 ABAP RFC가 아닌 클라이언트(파트너 유형)는 지원되지 않음 오류가 발생하면 대상 시스템과의 통신 유형 값이 유니코드로 설정되어 있는지 확인하세요.

  4. 변경 내용을 저장합니다.

  5. 메시지가 수신될 때라는 SAP 관리형 트리거로 시작하는 논리 앱 워크플로를 만들어 Azure Logic Apps에 새 프로그램 ID를 등록합니다.

    이렇게 하면 워크플로를 저장할 때 Azure Logic Apps가 SAP 게이트웨이에 프로그램 ID를 등록합니다.

  6. 워크플로의 트리거 기록, 온-프레미스 데이터 게이트웨이 SAP 어댑터 로그(해당하는 경우) 및 SAP 게이트웨이 추적 로그에서 등록 상태를 확인합니다.

    SAP 게이트웨이 모니터 상자(T-Code SMGW)의 로그온 클라이언트 아래에 새 등록이 등록된 서버로 표시됩니다.

  7. 연결을 테스트하려면 새 RFC 대상에서 연결 테스트를 선택합니다.

ABAP 연결 만들기

이 대상은 SAP 시스템을 송신 포트로 식별합니다.

  1. SAP에서 RFC 연결 구성 설정을 엽니다. /n 접두사를 사용해 sm59 트랜잭션 코드(T-Code)를 사용할 수 있습니다.

  2. ABAP 연결>만들기를 선택합니다.

  3. RFC 대상에 테스트 SAP 시스템의 식별자를 입력합니다.

  4. 기술 설정에서 대상 호스트를 비워 두고 SAP 시스템에 대한 로컬 연결을 만듭니다.

  5. 변경 내용을 저장합니다.

  6. 연결을 테스트하려면 연결 테스트를 선택합니다.

수신 포트 만들기

  1. SAP에서 IDOC 처리 포트 설정을 엽니다. /n 접두사를 사용해 we21 트랜잭션 코드(T-Code)를 사용할 수 있습니다.

  2. 포트>트랜잭션 RFC>만들기를 선택합니다.

  3. 열리는 설정 상자에서 자체 포트 이름을 선택합니다. 테스트 포트의 이름을 입력합니다. 변경 내용을 저장합니다.

  4. 새 수신 포트의 설정에서 테스트 RFC 대상의 식별자를 RFC 대상으로 입력합니다.

  5. 변경 내용을 저장합니다.

송신 포트 만들기

  1. SAP에서 IDOC 처리 포트 설정을 엽니다. /n 접두사를 사용해 we21 트랜잭션 코드(T-Code)를 사용할 수 있습니다.

  2. 포트>트랜잭션 RFC>만들기를 선택합니다.

  3. 열리는 설정 상자에서 자체 포트 이름을 선택합니다.

  4. SAP로 시작하는 테스트 포트의 이름 입력합니다. 변경 내용을 저장합니다.

    모든 송신 포트 이름은 SAP로 시작해야 합니다(예: SAPTEST).

  5. 새 수신 포트의 설정에서 ABAP 연결의 식별자를 RFC 대상으로 입력합니다.

  6. 변경 내용을 저장합니다.

논리 시스템 파트너 만들기

  1. SAP에서 변경 보기 "논리 시스템": 개요 설정을 엽니다. bd54 트랜잭션 코드(T-Code)를 사용할 수 있습니다.

  2. 표시되는 주의: 테이블이 교차 클라이언트입니다 경고 메시지를 수락합니다.

  3. 기존 논리 시스템을 표시하는 목록 위에서 새 항목을 선택합니다.

  4. 새 논리 시스템에 대해 Log.System 식별자와 짧은 이름 설명을 입력합니다. 변경 내용을 저장합니다.

  5. 워크벤치 프롬프트가 표시되면 설명을 입력하여 새 요청을 만들거나, 요청을 이미 만든 경우 이 단계를 건너뜁니다.

  6. 워크벤치 요청을 만든 후에는 해당 요청을 테이블 업데이트 요청에 연결합니다. 테이블이 업데이트되었는지 확인하려면 변경 내용을 저장합니다.

파트너 프로필 만들기

프로덕션 환경에서는 두 개의 파트너 프로필을 만들어야 합니다. 첫 번째 프로필은 발신자(조직 및 SAP 시스템)용입니다. 두 번째 프로필은 수신자(논리 앱 리소스 및 워크플로)용입니다.

  1. SAP에서 파트너 프로필 설정을 엽니다. /n 접두사를 사용해 we20 트랜잭션 코드(T-Code)를 사용할 수 있습니다.

  2. 파트너 프로필에서 파트너 유형 LS>만들기를 선택합니다.

  3. 다음 설정을 사용하여 새 파트너 프로필을 만듭니다.

    설정 설명
    파트너 번호 논리 시스템 파트너의 식별자를 입력합니다.
    파트너 Type LS를 입력합니다.
    에이전트 Azure Logic Apps 또는 다른 비SAP 시스템의 프로그램 식별자를 등록할 때 사용할 SAP 사용자 계정의 식별자를 입력합니다.
  4. 변경 내용을 저장합니다.

    논리 시스템 파트너를 만들지 않은 경우 올바른 파트너 번호를 입력하세요 오류가 발생합니다.

  5. 파트너 프로필 설정의 아웃바운드 매개 변수에서 아웃바운드 매개 변수 만들기를 선택합니다.

  6. 다음 설정을 사용하여 새 아웃바운드 매개 변수를 만듭니다.

  7. 변경 내용을 저장합니다.

메시지 보내기 테스트

  1. SAP에서 IDoc 처리용 테스트 도구 설정을 엽니다. /n 접두사를 사용해 we19 트랜잭션 코드(T-Code)를 사용할 수 있습니다.

  2. 테스트용 템플릿에서 메시지 유형을 통해를 선택합니다. 메시지 유형을 입력합니다(예: CREMAS). 만들기를 실행합니다.

  3. 계속을 선택하여 Which IDoc type?(어떤 IDoc 유형입니까?) 메시지를 확인합니다.

  4. EDIDC 노드를 선택합니다. 수신 포트 및 송신 포트의 적절한 값을 입력합니다. 계속을 선택합니다.

  5. 표준 아웃바운드 처리를 선택합니다.

  6. 아웃바운드 IDoc 처리를 시작하려면 계속을 선택합니다.

    도구가 처리를 완료하면 IDoc를0 SAP 시스템 또는 외부 프로그램으로 보냈습니다. 메시지가 표시됩니다.

  7. 처리 오류를 확인하려면 /n 접두사와 함께 sm58 트랜잭션 코드(T-코드)를 사용합니다.

일반적인 SAP 시나리오에 대한 워크플로 만들기

일반적인 SAP 통합 워크로드에 대한 워크플로를 만드는 방법 가이드는 다음 단계를 참조하세요.

고급 SAP 시나리오를 위한 워크플로 만들기

확장 오류 로그 찾기(관리형 커넥터만 해당)

SAP 관리형 커넥터를 사용하는 경우 SAP 어댑터의 확장 로그를 확인하여 전체 오류 메시지를 찾을 수 있습니다. SAP 커넥터에 확장 로그 파일을 사용하도록 설정할 수도 있습니다.

  • 2020년 4월 이전에 출시된 온-프레미스 데이터 게이트웨이 릴리스에서는 기본적으로 로그가 사용되지 않습니다.

  • 2020년 6월 이후에 출시된 온-프레미스 데이터 게이트웨이 릴리스의 경우 앱 설정에서 게이트웨이 로그를 사용하도록 설정할 수 있습니다.

    • 기본 로깅 수준은 경고입니다.

    • 온-프레미스 데이터 게이트웨이 앱의 진단 설정에서 추가 로깅을 사용하도록 설정하면 로깅 수준이 정보로 높아집니다.

    • 로깅 수준을 자세히로 상향하려면 구성 파일에서 다음 설정을 업데이트합니다. 일반적으로 구성 파일은 C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config에 있습니다.

      <setting name="SapTraceLevel" serializeAs="String">
         <value>Verbose</value>
      </setting>
      

온-프레미스 데이터 게이트웨이에서 확장된 SAP 로깅 설정(관리형 커넥터만 해당)

Azure Logic Apps에 온-프레미스 데이터 게이트웨이를 사용하는 경우 SAP 커넥터에 대한 확장 로그 파일을 구성할 수 있습니다. 온-프레미스 데이터 게이트웨이를 사용하여 ETW(Windows용 이벤트 추적) 이벤트를 게이트웨이의 로깅 .zip 파일에 포함된 순환 로그 파일로 리디렉션할 수 있습니다.

게이트웨이 앱의 설정에서 게이트웨이의 모든 구성 및 서비스 로그를 .zip 파일로 내보낼 수 있습니다.

참고 항목

확장 로깅을 항상 활성화하면 워크플로의 성능에 영향을 미칠 수 있습니다. 가장 좋은 방법은 문제를 분석하고 해결한 후에는 확장 로그 파일을 사용하지 않는 것입니다.

ETW 이벤트 캡처

선택적 고급 로깅 작업으로 ETW 이벤트를 직접 캡처한 다음 Event Hubs의 Azure Diagnostics 데이터를 사용하거나 Azure Monitor 로그에 데이터를 수집할 수 있습니다. 자세한 내용은 데이터 수집 및 저장 모범 사례를 검토하세요.

결과 ETL 파일 작업을 하려면 PerfView를 사용하거나 자체 프로그램을 작성할 수 있습니다. 다음 연습에서는 PerfView를 사용합니다.

  1. PerfView 메뉴에서 수집>수집을 차례로 선택하여 이벤트를 캡처합니다.

  2. 추가 공급자 매개 변수에 *Microsoft-LobAdapter를 입력하여 SAP 어댑터 이벤트를 캡처할 SAP 공급자를 지정합니다. 이 정보를 지정하지 않으면 추적에 일반 ETW 이벤트만 포함됩니다.

  3. 다른 기본 설정은 유지합니다. 원한다면 데이터 파일 매개 변수에서 파일 이름이나 위치를 변경할 수 있습니다.

  4. 수집 시작을 선택하여 추적을 시작합니다.

  5. 문제를 재현하거나 분석 데이터를 충분히 수집한 다음, 수집 중지를 선택합니다.

  6. Azure 지원 엔지니어와 같은 다른 사람과 데이터를 공유하려면 ETL 파일을 압축합니다.

  7. 추적의 내용을 보려면 다음을 수행합니다.

    1. PerfView에서 파일>열기를 차례로 선택하고, 방금 생성한 ETL 파일을 선택합니다.

    2. PerfView 사이드바의 ETL 파일 아래에서 이벤트 섹션을 선택합니다.

    3. 필터에서 Microsoft-LobAdapter로 필터링하여 관련 이벤트 및 게이트웨이 프로세스만 표시합니다.

워크플로 테스트

다중 테넌트 Azure Logic Apps에 사용량 워크플로가 있는지 또는 단일 테넌트 Azure Logic Apps에 표준 워크플로가 있는지 여부에 따라 해당하는 단계를 따릅니다.

  1. 사용량 논리 앱 리소스가 이미 활성화되어 있지 않은 경우 논리 앱 메뉴에서 개요를 선택합니다. 도구 모음에서 사용을 선택합니다.

  2. 디자이너 도구 모음에서 트리거 실행>실행을 선택하여 워크플로를 수동으로 시작합니다.

  3. 워크플로를 트리거하기 위해 SAP 시스템에서 메시지를 보냅니다.

  4. 논리 앱의 개요 창으로 돌아갑니다. 실행 기록 아래에서 워크플로에 대한 새 실행을 찾습니다.

  5. 수동 실행이 표시된 가장 최근 실행을 엽니다. 트리거 출력 섹션을 찾아서 검토합니다.

SAP 클라이언트 라이브러리(NCo) 로깅 및 추적 사용(기본 제공 커넥터만 해당)

이 구성 요소의 문제를 조사해야 하는 경우 SAP 또는 Microsoft 지원에서 요청할 수 있는 사용자 지정 텍스트 파일 기반 NCo 추적을 설정할 수 있습니다. 이 추적을 사용하도록 설정하면 성능에 부정적인 영향이 미치고 애플리케이션 호스트의 스토리지 공간을 빠르게 소모할 수 있으므로 이 기능은 기본적으로 비활성화됩니다.

다음 설정을 추가하여 애플리케이션 수준에서 이 추적 기능을 제어할 수 있습니다.

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

  2. 논리 앱 메뉴의 설정아래에서 환경 변수 선택하여 애플리케이션 설정을 검토합니다.

  3. 환경 변수 페이지의 앱 설정 탭에서 다음 애플리케이션 설정을 추가합니다.

    • SAP_RFC_TRACE_DIRECTORY: NCo 추적 파일을 저장할 디렉터리입니다(예: C:\home\LogFiles\NCo).

    • SAP_RFC_TRACE_LEVEL: 일반적인 자세한 정보 로깅을 위한 추천 값이 Level4인 NCo 추적 수준입니다. SAP 또는 Microsoft 지원에서 다른 추적 수준을 설정하도록 요청할 수 있습니다.

      참고 항목

      런타임 버전 1.69.0 이상을 사용하는 표준 논리 앱 워크플로의 경우 각 추적 수준을 쉼표(,)로 구분하여 여러 추적 수준에 대한 로깅을 사용하도록 설정할 수 있습니다.

      워크플로의 런타임 버전을 찾으려면 다음 단계를 따릅니다.

      1. Azure Portal의 워크플로 메뉴에서 개요를 선택합니다.
      2. Essentials 섹션에서 런타임 버전 속성을 찾습니다.
    • SAP_CPIC_TRACE_LEVEL: 일반적인 자세한 로깅에 대해 제안된 값으로 Verbose를 사용하는 CPI-C(Common Programing Interface for Communication) 추적 수준입니다. SAP 또는 Microsoft 지원에서 다른 추적 수준을 설정하도록 요청할 수 있습니다.

    애플리케이션 설정을 추가하는 방법에 대한 자세한 내용은 표준 논리 앱 워크플로에 대한 호스트 및 앱 설정 편집을 참조하세요.

  4. 변경 내용을 저장합니다. 이 단계에서는 애플리케이션을 다시 시작합니다.

사용 가능한 추적 수준

NCo 추적 수준

설명
Level1 원격 함수 호출을 추적하는 수준입니다.
Level2 원격 함수 호출 및 공용 API 메서드 호출을 추적하는 수준입니다.
Level3 원격 함수 호출, 공용 API 메서드 호출, 내부 API 메서드 호출을 추적하는 수준입니다.
Level4 원격 함수 호출, 공용 API 메서드 호출, 내부 API 메서드 호출, RFC 프로토콜에 대한 16진수 덤프, 네트워크 관련 정보를 추적하는 수준입니다.
잠금 스레드가 개체에 대한 잠금을 요청, 획득, 해제하는 시기를 표시하는 데이터를 추적 파일에 씁니다.
메타데이터 각 호출에 대한 원격 함수 호출과 관련된 메타데이터를 추적합니다.
없음 모든 추적 출력을 표시하지 않는 수준입니다.
ParameterData 각 원격 함수 호출 중에 보내고 받은 컨테이너 데이터를 추적합니다.
성능 성능 문제를 분석하는 데 도움이 될 수 있는 데이터를 추적 파일에 씁니다.
PublicAPI getter, setter 또는 관련 메서드를 제외하고 대부분의 공용 API 메서드를 추적합니다.
InternalAPI getter, setter 또는 관련 메서드를 제외하고 대부분의 내부 API 메서드를 추적합니다.
RemoteFunctionCall 원격 함수 호출을 추적합니다.
RfcData 각 원격 함수 호출 중에 보내고 받은 바이트를 추적합니다.
SessionProvider 현재 사용되는 ISessionProvider 구현의 모든 메서드를 추적합니다.
SetValue 함수의 매개 변수나 구조체 또는 테이블의 필드에 대해 설정된 값과 관련하여 정보를 추적 파일에 씁니다.

CPIC 추적 수준

Description
끄기 로깅 없음
기본 기본 로깅
자세한 정보 표시 자세한 정보 로깅
VerboseWithData 모든 서버 응답 덤프를 포함한 자세한 로깅

추적 보기

  1. 표준 논리 앱 리소스 메뉴의 개발 도구에서 고급 도구>Go를 선택합니다.

  2. Kudu 도구 모음에서 디버그 콘솔>CMD를 선택합니다.

  3. $SAP_RFC_TRACE_DIRECTORY라는 애플리케이션 설정의 폴더로 이동합니다.

    이전에 설정한 애플리케이션 설정 값 C:\home\LogFiles\NCo에 대해 NCo라는 새 폴더 또는 사용한 폴더 이름이 나타납니다.

  4. 다음이 포함된 $SAP_RFC_TRACE_DIRECTORY 폴더를 엽니다.

    • NCo 추적 로그: dev_nco_rfc.log라는 파일, nco_rfc_NNNN.log라는 하나 이상의 파일, nco_rfc_NNNN.trc라는 하나 이상의 파일, 여기서 NNNN은 스레드 식별자입니다.

    • CPIC 추적 로그: NNNN이 스레드 식별자인 nco_cpic_NNNN.trc 파일이라는 하나 이상의 파일입니다.

  5. 로그 또는 추적 파일의 내용을 보려면 파일 옆에 있는 편집 단추를 선택합니다.

    참고 항목

    논리 앱 워크플로에서 열었고 현재 사용 중인 로그 또는 추적 파일을 다운로드하면 다운로드 완료 시 빈 파일이 발생할 수 있습니다.

온-프레미스 데이터 게이트웨이에 대한 SAP 원격 분석을 Azure Application Insights에 보내기

온-프레미스 데이터 게이트웨이에 대한 2021년 8월 업데이트를 통해 SAP 커넥터 작업이 SAP NCo 클라이언트 라이브러리의 원격 분석 데이터와 Microsoft SAP 어댑터의 추적을 Azure Monitor의 한 기능인 Application Insights로 전송할 수 있습니다. 이 원격 분석에는 주로 다음 데이터가 포함됩니다.

  • SAP NCo 메트릭 및 모니터를 기반으로 하는 메트릭 및 추적

  • Microsoft SAP 어댑터의 추적

SAP NCo 클라이언트 라이브러리의 메트릭 및 추적

SAP NCo 기반 메트릭은 온-프레미스 데이터 게이트웨이의 리소스 사용 현황 및 가용성에 따라 경시적으로 변동할 수 있는 숫자 값입니다. 이러한 메트릭을 사용하여 시스템 상태를 보다 잘 이해하고 다음과 같은 작업에 대한 경고를 만들 수 있습니다.

  • 시스템 상태 저하
  • 비정상적인 이벤트
  • 과도한 시스템 부하

이 정보는 customMetrics라는 Application Insights 테이블로 전송됩니다. 기본적으로 메트릭은 30초 간격으로 전송됩니다.

SAP NCo 기반 추적에는 메트릭과 함께 사용되는 텍스트 정보가 포함됩니다. 이 정보는 traces라는 Application Insights 테이블로 전송됩니다. 기본적으로 추적은 10분 간격으로 전송됩니다.

SAP NCo 메트릭 및 추적은 SAP NCo 메트릭, 특히 다음과 같은 NCo 클래스를 기반으로 합니다.

  • RfcDestinationMonitor.
  • RfcConnectionMonitor.
  • RfcServerMonitor.
  • RfcRepositoryMonitor.

각 클래스에서 제공하는 메트릭에 대한 자세한 내용은 SAP NCo 설명서(로그인 필요)를 참조하세요.

Application Insights에 대한 SAP 원격 분석​ 설정

게이트웨이 설치에 대한 SAP 원격 분석을 Application Insights에 보내려면 먼저 Application Insights 리소스를 만들고 설정해야 합니다. 자세한 내용은 다음 설명서를 검토하세요.

SAP 원격 분석을 Application insights로 보내도록 설정하려면 다음 단계를 수행합니다.

  1. 다음 위치에서 Microsoft.ApplicationInsights.EventSourceListener.dll의 NuGet 패키지를 다운로드합니다. https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.

  2. 다운로드한 파일을 온-프레미스 데이터 게이트웨이 설치 디렉터리에 추가합니다(예: C:\Program Files\On-Premises Data Gateway).

  3. 온-프레미스 데이터 게이트웨이 설치 디렉터리에서 Microsoft.ApplicationInsights.dll 파일의 버전 번호가 추가한 Microsoft.ApplicationInsights.EventSourceListener.dll 파일과 동일한지 확인합니다. 게이트웨이는 현재 2.14.0 버전을 사용합니다.

  4. ApplicationInsights.config 파일에서 <InstrumentationKey></InstrumentationKey> 요소를 사용하여 줄을 주석 처리하여 Application Insights 계측 키를 추가합니다. 자리 표시자 your-Application-Insights-instrumentation-key를 사용자의 키로 바꿉니다. 예를 들면 다음과 같습니다.

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights schemaVersion="2014-05-30" xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
       <!-- Uncomment this element and insert your Application Insights key to receive ETW telemetry about your gateway <InstrumentationKey>*your-instrumentation-key-placeholder*</InstrumentationKey> -->
       <TelemetryModules>
          <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
             <IsHeartbeatEnabled>false</IsHeartbeatEnabled>
          </Add>
          <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
             <Sources>
                <Add Name="Microsoft-LobAdapter" Level="Verbose" />
             </Sources>
          </Add>
       </TelemetryModules>
    </ApplicationInsights>
    
  5. ApplicationInsights.config 파일에서 요구 사항에 따라 SAP 커넥터 작업에 필요한 추적 Level 값을 변경할 수 있습니다. 예를 들면 다음과 같습니다.

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
       <Sources>
          <Add Name="Microsoft-LobAdapter" Level="Verbose" />
       </Sources>
    </Add>
    

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

  6. 변경 내용을 적용한 후 온-프레미스 데이터 게이트웨이 서비스를 다시 시작합니다.

Application Insights에서 메트릭 검토

논리 앱 워크플로에서 SAP 작업을 실행한 후 Application Insights로 전송된 원격 분석을 검토할 수 있습니다.

  1. Azure Portal에서 Application Insights 리소스를 엽니다.

  2. 리소스 메뉴의 모니터링에서 로그를 선택합니다.

    다음 스크린샷은 Application Insights가 로그 창에 열려 있는 Azure Portal을 보여 줍니다.

    Application Insights가 쿼리를 만들기 위해

  3. 로그 창에서 특정 요구 사항에 따라 KQL(Kusto Query Language)을 사용하여 쿼리를 만들 수 있습니다.

    다음 예제 쿼리와 유사한 쿼리 패턴을 사용할 수 있습니다.

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. 쿼리를 실행한 후 결과를 검토합니다.

    다음 스크린샷은 예제 쿼리의 메트릭 결과 테이블을 보여 줍니다.

    Application Insights의 메트릭 결과 테이블을 보여 주는 스크린샷.

    • MaxUsedCountSAP NCo 설명서(로그인 필요)에서 설명한 대로 "모니터링 대상에서 동시에 사용한 클라이언트 연결의 최대 수"입니다. 이 값을 사용하여 동시에 열린 연결 수를 파악할 수 있습니다.

    • 메트릭이 30초 간격으로 생성되므로 valueCount 열의 각 읽기에 2가 표시됩니다. Application Insights는 이러한 메트릭을 분 단위로 집계합니다.

    • DestinationName 열에는 Microsoft SAP 어댑터 내부 이름인 문자열이 포함됩니다.

      이 RFC(원격 함수 호출) 대상을 보다 잘 이해하려면 이 값을 traces와 함께 사용합니다. 예를 들면 다음과 같습니다.

      customMetrics
      | extend DestinationName = tostring(customDimensions["DestinationName"])
      | join kind=inner (traces
         | extend DestinationName = tostring(customDimensions["DestinationName"]),
         AppServerHost = tostring(customDimensions["AppServerHost"]),
         SncMode = tostring(customDimensions["SncMode"]),
         SapClient = tostring(customDimensions["Client"])
         | where customDimensions contains "RfcDestinationMonitor"
         )
         on DestinationName , $left.DestinationName == $right.DestinationName
      | where customDimensions contains "RfcDestinationMonitor"
      | where name contains "MaxUsedCount"
      | project AppServerHost, SncMode, SapClient, name, valueCount, valueSum, valueMin, valueMax
      

Application Insights에서 이러한 기능을 사용하여 메트릭 차트 또는 경고를 만들 수도 있습니다. 예를 들면 다음과 같습니다.

Application Insights의 차트 형식 결과를 보여 주는 스크린샷.

Microsoft SAP 어댑터의 추적

Microsoft SAP 어댑터에서 전송된 추적을 사용하여 문제 사후 분석을 수행하고 SAP 커넥터 작업에서 노출될 수도 있고 노출되지 않을 수도 있는 기존 내부 시스템 오류를 찾을 수 있습니다. 이러한 추적은 Application Insights 이전의 이벤트 소스 프레임워크에서 발생하므로 message"n\a"로 설정됩니다. 예를 들면 다음과 같습니다.

traces
| where message == "n/a"
| where severityLevel > 0
| extend ActivityId = tostring(customDimensions["ActivityId"])
| extend fullMessage = tostring(customDimensions["fullMessage"])
| extend shortMessage = tostring(customDimensions["shortMessage"])
| where ActivityId contains "8ad5952b-371e-4d80-b355-34e28df9b5d1"

다음 스크린샷은 예제 쿼리의 추적 결과 테이블을 보여 줍니다.

Application Insights의 추적 결과 테이블을 보여 주는 스크린샷.

다음 단계