다음을 통해 공유


WCF 서비스 모델을 사용하여 Oracle E-Business Suite에서 요청 집합 호출

Microsoft BizTalk Adapter for Oracle E-Business Suite를 사용하면 Oracle E-Business Suite에서 요청 집합을 실행할 수 있습니다. 요청 집합은 하나 이상의 스테이지로 나뉘며 각 스테이지에는 보고서 및 동시 프로그램 집합이 포함됩니다. 어댑터가 요청 집합을 지원하는 방법에 대한 자세한 내용은 요청 집합 에 대한 작업을 참조하세요.

WCF 클라이언트 클래스

Oracle E-Business 어댑터에서 요청 집합을 호출하기 위해 생성된 WCF 클라이언트의 이름은 다음 표에 나와 있습니다.

아티팩트 WCF 클라이언트 이름
요청 집합 RequestSets_[APP_NAME]클라이언트

[APP_NAME] = Oracle E-Business Suite 애플리케이션의 실제 이름입니다. 예를 들어 SQLAP입니다.

요청 집합을 호출하기 위한 메서드 서명

다음 표에서는 요청 집합에 대한 메서드 서명을 보여줍니다.

작업 메서드 시그니처
요청 집합 public <return type><request set name>(param 1, param 2, ...)

예를 들어 다음 코드는 reqset_singlestage 요청 집합에 대해 생성된 WCF 클라이언트 클래스에 대한 메서드 서명을 보여 줍니다.

참고

사용자 지정 요청 집합이며 Oracle E-Business Solution instance 사용할 수 없습니다.

public partial class RequestSets_SQLAPClient : System.ServiceModel.ClientBase<RequestSets_SQLAP>, RequestSets_SQLAP{      
  
    public string REQSTG(  
      schemas.microsoft.com.OracleEBS._2008._05.Options.SetRelClassOptions SetRelClassOptions,  
      schemas.microsoft.com.OracleEBS._2008._05.Options.SetPrintOptions SetPrintOptions,   
      schemas.microsoft.com.OracleEBS._2008._05.Options.SetRepeatOptions SetRepeatOptions,   
      schemas.microsoft.com.OracleEBS._2008._05.Options.SetNlsOptions SetNlsOptions,  
      string StartTime,  
      schemas.microsoft.com.OracleEBS._2008._05.RequestSetStage.SQLAP.REQSTG.set1 set1_set1);  
}  

이 코드 조각에서 RequestSets_SQLAPClient 어댑터 서비스 참조 플러그 인 추가에서 생성된 OracleEBSBindingClient.cs의 WCF 클래스 이름입니다. REQSTG 는 요청 집합을 호출하는 메서드의 이름입니다.

요청 집합을 호출하는 WCF 클라이언트 만들기

WCF 클라이언트를 사용하여 Oracle E-Business Suite에서 작업을 수행하는 데 필요한 일반 작업 집합에는 Oracle E-Business Suite 어댑터를 사용한 WCF 서비스 모델 개요에 설명된 작업 집합이 포함됩니다. 이 섹션에서는 reqset_singlestage 요청 집합을 호출하는 WCF 클라이언트를 만드는 방법을 설명합니다.

WCF 클라이언트를 만들려면

  1. Visual Studio에서 Visual C# 프로젝트를 만듭니다. 이 항목에서는 콘솔 애플리케이션을 만듭니다.

  2. reqset_singlestage 요청 집합에 대한 WCF 클라이언트 클래스를 생성합니다. WCF 클라이언트 클래스를 생성하는 방법에 대한 자세한 내용은 Oracle E-Business Suite 솔루션 아티팩트용 WCF 클라이언트 또는 WCF 서비스 계약 생성을 참조하세요.

    중요

    WCF 클라이언트 클래스를 생성하기 전에 EnableBizTalkCompatibilityMode 바인딩 속성을 false로 설정해야 합니다.

  3. 솔루션 탐색기 및 Microsoft.ServiceModel.Channels에 대한 참조를 Microsoft.Adapters.OracleEBS 추가합니다.

  4. Program.cs 파일을 열고 다음 네임스페이스를 추가합니다.

    • Microsoft.Adapters.OracleEBS

    • System.ServiceModel

  5. Program.cs 파일을 열고 아래 코드 조각에 설명된 대로 클라이언트를 만듭니다.

    OracleEBSBinding binding = new OracleEBSBinding();  
    EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name");  
    RequestSets_SQLAPClient client = new RequestSets_SQLAPClient(binding, address);  
    

    이 코드 조각 RequestSets_SQLAPClient 에서 는 OracleEBSBindingClient.cs에 정의된 WCF 클라이언트입니다. 이 파일은 어댑터 서비스 참조 추가 플러그 인에서 생성됩니다.

    참고

    이 코드 조각에서는 애플리케이션 코드에서 바인딩 및 엔드포인트 주소를 명시적으로 지정합니다. 어댑터 서비스 참조 플러그 인 추가에서 생성된 애플리케이션 구성 파일 app.config 이러한 값을 사용할 수도 있습니다. 클라이언트 바인딩을 지정하는 다양한 방법에 대한 자세한 내용은 Oracle E-Business Suite에 대한 클라이언트 바인딩 구성을 참조하세요.

  6. 클라이언트에 대한 자격 증명을 설정합니다.

    client.ClientCredentials.UserName.UserName = "myuser";  
    client.ClientCredentials.UserName.Password = "mypassword";  
    
  7. Oracle E-Business Suite 애플리케이션에서 요청 집합을 호출하므로 애플리케이션 컨텍스트를 설정해야 합니다. 이 예제에서는 애플리케이션 컨텍스트를 설정하기 위해 OracleUserName, OraclePasswordOracleEBSResponsibilityName 바인딩 속성을 지정합니다. 애플리케이션 컨텍스트에 대한 자세한 내용은 애플리케이션 컨텍스트 설정을 참조하세요.

    binding.OracleUserName = "myOracleEBSUserName";  
    binding.OraclePassword = "myOracleEBSPassword";  
    binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";  
    
  8. 아래 코드 조각에 설명된 대로 클라이언트를 엽니다.

    try  
    {  
       Console.WriteLine("Opening Client...");  
       client.Open();  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    
  9. reqset_singlestage 요청 집합을 호출합니다.

    string RequestID;  
    
    schemas.microsoft.com.OracleEBS._2008._05.RequestSetStage.SQLAP.REQSTG.set1 param =  
        new schemas.microsoft.com.OracleEBS._2008._05.RequestSetStage.SQLAP.REQSTG.set1();  
    
    param.INSPARAMPROG = new schemas.microsoft.com.OracleEBS._2008._05.RequestSetConcurrentProgram.SQLAP.REQSTG.set1.SQLAP1.INSPARAMPROG();  
    param.INSPARAMPROG.p_id = "123";  
    param.INSPARAMPROG.p_name = "MyName";  
    
    try  
    {  
        Console.WriteLine("Invoking the reqset_singlestage request set");  
        RequestID = client.REQSTG(null, null, null, null, null, param);  
        Console.WriteLine("The request ID generated for the request set is : " + RequestID);  
        Console.WriteLine("*****************************************************************");  
        Console.WriteLine("\nHit <RETURN> to end");  
        Console.ReadLine();  
    }  
    catch (Exception ex)  
    {  
        Console.WriteLine("Exception : " + ex);  
        throw;  
    }  
    
  10. 아래 코드 조각에 설명된 대로 클라이언트를 닫습니다.

    client.Close();  
    
  11. 프로젝트를 빌드한 다음 실행합니다. 애플리케이션은 reqset_singlestage 요청 집합을 호출하고 콘솔에 기록되는 요청 ID를 반환합니다.

참고 항목

WCF 서비스 모델을 사용하여 Oracle E-Business Suite 애플리케이션 개발