BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > BPM トピック > BPM クライアント アプリケーション プログラミング > ビジネス カレンダーのコンフィグレーション |
BPM クライアント アプリケーション プログラミング
|
ビジネス カレンダーのコンフィグレーション
ビジネス カレンダーで、オーガニゼーションの稼働時間を定義できます。ビジネス カレンダーの管理方法の詳細については、『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() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。
メソッドは、新しいビジネス カレンダーの ID を返します。 たとえば、以下のコードでは、指定された calendarInfo オブジェクトのコンテンツに基づいてビジネス カレンダーが追加されます。このコード例では、admin は Admin EJB への EJBObject 参照を表します。 addBusinessCalendar() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。
admin.addBusinessCalendar(calendarInfo);
ビジネス カレンダーの取得
現在定義されているすべてのビジネス カレンダーのコンテンツを取得するには、次の com.bea.wlpi.server.admin.Admin メソッドを使用します。
public java.util.List getAllBusinessCalendars(
boolean includeDefinition
) throws java.rmi.RemoteException,
com.bea.wlpi.common.WorkflowException
getAllBusinessCalendars() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。
このメソッドは、com.bea.wlpi.common.BusinessCalendarInfo オブジェクトのリストを返します。各ビジネス カレンダーの情報にアクセスするには、BusinessCalendarInfo オブジェクト に記載の BusinessCalendarInfo オブジェクト メソッドを使用します。 たとえば、以下のコードにより、ビジネス カレンダー情報が取得されて、calendars リスト オブジェクトに保存されます。このコード例では、admin は Admin EJB への EJBObject 参照を表します。 getAllBusinessCalendars() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。
List calendars = admin.getAllBusinessCalendars();
ビジネス カレンダー定義の取得
ビジネス カレンダー定義を取得するには、次の 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() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。
このメソッドは、ビジネス カレンダー DTDに準拠するビジネス カレンダー定義を含む XML ファイルを返します。 たとえば、以下のコードにより、単一のビジネス カレンダー定義の情報が取得されて、calendar 文字列に保存されます。このコード例では、admin は Admin EJB への EJBObject 参照を表します。 getBusinessCalendarDefinition() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。
String calendar = admin.getBusinessCalendarDefinition();
ビジネス カレンダーの更新
ビジネス カレンダーを更新するには、次の 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() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。
たとえば、以下のコードでは、指定された calendarInfo オブジェクトのコンテンツに基づいてビジネス カレンダーが更新されます。このコード例では、admin は Admin EJB への EJBObject 参照を表します。 updateBusinessCalendar() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。
admin.updateBusinessCalendar(calendarInfo);
ビジネス カレンダーの削除
ビジネス カレンダーを削除するには、次の com.bea.wlpi.server.admin.Admin メソッドを使用します。
public void deleteBusinessCalendar(
java.lang.String calendarId
) throws java.rmi.RemoteException,
com.bea.wlpi.common.WorkflowException
deleteBusinessCalendar() メソッドのパラメータを次の表に示します。パラメータには値の指定が必要です。
たとえば、次のコードでは、指定されたビジネス カレンダーが削除されます。このコード例では、admin は Admin EJB への EJBObject 参照を表します。 deleteBusinessCalendar() メソッドの詳細については、Javadoc の com.bea.wlpi.server.admin.Admin を参照してください。
admin.deleteBusinessCalendar(calendarInfo);
ビジネス カレンダーのコンフィグレーション例
この節では、コマンドライン管理例から抜粋して、ビジネス カレンダーのコンフィグレーション方法を示します。
注意: コマンドライン管理サンプルの詳細については、コマンドライン管理サンプルを参照してください。
このサンプルでは、ユーザと通信するための入力ストリームが定義されており、ユーザは以下のアクションのいずれかを指定するよう求められます。
重要なコード行は、太字で強調されています。このコード例では、admin は Admin 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;
.
.
.
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |