この章では、様々なデータ・オブジェクト・タイプの作成、様々な列タイプと階層の作成、行セキュリティと権限の割当て、データの管理などを含めて、Oracle Business Activity Monitoring (Oracle BAM)でデータ・オブジェクトを作成および管理する方法について説明します。
この章の内容は次のとおりです。
データ・オブジェクトをプロジェクトに追加する方法やデータ・オブジェクトの情報を表示する方法など、データ・オブジェクトの全般的な概要については、データ・オブジェクトの使用を参照してください。デザイナ・ロールのユーザーは、データ・オブジェクトの使用方法を理解してから、管理者ロールのユーザーとしてデータ・オブジェクトを作成するようにしてください。
BAMのプロセス・データ・オブジェクトは、プロセス・スター・スキーマに基づいています。これは、プロセス分析での使用に適したスター・スキーマ標準です。ファクト表にはプロセス実行時間などのメジャーが含まれており、ディメンション表にはプロセス名などのディメンションが含まれています。
データ・オブジェクトを作成する前に、次のことを決定してください。
必要なデータ・オブジェクトのタイプ: 単純、導出、外部または論理
単純なデータ・オブジェクトの場合は、ストリーム、アーカイブ済ストリームまたはアーカイブ済リレーションのどれが必要か
必要な列、およびそれらがメジャー、ディメンションまたは属性のどれになるか
必要な列のデータ型: VARCHAR
(または文字列)、INT
、DECIMAL
、FLOAT
またはDATETIME
結合のためのプライマリ列が必要かどうか
索引列が必要かどうか
階層が必要かどうか
計算フィールドが必要かどうか
データをフィルタ処理するかどうか
データの保持期間
他のユーザーに付与する行セキュリティと権限のタイプ
BAMに用意されているすぐに使用できるデータ・オブジェクトの詳細は、次を参照してください。
BPM用のすぐに使用できるデータ・オブジェクトの詳細は、「Oracle Business Process Managementとの統合」を参照してください。
SOA用のすぐに使用できるデータ・オブジェクトの詳細は、「Oracle SOA Suiteとの統合」を参照してください。
データ・オブジェクトを初めて作成したときには、そのデータ・オブジェクトにデータは含まれていません。データ・オブジェクトには、次の各章で説明するテクノロジを使用して、データをロードまたはストリームする必要があります。
Oracle Business Process Managementのビジネス・プロセスの開発のプロセス分析の使用に関する項
『Oracle SOA SuiteでのSOAアプリケーションの開発』のBPELプロセス分析の構成に関する項
次のWSILインタフェースを使用して、すべてのBAMデータ・オブジェクトの定義(メタデータ)を表示できます。
http://host:port/OracleBAMWS/WebServices/Wsil/inspection.wsil
注意:
BAMには、削除も変更も不可の次のシステム・データ・オブジェクトがあります。
AlertHistory: アラート・イベントの履歴が格納されます。
BAM_ENTITY: すべてのBAMデータ・オブジェクトのメタデータが格納されます。
PreseedingFileHistory: 事前シード・ファイル(データ・オブジェクトやプロジェクト作成のためのテンプレート)の使用が追跡されます。
また、oracle
フォルダ内のデータ・オブジェクトは変更しないことを強くお薦めします。それを行うと、事前アセンブルされたBPMダッシュボードおよびその他のOracleサンプルなどの依存エンティティが破損する場合があります。Oracle BAMに同梱されているColorThemesデータ・オブジェクトは削除できませんが、編集することはできます。先頭に数字またはハッシュ記号が付いた6桁の16進色コードを入力できます(例: #FF006A)。テーマごとに最大15色を保存できます。行の途中であっても、空白または空の色が許可されます。つまり、色を1から3に割り当て、4と5をスキップした後、6から10に割り当てて、そこで停止できます。また、このデータ・オブジェクトを使用して、ビジネス・ビューの一般プロパティの「事前定義済スタイル」ドロップダウンに表示されるカスタム色テーマも作成できます。詳細は、「一般プロパティ」を参照してください。
この項には次のトピックが含まれます:
各データ・オブジェクト・タイプの説明、ストリームとリレーションの違い、およびデータ・オブジェクトをアーカイブすることの意味の詳細は、データ・オブジェクト・タイプを参照してください。
外部データ・オブジェクトは、外部データベース内の表への接続です。Oracle BAMを使用してそのデータを変更することはできません。
そのメタデータをエクスポートおよびインポートするには、BAMCommandを使用する必要があります。詳細は、「BAMCommandの使用」を参照してください。
この項には次のトピックが含まれます:
データ型には、次のものがあります。
VARCHAR (または文字列)列には、一連のテキスト文字が格納されます。Oracle BAM 12cの最大長は2000文字をサポートしています。varcharフィールドの上限を下げると、データがパージされる可能性があります。
INT列には、-2^63 ~ 2^63 - 1の数字が格納されます。
ブール列は、サイズが1、値がfalseの場合は0、trueの場合は1のINT列です。
FLOAT列は、倍精度の浮動小数点数です。
Oracle BAMの浮動小数による数値データの切捨ては非常に高精度です。精度が失われないようにする場合は、Oracle BAMの小数型(OracleデータベースのNUMBER
)を必要なスケールで使用してください。
Oracle BAMのFLOATは、Oracleデータベースのデータ型BINARY_FLOATとして格納されます。精度がユーザーの入力と正確に同じになることは保証されず、また、2つのシステム間をデータが移動する場合、データ型は相互にマップされます(SQL浮動小数とJava浮動小数など)。データベースから送信されるデータに対する操作はOracle BAMによって実行されません。最後の数桁はOracle Java Database Connectivity (JDBC)ドライバによって切り捨てられます。
DECIMAL列には、小数点がスケール数の定義とともに格納されます。数値は文字列として格納され、値の各桁が1文字を表します。
Oracle BAMの小数データ型は、OracleデータベースにNUMBER (38, X)
として格納されます。最初の引数の38
は精度であり、ハードコードされます。2番目の引数のX
はスケールであり、この値は調整できます。スケール値は38より大きい値にできません。
DATETIME列は、ミリ秒単位まで生成されるタイムスタンプです。
DATETIMEフィールドは、Oracleデータベースのデータ型TIMESTAMP(6)として格納されます。DATETIMEフィールドへのデータの移入方法によっては、Oracle BAMによってタイムスタンプ値が入力される場合があります。たとえば、Oracle BAMでは、行の追加時にDATETIMEの値は指定できませんが、DATETIMEの値がBAMCommandインポート・ファイルで指定されている場合は、その指定値が現在の時間のかわりにDATETIMEフィールドの値として追加されます。
BAMのDATETIME値の形式は次のようになり、24時間表記で表示されます。
yyyy-MM-dd'T'HH:mm:ss.SSSZ
たとえば、次のDATETIME値は、GMT -8 (太平洋標準時)タイムゾーンにおける2013年11月12日午前12:15:52 103ミリ秒を表しています。
2013-11-12T00:15:52.103-08:00
この手順は、単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトに適用されます。Oracle BAM内から外部データ・オブジェクトに列を追加することはできません。論理データ・オブジェクトには別の手順が適用されます。論理データ・オブジェクトへの列の追加を参照してください。
注意:
単純なデータ・オブジェクトまたは導出されたデータ・オブジェクトの列を削除したり、非表示にすると、そのデータ・オブジェクトに依存する問合せ、ビューおよびその他のエントリが壊れるため、プロジェクトでの変更の管理の説明に従って編集することが必要となります。
単純なデータ・オブジェクトまたは導出されたデータ・オブジェクトに列を追加するには:
この手順は、論理データ・オブジェクトに適用されます。Oracle BAM内から外部データ・オブジェクトに列を追加することはできません。単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトには別の手順が適用されます。単純なデータ・オブジェクトまたは導出されたデータ・オブジェクトへの列の追加を参照してください。
注意:
論理データ・オブジェクトから列を削除した場合でも、その列を参照する問合せの実行は、その問合せを参照するダッシュボードを閉じるまで終了しません。
論理データ・オブジェクトに列を追加するには:
索引を使用すると、多数の行が含まれている大きなデータ・オブジェクトのパフォーマンスが向上します。索引を使用しないでデータにアクセスする場合は、データ・オブジェクト内のすべての行をスキャンする必要があります。スキャンは、非常に大きなデータ・オブジェクトに対しては非効率的です。索引は、指定した値で列内の行を検索する場合に役立ちます。
リクエストした列の索引がデータ・オブジェクトに存在する場合は、すべてのデータを検索せずに情報が検出されます。索引は、列内の値ごとの行の検索、データの集計およびデータのソートを行う場合に最も有効です。
単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトには索引列を追加できます。
索引列を追加するには:
Oracle BAMでは、データ・オブジェクトに階層を追加して、ビジネス・ビューでドリル・パスを提供できます。デザイナ・ユーザーがビュー内でドリルダウン対象階層を選択すると、ビューア・ユーザーはそのデータ階層をドリルダウンおよびドリルアップして、様々な詳細レベルでデータを表示できるようになります。
任意のタイプのデータ・オブジェクトで、複数の独立した階層を作成および編集できます。階層タイプには、非日時と日時の2つがあります。
注意:
階層は計算フィールドで構成することはできません。
データ・オブジェクトの他の列に基づく計算を含む列を作成できます。電卓には集計関数、文字列関数および日時関数が含まれており、計算フィールドを作成するときに、これらを既存の列データと組み合せることができます。また、他の計算フィールドに基づく計算フィールドを作成することもできます。
たとえば、「Activity Running Time」というフィールドがミリ秒単位である場合に、そのデータを分単位で表示するには、「Activity Running Time in Minutes」という計算フィールドを作成し、次の計算式を割り当てます。
Activity Running Time (millisecs)/60000
論理データ・オブジェクトには計算フィールドを追加できます。
注意:
論理データ・オブジェクトの計算フィールドを変更した場合でも、そのフィールドを参照する問合せの実行は、その問合せを参照するダッシュボードを閉じて問合せを再び保存するまで終了しません。
計算フィールドを追加するには:
権限は、データ・オブジェクトのメタデータまたはデータ全体にアクセスできるユーザーを決定します。行セキュリティでは、データの特定タイプへのアクセスを許可するユーザーを決定します。権限と行セキュリティは、データ・オブジェクトのすべてのタイプに適用されます。
この項には次のトピックが含まれます:
データ・オブジェクトに対する権限を変更するには:
「管理者」ページに移動します。
左側のナビゲーション・ペインで、「データ・オブジェクト」の左側にある矢印をクリックします。
現在のプロジェクトのすべてのデータ・オブジェクトがリストに表示されます。
データ・オブジェクトを右クリックし、「セキュリティ」メニュー・アイテムを選択します。
データ・オブジェクト・セキュリティ設定が新しいタブに開きます。
明示的に権限を付与または拒否するロールまたはグループを追加するには、次の手順を実行します。
「権限の付与」表または「権限の拒否」表で「追加」アイコンをクリックします。
「アプリケーション・ロール、グループおよびユーザーの追加」ダイアログが開きます。
ユーザーをロールおよびグループに追加する方法の詳細は、Oracle BAMユーザーの管理を参照してください。
追加するロールまたはグループの名前を「名前」に入力します。
ドロップダウン・リストから「アプリケーション・ロール」または「グループ」を選択します。
「検索」をクリックして、「選択可能メンバー」リストにデータを移入します。
「選択済メンバー」リストにメンバーを追加するには、メンバーを選択し、一重の右矢印をクリックします。
「選択済メンバー」リストにすべてのメンバーを追加するには、メンバーを選択し、二重の右矢印をクリックします。
「選択済メンバー」リストからメンバーを削除するには、一重および二重の左矢印を使用します。
「選択済メンバー」リストが完成したら、「OK」をクリックします。
「アプリケーション・ロール、グループおよびユーザーの追加」ダイアログが閉じ、「名前」に指定した名前が表に表示されます。
ロールまたはグループを削除するには、表の行を選択し、「削除」アイコンをクリックします。
権限を付与または拒否するには、「権限の付与」表および「権限の拒否」表に表示される次の権限を選択するか、選択を解除します。
読取り: データ・オブジェクトのメタデータを表示する権限。
書込み: データ・オブジェクトのメタデータを編集する権限。書込み権限には、読取り権限が自動的に含まれます。
削除: データ・オブジェクトを削除する権限。
選択: データ・オブジェクト内のデータを選択または読み取る権限。
これは、ビジネス問合せ、ビジネス・ビュー、ダッシュボード、およびその他のDesignerエンティティのデータ・オブジェクトを使用するのに必要な最小限の権限です。
削除: データ・オブジェクト行を削除する権限。
更新: データ・オブジェクト行を更新または挿入する権限。
セキュリティ: このデータ・オブジェクトに関する他のユーザーに対してこれらの権限を設定する権限。
「保存」をクリックします。
特定のユーザーのみがデータ・オブジェクト内の特定の行を表示できるように、データ・オブジェクトにセキュリティ・フィルタを追加できます。これは、すべてのデザイナ・ユーザーまたはビューア・ユーザーを対象とはしていない機密情報が含まれているデータ・オブジェクトに対して作業を行う場合に有効です。
ユーザーがダッシュボードを開いているときにそのユーザーのセキュリティ・フィルタを変更した場合、現在開いているダッシュボードへの影響はありません。ユーザーがそのダッシュボードを再び開いた場合に、新しいセキュリティ・フィルタ設定が適用されます。セキュリティ・フィルタ設定は、ダッシュボード・ビューによって参照されるビジネス問合せに反映されます。
注意:
行セキュリティの変更がアラートに適用されるようにするには、アラートを再び保存するか、Oracle BAMサーバーを再起動します。
データ・オブジェクトに行セキュリティ・フィルタを追加するには:
この項には次のトピックが含まれます:
データ・オブジェクトに行を自動的に追加するには、次のトピックで説明されているテクノロジを使用して、データをロードまたはストリームする必要があります。
Oracle Business Process Managementのビジネス・プロセスの開発のプロセス分析の使用に関する項
『Oracle SOA SuiteでのSOAアプリケーションの開発』のBPELプロセス分析の構成に関する項
単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトではデータをパージできます。
定期パージを自動的に実行する場合は、データ・オブジェクトのデータ保持の設定を参照してください。
データ・オブジェクトをパージするには:
すべてのデータ・オブジェクト・タイプから、データをエクスポートできます。
BAMCommandを使用してデータをエクスポートする方法の詳細は、exportを参照してください。
データ・オブジェクトからデータをエクスポートするには:
単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトではデータ保持を設定できます。
データを手動でパージする場合は、データ・オブジェクトのデータのパージを参照してください。
データ・オブジェクトのデータ保持を設定するには:
ディメンション表の変更頻度が低い場合は、「緩やかに変化するディメンション」オプションを選択して、連続した問合せのパフォーマンスを改善できます。
このオプションは、単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトで設定できます。
緩やかに変化するディメンションを指定するには:
注意:
「緩やかに変化するディメンション」が設定されたデータ・オブジェクトとそうでない別のデータ・オブジェクトを論理データ・オブジェクトで結合し、かつ論理データ・オブジェクトに行が挿入されたときにアラートを起動するように構成している場合は、「緩やかに変化するディメンション」が設定されたデータ・オブジェクトに最初に行が挿入されるようにするか、アラートが起動しないようにしてください。
データ・オブジェクトは、左側のナビゲーション・ペインでフォルダとサブフォルダを作成して分類できます。フォルダは、「表示名」でデータ・オブジェクトをグループ化するための規則です。
次のフォルダ操作を実行できます。
データ・オブジェクトの作成時または名前変更時に「表示名」に1つ以上のスラッシュ(/
)を追加することによって、1つ以上のフォルダを作成します。名前変更は、「表示名」の変更を意味します。スラッシュ間のテキストがフォルダとサブフォルダの名前になります。
「表示名」に既存のフォルダを追加することによって、そのフォルダに新しいデータ・オブジェクトを作成します。
既存のフォルダを右クリックし、「作成」を選択することによって、そのフォルダに新しいデータ・オブジェクトを作成します。「表示名」には、デフォルトでフォルダが含まれています。
名前を変更(つまり、「表示名」の値を変更)することによって、フォルダ内またはフォルダ外にデータ・オブジェクトを移動します。
1回の手順でフォルダの名前を変更することはできません。フォルダの名前を変更するには、フォルダ内の各データ・オブジェクトの「表示名」を編集します。
フォルダを右クリックし、「削除」を選択することによって、そのフォルダ内のすべてのデータ・オブジェクトを削除します。
フォルダには他の機能はありません。たとえば、ユーザー権限は、フォルダに対してではなく、個々のデータ・オブジェクトに対してのみ設定できます。
この項では、データ・オブジェクトを変更する様々な方法について説明します。
他のOracle BAMエンティティの場合と同様に、データ・オブジェクトを編集、名前変更および削除できます。
データ・オブジェクトを開き、編集および保存するには、次の手順を使用します。データ・オブジェクトを編集すると、そのデータ・オブジェクトを使用するすべてのエンティティに、変更内容が伝播します。
データ・オブジェクトを編集するには:
この項では、データ・オブジェクトに計算フィールドを作成する場合に計算内で使用可能な演算子と関数の構文および例を紹介します。
注意:
計算フィールドで平均などの集計関数を使用すると、最初のデータ・ポイントはnullになります。これは、データがない場合の集計はnullになるためです。
Sum関数は整数データ型でのみサポートされています。小数または浮動小数データ型の場合、小数点以下の値の正確な精度が保証されません。
この項では、次の項目について説明します。
表14-1に、計算列の作成に使用可能な演算子を示します。
表14-1 計算フィールドで使用する演算子
演算子 | 機能 |
---|---|
+ (プラス記号) |
加算 |
- (マイナス記号) |
減算 |
* (アスタリスク) |
乗算 |
/ (スラッシュ) |
除算 |
% (パーセント記号) |
率 |
( ) (カッコ) |
操作順序の決定 |
!=(感嘆符と等価符号) |
論理否定(NOT) |
&& (二重アンパサンド) |
論理積(AND) |
|| (二重パイプ) |
論理和(OR) 例: if ((CallbackClientTime == NULL) || (ReceiveInputTime == NULL)) then (-1) else (CallbackClientTime-ReceiveInputTime) |
== (二重等号) |
等価 |
= (等号記号) |
割当て |
特殊文字(表14-1に示す演算子や二重引用符、空白など)を含んだフィールド名は、中カッコ{}で囲む必要があります。数字、英字またはアンダースコアのみが含まれ、1文字目が英字またはアンダースコアで始まるフィールド名は、中カッコで囲む必要はありません。たとえば、フィールド名がSalesの場合、この名前を計算に正しく入力するにはSalesと入力します。一方、フィールド名がSales+Costsの場合、この名前を計算に正しく入力するには{Sales+Costs}
と入力します。
二重引用符を他の二重引用符内で使用する場合は、二重引用符を追加してエスケープします。たとえば、Length("""Hello World, "" I said")
のように記述します。
現在の時間から過去の指定の時間までの集計値が戻されます。時間単位は、YEAR
、QUARTER
、MONTH
、DAY
またはHOUR
です。
Oracle Structured Query Language (SQL)は、この関数をサポートしています。Oracle Continuous Query Language (CQL)は、この関数をサポートしていません。
構文:
AGO(expr,time_unit,offset)
例:
AGO(SUM(SALES),YEAR,1)
指定したフィールドのすべての値の平均が戻されます。Avg
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
構文:
Avg(Number)
例:
Avg(Revenue)
Switch文のCase句を作成します。Switch
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
Switch(w) Case(x):(y) Default(z)
例:
指定した値以上で最も小さい整数が戻されます。Ceiling(2.9)
では3が戻され、 Ceiling(-2.3)
では-2が戻されます。Ceiling
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定するか、あるいは数値を入力できます。
構文:
Ceiling(Number)
例:
Ceiling(Total) Ceiling(3.7)
複数の文字列が1つに結合されます。Concat
には、String
型のフィールド・パラメータを複数指定するか、あるいは文字列値を入力できます。
構文:
Concat(String1,String2, ... ,StringN)
例:
Concat("Hello ","World")
NULL以外のすべての値の数が戻されます。Count
には、任意の型のフィールド・パラメータを1つ指定できます。
構文:
Count(Field)
例:
Count(SaleComplete)
同じフィールド内の異なる値の数が戻されます。CountDistinct
には、任意の型のフィールド・パラメータを1つ指定できます。
構文:
CountDistinct(Field)
例:
CountDistinct(Salesperson)
フィールド値に補正値が加算されます。DateAdd
の最初のパラメータは、DateTime
型のフィールドである必要があります。最後の7つのパラメータは、Integer
型のフィールドまたは整数値にできます。補正値が不要な場合は、0(ゼロ)を指定できます。
CQLではこの関数はサポートされていません。この関数では、日時値のミリ秒部分は追加されません。
構文:
DateAdd(DateTime, Years, Months, Days, Hours, Minutes, Seconds, Milliseconds)
例:
DateAdd({Last Modified}, 0, 0, 7, 0, 0, 0, 0) //adds 7 days to the Last Modified value DateAdd({Last Modified}, 0, 0, DaysToFollowup, 0, 0, 0, 0) //adds DaysToFolowup number of days to the Last Modified value
2つの日付または時刻の間隔が戻されます。時間単位は、SQL_TSI_YEAR
、SQL_TSI_QUARTER
、SQL_TSI_MONTH
、SQL_TSI_WEEK
、SQL_TSI_DAY
、SQL_TSI_HOUR
、SQL_TSI_MINUTE
またはSQL_TSI_SECOND
です。
CQLではこの関数はサポートされていません。
構文:
DATEDIFF(time_unit,time1,time2)
例:
DATEDIFF(SQL_TSI_DAY,Process Start Time,NOW())
ある日付の曜日が戻されます。DayName
には、DateTime
型のフィールド・パラメータを1つ指定できます。
注意:
すべての戻り値が最長の曜日名の長さになります。曜日名が短い場合は、末尾に空白が付加されます。これらの余分な空白を削除するには、TrimEnd関数を使用します。
構文:
DayName(DateTime)
例:
DayName({Last Modified})
ある日付のその月の日が1から31の範囲で戻されます。DayOfMonth
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
DayOfMonth(DateTime)
例:
DayOfMonth({Last Modified})
ある日付の曜日が1から7の範囲で戻されます。DayOfWeek
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
DayOfWeek(DateTime)
例:
DayOfWeek({Last Modified})
ある日付のその年の日が1から366の範囲で戻されます。DayOfYear
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
DayOfYear(DateTime)
例:
DayOfYear({Last Modified})
Switch文のDefault句を作成します。Switch
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
Switch(w) Case(x):(y) Default(z)
例:
If-Then-Else文の3つ目の句を指定します。Else
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
If(x) Then(y) Else(z)
例:
IF(Process Instance Status=="ACTIVE") THEN(DATEDIFF(SQL_TSI_DAY,Process Start Time,NOW())) ELSE(DATEDIFF(SQL_TSI_DAY,Process End Time,NOW()))
指定したフィールドの値以下で最も大きな整数が戻されます。Floor(2.9)
では2が戻され、Floor(-2.3)
では-3が戻されます。Floor
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定するか、あるいは数値を入力できます。
構文:
Floor(Number)
例:
Floor(Sales) Floor(46.75)
時間の値が0から23の範囲で戻されます。Hour
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Hour(DateTime)
例:
Hour({Last Modified})
If-Then-Else文の1つ目の句を指定します。If
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
If(x) Then(y) Else(z)
例:
IF(Process Instance Status=="ACTIVE") THEN(DATEDIFF(SQL_TSI_DAY,Process Start Time,NOW())) ELSE(DATEDIFF(SQL_TSI_DAY,Process End Time,NOW()))
テスト値xがNULLの場合、指定値yが戻されます。IfNull
には、2つのパラメータを指定できます。指定できるのは、任意の型のフィールドまたは値です。ただし、2つのパラメータのデータ型は同じである必要があります。
構文:
IfNull(x,y)
例:
IfNull(Quantity, 0)
文字列の長さが戻されます。Length
には、パラメータを1つ指定できます。指定できるのは、String
型のフィールド、引用符で囲んだ文字列値、文字列が含まれている式またはString
型のフィールドが含まれている式です。
構文:
Length(String)
例:
Length(Description) Length("string") Length(Concat(Description,"Description"))
文字列が小文字に変換されます。Lower
には、パラメータを1つ指定できます。指定できるのは、String
型のフィールド、引用符で囲んだ文字列値、文字列が含まれている式またはString
型のフィールドが含まれている式です。
構文:
Lower(String)
例:
Lower(Description) Lower("Description") Lower(Concat(Description,"Description"))
指定したフィールドまたは式の最大値が戻されます。Max
には、任意の型の1つのフィールド・パラメータまたは別の有効な式を指定できます。
構文:
Max(x)
例:
Max(Quantity) Max(Concat(Description," overstock"))
指定したフィールドのすべての値の中央値が戻されます。Median
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
構文:
Median(Number)
例:
Median(Revenue)
指定したフィールドまたは式の最小値が戻されます。Min
には、任意の型の1つのフィールド・パラメータまたは別の有効な式を指定できます。
構文:
Min(x)
例:
Min(Quantity) Min(Concat(Description," overstock"))
分の値が0から59の範囲で戻されます。Minute
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Minute(DateTime)
例:
Minute({Last Modified})
ある日付の月の値が1から12の範囲で戻されます。Month
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Month(DateTime)
例:
Month({Last Modified})
ある日付の月の名前が戻されます。MonthName
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
MonthName(DateTime)
例:
MonthName({Last Modified})
何も実行されません。何も実行しないという選択肢が必要な場合に制御関数で使用します。
構文:
NOOP(Param)
例:
IF("Process Running Time (millisecs)"/3600000 > 48) THEN("Overdue") ELSE(NOOP(1))
指定したフィールドの合計値に対する値の割合が戻されます。PercentOfTotal
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
CQLではこの関数はサポートされていません。
構文:
PercentOfTotal(Number)
例:
PercentOfTotal(Quantity)
四半期の値が1から4の範囲で戻されます。Quarter
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Quarter(DateTime)
例:
Quarter({Last Modified})
列内の値を比較して各値のランクが戻されます。ランクが同じになる場合、値は連続しません。たとえば、2つの値のランクが3の場合、次のランクは5になります。
CQLではこの関数はサポートされていません。
構文:
RANK(column)
例:
RANK(SALES)
文字列が指定した回数繰り返されます。Repeat
には、パラメータを2つ指定できます。最初のパラメータには文字列値またはString
型のフィールド、2番目のパラメータには整数値またはInteger
型のフィールドを指定できます。いずれのパラメータにも、最初のパラメータに文字列が戻され、2番目のパラメータに整数が戻される式を使用できます。
構文:
Repeat(String,Integer)
例:
Repeat("string", 5) Repeat(Description, 2) Repeat(Description, Quantity) Repeat(Concat(Description," overstock"),Quantity+2)
すべての文字列yが文字列zに置換されて、文字列xが戻されます。Replace
には、String
型のフィールド・パラメータまたは文字列値を3つ指定できます。
構文:
Replace(String,String,String)
例:
Replace(Description, "ing", "tion")
最初のパラメータで指定した値が、2番目のパラメータで指定した小数点以下の桁数で四捨五入されます(小数点以下N+1位の数が5以上の場合は切り上げられ、そうでない場合は切り捨てられます)。Round
には、パラメータを2つ指定できます。指定できるのは、Integer
、Float
、Decimal
型のフィールドまたは数値です。
構文:
Round(Number,N)
例:
Round(Sales,2)
この例では、Sales
値が12.345の場合、12.35に四捨五入されます。
秒の値が0から59の範囲で戻されます。Second
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Second(DateTime)
例:
Second({Last Modified})
特定の値の平均からの標準偏差の数が戻されます。
CQLではこの関数はサポートされていません。
構文:
STDDEVSFROMMEAN(column))
例:
STDDEVSFROMMEAN(PROCESS_OPEN_HOURS))
文字列xの位置yからzの文字数の部分文字列が戻されます。Substringには、3つのパラメータが必要です。最初のパラメータには文字列値またはString
型のフィールド、2番目および3番目のパラメータには整数値またはInteger
型のフィールドを指定する必要があります。
構文:
Substring("source_string", start_position, substring_length)
例:
Substring("some string", 6, 3) // returns "str"
指定したフィールドのすべての値の合計が戻されます。Sum
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
構文:
Sum(Number)
例:
Sum(Total)
Switch文が作成されます。Switch
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
Switch(w) Case(x):(y) Default(z)
例:
If-Then-Else文の2つ目の句を指定します。Then
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
If(x) Then(y) Else(z)
例:
IF(Process Instance Status=="ACTIVE") THEN(DATEDIFF(SQL_TSI_DAY,Process Start Time,NOW())) ELSE(DATEDIFF(SQL_TSI_DAY,Process End Time,NOW()))
文字列の末尾にある空白文字(空白、タブ、改行、ライン・フィード、ページ・フィード、フォーム・フィードなど)を削除します。TrimEnd
には、String
型のフィールド・パラメータを1つ指定できます。文字列値を戻す式を入力することもできます。
構文:
TrimEnd(String)
例:
TrimEnd(Description) TrimEnd(Concat(Description,Subcategory))
文字列の先頭にある空白文字(空白、タブ、改行、ライン・フィード、ページ・フィード、フォーム・フィードなど)を削除します。TrimStart
には、String
型のフィールド・パラメータを1つ指定できます。文字列値を戻す式を入力することもできます。
構文:
TrimStart(String)
例:
TrimStart(Description) TrimStart(Concat(Description,Subcategory))
文字列が大文字に変換されます。Upper
には、String
型のパラメータを1つ指定できます。文字列値を戻す式を入力することもできます。
構文:
Upper(String)
例:
Upper({License Plate Number})
特定の値の平均からの分散が戻されます。
CQLではこの関数はサポートされていません。
構文:
VARIANCESFROMMEAN(column))
例:
VARIANCESFROMMEAN(PROCESS_OPEN_HOURS))
DateTime
値の週が0から53の範囲で戻されます。これは、53週目に週の開始日が存在する可能性があるためです。日曜日が、その週の開始日になります。日曜日があるこの年の最初の週が、1週目となります。
たとえば、2006年1月1日は日曜日であるため、0週目は存在しませんこの年は、1週目から開始し、53週目まで続きます。2006年の53週目には、1日のみが含まれます。それは12月31日で、日曜日でもあります。これに続く月曜日から土曜日(2007年1月1日から6日)は、2007年の0週目です。
構文:
Week(DateTime)
例:
Week({Last Modified})