リスト操作関数中で、リストとしてドキュメント型属性が指定された場合、特に注記されている場合を除き、ドキュメントフォルダーのIDを値として扱います。
中に入っている文書の名前や文書IDが値として使用されるわけではありません。
Boolean Multiple(Object[] object)
objectで指定されたオブジェクトが多値であるかどうかを判定します。objectがリストで、要素数が2以上の場合は、多値と判定します。ワークフローの属性定義の単値/多値を判断するわけではありません。
objectにドキュメント型属性が渡された場合、ドキュメント属性フォルダーの直下に位置するオブジェクトの数が2個以上だった場合にtrueを返します。
object
オブジェクト
true
objectは多値です。
false
objectは単値です。
Long Count(Object[] list)
Long Count(Object[] list,Object target)
listで指定されたオブジェクトの要素数を返します。第2引数targetが指定された場合、list内でtargetと一致する要素の数を返します。
listにドキュメント型属性が渡された場合、ドキュメント属性フォルダーの直下に位置するオブジェクトの数を返します。
ここで、targetに何らかの値を指定した場合、返り値は必ず0になります。ドキュメント型属性は、targetを使用して一致要素を判定することはできません。
list
多値
target
数を数えるオブジェクト
要素数
多値が1,1,2,3だった場合
Count(${多値})→ 4
Count(${多値},1)→ 2
Boolean IsNull(Object[] object)
objectがnull(属性値未設定状態)かどうかを判定します。
判定結果は次式と同じです。
Count(Object) == 0
list
対象属性値
対象属性値がnull(未設定)であるかどうか
Object[] List(Object object,...)
引数に与えられたオブジェクトを格納したリストを返します。オブジェクトがリストの場合、それを展開して格納します。
object
オブジェクト
オブジェクトを格納したリスト
Object Get(Object[] list,Long index)
Object Get(Object[] list,Long index,Object default)
Object[] Get(Object[] list,Long[] index)
Object[] Get(Object[] list,Long[] index,Object default)
listのindex番めの要素を取得します。indexがリストのサイズより大きかった場合、defaultが指定されていればその値を取得できます。defaultが指定されなかった場合は、リストのサイズより大きなindexの値は無視されます。
list
ワークフローの属性
index
欲しい多値のインデックス(多値の最初の要素は1)
default
リストのサイズより大きなindexが指定されたときに返す値
listのindex番めの要素
多値が1,1,2,3だった場合
Get(${多値},3) → 2
Get(${多値},5,10) → 10
Get(${多値},5) →(空)
Object[] Union(Object[] a,Object[] b)
多値aとbの和集合(a∪b)を返します。
a
オブジェクト
b
オブジェクト
a∪bのリスト
多値Aが1,1,2,3、多値Bが2,2,5だった場合
Union(${多値A},${多値B})
→ 1,1,2,3,2,2,5
Object[] InterSection(Object[] a,Object[] b)
多値aとbの共通部分(積集合,a∩b)を返します。
a
オブジェクト
b
オブジェクト
a∩bのリスト
多値Aが1,1,2,3、多値Bが2,2,5だった場合
InterSection(${多値A},${多値B})
→ 2
Object[] Diff(Object[] a,Object[] b)
多値aから多値bの要素を除いた集合(差集合,a-b)を返します。
a
オブジェクト
b
オブジェクト
a-bのリスト
Object[] Unique(Object[] list)
list内の要素の重複を排除します。重複した要素は前の要素に集約されます。
list
対象となる値
重複が排除されたリスト
Object[] Filter(Object[] list, Boolean[] filter)
リストの要素のうち、filterの値がtrueの添え字の要素だけを抜き出します。
listの要素数<filterの要素数だった場合は、あふれた部分は無視します。
listの要素数>filterの要素数だった場合は、足りない部分はfalseとみなします。
list
フィルタリングされるリスト
filter
フィルタリング対象のリスト
listのサブリスト
Filter(["a","b","c"], [true,false]) → ["a"]
Filter(["a","b","c"], [true,false,true,true]) → ["a","c"]
Resource[] FilterByParent(Resource[] list, Resource[] parent, [ boolean recursive ] )
リソース多値の中から、親がparentであるものだけを抜き出します。
parentが複数だった場合、parentにどれか1つでも親が存在すれば、親とみなします。
recursiveがtrueの場合、間接的な親も親とみなします。
recursive省略時はtrueが使用されます。
list
フィルタリングされるリソースのリスト
parent
親の候補
recursive
trueが指定された場合、間接的な親を親であるとみなす
listのサブリスト
FilterByParent(${作業:担当者}, ToRole(“マネージャー”), false)
→ 作業「作業」の担当者のうち、マネージャーロールが直接与えられているリソースだけを取得します
FilterByParent(${承認担当者}, ${所属グループ} )
→ ユーザー属性「承認担当者」のうち、「所属グループ」に属するリソースだけを取得します