다음을 통해 공유


WCF 서비스 모델을 사용하는 Oracle E-Business Suite의 ExecuteReader, ExecuteScalar 또는 ExecuteNonQuery 작업

Oracle E-Business 어댑터는 ExecuteNonQuery, ExecuteReaderExecuteScalar와 같은 제네릭 작업을 노출합니다. 이러한 작업을 사용하여 Oracle E-Business Suite에서 문을 실행할 수 있습니다. 이러한 작업은 문의 응답 종류에 따라 다릅니다. 어댑터가 이러한 작업을 지원하는 방법에 대한 자세한 내용은 ExecuteNonQuery, ExecuteReader 및 ExecuteScalar 작업 지원을 참조하세요.

이 항목에서는 WCF 서비스 모델을 사용하여 Oracle E-Business 어댑터를 사용하여 ExecuteReader 작업을 수행하는 방법을 보여 줍니다. 이 항목에 설명된 동일한 프로시저 집합에 따라 ExecuteNonQueryExecuteScalar 작업을 수행할 수 있습니다.

이 항목에 사용된 예제 정보

이 항목의 예제에서는 executeReader 작업을 수행하여 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 SELECT 작업을 수행합니다. 테이블은 샘플과 함께 제공되는 스크립트를 실행하여 만들어집니다. 샘플에 대한 자세한 내용은 Oracle EBS 어댑터에 대한 샘플을 참조하세요. 이 항목을 기반으로 하는 샘플 ExecuteReader도 Oracle E-Business 어댑터 샘플과 함께 제공됩니다.

WCF 클라이언트 클래스

Oracle E-Business 어댑터를 사용하여 제네릭 작업(ExecuteNonQuery, ExecuteReader 또는 ExecuteScalar)을 호출하기 위해 생성된 WCF 클라이언트의 이름은 다음 표에 나와 있습니다.

작업 WCF 클라이언트 이름
ExecuteNonQuery, ExecuteReader 또는 ExecuteScalar GenericOperation_Client

제네릭 작업을 호출하기 위한 메서드 서명

다음 표에서는 제네릭 작업을 호출하기 위해 노출된 메서드에 대한 서명을 보여 줍니다.

작업 메서드 시그니처
ExecuteNonQuery int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors)
ExecuteReader System.Data.DataSet ExecuteReader(문자열 쿼리)
ExecuteScalar string ExecuteScalar(string Query)

예를 들어 제네릭 작업 메서드에 대한 서명은 다음 코드 조각에 나와 있습니다.

public partial class GenericOperation_Client : System.ServiceModel.ClientBase<GenericOperation_>, GenericOperation_ {  
  public int ExecuteNonQuery(string Query, string[] OutputRefCursorNames, out System.Data.DataSet[] OutputRefCursors);  
  public System.Data.DataSet ExecuteReader(string Query);  
  public string ExecuteScalar(string Query);  
}  

이 코드 조각에서는

  • GenericOperation_Client 는 클래스의 이름입니다. 이 클래스는 제네릭 작업 ExecuteReader를 호출하는 클라이언트를 만드는 데 사용됩니다.

  • public System.Data.DataSet ExecuteReader(string Query) 는 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 SELECT 문을 수행하기 위해 호출하는 메서드입니다.

ExecuteReader 작업을 호출하는 WCF 클라이언트 만들기

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

ExecuteReader 작업을 호출하는 WCF 클라이언트를 만들려면

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

  2. ExecuteReader 제네릭 작업에 대한 WCF 클라이언트 클래스를 생성합니다. 이 작업은 어댑터 서비스 참조 플러그 인 추가를 사용하여 Oracle E-Business Suite에 연결할 때 루트 노드에서 사용할 수 있습니다. 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-72-11");  
    GenericOperation_Client client = new GenericOperation_Client(binding, address);  
    

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

    참고

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

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

    client.ClientCredentials.UserName.UserName = "myuser";  
    client.ClientCredentials.UserName.Password = "mypassword";  
    
  7. 인터페이스 테이블에서 작업을 수행하기 때문에 애플리케이션 컨텍스트를 설정해야 합니다. 이 예제에서는 애플리케이션 컨텍스트를 설정하기 위해 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. MS_SAMPLE_EMPLOYEE 테이블에서 SELECT 작업을 수행하기 위해 ExecuteReader 작업을 호출합니다. ExecuteReader 작업을 호출하기 전에 코드에 네임스페이 System.Data 스를 추가해야 합니다.

    string query = "SELECT * FROM MS_SAMPLE_EMPLOYEE";  
    DataSet ds = client.ExecuteReader(query);  
    
    Console.WriteLine("Invoking the SELECT statement using ExecuteReader");  
    Console.WriteLine("*****************************************************");  
    foreach (DataTable tab in ds.Tables)  
    {  
       foreach (DataRow row in tab.Rows)  
       {  
          Console.WriteLine("The details of the employee are: ");  
          for (int i = 0; i < tab.Columns.Count; i++)  
          {  
             Console.WriteLine(row[i]);  
          }  
          Console.WriteLine();  
       }  
    }  
    Console.WriteLine("*****************************************************");  
    Console.ReadLine();  
    
    
  10. 아래 코드 조각에 설명된 대로 클라이언트를 닫습니다.

    client.Close();  
    Console.WriteLine("Press any key to exit...");  
    Console.ReadLine();  
    
  11. 프로젝트를 빌드한 다음 실행합니다. MS_SAMPLE_EMPLOYEE 테이블의 모든 레코드가 콘솔에 표시됩니다.

참고 항목

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