다음을 통해 공유


BizTalk Adapter for mySAP Business Suite와 함께 ServiceModel 메타데이터 유틸리티 도구 사용

serviceModel Metadata 유틸리티 도구(svcutil.exe)를 사용하여 mySAP Business Suite용 Microsoft BizTalk 어댑터가 노출하는 작업에 대해 WCF 클라이언트 클래스 또는 WCF 서비스 계약(인터페이스)을 생성할 수 있습니다. svcutil.exe 실행하여 WCF 클라이언트 클래스 또는 WCF 서비스 계약을 생성한 후 생성된 파일을 코드에 포함하고 생성된 클래스의 인스턴스를 만들거나 생성된 인터페이스에서 WCF 서비스를 구현하여 SAP 시스템에서 작업을 수행할 수 있습니다.

svcutil.exe 사용하려면 자격 증명이 포함된 연결 URI를 제공해야 합니다. 기본적으로 SAP 어댑터는 연결 URI에서 자격 증명을 사용하지 않도록 설정하므로 SAP 어댑터에 기본이 아닌 바인딩을 사용하도록 svcutil.exe 구성해야 합니다. 기본이 아닌 바인딩에서 다른 바인딩 속성을 구성할 수도 있습니다. 예를 들어 BAPI 작업에 대한 WCF 클라이언트를 만들려면 EnableSafeTyping 바인딩 속성을 true로 설정해야 합니다.

다음 섹션에서는 svcutil.exe 구성하는 방법과 svcutil.exe 사용하여 SAP 어댑터와 WCF 클라이언트 코드 또는 WCF 서비스 계약을 생성하는 방법을 보여 있습니다.

SAP 어댑터에 대한 svcutil.exe 구성

기본이 아닌 바인딩을 사용하도록 svcutil.exe 구성하려면 svcutil.exe 로컬 복사본을 만든 다음 svcutil.exe.config 구성 파일의 로컬 복사본을 만들거나 수정해야 합니다.

  1. 폴더를 만들고 svcutil.exe 새 폴더에 복사합니다. 일반적으로 Windows SDK 설치 위치, 특히 C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin에서 svcutil.exe 찾을 수 있습니다.

  2. 새 폴더에 svcutil.exe.config이라는 파일을 만듭니다.

  3. 바인딩 및 클라이언트 엔드포인트를 svcutil.exe.config 파일에 추가합니다. 올바른 구성이 사용되는지 확인하려면 새 폴더에서 svcutil.exe 실행해야 합니다.

    중요

    클라이언트 엔드포인트의 이름 특성은 연결 URI에 사용되는 체계를 지정해야 합니다. 이 값은 대/소문자를 구분합니다.

    <configuration>  
      <system.serviceModel>  
        <client>  
          <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint   
          and the contract should be "IMetadataExchange" -->  
          <endpoint name="sap"  
                    binding="sapBinding"  
                    bindingConfiguration="SAPBinding"  
                    contract="IMetadataExchange" />  
        </client>  
        <bindings>  
          <sapBinding>  
            <binding name="SAPBinding" acceptCredentialsInUri="true"/>  
          </sapBinding>  
        </bindings>  
    
      </system.serviceModel>  
    
    </configuration>  
    

    바인딩 구성에서 SAP 어댑터의 바인딩 속성을 설정할 수 있습니다. 예를 들어 svcutil.exe 사용하여 BAPI 작업에 대한 WCF 클라이언트를 생성하도록 다음과 같은 기본이 아닌 바인딩을 지정할 수 있습니다.

<bindings>  
  <sapBinding>  
    <binding name="SAPBinding" acceptCredentialsInUri="true"/>  
  </sapBinding>  
</bindings>  

svcutil.exe 대한 기본이 아닌 바인딩을 구성하는 방법에 대한 자세한 내용은 사용자 지정 보안 메타데이터 엔드포인트를 참조하세요.

svcutil.exe 사용하여 WCF 클라이언트 클래스 또는 WCF 서비스 계약 만들기

svcutil.exe 사용하여 SAP 어댑터에 대한 WCF 클라이언트 코드 또는 WCF 서비스 계약(인터페이스)을 생성하려면 WS-Metadata Exchange(MEX) 엔드포인트와 코드를 생성할 svcutil.exe 작업 또는 작업을 지정하는 연결 URI를 제공해야 합니다. 또한 연결 URI에서 SAP 시스템에 대한 연결 자격 증명을 지정해야 합니다.

참고

SAP 어댑터에서 svcutil.exe 사용하려면 먼저 기본이 아닌 바인딩을 사용하도록 구성해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 SAP 어댑터에 대한 svcutil.exe 구성을 참조하세요.

다음과 같은 방식으로 SAP 어댑터 연결 URI에서 MEX 엔드포인트 및 대상 작업을 지정합니다.

  • 쿼리 문자열에 "wsdl" 매개 변수를 포함해야 합니다. 쿼리 문자열의 첫 번째 매개 변수인 경우 물음표(?) 바로 다음에 지정됩니다. 첫 번째 매개 변수가 아닌 경우 앞에 앰퍼샌드(&)가 와야 합니다.

  • 하나 이상의 "op" 매개 변수로 "wsdl" 매개 변수를 따라야 합니다. 각 "op" 매개 변수 앞에는 앰퍼샌드(&)가 있으며 대상 작업의 노드 ID를 지정합니다.

    다음 세 가지 예제에서는 svcutil.exe 사용하여 다양한 작업을 대상으로 지정하는 방법을 보여 줍니다.

    이 예제에서는 RFC_CALCULATE_TAXES 대한 WCF 클라이언트 클래스를 만듭니다.

    .\svcutil "sap://User=YourUserName; Passwd=YourPassword; Client=800; Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CALCULATE_TAXES"

    이 예제에서는 SALESORDER_CREATEFROMDAT201 및 SALESORDER_CREATEFROMDAT202 IDOC 모두에 대한 WCF 클라이언트 클래스를 만듭니다.

    .\svcutil "sap://User=YourUserName; Passwd=YourPassword; Client=800; Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Send&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT202//620/Send"

    이 예제에서는 SAP 시스템에서 SALESORDER_CREATEFROMDAT201 IDOC를 수신하는 WCF 서비스 계약을 만듭니다. NODE ID는 수신 작업을 지정합니다. 이 예제에서는 메타데이터 검색을 처리하므로 연결 URI의 query_string 수신기 매개 변수를 지정할 필요가 없습니다.

    .\svcutil "sap://User=YourUserName; Passwd=YourPassword; Client=800; Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Receive"

중요

명령줄의 따옴표로 연결 URI를 배치해야 합니다. 그렇지 않으면 svcutil.exe SAP 어댑터가 지원하지 않는 작업에 대한 메타데이터를 검색하려고 시도합니다. 이러한 시도의 결과는 정의되지 않습니다.

기본적으로 svcutil.exe 생성된 코드를 output.cs 파일에 배치합니다. 그러나 명령줄 스위치를 설정하여 출력 파일의 이름과 svcutil.exe 사용하는 다른 많은 옵션을 변경할 수 있습니다. svcutil.exe 지원하는 옵션에 대한 자세한 내용은 ServiceModel 메타데이터 유틸리티 도구(Svcutil.exe)를 참조하세요.

Svcutil.exe 작업을 검색하는 기능을 제공하지 않습니다(예: 와일드카드 문자 사용). 대상으로 지정하려는 특정 작업에 대한 노드 ID를 명시적으로 지정해야 합니다. 작업의 노드 ID는 메시지 작업 문자열과 동일합니다. 범주만 참조하는 노드 ID는 지정할 수 없습니다. SAP 어댑터가 표시하는 노드 ID에 대한 자세한 내용은 메타데이터 노드 ID를 참조하세요.

어댑터 서비스 참조 Visual Studio 플러그 인 추가는 WCF 클라이언트 클래스 및 WCF 서비스 계약 생성을 크게 간소화할 수 있는 고급 찾아보기 및 검색 기능을 제공합니다. 어댑터 서비스 참조 플러그 인 추가에 대한 자세한 내용은 SAP 솔루션 아티팩트용 WCF 클라이언트 또는 WCF 서비스 계약 생성을 참조하세요.