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 클라이언트를 만들려면
Visual Studio에서 Visual C# 프로젝트를 만듭니다. 이 항목에서는 콘솔 애플리케이션을 만듭니다.
reqset_singlestage 요청 집합에 대한 WCF 클라이언트 클래스를 생성합니다. 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_instance_name"); RequestSets_SQLAPClient client = new RequestSets_SQLAPClient(binding, address);
이 코드 조각
RequestSets_SQLAPClient
에서 는 OracleEBSBindingClient.cs에 정의된 WCF 클라이언트입니다. 이 파일은 어댑터 서비스 참조 추가 플러그 인에서 생성됩니다.참고
이 코드 조각에서는 애플리케이션 코드에서 바인딩 및 엔드포인트 주소를 명시적으로 지정합니다. 어댑터 서비스 참조 플러그 인 추가에서 생성된 애플리케이션 구성 파일 app.config 이러한 값을 사용할 수도 있습니다. 클라이언트 바인딩을 지정하는 다양한 방법에 대한 자세한 내용은 Oracle E-Business Suite에 대한 클라이언트 바인딩 구성을 참조하세요.
클라이언트에 대한 자격 증명을 설정합니다.
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
Oracle E-Business Suite 애플리케이션에서 요청 집합을 호출하므로 애플리케이션 컨텍스트를 설정해야 합니다. 이 예제에서는 애플리케이션 컨텍스트를 설정하기 위해 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; }
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; }
아래 코드 조각에 설명된 대로 클라이언트를 닫습니다.
client.Close();
프로젝트를 빌드한 다음 실행합니다. 애플리케이션은 reqset_singlestage 요청 집합을 호출하고 콘솔에 기록되는 요청 ID를 반환합니다.