カスタム レポート用の SQL 関数

詳細クエリを記述する際に、関数ごとに提供されているプレースホルダを利用することができます。関数プレースホルダは、実行時に SQL コードに置き換えられます。関数はパラメータのように使用することができますが、関数名の先頭には $(ドル記号)が付きます。プレースホルダはパラメータとは異なり、実行ごとにカスタマイズすることができない定義済みのレポート要素です。

使用可能な関数プレースホルダの一覧を以下の表に示します。

関数 機能
$TODAY データベース サーバー上の現在のシステム日付を返します。$TODAY-1(前日)や $TODAY-7(1 週間前)のように記述することもできます。 CreatedAt > ${$TODAY}
$DATE(列) UTC ベースの日付の始まりのタイムスタンプを返します。 たとえば、列の値が 2019-08-30 08:37:33(CEST)の場合は、2019-08-30 02:00 が返されます。
$DATE('文字列') 渡された文字列をデータベース日付に変換します。 CreatedAt > ${$DATE('01/10/2005')}
$DAYS[p1;p2] 渡された 2 つのパラメータの間の日数の差を計算します。2 つのパラメータは、テーブル/ビューの列でも $TODAY でもかまいません。 以下の例は、この 1 週間以内に作成された行を返します: ${$DAYS[CreatedAt;$TODAY]} < 7
$WEEK(パラメータ) 渡されたパラメータの週番号を返します。パラメータは $TODAY や列で指定します。
$MONTH(パラメータ) 渡されたパラメータの月を数字で返します。パラメータは $TODAY や列で指定します。
$YEAR(パラメータ) 渡されたパラメータの年を数字で返します。パラメータは $TODAY や列で指定します。
$USERID 現在ログインしているユーザーの ID。
$USERNAME 現在ログインしているユーザーの名前。
$PROJECTID 現在選択しているプロジェクトの ID。
$PROJECTNAME 現在選択しているプロジェクトの名前。
$REPORTNAME 現在選択しているレポートの名前。
$REPORTID 現在選択しているレポートの ID。

以下に示すのは、あらかじめインストールされている 要件と子要件 というレポートのコードです。このレポートでは、選択した要件がその要件 ID と共に表示されます。その要件の子要件に関する詳細が表示されます。これはカスタム レポートではありませんが、$PROJECTID 関数が使われているため、例として役に立ちます。また、2 つのパラメータ reqID(要件 ID)と reqProp_Obsolete_0(古い要件を表示)も含まれています。

SELECT r.ReqID, r.ReqCreated, r.ReqName, r.TreeOrder
   FROM RTM_V_Requirements r INNER JOIN   
   TM_ReqTreePaths rtp ON (rtp.ReqNodeID_pk_fk = r.ReqID)   
   WHERE rtp.ParentNodeID_pk_fk=${reqID|22322|Requirement ID} AND   
   r.ProjectID = ${$PROJECTID} AND   
   r.MarkedAsObsolete=${reqProp_Obsolete_0|0|Show obsolete Requirements}   
   ORDER BY r.TreeOrder ASC