- Question.
- テーブル型データ項目を参照して行を追加したのですが、入力がないテーブルだと null になるため行を追加できません。空のテーブルを作成するにはどうしたら良いでしょうか?
- Answer.
- テーブル型データ項目の定義(ProcessDataDefinitionView)を取得し、createListArray() メソッドを利用して新規テーブル(空のテーブル)を作成します。
テーブル型データ項目への入力済みデータを更新する場合(`null` でない場合)は、
const tableDef = engine.findDataDefinitionByVarName( "q_table" );
let matrix = engine.findData(tableDef);
のような呼び出しでデータを参照します。
しかし、テーブルへの入力がない場合(`null` の場合)は、特別な "前処理" として空データの作成が必要となります。具体的には、"テーブル型データ項目の定義" をもとに createListArray() メソッドを呼び出して空のテーブルを作成します。
if (matrix === null) {
matrix = tableDef.createListArray();
}
◆ R2300: スクリプトタスクで利用できる Java クラス
> com.questetra.bpms.core.event.scripttask.ProcessDataDefinitionView
ScriptListArray ProcessDataDefinitionView.createListArray()
上記のコードは、Null 合体演算子 (??) を利用して次のように記述することもできます。
const tableDef = engine.findDataDefinitionByVarName( "q_table" );
let matrix = engine.findData(tableDef) ?? tableDef.createListArray();
[スクリプトタスク]でのテーブル型データ項目の取り扱いについては、次のドキュメントも合わせて参照ください。
◆ Workflow Script Example
> 4-6. Handle LIST (Table)
なお、空のテーブルの作成について以前は次のようなコードを記述しましたが、ListArray / ListRow は2023年4月(Ver. 15.0)に廃止予定となっております。
var newTable = new com.questetra.bpms.core.model.formdata.ListArray();
var newRow = new com.questetra.bpms.core.model.formdata.ListArray.ListRow();
コメント
0件のコメント
サインインしてコメントを残してください。