BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

BPM クライアント アプリケーション プログラミング

 前 次 目次 索引 PDFで表示  

ビジネス カレンダーのコンフィグレーション

ビジネス カレンダーで、オーガニゼーションの稼働時間を定義できます。ビジネス カレンダーの管理方法の詳細については、『WebLogic Integration Studio ユーザーズ ガイド』の「データの管理」の「ビジネス カレンダーの管理」を参照してください。

この章では、ビジネス カレンダーのコンフィグレーションと関連したタスクについて説明します。内容は以下のとおりです。

 


ビジネス カレンダーの追加

ビジネス カレンダーを追加するには、次の com.bea.wlpi.server.admin.Admin メソッドを使用します。

public java.lang.String addBusinessCalendar(
com.bea.wlpi.common.BusinessCalendarInfo calendarInfo
) throws java.rmi.RemoteException,
com.bea.wlpi.common.WorkflowException

addBusinessCalendar() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。

表12-1 addBusinessCalendar() メソッドのパラメータ

パラメータ

説明

有効な値

calendarInfo

新しいビジネス カレンダー情報

BusinessCalendarInfo オブジェクト。

BusinessCalendarInfo オブジェクトを定義する方法については、BusinessCalendarInfo オブジェクトを参照。


 

メソッドは、新しいビジネス カレンダーの ID を返します。

たとえば、以下のコードでは、指定された calendarInfo オブジェクトのコンテンツに基づいてビジネス カレンダーが追加されます。このコード例では、adminAdmin EJB への EJBObject 参照を表します。

admin.addBusinessCalendar(calendarInfo);

addBusinessCalendar() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。

 


ビジネス カレンダーの取得

現在定義されているすべてのビジネス カレンダーのコンテンツを取得するには、次の com.bea.wlpi.server.admin.Admin メソッドを使用します。

public java.util.List getAllBusinessCalendars(
boolean includeDefinition
) throws java.rmi.RemoteException,
com.bea.wlpi.common.WorkflowException

getAllBusinessCalendars() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。

表12-2 getAllBusinessCalendars() メソッドのパラメータ

パラメータ

説明

有効な値

includeDefintion

XML カレンダーの仕様を含むかどうかを指定するブール フラグ

true (XML を含む) または false (XMLを含まない)。


 

このメソッドは、com.bea.wlpi.common.BusinessCalendarInfo オブジェクトのリストを返します。各ビジネス カレンダーの情報にアクセスするには、BusinessCalendarInfo オブジェクト に記載の BusinessCalendarInfo オブジェクト メソッドを使用します。

たとえば、以下のコードにより、ビジネス カレンダー情報が取得されて、calendars リスト オブジェクトに保存されます。このコード例では、adminAdmin EJB への EJBObject 参照を表します。

List calendars = admin.getAllBusinessCalendars();

getAllBusinessCalendars() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。

 


ビジネス カレンダー定義の取得

ビジネス カレンダー定義を取得するには、次の com.bea.wlpi.server.admin.Admin メソッドを使用します。

public java.lang.String getBusinessCalendarDefinition(
java.lang.String calendarId
) throws java.rmi.RemoteException,
com.bea.wlpi.common.WorkflowException

getBusinessCalendarDefinition() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。

表12-3 getBusinessCalendarDefinition() メソッドのパラメータ

パラメータ

説明

有効な値

calendarId

定義の検索を行うビジネス カレンダーの ID

有効なビジネス カレンダー ID を指定する文字列。

カレンダー ID を取得するには、以下の com.bea.wlpi.common.BusinessCalendarInfo メソッドを使用する。

public final java.lang.String
getId()

BusinessCalendarInfo オブジェクトを取得する方法については、ビジネス カレンダーの取得を参照。BusinessCalendarInfo オブジェクトで選択可能なメソッドの詳細については、BusinessCalendarInfo オブジェクトを参照。


 

このメソッドは、ビジネス カレンダー DTDに準拠するビジネス カレンダー定義を含む XML ファイルを返します。

たとえば、以下のコードにより、単一のビジネス カレンダー定義の情報が取得されて、calendar 文字列に保存されます。このコード例では、adminAdmin EJB への EJBObject 参照を表します。

String calendar = admin.getBusinessCalendarDefinition();

getBusinessCalendarDefinition() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。

 


ビジネス カレンダーの更新

ビジネス カレンダーを更新するには、次の com.bea.wlpi.server.admin.Admin メソッドを使用します。

public void updateBusinessCalendar(
com.bea.wlpi.common.BusinessCalendarInfo calendarInfo
) throws java.rmi.RemoteException,
com.bea.wlpi.common.WorkflowException

updateBusinessCalendar() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。

表12-4 updateBusinessCalendar() メソッドのパラメータ

パラメータ

説明

有効な値

calendarInfo

更新するカレンダー情報

BusinessCalendarInfo オブジェクト。

BusinessCalendarInfo オブジェクトを定義する方法については、BusinessCalendarInfo オブジェクトを参照。


 

たとえば、以下のコードでは、指定された calendarInfo オブジェクトのコンテンツに基づいてビジネス カレンダーが更新されます。このコード例では、adminAdmin EJB への EJBObject 参照を表します。

admin.updateBusinessCalendar(calendarInfo);

updateBusinessCalendar() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。

 


ビジネス カレンダーの削除

ビジネス カレンダーを削除するには、次の com.bea.wlpi.server.admin.Admin メソッドを使用します。

public void deleteBusinessCalendar(
java.lang.String calendarId
) throws java.rmi.RemoteException,
com.bea.wlpi.common.WorkflowException

deleteBusinessCalendar() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。

表12-5 deleteBusinessCalendar() メソッドのパラメータ

パラメータ

説明

有効な値

calendarId

削除するビジネス カレンダーの ID

有効なビジネス カレンダー ID を指定する文字列。

カレンダー ID を取得するには、以下の com.bea.wlpi.common.BusinessCalendarInfo メソッドを使用する。

public final java.lang.String
getId()

BusinessCalendarInfo オブジェクトを取得する方法については、ビジネス カレンダーの取得を参照。BusinessCalendarInfo オブジェクトで選択可能なメソッドの詳細については、BusinessCalendarInfo オブジェクトを参照。


 

たとえば、次のコードでは、指定されたビジネス カレンダーが削除されます。このコード例では、adminAdmin EJB への EJBObject 参照を表します。

admin.deleteBusinessCalendar(calendarInfo);

deleteBusinessCalendar() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。

 


ビジネス カレンダーのコンフィグレーション例

この節では、コマンドライン管理例から抜粋して、ビジネス カレンダーのコンフィグレーション方法を示します。

注意: コマンドライン管理サンプルの詳細については、コマンドライン管理サンプルを参照してください。

このサンプルでは、ユーザと通信するための入力ストリームが定義されており、ユーザは以下のアクションのいずれかを指定するよう求められます。

重要なコード行は、太字で強調されています。このコード例では、adminAdmin EJB への EJBObject 参照を表します。

/* ユーザとの通信のための入力ストリームを作成する */
stdIn = new BufferedReader( new InputStreamReader( System.in ) );

/* ツール タイトルを表示する */
System.out.print( "¥n--- Command Line Administration v1.1 ---" );

/* メイン メニューを表示してユーザと交信する */
while( true ) {
/* メニューを表示する */
System.out.println( "¥n--- Main Menu ---" );
System.out.println( "¥nEnter choice:" );
System.out.println( "1) Organizations" );
System.out.println( "2) Roles" );
System.out.println( "3) Users" );
System.out.println( "4) Security Realm" );
System.out.println( "5) Business Operations" );
System.out.println( "6) Event Keys" );
System.out.println( "7) Business Calendars" );
System.out.println( "8) EJB Catalog" );
System.out.println( "9) Server Properties" );
System.out.println( "Q) Quit" );
System.out.print( ">> " );
.
.
.
/**
* WLPI ビジネス カレンダーと関連する、Admin インタフェースで選択可能な公開 API メソッドを示す目的で
* 必要な情報をすべて取得するために
* ユーザと交信するメソッド
*/
public static void mngBusinessCalendars() {¥
boolean isGetDefinition;
BusinessCalendarInfo calendarInfo;
List calendarList;
String answer;
String calendarDefinition;
String calendarId;
String calendarName;
String calendarTimezone; // XML Document

/* ユーザとの通信のための入力ストリームを作成する */
BufferedReader stdIn = new BufferedReader(
new InputStreamReader( System.in ) );

try {
/* メニューを表示してユーザと交信する*/
while( true ) {
/* メニューを表示する */
System.out.println( "¥n¥n--- Business Calendars ---" );
System.out.println( "¥nEnter choice:" );
System.out.println( "1) Add a Business Calendar" );
System.out.println( "2) Delete a Business Calendar" );
System.out.println( "3) List a Business Calendar Definition" );
System.out.println( "4) List all Business Calendars" );
System.out.println( "5) Update a Business Calendar" );
System.out.println( "B) Back to previous menu" );
System.out.println( "Q) Quit" );
System.out.print( ">> " );
/* ユーザの選択を取得する */
String line = stdIn.readLine();
/* ユーザが選択を行わないで〔Enter〕を押したか ? */
if( line.equals( "" ) )
continue;
else if( line.length() > 1 ) {
System.out.println( "*** Invalid selection" );
continue;
         }
/* 大文字および文字へのコンバート */
char choice = line.toUpperCase().charAt( 0 );
/* ユーザの選択を処理する */
switch( choice ) {
.
.
.

ビジネス カレンダーの追加

ビジネス カレンダーの追加方法を示します。

         /*ビジネス カレンダーを追加する *
case '1' :
/* 新しいビジネス カレンダーを追加するため
カレンダー ID はない。サーバが割り当てて
新しい ID を戻す。値を指定しない場合には
ワードを「null」に設定する必要がある (ヌル文字列ではない) */
calendarId = new String( "null" );

/* 追加する新しいカレンダーのカレンダー名を取得する */
if( ( calendarName = askQuestion( "¥nEnter new Calendar Name" ) )
== null ) {
/* ユーザによる操作の取り消し */
System.out.println( "*** Cancelled" );
break;
}

/* 追加する新しいカレンダーの Calendar TimeZone を取得する */
if( ( calendarTimezone = askQuestion( "Enter Time Zone" ) ) == null ) {
/* ユーザによる操作の取り消し */
System.out.println( "*** Cancelled" );
break;
}

/* ビジネス カレンダー定義は
BusinessCalendar.dtd ドキュメント タイプ(WLPI javadocs を参照)に準拠した
XML ドキュメントである。
ビジネス カレンダーを定義する
すべての情報が含まれる */
/* XML ドキュメントを構築する必要がある */
calendarDefinition = createCalendarDefinition( calendarId,
calendarName, calendarTimezone );

/* BusinessCalendarInfo オブジェクトを作成する */
calendarInfo = new BusinessCalendarInfo( calendarId, calendarName,
calendarTimezone, calendarDefinition );

try {
/* WLPI 公開 API メソッド */
/* 新しいビジネス カレンダーを作成する */
calendarId = admin.addBusinessCalendar( calendarInfo );

/* 正常終了(例外の発生なし) */
System.out.println( "- Business Calendar added (ID=" +
calendarId + ")" );
}
catch( Exception e ) {
System.out.println( "*** Unable to add business calendar¥n" );
System.err.println( e );
}
break;
.
.
.

ビジネス カレンダーの削除

ビジネス カレンダーの削除方法を示します。

         /* ビジネス カレンダーを削除する */
case '2' :
/* 削除するカレンダーのカレンダー ID を取得する */
if( ( calendarId = askQuestion( "¥nEnter Calendar ID to delete" ) )
== null ) {
/* ユーザによる操作の取り消し */
System.out.println( "*** Cancelled" );
break;
}

try {
/* WLPI 公開 API メソッド */
/* ビジネス カレンダーを削除する */
admin.deleteBusinessCalendar( calendarId );

/* 正常終了(例外の発生なし) */
System.out.println( "- Deleted" );
}
catch( Exception e ) {
System.out.println( "*** Unable to delete Business Calendar" );
System.err.println( e );
}
break;
.
.
.

ビジネス カレンダー定義の取得

、ビジネス カレンダー定義の取得方法を示します。

         /* ビジネス カレンダー定義をリストアップする */
case '3' :
/* 削除するカレンダーのカレンダー ID を取得する */
if( ( calendarId = askQuestion( "¥nEnter Calendar ID" ) ) == null ) {
/* ユーザによる操作の取り消し */
System.out.println( "*** Cancelled" );
break;
}

try {
/* WLPI 公開 API メソッド */
/* ビジネス カレンダーの定義を取り出す。*/
calendarDefinition = admin.getBusinessCalendarDefinition(
calendarId );

/* 正常終了(例外の発生なし) */
System.out.println( "- Business Calendar definition:¥n" +
calendarDefinition );
}
catch( Exception e ) {
System.out.println( "*** Unable to retrieve Business " +
"Calendar definition¥n" );
System.err.println( e );
}
break;
.
.
.

ビジネス カレンダーの取得

ビジネス カレンダーの取得方法を示します。

         /* すべてのビジネス カレンダーをリストアップする */
case '4' :
/* カレンダー定義の表示が必要かどうかをユーザに求める */
if( ( answer = askQuestion( "¥nList Definition (y/n)?" ) ) == null ) {
/* ユーザによる操作の取り消し */
System.out.println( "*** Cancelled" );
break;
}

/* 応答を解析する */
isGetDefinition = ( answer.equals( "y" ) || answer.equals( "Y" ) );

try {
/* WLPI 公開 API メソッド */
/* すべてのビジネス カレンダーを取り出す */
//Bug1 calendarList = admin.getAllBusinessCalendars(
//isGetDefinition );
calendarList = admin.getAllBusinessCalendars( false );

/* 定義されているカレンダーはあるか ? */
if( calendarList.size() == 0 )
System.out.println( "¥nNo Business Calendar defined" );
else
System.out.println( "¥nDefined Business Calendars:" );

/* リストを処理してカレンダーと属性を表示する */
for( int i = 0; i < calendarList.size(); i++ ) {
/* リストから要素を取り出す */
calendarInfo = ( BusinessCalendarInfo )calendarList.get( i );

/* オーガニゼーション ID を取り出して表示する */
System.out.println( "- ID: " + calendarInfo.getId() );

/* カレンダー名を取り出して表示する */
System.out.println( " Name: " + calendarInfo.getName() );

/* 時間帯を取り出して表示する */
System.out.println( " Time Zone: " + calendarInfo.getTimeZone() );

/* ビジネス カレンダー定義を表示するか ? */
if( isGetDefinition ) {
/* カレンダー定義を取り出して表示する */
//Bug 1 説明: 無効文字を含む戻された文字列に
// getXML がプレフィックスされる */
//Bug1 System.out.println( " Business Calendar
//definition:¥n" +
//Bug1 calendarInfo.getXML() );
/* カレンダー定義を取り出すために回避する */
calendarDefinition = admin.getBusinessCalendarDefinition(
calendarInfo.getId() );
/* カレンダー 定義を表示する */
System.out.println( " Business Calendar definition:¥n" +
calendarDefinition );
}
}
}
catch( Exception e ) {
System.out.println( "*** Unable to retrieve Business Calendars" );
System.err.println( e );
}
break;
.
.
.

ビジネス カレンダーの更新

ビジネス カレンダーの更新方法を示します。

         /* ビジネス カレンダーを更新する */
case '5' :
/* 更新するカレンダーのカレンダー ID を取得する */
if( ( calendarId = askQuestion( "¥nEnter Calendar ID to update" ) )
== null ) {
/* ユーザによる操作の取り消し */
System.out.println( "*** Cancelled" );
break;
}

try {
/* WLPI 公開 API メソッド */
/* 更新するビジネス カレンダーを取り出すために、すべてのビジネス カレンダーを
検索する*/
calendarList = admin.getAllBusinessCalendars( false );

/* 定義されているカレンダーはあるか ? */
if( calendarList.size() == 0 ) {
System.out.println( "¥nNo Business Calendar defined" );
break;
}

boolean isNotDefined = true;
calendarInfo = null;

/* 更新するカレンダー情報を取り出すためのリストを処理する */
for( int i = 0; i < calendarList.size(); i++ ) {
/* リストから要素を取り出す */
calendarInfo = ( BusinessCalendarInfo )calendarList.get( i );

/* オーガニゼーション ID を取り出して表示する */
if( calendarId.equals( calendarInfo.getId() ) ) {
isNotDefined = false;
break;
}
}

/* カレンダーは定義されているか ? */
if( isNotDefined ) {
System.out.println( "*** This Business Calendar is
not defined" );
break;
}

System.out.println( "¥nUpdating Business Calendar" );

/* カレンダー名を取り出して表示する */
System.out.println( "- The current Name is: " +
calendarInfo.getName() );

/* 新しいカレンダー名を取得する */
if( ( calendarName = askQuestion( " Enter a new Name " ) ) != null )
/* ユーザが値を入力したので値を更新する */
/* WLPI 公開 API メソッド */
calendarInfo.setName( calendarName );

/* 時間帯を取り出して表示する */
System.out.println( "- The current Time Zone is: " +
calendarInfo.getTimeZone() );

/* 追加する新しいカレンダーの Calendar TimeZone を取得する */
if( ( calendarTimezone = askQuestion( " Enter a new Time Zone " ) )
!= null )
/* ユーザが値を入力したので値を更新する */
/* WLPI 公開 API メソッド */
calendarInfo.setTimeZone( calendarTimezone );

/* 新しいビジネス カレンダー定義を作成する */
               calendarDefinition = updateCalendarDefinition( calendarId, 
calendarInfo.getName(), calendarInfo.getTimeZone() );

/* ビジネス カレンダー定義を更新する */
calendarInfo.setXML( calendarDefinition );

/* WLPI 公開 API メソッド */
admin.updateBusinessCalendar( calendarInfo );

/* 正常終了(例外の発生なし) */
System.out.println( "¥nUpdated" );
}
catch( Exception e ) {
System.out.println( "*** Unable to update Business Calendar" );
System.err.println( e );
}
break;
.
.
.

 

ページの先頭 前 次