14 Oracle BAMデータ・オブジェクトの作成と管理
この章では、様々なデータ・オブジェクト・タイプの作成、様々な列タイプと階層の作成、行セキュリティと権限の割当て、データの管理などを含めて、Oracle Business Activity Monitoring (Oracle BAM)でデータ・オブジェクトを作成および管理する方法について説明します。
この章の内容は次のとおりです。
14.1 Oracle BAMデータ・オブジェクトの理解
BAMデータ・オブジェクトによって、BAM内で使用するデータをモデル化します。これには監視対象のデータが含まれます。データは、データベースまたは外部表にRAW形式で保存できます。データは、進行中のアクティビティからのストリームにすることもできます。
データ・オブジェクトの概略紹介(プロジェクトへのデータ・オブジェクトの追加方法およびデータ・オブジェクト情報の表示方法など)については、「データ・オブジェクトの使用」を参照してください。管理者ロールのユーザーとしてデータ・オブジェクトを作成する前に、デザイナ・ロールのユーザーとしてデータ・オブジェクトを使用する方法を理解しておく必要があります。
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 — 事前シード・ファイル(データ・オブジェクトやプロジェクト作成のためのテンプレート)の使用が追跡されます。
-
EmsStatus — Oracle Enterprise Manager Fusion Middleware Controlの起動および停止のステータスを追跡します。
また、oracle
フォルダ内のデータ・オブジェクトは変更しないことを強くお薦めします。それを行うと、事前アセンブルされたBPMダッシュボードおよびその他のOracleサンプルなどの依存エンティティが破損する場合があります。また、Oracle BAMにはColorThemesデータ・オブジェクトが付属します。これは削除不可ですが、編集は可能です。先頭に数字またはハッシュ記号を付けた6桁のHEX色コード(#FF006Aなど)を入力できます。テーマごとに15色まで格納できます。色を空白にすることもできます(行の途中であっても)。つまり、色1から3を割り当て、4と5をスキップし、6から10を割り当てることができます。
14.2 データ・オブジェクトの作成
Oracle BAMを使用すると、様々なデータ・オブジェクト・タイプを作成して、BAMの外部で永続化されている外部データを含む、様々な種類のデータを維持できます。
この項には次のトピックが含まれます:
各データ・オブジェクト・タイプの説明、ストリームとリレーションの違い、およびデータ・オブジェクトをアーカイブすることの意味の詳細は、「データ・オブジェクト・タイプ」を参照してください。
ノート:
「Type」または「type」という名前のデータ・オブジェクト列を作成することはできません。これは予約語で、作成時に警告が表示されなくても、この列名を使用した問合せは保存できません。14.2.3 外部データ・オブジェクトの作成
外部データ・オブジェクトは、外部データベース内の表への接続です。Oracle BAMを使用してそのデータを変更することはできません。
そのメタデータをエクスポートおよびインポートするには、BAMCommandを使用する必要があります。詳細は、「BAMコマンドの使用」を参照してください。
14.3 データ・オブジェクトへの列および階層の追加
この項では、列および階層について説明し、これらをデータ・オブジェクトに追加する方法について概説します。
この項には次のトピックが含まれます:
14.3.1 列のデータ型
データ型には、次のものがあります。
-
VARCHAR (または文字列)列には、一連のテキスト文字が格納されます。Oracle BAM 12cの最大長は2000文字をサポートしています。
ノート:
BAMに2つのセットの文字列長(STRING
およびLONGSTRING
)があります。設計長範囲は次のとおりです。-
STRING – 0 < 256
-
LONGSTRING – 257 < 2000
STRING
から別の範囲LONGSTRING
に長さを切り替えることはできません。範囲内の列の長さのみ変更できます。 -
-
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
14.3.2 単純なデータ・オブジェクトまたは導出されたデータ・オブジェクトへの列の追加
この手順は、単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトに適用されます。Oracle BAM内から外部データ・オブジェクトに列を追加することはできません。論理データ・オブジェクトには別の手順が適用されます。「論理データ・オブジェクトへの列の追加」を参照してください。
ノート:
単純なデータ・オブジェクトまたは導出されたデータ・オブジェクトの列を削除したり、非表示にすると、そのデータ・オブジェクトに依存する問合せ、ビューおよびその他のエントリが壊れるため、「プロジェクトでの変更の管理」の説明に従って編集することが必要となります。
単純なデータ・オブジェクトまたは導出されたデータ・オブジェクトに列を追加するには:
14.3.3 論理データ・オブジェクトへの列の追加
この手順は、論理データ・オブジェクトに適用されます。Oracle BAM内から外部データ・オブジェクトに列を追加することはできません。単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトには別の手順が適用されます。「単純なデータ・オブジェクトまたは導出されたデータ・オブジェクトへの列の追加」を参照してください。
ノート:
論理データ・オブジェクトから列を削除した場合でも、その列を参照する問合せの実行は、その問合せを参照するダッシュボードを閉じるまで終了しません。
論理データ・オブジェクトに列を追加するには:
14.3.4 索引列の追加
索引を使用すると、多数の行が含まれている大きなデータ・オブジェクトのパフォーマンスが向上します。索引を使用しないでデータにアクセスする場合は、データ・オブジェクト内のすべての行をスキャンする必要があります。スキャンは、非常に大きなデータ・オブジェクトに対しては非効率的です。索引は、指定した値で列内の行を検索する場合に役立ちます。
リクエストした列の索引がデータ・オブジェクトに存在する場合は、すべてのデータを検索せずに情報が検出されます。索引は、列内の値ごとの行の検索、データの集計およびデータのソートを行う場合に最も有効です。
単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトには索引列を追加できます。
索引列を追加するには:
14.3.5 階層の追加
Oracle BAMでは、データ・オブジェクトに階層を追加して、ビジネス・ビューでドリル・パスを提供できます。デザイナ・ユーザーがビュー内でドリルダウン対象階層を選択すると、ビューア・ユーザーはそのデータ階層をドリルダウンおよびドリルアップして、様々な詳細レベルでデータを表示できるようになります。
任意のタイプのデータ・オブジェクトで、複数の独立した階層を作成および編集できます。階層タイプには、非日時と日時の2つがあります。
ノート:
階層は計算フィールドで構成することはできません。
14.3.6 計算フィールドの追加
データ・オブジェクトの他の列に基づく計算を含む列を作成できます。電卓には集計関数、文字列関数および日時関数が含まれており、計算フィールドを作成するときに、これらを既存の列データと組み合せることができます。また、他の計算フィールドに基づく計算フィールドを作成することもできます。
たとえば、「Activity Running Time」というフィールドがミリ秒単位である場合に、そのデータを分単位で表示するには、「Activity Running Time in Minutes」という計算フィールドを作成し、次の計算式を割り当てます。
Activity Running Time (millisecs)/60000
論理データ・オブジェクトには計算フィールドを追加できます。
ノート:
論理データ・オブジェクトの計算フィールドを変更した場合でも、そのフィールドを参照する問合せの実行は、その問合せを参照するダッシュボードを閉じて問合せを再び保存するまで終了しません。
計算フィールドを追加するには:
14.3.7 データ・オブジェクト・パラメータの追加
管理者として、計算済フィールド内のデータ・オブジェクト・レベルでパラメータを定義できます。これは、設計者が指定できるプロジェクト・レベルのパラメータとは異なります。
14.4 データ・オブジェクトの保護
権限は、データ・オブジェクトのメタデータまたはデータ全体にアクセスできるユーザーを決定します。行セキュリティでは、データの特定タイプへのアクセスを許可するユーザーを決定します。権限と行セキュリティは、データ・オブジェクトのすべてのタイプに適用されます。
この項には次のトピックが含まれます:
14.4.1 データ・オブジェクトに対するセキュリティ権限の設定
データ・オブジェクトに対する権限を変更するには:
-
「管理者」ページに移動します。
-
左側のナビゲーション・ペインで、「データ・オブジェクト」の左側にある矢印をクリックします。
現在のプロジェクトのすべてのデータ・オブジェクトがリストに表示されます。
-
データ・オブジェクトを右クリックし、「セキュリティ」メニュー・アイテムを選択します。
データ・オブジェクト・セキュリティ設定が新しいタブに開きます。
-
明示的に権限を付与または拒否するロールまたはグループを追加するには、次のステップを実行します。
-
「権限の付与」表または「権限の拒否」表で「追加」アイコンをクリックします。
「アプリケーション・ロール、グループおよびユーザーの追加」ダイアログが開きます。
ユーザーをロールおよびグループに追加する方法の詳細は、「Oracle BAMユーザーの管理」を参照してください。
-
追加するロールまたはグループの名前を「名前」に入力します。
-
ドロップダウン・リストから「アプリケーション・ロール」または「グループ」を選択します。
-
「検索」をクリックして、「選択可能メンバー」リストにデータを移入します。
-
「選択済メンバー」リストにメンバーを追加するには、メンバーを選択し、一重の右矢印をクリックします。
-
「選択済メンバー」リストにすべてのメンバーを追加するには、メンバーを選択し、二重の右矢印をクリックします。
-
「選択済メンバー」リストからメンバーを削除するには、一重および二重の左矢印を使用します。
-
「選択済メンバー」リストが完成したら、「OK」をクリックします。
「アプリケーション・ロール、グループおよびユーザーの追加」ダイアログが閉じ、「名前」に指定した名前が表に表示されます。
-
-
ロールまたはグループを削除するには、表の行を選択し、「削除」アイコンをクリックします。
-
権限を付与または拒否するには、「権限の付与」表および「権限の拒否」表に表示される次の権限を選択するか、選択を解除します。
-
読取り — データ・オブジェクトのメタデータを表示する権限。
-
書込み — データ・オブジェクトのメタデータを編集する権限。書込み権限には、読取り権限が自動的に含まれます。
-
削除 — データ・オブジェクトを削除する権限。
-
選択 — データ・オブジェクト内のデータを選択または読み取る権限。
これは、ビジネス問合せ、ビジネス・ビュー、ダッシュボード、およびその他のDesignerエンティティのデータ・オブジェクトを使用するのに必要な最小限の権限です。
-
削除 — データ・オブジェクト行を削除する権限。
-
更新 — データ・オブジェクト行を更新または挿入する権限。
-
セキュリティ — このデータ・オブジェクトに関する他のユーザーに対してこれらの権限を設定する権限。
-
-
「保存」をクリックします。
14.4.2 データ・オブジェクトに対する行セキュリティの設定
特定のユーザーのみがデータ・オブジェクト内の特定の行を表示できるように、データ・オブジェクトにセキュリティ・フィルタを追加できます。これは、すべてのデザイナ・ユーザーまたはビューア・ユーザーを対象とはしていない機密情報が含まれているデータ・オブジェクトに対して作業を行う場合に有効です。
ユーザーがダッシュボードを開いているときにそのユーザーのセキュリティ・フィルタを変更した場合、現在開いているダッシュボードへの影響はありません。ユーザーがそのダッシュボードを再び開いた場合に、新しいセキュリティ・フィルタ設定が適用されます。セキュリティ・フィルタ設定は、ダッシュボード・ビューによって参照されるビジネス問合せに反映されます。
ノート:
行セキュリティの変更がアラートに適用されるようにするには、アラートを再び保存するか、Oracle BAMサーバーを再起動します。
データ・オブジェクトに行セキュリティ・フィルタを追加するには:
14.5 データ・オブジェクトのデータの管理
この項では、手動および自動でのデータ・オブジェクトのデータの変更または削除について説明します。
この項には次のトピックが含まれます:
14.5.1 データ・オブジェクトへの行の自動追加
データ・オブジェクトに行を自動的に追加するには、次のトピックで説明されているテクノロジを使用して、データをロードまたはストリームする必要があります。
-
Oracle Business Process Managementのビジネス・プロセスの開発のプロセス分析の使用に関する項
-
『Oracle SOA SuiteでのSOAアプリケーションの開発』のBPELプロセス分析の構成に関する項
14.5.4 データ・オブジェクトのデータのパージ
単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトではデータをパージできます。
定期パージを自動的に実行する場合は、「データ・オブジェクトのデータ保持の設定」を参照してください。
データ・オブジェクトをパージするには:
14.5.5 データ・オブジェクトからのデータのエクスポート
すべてのデータ・オブジェクト・タイプから、データをエクスポートできます。
BAMCommandを使用してデータをエクスポートする方法の詳細は、「Export」を参照してください。
データ・オブジェクトからデータをエクスポートするには:
14.5.6 データ・オブジェクトのデータ保持の設定
単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトではデータ保持を設定できます。
データを手動でパージする場合は、「データ・オブジェクトのデータのパージ」を参照してください。
データ・オブジェクトのデータ保持を設定するには:
14.5.7 データ・オブジェクトの自動データ・パージのスケジュール
- Oracle Fusion Middleware Enterprise Managerコンソールにログインします。
- コンソールの左上隅にあるドメイン・ボタンをクリックします。
- コンテキスト・メニューから、「システムMBeanブラウザ」アイテムをクリックします。
- ナビゲーション・ツリーから、「アプリケーション定義のMBean」ノードの下の「oracle.beam.server」ノードを開きます。
- 「ドメイン:[DomainName]」ノードを開き、「構成」ノードを開きます。
- 「BEAMServerConfig」ノードをクリックします。
- 生成される表で、「DOデータ・パージ時刻」フィールドを検索し、目的の時間値をHH24:mm:ss形式で入力します。
- 「適用」をクリックします。
14.5.9 データ・オブジェクトに対する、緩やかに変化するディメンションの指定
ディメンション表の変更頻度が低い場合は、「緩やかに変化するディメンション」オプションを選択して、連続した問合せのパフォーマンスを改善できます。
このオプションは、単純なデータ・オブジェクトおよび導出されたデータ・オブジェクトで設定できます。
緩やかに変化するディメンションを指定するには:
ノート:
「緩やかに変化するディメンション」が設定されたデータ・オブジェクトとそうでない別のデータ・オブジェクトを論理データ・オブジェクトで結合し、かつ論理データ・オブジェクトに行が挿入されたときにアラートを起動するように構成している場合は、「緩やかに変化するディメンション」が設定されたデータ・オブジェクトに最初に行が挿入されるようにするか、アラートが起動しないようにしてください。
14.6 データ・オブジェクト・フォルダの使用
データ・オブジェクトは、左側のナビゲーション・ペインでフォルダとサブフォルダを作成して分類できます。フォルダは、「表示名」でデータ・オブジェクトをグループ化するための規則です。
次のフォルダ操作を実行できます。
-
データ・オブジェクトの作成時または名前変更時に「表示名」に1つ以上のスラッシュ(
/
)を追加することによって、1つ以上のフォルダを作成します。名前変更は、「表示名」の変更を意味します。スラッシュ間のテキストがフォルダとサブフォルダの名前になります。 -
「表示名」に既存のフォルダを追加することによって、そのフォルダに新しいデータ・オブジェクトを作成します。
-
既存のフォルダを右クリックし、「作成」を選択することによって、そのフォルダに新しいデータ・オブジェクトを作成します。「表示名」には、デフォルトでフォルダが含まれています。
-
名前を変更(つまり、「表示名」の値を変更)することによって、フォルダ内またはフォルダ外にデータ・オブジェクトを移動します。
1回のステップでフォルダの名前を変更することはできません。フォルダの名前を変更するには、フォルダ内の各データ・オブジェクトの「表示名」を編集します。
-
フォルダを右クリックし、「削除」を選択することによって、そのフォルダ内のすべてのデータ・オブジェクトを削除します。
フォルダには他の機能はありません。たとえば、ユーザー権限は、フォルダに対してではなく、個々のデータ・オブジェクトに対してのみ設定できます。
14.7 データ・オブジェクトの編集、名前変更および削除
この項では、データ・オブジェクトを変更する様々な方法について説明します。
他のOracle BAMエンティティの場合と同様に、データ・オブジェクトを編集、名前変更および削除できます。
14.7.1 データ・オブジェクトの編集
データ・オブジェクトを開き、編集および保存するには、次の手順を使用します。データ・オブジェクトを編集すると、そのデータ・オブジェクトを使用するすべてのエンティティに、変更内容が伝播します。
データ・オブジェクトを編集するには:
14.8 計算フィールドの演算子と関数
この項では、データ・オブジェクトに計算フィールドを作成する場合に計算内で使用可能な演算子と関数の構文および例を紹介します。
ノート:
計算フィールドで平均などの集計関数を使用すると、最初のデータ・ポイントはnullになります。これは、データがない場合の集計はnullになるためです。
Sum関数は整数データ型でのみサポートされています。小数または浮動小数データ型の場合、小数点以下の値の正確な精度が保証されません。
この項では、次の項目について説明します。
14.8.1 演算子
表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")
のように記述します。
14.8.2 Ago
現在の時間から過去の指定の時間までの集計値が戻されます。時間単位は、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)
14.8.3 Avg
指定したフィールドのすべての値の平均が戻されます。Avg
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
構文:
Avg(Number)
例
Avg(Revenue)
14.8.4 ケース
Switch文のCase句を作成します。Switch
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
Switch(w) Case(x):(y) Default(z)
例
SWITCH(TypeOfChange) CASE("Loss"):(OldNum - NewNum) CASE("Gain"):(OldNum + NewNum) CASE("Revert"):(OldNum) DEFAULT(NewNum)
14.8.5 Ceiling
指定した値以上で最も小さい整数が戻されます。Ceiling(2.9)
では3が戻され、 Ceiling(-2.3)
では-2が戻されます。Ceiling
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定するか、あるいは数値を入力できます。
構文:
Ceiling(Number)
例:
Ceiling(Total) Ceiling(3.7)
14.8.6 Concat
複数の文字列が1つに結合されます。Concat
には、String
型のフィールド・パラメータを複数指定するか、あるいは文字列値を入力できます。
構文:
Concat(String1,String2, ... ,StringN)
例
Concat("Hello ","World")
14.8.7 Count
NULL以外のすべての値の数が戻されます。Count
には、任意の型のフィールド・パラメータを1つ指定できます。
構文:
Count(Field)
例
Count(SaleComplete)
14.8.8 CountDistinct
同じフィールド内の異なる値の数が戻されます。CountDistinct
には、任意の型のフィールド・パラメータを1つ指定できます。
構文:
CountDistinct(Field)
例
CountDistinct(Salesperson)
14.8.9 DateAdd
フィールド値に補正値が加算されます。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
14.8.10 DateDiff
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())
14.8.11 DayName
ある日付の曜日が戻されます。DayName
には、DateTime
型のフィールド・パラメータを1つ指定できます。
ノート:
すべての戻り値が最長の曜日名の長さになります。曜日名が短い場合は、末尾に空白が付加されます。これらの余分な空白を削除するには、TrimEnd関数を使用します。
構文:
DayName(DateTime)
例
DayName({Last Modified})
14.8.12 DayOfMonth
ある日付のその月の日が1から31の範囲で戻されます。DayOfMonth
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
DayOfMonth(DateTime)
例
DayOfMonth({Last Modified})
14.8.13 DayOfWeek
ある日付の曜日が1から7の範囲で戻されます。DayOfWeek
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
DayOfWeek(DateTime)
例
DayOfWeek({Last Modified})
14.8.14 DayOfYear
ある日付のその年の日が1から366の範囲で戻されます。DayOfYear
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
DayOfYear(DateTime)
例
DayOfYear({Last Modified})
14.8.15 デフォルト
Switch文のDefault句を作成します。Switch
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
Switch(w) Case(x):(y) Default(z)
例
14.8.16 Else
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()))
14.8.17 Floor
指定したフィールドの値以下で最も大きな整数が戻されます。Floor(2.9)
では2が戻され、Floor(-2.3)
では-3が戻されます。Floor
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定するか、あるいは数値を入力できます。
構文:
Floor(Number)
例:
Floor(Sales) Floor(46.75)
14.8.18 Hour
時間の値が0から23の範囲で戻されます。Hour
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Hour(DateTime)
例
Hour({Last Modified})
14.8.19 If
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()))
14.8.20 IfNull
テスト値xがNULLの場合、指定値yが戻されます。IfNull
には、2つのパラメータを指定できます。指定できるのは、任意の型のフィールドまたは値です。ただし、2つのパラメータのデータ型は同じである必要があります。
構文:
IfNull(x,y)
例
IfNull(Quantity, 0)
14.8.21 Length
文字列の長さが戻されます。Length
には、パラメータを1つ指定できます。指定できるのは、String
型のフィールド、引用符で囲んだ文字列値、文字列が含まれている式またはString
型のフィールドが含まれている式です。
構文:
Length(String)
例
Length(Description) Length("string") Length(Concat(Description,"Description"))
14.8.22 Lower
文字列が小文字に変換されます。Lower
には、パラメータを1つ指定できます。指定できるのは、String
型のフィールド、引用符で囲んだ文字列値、文字列が含まれている式またはString
型のフィールドが含まれている式です。
構文:
Lower(String)
例
Lower(Description) Lower("Description") Lower(Concat(Description,"Description"))
14.8.23 Max
指定したフィールドまたは式の最大値が戻されます。Max
には、任意の型の1つのフィールド・パラメータまたは別の有効な式を指定できます。
構文:
Max(x)
例
Max(Quantity) Max(Concat(Description," overstock"))
14.8.24 Median
指定したフィールドのすべての値の中央値が戻されます。Median
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
構文:
Median(Number)
例
Median(Revenue)
14.8.25 Min
指定したフィールドまたは式の最小値が戻されます。Min
には、任意の型の1つのフィールド・パラメータまたは別の有効な式を指定できます。
構文:
Min(x)
例
Min(Quantity) Min(Concat(Description," overstock"))
14.8.26 Minute
分の値が0から59の範囲で戻されます。Minute
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Minute(DateTime)
例
Minute({Last Modified})
14.8.27 Month
ある日付の月の値が1から12の範囲で戻されます。Month
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Month(DateTime)
例
Month({Last Modified})
14.8.28 MonthName
ある日付の月の名前が戻されます。MonthName
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
MonthName(DateTime)
例
MonthName({Last Modified})
14.8.29 Noop
何も行いません。何も実行しないという選択肢が必要な場合に制御関数で使用します。
構文:
NOOP(Param)
例
IF("Process Running Time (millisecs)"/3600000 > 48) THEN("Overdue") ELSE(NOOP(1))
14.8.31 PercentOfTotal
指定したフィールドの合計値に対する値の割合が戻されます。PercentOfTotal
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
CQLではこの関数はサポートされていません。
構文:
PercentOfTotal(Number)
例
PercentOfTotal(Quantity)
14.8.32 Quarter
四半期の値が1から4の範囲で戻されます。Quarter
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Quarter(DateTime)
例
Quarter({Last Modified})
14.8.33 Rank
列内の値を比較して各値のランクが戻されます。ランクが同じになる場合、値は連続しません。たとえば、2つの値のランクが3の場合、次のランクは5になります。
CQLではこの関数はサポートされていません。
構文:
RANK(column)
例
RANK(SALES)
14.8.34 Repeat
文字列が指定した回数繰り返されます。Repeat
には、パラメータを2つ指定できます。最初のパラメータには文字列値またはString
型のフィールド、2番目のパラメータには整数値またはInteger
型のフィールドを指定できます。いずれのパラメータにも、最初のパラメータに文字列が戻され、2番目のパラメータに整数が戻される式を使用できます。
構文:
Repeat(String,Integer)
例
Repeat("string", 5) Repeat(Description, 2) Repeat(Description, Quantity) Repeat(Concat(Description," overstock"),Quantity+2)
14.8.35 Replace
すべての文字列yが文字列zに置換されて、文字列xが戻されます。Replace
には、String
型のフィールド・パラメータまたは文字列値を3つ指定できます。
構文:
Replace(String,String,String)
例
Replace(Description, "ing", "tion")
14.8.36 Round
最初のパラメータで指定した値が、2番目のパラメータで指定した小数点以下の桁数で四捨五入されます(小数点以下N+1位の数が5以上の場合は切り上げられ、そうでない場合は切り捨てられます)。Round
には、パラメータを2つ指定できます。指定できるのは、Integer
、Float
、Decimal
型のフィールドまたは数値です。
構文:
Round(Number,N)
例
Round(Sales,2)
この例では、Sales
値が12.345の場合、12.35に四捨五入されます。
14.8.37 Second
秒の値が0から59の範囲で戻されます。Second
には、DateTime
型のフィールド・パラメータを1つ指定できます。
構文:
Second(DateTime)
例
Second({Last Modified})
14.8.39 StdDevsFromMean
特定の値の平均からの標準偏差の数が戻されます。
CQLではこの関数はサポートされていません。
構文:
STDDEVSFROMMEAN(column))
例
STDDEVSFROMMEAN(PROCESS_OPEN_HOURS))
14.8.40 Substring
文字列xの位置yからzの文字数の部分文字列が戻されます。Substringには、3つのパラメータが必要です。最初のパラメータには文字列値またはString
型のフィールド、2番目および3番目のパラメータには整数値またはInteger
型のフィールドを指定する必要があります。
構文:
Substring("source_string", start_position, substring_length)
例
Substring("some string", 6, 3) // returns "str"
14.8.41 Sum
指定したフィールドのすべての値の合計が戻されます。Sum
には、Integer
、Float
またはDecimal
型のフィールド・パラメータを1つ指定できます。
構文:
Sum(Number)
例
Sum(Total)
14.8.42 Switch
Switch文が作成されます。Switch
のパラメータには、任意の型のフィールド、式および値を指定できます。
構文:
Switch(w) Case(x):(y) Default(z)
例
14.8.43 Then
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()))
14.8.44 TrimEnd
文字列の末尾にある空白文字(空白、タブ、改行、ライン・フィード、ページ・フィード、フォーム・フィードなど)を削除します。TrimEnd
には、String
型のフィールド・パラメータを1つ指定できます。文字列値を戻す式を入力することもできます。
構文:
TrimEnd(String)
例
TrimEnd(Description) TrimEnd(Concat(Description,Subcategory))
14.8.45 TrimStart
文字列の先頭にある空白文字(空白、タブ、改行、ライン・フィード、ページ・フィード、フォーム・フィードなど)を削除します。TrimStart
には、String
型のフィールド・パラメータを1つ指定できます。文字列値を戻す式を入力することもできます。
構文:
TrimStart(String)
例
TrimStart(Description) TrimStart(Concat(Description,Subcategory))
14.8.46 Upper
文字列が大文字に変換されます。Upper
には、String
型のパラメータを1つ指定できます。文字列値を戻す式を入力することもできます。
構文:
Upper(String)
例
Upper({License Plate Number})
14.8.48 VariancesFromMean
特定の値の平均からの分散が戻されます。
CQLではこの関数はサポートされていません。
構文:
VARIANCESFROMMEAN(column))
例
VARIANCESFROMMEAN(PROCESS_OPEN_HOURS))
14.8.49 Week
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})