다음을 통해 공유


SELECT 문을 사용하여 Oracle E-Business Suite 폴링

ORACLE E-Business Suite에서 인터페이스 테이블, 인터페이스 뷰, 테이블 및 뷰를 지속적으로 폴링하는 SELECT 문을 사용하여 주기적인 데이터 변경 메시지를 받도록 Oracle E-Business 어댑터를 구성할 수 있습니다. 어댑터가 Oracle E-Business Suite를 폴링하기 위해 주기적으로 실행되는 폴링 문으로 SELECT 문을 지정할 수 있습니다. 폴링 문이 실행된 후 어댑터가 실행되는 폴링 후 PL/SQL 코드 블록을 지정할 수도 있습니다.

폴링을 사용하려면 WCF-Custom 특정 바인딩 속성을 지정하거나 수신 포트를 WCF-OracleEBS 합니다. 어댑터가 폴링을 지원하는 방법에 대한 자세한 내용은 폴링을 사용한 인바운드 호출 지원을 참조하세요. 폴링 작업에 대한 SOAP 메시지의 구조에 대한 자세한 내용은 폴링 작업에 대한 메시지 스키마를 참조하세요.

Oracle E-Business Suite 어댑터 바인딩 속성을 사용하여 폴링 작업 구성

다음 표에서는 데이터 변경 메시지를 받도록 어댑터를 구성하는 데 사용하는 Oracle E-Business 어댑터 바인딩 속성을 요약합니다. BizTalk Server 관리 콘솔에서 수신 포트를 구성하는 동안 이러한 바인딩 속성을 지정해야 합니다.

Binding 속성 Description
InboundOperationType 폴링 또는 알림 인바운드 작업을 수행할지 여부를 지정합니다. 기본값은 폴링입니다.
PolledDataAvailableStatement 어댑터가 실행되는 SQL 문을 지정하여 폴링에 사용할 수 있는 데이터가 있는지 여부를 확인합니다. 레코드를 사용할 수 있는 경우에만 PollingInput 바인딩 속성에 대해 지정한 SELECT 문이 실행됩니다.
PollingInterval Oracle E-Business 어댑터가 PolledDataAvailableStatement 바인딩 속성에 지정된 문을 실행하는 간격(초)을 지정합니다. 기본값은 30초입니다. 폴링 간격은 연속 폴링 간의 시간 간격을 결정합니다. 문이 지정된 간격 내에 실행되면 어댑터는 간격의 나머지 시간 동안 절전 모드로 유지됩니다.
PollingInput 폴링 문을 지정합니다. SELECT 문을 사용하여 폴링하려면 이 바인딩 속성에 대해 SELECT 문을 지정해야 합니다. 기본값은 null입니다.

폴링을 사용하려면 PollingInput 바인딩 속성에 대한 값을 지정해야 합니다. 폴링 문은 PolledDataAvailableStatement 바인딩 속성에 의해 결정되는 폴링에 사용할 수 있는 데이터가 있는 경우에만 실행됩니다.
PollingAction 폴링 작업에 대한 작업을 지정합니다. 어댑터 서비스 사용 추가 기능을 사용하여 작업에 대해 생성한 메타데이터에서 특정 작업에 대한 폴링 작업을 확인할 수 있습니다.
PostPollStatement PollingInput 바인딩 속성에 지정된 문이 실행된 후 실행되는 문 블록을 지정합니다.
PollWhileDataFound 폴링되는 테이블에서 데이터를 사용할 수 있는 경우 Oracle E-Business 어댑터가 폴링 간격을 무시하고 폴링 문을 지속적으로 실행할지 여부를 지정합니다. 테이블에서 사용할 수 있는 데이터가 없으면 어댑터가 되돌려 지정된 폴링 간격으로 폴링 문을 실행합니다. 기본값은 false입니다.

이러한 속성에 대한 자세한 설명은 BizTalk Adapter for Oracle E-Business Suite 바인딩 속성에 대해 읽어보세요. Oracle E-Business 어댑터를 사용하여 Oracle 데이터베이스를 폴링하는 방법에 대한 전체 설명은 자세히 읽어보십시오.

이 항목에서 폴링을 보여 주는 방법

이 항목에서는 Oracle E-Business 어댑터가 SELECT 문을 사용하여 데이터 변경 메시지 수신을 지원하는 방법을 보여 주려면 BizTalk 프로젝트를 만들고 폴링하려는 테이블에 대한 폴링 작업에 대한 스키마를 생성합니다. 이 항목에서는 애플리케이션 개체 라이브러리 애플리케이션에서 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에 대한 Poll 작업에 대한 스키마를 생성합니다. 이 테이블은 샘플과 함께 제공되는 create_apps_artifacts.sql 스크립트를 실행하여 Oracle E-Business Suite에서 이러한 개체를 만들 때 만들어집니다.

다음으로, BizTalk Server CBR(콘텐츠 기반 라우팅)을 사용하여 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 폴링 메시지를 수신하는 수신 포트가 있는 애플리케이션을 구성한 다음 송신 포트로 라우팅합니다. 이 경우 지정된 수신 위치를 확인하는 송신 포트에 필터를 만들고 메시지는 송신 포트로 라우팅됩니다.

폴링 작업을 보여 주기 위해 다음을 수행합니다.

  • PolledDataAvailableStatement 바인딩 속성에 대한 SELECT 문을 지정하여 폴링되는 인터페이스 테이블(MS_SAMPLE_EMPLOYEE)에 데이터가 있는 위치를 결정합니다. 이 예제에서는 이 바인딩 속성을 다음과 같이 설정할 수 있습니다.

    SELECT COUNT (*) FROM MS_SAMPLE_EMPLOYEE  
    

    이렇게 하면 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에 일부 레코드가 있는 경우에만 어댑터가 폴링 문을 실행합니다.

  • PollingInput 바인딩 속성에 대한 SELECT 문을 지정합니다. 이 문은 MS_SAMPLE_EMPLOYEE 인터페이스 테이블의 모든 행을 검색합니다. 이 예제에서는 이 바인딩 속성을 다음과 같이 설정할 수 있습니다.

    SELECT * FROM MS_SAMPLE_EMPLOYEE FOR UPDATE  
    

    참고

    SELECT 문에 사용되는 FOR UPDATE 절에 대한 자세한 내용은 SELECT 문을 사용하여 Oracle E-Business Suite 폴링 을 참조하세요.

  • POSTPollStatement 바인딩 속성의 일부로 DELETE 문을 지정합니다. 이 문은 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 모든 데이터를 삭제합니다. 이 예제에서는 이 바인딩 속성을 다음과 같이 설정할 수 있습니다.

    DELETE FROM MS_SAMPLE_EMPLOYEE  
    

    이 경우 다음에 PollingInput 에 지정된 문이 실행될 때 데이터를 가져오지 않습니다.

  • MS_SAMPLE_EMPLOYEE 인터페이스 테이블에 더 많은 데이터가 추가될 때까지 폴링 메시지가 표시되지 않습니다. 따라서 MS_SAMPLE_EMPLOYEE 인터페이스 테이블을 새 레코드로 다시 채워야 합니다. 샘플과 함께 제공되는 insert_apps_data.sql 스크립트를 실행하여 수행할 수 있습니다. 이 스크립트를 실행한 후 다음 폴링 작업은 테이블에 삽입된 새 레코드를 가져옵니다.

Oracle E-Business Suite에서 데이터 변경 메시지를 받는 방법

BizTalk Server Oracle E-Business 어댑터를 사용하여 Oracle 데이터베이스에서 작업을 수행하려면 구성 요소에서 설명한 다음 절차 작업을 수행하여 Oracle E-Business Suite 애플리케이션을 만듭니다. SELECT 문을 사용하여 Oracle E-Business Suite를 폴링하도록 어댑터를 구성하려면 다음 작업을 수행합니다.

  1. BizTalk 프로젝트를 만들고 폴링하려는 인터페이스 테이블에 대한 폴링 작업에 대한 스키마를 생성합니다.

  2. BizTalk 프로젝트를 빌드하고 배포합니다.

  3. 수신 및 송신 포트를 만들어 BizTalk 애플리케이션을 구성합니다. 또한 송신 포트에 필터를 추가하여 수신 포트에 지정된 수신 위치를 확인하고 폴링 메시지가 송신 포트로 라우팅되도록 합니다.

    중요

    인바운드 폴링 시나리오의 경우 항상 단방향 수신 포트를 구성해야 합니다. 양방향 수신 포트는 인바운드 작업에 지원되지 않습니다.

  4. BizTalk 애플리케이션을 시작합니다.

    이 항목에서는 이러한 작업을 수행하는 지침을 제공합니다.

이 항목을 기반으로 하는 샘플

이 항목을 기반으로 하는 샘플 PollingUsingSelectStatement도 BizTalk 어댑터 팩과 함께 제공됩니다. 자세한 내용은 샘플을 참조하세요.

스키마 생성

애플리케이션 개체 라이브러리 애플리케이션의 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 폴링 작업에 대한 스키마를 생성해야 합니다. 어댑터 서비스 사용 추가 기능을 사용하여 스키마를 생성하는 동안 다음 작업을 수행합니다.

  • 계약 유형을 서비스로 선택합니다 (인바운드 작업).

  • MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 폴링 작업에 대한 스키마를 생성합니다. 애플리케이션 기반 뷰 노드 또는 아티팩트 기반 뷰 노드에서 작업 및 인터페이스 테이블을 선택할 수 있습니다.

    스키마를 생성하는 방법에 대한 자세한 내용은 Oracle E-Business Suite 작업에 대한 메타데이터 찾아보기, 검색 및 가져오기를 참조하세요.

BizTalk 프로젝트 빌드 및 배포

이제 BizTalk 솔루션을 빌드하고 BizTalk Server 배포해야 합니다. BizTalk Server 솔루션을 배포하는 방법에 대한 자세한 내용은 Visual Studio에서 BizTalk 애플리케이션으로 BizTalk 어셈블리 배포를 참조하세요.

BizTalk 애플리케이션 구성

BizTalk 프로젝트를 배포한 후에는 애플리케이션이 BizTalk Server 관리 콘솔의 애플리케이션 노드 아래에 나열됩니다. 애플리케이션을 구성하려면 BizTalk Server 관리 콘솔을 사용해야 합니다. 애플리케이션 구성의 일환으로 애플리케이션에서 수신 포트 및 송신 포트를 만든 다음 수신 포트의 모든 메시지가 송신 포트로 라우팅되도록 송신 포트에 필터를 추가해야 합니다.

애플리케이션 구성에는 다음이 포함됩니다.

  • 애플리케이션에 대한 호스트를 선택합니다.

  • 수신 및 송신 포트 만들기

수신 포트 만들기

PollingInput 바인딩 속성에 지정된 SELECT 문을 사용하여 Oracle을 폴링하는 WCF-Custom 또는 WCF-OracleEBS 단방향 수신 포트를 만들어야 합니다. 수신 포트를 만드는 방법에 대한 자세한 내용은 Oracle E-Business 어댑터에 대한 물리적 포트 바인딩 수동 구성을 참조하세요. 수신 포트를 만드는 동안 다음 바인딩 속성을 지정해야 합니다.

폴링의 경우

Binding 속성
InboundOperationType 링으로 설정합니다.
PolledDataAvailableStatement 이 예제에서는 이 바인딩 속성을 다음으로 설정합니다.

SELECT COUNT (*) FROM MS_SAMPLE_EMPLOYEE
PollingAction MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 폴링 작업에 대해 생성된 스키마에서 폴링 작업을 검색합니다. 이 예제에서는 이 바인딩 속성을 InterfaceTables/Poll/FND/APPS/MS_SAMPLE_EMPLOYEE 설정합니다.
PollingInput 이 바인딩 속성의 경우 SELECT 문을 지정하여 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 모든 레코드를 검색합니다. 이 예제에서는 이 바인딩 속성을 다음으로 설정합니다.

SELECT * FROM MS_SAMPLE_EMPLOYEE FOR UPDATE
PostPollStatement 폴링 후 문을 지정하여 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 모든 데이터를 삭제합니다. 이 예제에서는 이 바인딩 속성을 다음으로 설정합니다.

DELETE FROM MS_SAMPLE_EMPLOYEE

애플리케이션 컨텍스트 설정

Oracle E-Business Suite 아티팩트에서 작업을 수행하는 경우 애플리케이션 컨텍스트를 설정하려면 적절한 바인딩 속성에 대한 값을 지정해야 합니다. 애플리케이션 컨텍스트 및 애플리케이션 컨텍스트 설정에 필요한 바인딩 속성에 대한 자세한 내용은 애플리케이션 컨텍스트 설정을 참조하세요.

이 예제에서는 oracleUserName, oraclePasswordoracleEBSResponsibility 바인딩 속성에 적절한 값을 지정합니다.

참고

Oracle E-Business 어댑터를 사용하여 인바운드 작업을 수행하는 동안 트랜잭션 격리 수준 및 트랜잭션 시간 제한을 구성하는 것이 좋습니다. 수신 포트를 구성하는 동안 서비스 동작을 추가하여 수행할 수 있습니다. 서비스 동작을 추가하는 방법에 대한 지침은 Oracle E-Business Suite를 사용하여 트랜잭션 격리 수준 및 트랜잭션 시간 제한 구성을 참조하세요.

송신 포트 만들기

하드 디스크의 위치를 정의하고 BizTalk Server Oracle에서 메시지를 삭제할 해당 FILE 송신 포트를 만듭니다. 이러한 메시지는 수신 포트에 대해 지정한 폴링 문에 대한 응답입니다. 송신 포트를 만드는 방법에 대한 자세한 내용은 Oracle E-Business 어댑터에 대한 물리적 포트 바인딩 수동 구성을 참조하세요.

또한 송신 포트에 필터를 추가하여 수신 위치에서 메시지를 라우팅해야 합니다. 송신 포트에 필터를 추가하려면 다음을 수행합니다.

  1. 송신 포트를 두 번 클릭하여 송신 포트 속성 대화 상자를 엽니다.

  2. 송신 포트 속성 대화 상자에서 필터 탭을 클릭합니다.

  3. 다음 값을 지정합니다.

    • 속성 목록에서 BTS를 클릭합니다. ReceivePortName.

    • 연산자 목록에서 를 클릭합니다==.

    • 필드에서 수신 포트 이름을 지정합니다.

  4. 송신 포트 속성 대화 상자에서 확인을 클릭합니다.

애플리케이션 시작

Oracle E-Business Suite 폴링을 위해 BizTalk 애플리케이션을 시작해야 합니다. BizTalk 애플리케이션 시작에 대한 지침은 오케스트레이션을 시작하는 방법을 참조하세요.

이 단계에서는 다음을 확인합니다.

  • PollingInput 바인딩 속성에 지정된 SELECT 문을 사용하여 Oracle을 폴링하는 WCF-Custom 또는 WCF-OracleEBS 단방향 수신 포트가 실행 중입니다.

  • Oracle 데이터베이스에서 메시지를 수신하는 FILE 송신 포트가 실행 중입니다.

작업 실행

애플리케이션을 실행한 후 다음과 같은 작업 집합이 동일한 순서로 수행됩니다.

  • 어댑터는 PollingInput 바인딩 속성에 지정된 문을 실행할 어댑터를 나타내는 양수 값을 반환하는 PolledDataAvailableStatement를 실행합니다.

  • 어댑터는 PollingInput 바인딩 속성에 대해 SELECT 문을 실행하고 MS_SAMPLE_EMPLOYEE 인터페이스 테이블의 모든 행을 반환합니다. Oracle E-Business Suite의 응답은 다음과 유사합니다.

    <?xml version="1.0" encoding="utf-8" ?>   
    <Poll xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE">   
      <DATA>   
        <SelectRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE">   
         <EMP_NO>10002</EMP_NO>   
         <NAME>JEFF PRICE</NAME>   
         <DESIGNATION>MANAGER</DESIGNATION>   
         <SALARY>25000</SALARY>   
         <JOIN_DATE>2007-12-15T00:00:00</JOIN_DATE>   
        </SelectRecord>   
        <SelectRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE">   
         <EMP_NO>10003</EMP_NO>   
         <NAME>DON HALL</NAME>   
         <DESIGNATION>ACCOUNTANT</DESIGNATION>   
         <SALARY>12000</SALARY>   
         <JOIN_DATE>2005-10-29T00:00:00</JOIN_DATE>   
        </SelectRecord>   
        …        
        <SelectRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE">   
         …   
        </SelectRecord>   
        …   
      </DATA>   
    </Poll>  
    
  • 어댑터는 폴링 후 문을 실행하여 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에서 모든 데이터를 삭제합니다.

  • 폴링 간격 후에 어댑터는 PolledDataAvailableStatement를 다시 실행합니다. MS_SAMPLE_EMPLOYEE 인터페이스 테이블에 레코드가 없으므로 PolledDataAvailableStatement 는 양수 값을 반환하지 않으므로 어댑터는 PollingInput 바인딩 속성에 지정된 문을 실행하지 않습니다. 따라서 어댑터 클라이언트는 폴링 메시지를 받지 않습니다.

  • 일부 레코드가 MS_SAMPLE_EMPLOYEE 인터페이스 테이블에 명시적으로 삽입될 때까지 어댑터 클라이언트는 더 이상 폴링 메시지를 받지 않습니다. 더 많은 레코드를 삽입하려면 샘플과 함께 제공되는 insert_apps_data.sql 스크립트를 실행할 수 있습니다. 이 스크립트를 실행한 후 다음에 PolledDataAvailableStatement 가 실행될 때 양수 값을 반환합니다. 결과적으로 어댑터는 폴링 문을 실행하고 어댑터 클라이언트는 폴링 메시지를 다시 받습니다.

참고

Oracle E-Business 어댑터는 BizTalk Server 관리 콘솔에서 수신 포트를 명시적으로 사용하지 않도록 설정할 때까지 계속 폴링합니다.

모범 사례

BizTalk 프로젝트를 배포하고 구성한 후에는 바인딩 파일이라는 XML 파일로 구성 설정을 내보낼 수 있습니다. 바인딩 파일을 생성한 후에는 송신 포트를 만들고 포트를 받을 필요가 없도록 파일에서 구성 설정을 가져올 수 있습니다. 바인딩 파일에 대한 자세한 내용은 Oracle E-Business Suite에서 어댑터 바인딩 다시 사용을 참조하세요.

참고 항목

BizTalk Server 사용하여 Oracle E-Business Suite 폴링