WCF 서비스 모델을 사용하는 Oracle E-Business Suite의 ExecuteReader, ExecuteScalar 또는 ExecuteNonQuery 작업
Oracle E-Business 어댑터는 ExecuteNonQuery, ExecuteReader 및 ExecuteScalar와 같은 제네릭 작업을 노출합니다. 이러한 작업을 사용하여 Oracle E-Business Suite에서 문을 실행할 수 있습니다. 이러한 작업은 문의 응답 종류에 따라 다릅니다. 어댑터가 이러한 작업을 지원하는 방법에 대한 자세한 내용은 ExecuteNonQuery, ExecuteReader 및 ExecuteScalar 작업 지원을 참조하세요.
이 항목에서는 WCF 서비스 모델을 사용하여 Oracle E-Business 어댑터를 사용하여 ExecuteReader 작업을 수행하는 방법을 보여 줍니다. 이 항목에 설명된 동일한 프로시저 집합에 따라 ExecuteNonQuery 및 ExecuteScalar 작업을 수행할 수 있습니다.
이 항목에 사용된 예제 정보
이 항목의 예제에서는 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 클라이언트를 만들려면
Visual Studio에서 Visual C# 프로젝트를 만듭니다. 이 항목의 경우 콘솔 애플리케이션을 만듭니다.
ExecuteReader 제네릭 작업에 대한 WCF 클라이언트 클래스를 생성합니다. 이 작업은 어댑터 서비스 참조 플러그 인 추가를 사용하여 Oracle E-Business Suite에 연결할 때 루트 노드에서 사용할 수 있습니다. WCF 클라이언트 클래스를 생성하는 방법에 대한 자세한 내용은 Oracle E-Business Suite 솔루션 아티팩트용 WCF 클라이언트 또는 WCF 서비스 계약 생성을 참조하세요.
중요
WCF 클라이언트 클래스를 생성하기 전에 EnableBizTalkCompatibilityMode 바인딩 속성을 false로 설정해야 합니다.
솔루션 탐색기 및
Microsoft.ServiceModel.Channels
에 대한 참조를 추가합니다Microsoft.Adapters.OracleEBS
.Program.cs 파일을 열고 다음 네임스페이스를 추가합니다.
Microsoft.Adapters.OracleEBS
System.ServiceModel
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에 대한 클라이언트 바인딩 구성을 참조하세요.
클라이언트에 대한 자격 증명을 설정합니다.
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
인터페이스 테이블에서 작업을 수행하기 때문에 애플리케이션 컨텍스트를 설정해야 합니다. 이 예제에서는 애플리케이션 컨텍스트를 설정하기 위해 OracleUserName, OraclePassword 및 OracleEBSResponsibilityName 바인딩 속성을 지정합니다. 애플리케이션 컨텍스트에 대한 자세한 내용은 애플리케이션 컨텍스트 설정을 참조하세요.
binding.OracleUserName = "myOracleEBSUserName"; binding.OraclePassword = "myOracleEBSPassword"; binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";
아래 코드 조각에 설명된 대로 클라이언트를 엽니다.
try { Console.WriteLine("Opening Client..."); client.Open(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; }
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();
아래 코드 조각에 설명된 대로 클라이언트를 닫습니다.
client.Close(); Console.WriteLine("Press any key to exit..."); Console.ReadLine();
프로젝트를 빌드한 다음 실행합니다. MS_SAMPLE_EMPLOYEE 테이블의 모든 레코드가 콘솔에 표시됩니다.