다음을 통해 공유


SAP 어댑터의 작동 문제 해결

이 섹션에서는 문제 해결 기술을 사용하여 mySAP Business Suite용 Microsoft BizTalk Adapter를 사용할 때 발생할 수 있는 운영 오류를 resolve 설명합니다.

추적 사용 설정

SAP 어댑터의 추적 지원에 대한 자세한 내용은 SAP 어댑 터에 대한 진단 추적 및 메시지 로깅을 참조하세요.

바인딩 로드 오류

문제

어댑터 서비스 추가 참조 Visual Studio 플러그 인에서 어댑터 서비스 BizTalk 프로젝트 추가 기능 사용을 시작하려고 하면 GUI에서 다음 오류가 발생합니다.

There was an error loading the binding, <binding name>, from your system configuration.
ConfigurationErrorsException: Exception has been thrown by the target of an invocation.

원인

어댑터 서비스 참조 플러그 인 추가 또는 어댑터 서비스 추가 기능 사용을 시작하면 WCF(Windows Communication Foundation)는 설치된 모든 어댑터에 대한 어댑터 바인딩을 로드합니다. 그러면 어댑터 바인딩은 엔터프라이즈 애플리케이션의 특정 클라이언트 소프트웨어에 따라 달라집니다. 다음 이유 중 하나 또는 둘 다에 대해 이 문제가 발생할 수 있습니다.

  • 필요한 LOB 클라이언트 소프트웨어는 어댑터를 설치한 컴퓨터에 설치되어 있지 않습니다.

  • BizTalk 어댑터 팩에 포함된 모든 어댑터를 설치하는 어댑터의 일반 또는 전체 설치를 수행했습니다. 그러나 LOB 클라이언트 라이브러리는 하나의 엔터프라이즈 애플리케이션에 대해서만 설치될 수 있습니다. 결과적으로 GUI는 다른 어댑터에 대한 바인딩을 로드하지 못합니다.

    해결 방법

  • 필요한 어댑터만 설치하려면 어댑터의 사용자 지정 설치를 수행해야 합니다.

  • BizTalk 어댑터 팩을 설치한 컴퓨터에 필요한 LOB 클라이언트 버전이 설치되어 있는지 확인합니다. 지원되는 LOB 시스템에 는 지원되는 버전이 나열됩니다. BizTalk 어댑터 팩에는 SAP 시스템과 인터페이스하기 위해 특정 DLL이 필요합니다. 어댑터에 필요한 DLL에 대한 자세한 내용은 SAP용 데이터 공급자에 대한 사용자 지정 RFC 설치를 참조하세요.

BizTalk 관리 콘솔에 SAP 어댑터가 없습니다.

문제

BizTalk 어댑터 팩에 포함된 SAP 어댑터는 BizTalk Server 관리 콘솔의 어댑터 목록에 표시되지 않습니다.

원인

SAP 어댑터는 WCF 사용자 지정 바인딩입니다. 따라서 BizTalk Server 관리 콘솔에 WCF-Custom 어댑터가 표시되지만 WCF 사용자 지정 바인딩이 표시되지 않으므로 WCF 기반 SAP 어댑터가 표시되지 않습니다.

해결 방법

SAP 어댑터를 BizTalk Server 관리 콘솔에 추가에 설명된 단계에 따라 SAP 어댑터를 BizTalk Server 관리 콘솔에 명시적으로 추가할 수 있습니다.

DLL에 SAP에 대한 연결을 여는 동안 오류가 발생했습니다.

문제

SAP 어댑터를 사용하여 SAP 시스템에 대한 연결을 열려고 하면 SAP 시스템에 일부 DLL이 없음을 알리는 대화 상자가 나타납니다.

원인

SAP 어댑터는 librfc32u.dll 사용하여 SAP 시스템과의 연결을 설정합니다. librfc32u.dll 작동하려면 DLL 집합이 필요합니다. 이러한 지원 DLL이 SAP 어댑터가 설치된 컴퓨터의 PATH 변수에 추가되지 않으면 이 오류가 발생합니다.

해결 방법

어댑터 바인딩 로드 오류 문제에 대한 해결 방법으로 제공된 테이블을 참조하세요. 이 표에는 SAP 어댑터를 사용하여 SAP 시스템과 인터페이스하는 데 필요한 지원 DLL이 나열됩니다.

65,536개 이상의 노드가 있는 XML을 검색하는 동안 오류가 발생했습니다.

문제

65,536개 이상의 노드가 있는 XML 출력을 검색하는 동안 어댑터에서 다음 오류가 발생합니다.

Maximum number of items that can be serialized or deserialized in an object graph is '65536'.
Change the object graph or increase the MaxItemsInObjectGraph quota.

원인

어댑터는 65,536개 이상의 항목으로 개체를 직렬화하고 역직렬화할 수 없습니다.

해결 방법

다음 두 가지 방법 중 하나로 매개 변수를 maxItemsInObjectGraph 설정하여 이 문제를 해결할 수 있습니다.

  • 서비스 클래스의 maxItemsInObjectGraph 특성에서 매개 변수를 ServiceBehavior 변경하여 이 매개 변수를 설정합니다.

  • 애플리케이션의 app.config 파일에 다음을 추가합니다.

    <behaviors>
      <endpointBehaviors>
        <behavior name="NewBehavior">
          <dataContractSerializer maxItemsInObjectGraph="65536000" />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    

    샘플 app.config 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="NewBehavior">
         <dataContractSerializer maxItemsInObjectGraph="65536000" />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <client>
      <endpoint   behaviorConfiguration="NewBehavior" binding="sapBinding"
       contract="IOutboundContract" name="sap_ICalculator" />
    </client>
  </system.serviceModel>
</configuration>

BizTalk Server WCF-Custom 포트에 대한 연결 URI를 입력하는 동안 오류가 발생했습니다.

문제

BizTalk Server SAP 시스템에 연결할 연결 URI를 지정할 때 다음과 같은 오류가 발생합니다.

Error saving properties.
(System.ArgumentException) The specified address is invalid.
(System.ArgumentException) Invalid address;
"<connection URI>" is not a well-formed absolute uri.

원인

연결 URI는 표준 인코딩 형식을 준수하지 않습니다. 예를 들어 매개 변수의 값에는 공백이 포함될 수 있습니다.

해결 방법

지정한 연결 URI가 표준 인코딩 형식을 준수하는지 확인합니다. 예를 들어 빈 공간을 "%20"으로 바꿔야 합니다.

SAP에서 작업을 완료하는 동안 System.ArgumentNullException 오류

문제

어댑터는 BizTalk Server 사용하여 SAP 시스템에서 작업을 수행할 때 다음과 같은 오류가 발생합니다.

System.ArgumentNullException: Value cannot be null.

원인

메시지에 대한 WCF 작업이 지정되지 않았습니다. WCF는 모든 작업에 대해 SOAP 작업을 지정해야 하며, 이 작업은 LOB 애플리케이션에서 수행할 작업에 대해 어댑터에 알릴 수 있습니다.

해결 방법

전송 포트에서 SOAP 작업을 지정하거나 BizTalk 오케스트레이션의 메시지 컨텍스트 속성으로 지정합니다. 지침은 SAP 시스템에 대한 SOAP 작업 구성을 참조하세요. 각 작업에 대한 작업 목록을 보려면 메시지 및 메시지 스키마 를 참조하세요.

지정한 작업에서 잘못된 작업 이름으로 인한 XmlReaderParsingException

문제

BizTalk Server 관리 콘솔은 SAP 시스템에 메시지를 보낼 때 다음과 같은 오류를 발생합니다.

Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: Invalid argument:
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="<operation_name>" Action="<action>" />
</BtsActionMapping>

원인

어댑터 서비스 BizTalk 프로젝트 추가 기능 사용에서 만든 포트 바인딩 파일을 가져와 WCF-Custom 포트를 구성하는 경우 포트의 작업은 다음 형식으로 지정됩니다.

<BtsActionMapping>
  <Operation Name="Op1" Action="http://MyService/Svc/Op1" />
</BtsActionMapping>

위의 형식에서 작업 이름은 스키마를 생성하는 동안 선택한 작업에 의해 제어됩니다. 예를 들어 RFC_CUSTOMER_GET 대한 스키마를 생성한 경우 작업의 작업 이름은 "RFC_CUSTOMER_GET"입니다. 그러나 Visual Studio의 BizTalk 오케스트레이션에서 만든 논리 포트의 작업 이름은 다를 수 있습니다.

해결 방법

논리 포트(Visual Studio의 BizTalk 오케스트레이션)와 실제 포트(BizTalk Server 관리 콘솔)의 작업 이름이 동일한지 확인합니다.

SAP에 대한 100개 이상의 연결을 여는 동안 오류가 발생했습니다.

문제

어댑터는 SAP 시스템에 100개 이상의 연결을 열 때 다음 예외를 throw합니다.

Microsoft.ServiceModel.Channels.Common.ConnectionException: ErrorCode=RFC_OK. ErrorGroup=RFC_ERROR_COMMUNICATION. SapErrorMessage=Connect to SAP gateway failed
Connect_PM  GWHOST=<gw_host>, GWSERV=<gw_serv>, SYSNR=<sys_number>
LOCATION    CPIC (TCP/IP) on local host with Unicode
ERROR       max no of 100 conversations exceeded

원인

기본적으로 SAP는 시스템에 100개 이상의 연결을 사용하도록 설정하지 않습니다.

해결 방법

최대 연결 수를 늘리려면 SAP 클라이언트 라이브러리가 설치된 컴퓨터에 환경 변수를 만들고 숫자 값으로 설정해야 합니다. 이 환경 변수에 대해 지정하는 값은 SAP 시스템에 연결할 수 있는 최대 연결 수입니다. 다음 세부 정보를 사용하여 환경 변수를 만듭니다.

  • 변수 이름: CPIC_MAX_CONV

  • 변수 값: 양수 값입니다. 예를 들어 SAP 시스템에 200개의 연결을 사용하도록 설정하려면 값을 200으로 지정합니다.

    환경 변수에 대한 자세한 내용은 Windows PowerShell: about_Environment_Variables.

IDOC에 대한 메타데이터 생성 또는 검색 오류

문제

SAP 시스템에서 IDOC에 대한 수신 작업에 대한 메타데이터를 생성하는 동안 SAP 어댑터에서 다음과 같은 오류가 발생합니다.

Error while retrieving or generating the WSDL.
Adapter message: Details: ErrorCode=RFC_EXCEPTION.
ErrorGroup=RFC_ERROR_APPLICATION_EXCEPTION. SapErrorMessage= OBJECT_UNKNOWN.
AdapterErrorMessage=Error returned by RfcCallReceiveEx while calling RFC: IDOCTYPE_READ_COMPLETE.

원인

SAP 어댑터는 IDOCTYPE_READ_COMPLETE RFC를 사용하여 IDOC에 대한 수신 작업에 대한 메타데이터를 검색합니다. 이 RFC를 호출하려면 SAP 시스템에서 특정 사용자 권한이 필요합니다. 메타데이터를 생성하기 위해 IDOCTYPE_READ_COMPLETE RFC를 호출할 수 있는 권한이 없는 자격 증명을 사용하여 SAP 시스템에 연결한 경우 SAP 어댑터에 오류가 발생합니다.

해결 방법

어댑터에 사용한 것과 동일한 자격 증명을 사용하여 SAP GUI에 로그인합니다. 트랜잭션 SE37로 이동하고 IDOCTYPE_READ_COMPLETE 실행할 RFC의 이름을 입력합니다.

입력 매개 변수 PI_IDOCTYP 및 PI_CIMTYP 사용자 지정 IDoc에 해당하는 값을 입력합니다. 매개 변수 PI_VERSION 및 PI_RELEASE 어댑터 메타데이터 UI에서 선택한 것과 동일한 값을 입력합니다. F8 키를 눌러 실행합니다.

어댑터가 받는 것과 동일한 예외가 발생하며 문제에 대한 자세한 정보가 표시됩니다.

여전히 문제를 resolve 수 없는 경우 수신 작업 대신 ReceiveIdoc 작업에 대한 스키마를 생성합니다. 이 경우 SAP 어댑터는 IDOCTYPE_READ_COMPLETE 사용하지 않으며 오류를 throw하지 않습니다.

릴리스되지 않은 세그먼트가 있는 IIDOC를 보내거나 받는 중 오류 발생

문제

SAP 어댑터는 IDOC를 보내거나( 보내기 작업 사용) 릴리스되지 않은 세그먼트가 있는 IDOC( 수신 작업 사용)를 수신하는 동안 XmlReaderParsingException을 제공합니다.

원인

IDOC는 세그먼트로 구성됩니다. 메타데이터를 생성하는 동안 SAP 어댑터는 SAP 시스템에 있는 릴리스된 모든 세그먼트를 검색합니다. 그러나 어댑터 클라이언트가 메타데이터를 사용하여 IDOC 수신과 같은 작업을 수행하는 경우 SAP 어댑터는 XmlReaderParsingException을 제공합니다. IDOC가 수신될 때 SAP 시스템이 릴리스되지 않은 일부 세그먼트도 보냈을 수 있으며 어댑터에 의해 생성되지 않은 메타데이터가 있기 때문입니다.

해결 방법

다음 중 하나를 수행합니다.

  • 릴리스되지 않은 세그먼트에 적절한 패치를 적용하여 SAP 시스템을 업그레이드합니다.

  • SendIdoc 또는 ReceiveIdoc 작업을 사용하여 각각 IDOC를 보내고 받습니다. 이러한 작업에 대한 자세한 내용은 SAP의 IOC에 대한 작업을 참조하세요.

SAP FilePort를 사용하여 받은 SAP에 플랫 파일 IPC를 보내는 동안 오류가 발생했습니다.

문제

SAP FilePort를 사용하여 생성된 SAP 시스템에 플랫 파일 IDOC를 보내 려고 하면 BizTalk 오케스트레이션의 플랫 파일 파서가 flatf-file을 XML 형식으로 변환하지 못하여 IDOD 보내기 작업이 실패합니다.

원인

SAP 시스템은 FilePort를 사용하여 IDOC를 생성할 때 세그먼트 끝에 있는 모든 빈 공간을 잘라냅니다. 그러나 플랫 파일 파서는 플랫 파일을 XML로 성공적으로 변환하기 위해 세그먼트의 마지막 필드 데이터가 있어야 합니다. 빈 공간이 세그먼트에 없으므로 플랫 파일 파서가 플랫 파일을 XML로 구문 분석하지 못합니다.

해결 방법

SAP FilePort를 사용하여 생성된 이러한 플랫 파일IDOC의 경우 SendIdoc 작업을 대신 사용합니다. 이 작업에 대한 자세한 내용은 SAP의 IDOC에 대한 작업을 참조하세요.

EnableBizTalkCompatibilityMode 속성이 true로 설정된 경우 SAP에서IDOC를 수신하는 동안 오류가 발생했습니다.

문제

EnableBizTalkCompatibilityMode 바인딩 속성이 true로 설정된 IDOC를 수신하는 동안 다음 예외가 발생합니다.

System.Exception: Loading property information list by namespace failed or property not found in the list. Verify that the schema is deployed properly.

원인

Binding 속성 EnableBizTalkCompatibilityModetrue로 설정된 경우 SAP 어댑터에 대한 BizTalk 속성 스키마 DLL을 BizTalk 애플리케이션, 즉 프로젝트가 배포된 애플리케이션의 리소스로 추가해야 합니다.

해결 방법

SAP 어댑터의 BizTalk 속성 스키마 이름은 Microsoft.Adapters.SAP.BiztalkPropertySchema.dll. 설치 드라이브>:\ Program Files\Microsoft BizTalk Adapter Pack\bin에서 <BizTalk 어댑터 팩 설정에 의해 설치됩니다. 다음 작업을 수행하여 BizTalk 애플리케이션에서 이 어셈블리를 리소스로 추가합니다.

BizTalk 애플리케이션에서 어셈블리를 리소스로 추가

  1. BizTalk Server 관리 콘솔을 시작합니다.

  2. 콘솔 트리에서 BizTalk 그룹을 확장하고 애플리케이션을 확장한 다음 BizTalk 어셈블리를 추가할 애플리케이션을 확장합니다.

  3. BizTalk 어셈블리를 추가할 애플리케이션 및 애플리케이션을 확장 합니다 .

  4. 리소스를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 BizTalk 어셈블리를 클릭합니다.

  5. 추가를 클릭하고 BizTalk 어셈블리 파일이 포함된 폴더로 이동하고 BizTalk 어셈블리 파일을 선택한 다음 열기를 클릭합니다.

  6. 옵션에서 GAC에 BizTalk 어셈블리를 설치하는 옵션을 지정하고 확인을 클릭합니다.

SAP 시스템에서IDOC를 수신하는 동안 유효성 검사 오류 발생

문제

SAP 시스템에서 받은 IDOC는 다음과 유사한 오류로 유효성 검사에 실패합니다.

There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=<token>"
Source: "Pipeline " Receive Port: "ReceiveIdoc" URI: "<connection uri>"
Reason: The document failed to validate because of the following error:
"The 'http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/3/CREMAS03//620:TAXBS' element has an invalid value according to its data type."

원인

IDOC를 수신하기 위해 생성된 메타데이터에는 수신 작업의 일부로 특정 열에 대해 수신할 수 있는 허용 값이 포함됩니다. 이러한 값은 생성된 메타데이터에서 열거형으로 노출됩니다. 그러나 IDOC가 실제로 수신되면 수신된 값이 열거된 값과 다를 수 있습니다. 따라서 값의 유효성을 검사하는 동안 수신 작업이 실패합니다. 예를 들어 위의 오류 메시지에서 TAXBS 열에 대한 유효성 검사가 실패합니다.

해결 방법

SAP 시스템에서 받은 값을 포함하려면 스키마(BizTalk 프로젝트의 경우) 또는 클라이언트 프록시(WCF 서비스 모델을 사용하는 .NET 프로젝트의 경우)에서 열거형을 수동으로 편집해야 합니다.

XML로 변환하기 전과 후에 플랫 파일IDOC가 동일하지 않습니다.

문제

플랫 파일 파서 를 사용하여 스키마를 사용하여 플랫 파일 IDOC를 XML로 변환한 다음 스키마를 사용하여 파이프라인을 통해 XML을 플랫 파일 IDOC로 다시 변환하는 경우 두 개의 플랫 파일 IDOC가 동일하지 않습니다.

원인

플랫 파일 IDOC에서 XML을 생성할 때 플랫 파일 파서는 빈 값이 있는 XML 노드를 생성하지 않습니다. 이 XML을 플랫 파일로 다시 변환하면 XML에서 누락된 노드가 플랫 파일 IDOC에 반영되지 않습니다. 따라서 플랫 파일 IOC는 동일하지 않습니다.

해결 방법

플랫 파일을 XML로 변환하는 데 사용되는 스키마와 그 반대의 경우 "보내기" 또는 "수신" 노드 정의 내에서 다음을 수행합니다.

  1. suppress_empty_nodes 속성을 false로 설정하고 generate_empty_nodes 속성을 true로 설정합니다. 기본적으로 suppress_empty_nodes 속성은 true 로 설정되고 generate_empty_nodes 속성은 false로 설정되므로 모든 빈 노드가 XML에 반영되지 않습니다.

  2. 플랫 파일에는 끝에 추가 캐리지 리턴이 포함될 수 있습니다. 이 추가 캐리지 리턴을 방지하려면 suppress_trailing_delimiters 속성을 예로 설정할 수 있습니다. Visual Studio에서 스키마를 열면 이 속성은 후행 구분 기호 표시 안 함 속성으로도 노출됩니다.

바인딩 파일을 사용하여 만드는 실제 포트를 사용하는 잘못된 작업 오류

문제

어댑터 서비스 사용 추가 기능을 사용하여 SAP 시스템에서 특정 작업에 대한 스키마를 생성한 후 추가 기능도 포트 바인딩 파일을 만듭니다. BizTalk Server 관리 콘솔을 사용하여 이 바인딩 파일을 가져와 BizTalk Server 실제 포트를 만들 수 있습니다. 그러나 이러한 포트를 사용하여 SAP 시스템에 메시지를 보내면 어댑터가 포트에 지정된 작업을 이해하지 못하고 다음과 유사한 오류가 발생합니다.

Microsoft.ServiceModel.Channels.Common.UnsupportedOperationException: Incorrect Action
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="<op_name>" Action="<action>" />
</BtsActionMapping>. Correct the specified Action, or refer to the documentation on the allowed formats for the Actions.

원인

BizTalk 오케스트레이션에서 논리 포트를 만들 때 해당 포트의 작업에 대한 특정 이름을 지정하거나 Operation_1, Operation_2 등의 기본 이름만 사용합니다. 그러나 어댑터 서비스 추가 기능 사용에서 생성된 바인딩 파일에서 작업 이름은 메타데이터를 생성하는 작업의 이름과 동일합니다. 예를 들어 RFC_CUSTOMER_GET 대한 메타데이터를 생성하는 경우 작업은 다음으로 설정됩니다.

<Operation Name="RFC_CUSTOMER_GET" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CUSTOMER_GET" />

바인딩 파일을 가져올 때 실제 포트에서 동일한 작업이 설정됩니다. 따라서 논리 포트(Operation_1, Operation_2 등)의 작업 이름이 실제 포트의 작업에 지정된 작업 이름과 일치하지 않아 오류가 발생합니다.

해결 방법

논리 포트의 작업 이름이 실제 포트에서 작업의 일부로 지정된 작업 이름과 동일한지 확인합니다. 다음 중 하나를 수행합니다.

  • BizTalk 오케스트레이션의 논리 포트에서 작업 이름을 Operation_1 등에서 메타데이터를 생성하는 작업(예: RFC_CUSTOMER_GET)으로 변경합니다.

  • 실제 포트에 대한 작업의 작업 이름을 논리 포트의 작업 이름으로 변경합니다. 예를 들어 물리적 포트의 작업을 다음과 같이 변경할 수 있습니다.

    <Operation Name="Operation_1" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CUSTOMER_GET" />
    

SAP에서 실행된 작업에 대한 응답 메시지에 테이블 매개 변수가 포함되어 있지 않습니다.

원인

SAP 어댑터를 사용하여 많은 수의 테이블을 반환하는 SAP 시스템에서 작업을 실행하고 각 테이블에 많은 수의 레코드가 있는 경우 이는 SAP 시스템에서 응답 메시지의 일부로 반환되는 큰 데이터 세트에 해당합니다. 따라서 기본적으로 SAP 어댑터는 응답 메시지의 일부로 테이블 매개 변수를 반환하지 않습니다.

해결 방법

SAP 어댑터가 응답의 일부로 반환할 테이블을 요청할 수 있습니다. SAP 시스템에 보내는 요청 메시지의 일부로 빈 테이블 매개 변수를 제공하여 이 작업을 수행할 수 있습니다. 예: <table_parameter_name />.

어댑터 클라이언트가 SAP에서 응답을 받지 못 함

문제

BizTalk Server 어댑터를 사용하는 경우 WCF 사용자 지정 송신 포트의 자격 증명이 올바르지 않으면 요청 메시지가 처리되지 않습니다. 올바른 자격 증명을 지정하면 메시지가 SAP 시스템으로 전송되고 응답이 수신됩니다. 그러나 응답 메시지는 아웃 포트에서 사용할 수 없습니다.

해결 방법

BizTalk 호스트 인스턴스를 다시 시작합니다.

SAP 서버에서 인바운드 메시지를 받는 연결 문제

문제

SAP 어댑터에 대한 WCF-Custom 수신 포트를 사용하여 SAP 서버에서 인바운드 메시지를 수신하는 동안에만 다음 오류가 발생합니다.

The Messaging Engine failed to add a receive location "<location_name>" with URL "<connection URI>" to the adapter "WCF-Custom".
Reason: "Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_OK. ErrorGroup=RFC_ERROR_COMMUNICATION. SapErrorMessage=Connect to SAP gateway failed
Connect_PM  TPNAME=<name>, GWHOST=<host>, GWSERV=<server>

그러나 WCF-Custom 송신 포트를 사용하여 SAP 시스템에 메시지를 보낼 수 있습니다.

해결 방법

어댑터 클라이언트를 실행하는 동일한 컴퓨터에 SAP GUI를 설치하고 인바운드 메시지를 다시 수신해 봅니다. SAP GUI를 설치하는 방법에 대한 자세한 내용은 SAP 설명서를 참조하세요.

BizTalk Projects에서 RootNode TypeName 오류 발생

문제

Visual Studio의 BizTalk 프로젝트에서 어댑터 서비스 추가 기능 사용에서 생성된 스키마에 RootNode TypeName 속성에 대한 잘못된 문자 또는 예약된 단어가 포함된 경우 프로젝트를 컴파일하는 동안 다음 오류가 발생합니다.

Node <node reference> - Specify a valid .NET type name for this root node.
The current .NET type name of this root node is invalid (it is a reserved BizTalk Keyword or is an invalid C# identifier).

해결 방법

  1. 오류에서 참조된 rood 노드를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  2. RootNode TypeName 속성의 경우 잘못된 문자 또는 예약어(예: 점(.))를 제거합니다.

Visual Studio에서 어댑터를 사용할 때 잘못된 바인딩 경고

문제

어댑터를 사용하여 Visual Studio에서 애플리케이션을 만들고 어댑터에서 생성된 구성 파일(app.config)을 열면 다음과 유사한 경고가 표시됩니다.

The element 'bindings' has invalid child element 'sapBinding'. List of possible elements expected: 'basicHttpBinding, customBinding, ...

원인

이 경고는 SAP 어댑터 바인딩 가 sapBindingWCF(Windows Communication Foundation)와 함께 제공되는 표준 바인딩이 아니기 때문에 나타납니다.

해결 방법

이 경고는 무시해도 됩니다.

BizTalk Server XLANG 예외

문제

BizTalk Server 여러 스키마가 메시지 유형과 일치하므로 애플리케이션에서 문서 사양을 찾을 수 없다는 XLANG 예외 또는 예외를 throw합니다.

원인

이 문제는 다음 중 하나로 인해 발생합니다.

  • BizTalk Server 프로젝트에서 두 개 이상의 일반 작업(예: SendIdoc 및 ReceiveIdoc)의 스키마를 생성하고, BizTalk Server 애플리케이션에 배포한 다음, 애플리케이션을 실행하여 SAP 시스템에서 각 작업을 수행했습니다. 스키마는 일반적이므로 BizTalk Server 애플리케이션에 배포된 스키마 간에 충돌이 발생합니다.

  • 여러 프로젝트의 경우 각 BizTalk Server 프로젝트에 대한 일반 작업 스키마를 생성하고, 각 프로젝트를 동일한 호스트의 별도의 BizTalk Server 애플리케이션에 배포한 다음, 애플리케이션 또는 애플리케이션을 실행하여 SAP 시스템에서 각 작업을 수행했습니다. 스키마와 어셈블리는 BizTalk Server 애플리케이션에서 액세스할 수 있으므로 다양한 BizTalk Server 애플리케이션 및 어셈블리 아래에 배포된 공통 스키마 간에 충돌이 있습니다.

    해결 방법

    BizTalk Server 애플리케이션에 단일 제네릭 작업 스키마 파일을 사용합니다. 동일한 호스트의 여러 BizTalk Server 애플리케이션에서 제네릭 작업 스키마를 사용해야 하는 경우 단일 제네릭 작업 스키마가 포함된 애플리케이션을 만든 다음 BizTalk Server 다른 모든 애플리케이션의 제네릭 작업 스키마를 사용합니다.

참고 항목

SAP 어댑터 문제 해결