0

BPM アプリケーション ProcessMaker 内で、ダイナフォーム内の 1 つのグリッドから 2 番目のダイナフォーム内の後続のグリッドに行をコピーしようとしています。チェックボックスがオンになっている最初のグリッドから行をコピーしたいだけです。ユーザーは、チェックされていない行を見る必要はありません。

後続のグリッドの前にトリガーを実行し、最初のグリッドをループして、チェックボックスがオンになっている行を確認しようとしましたが、何もコピーしていないようです。以下は、トリガーのコードです。私は何を間違っていますか?

 @=new_grid = array();
 $tot = count(@=original_grid);
   for ($i = 1; $i <= $tot; $i++) {
    if ((@=original_grid[$i]['my_checkbox']) == 'On') {
    @=new_grid[$i] = array(
  'field1'    = @=original_grid[$i]['field1'],
  'field2'    = @=original_grid[$i]['field2'],
  'field3' = @=original_grid[$i]['field3'],
  'field4' = @=original_grid[$i]['field4'],
  'field5' = @=original_grid[$i]['field5'],
  'field6' = @=original_grid[$i]['field6']
  );
}
}
4

2 に答える 2

0

これは理解するのに時間がかかりました。結局のところ、トリガーを間違った場所に配置していました。派生/ルーティングの後にトリガーを配置する必要がありました。そして、これが私が最終的に使用した改訂されたコードです:

$newGrid = max(array_keys(@=newGrid));
$i = 0;
foreach(@=newGrid as $r){
  if($r['my_checkbox'] == "On")
  {
     $i = $i + 1;
     @=newGrid[$newGrid + $i] = $r; 
  }
}
于 2013-01-25T03:38:58.263 に答える
0

=の代わりに使用する配列内のフィールドへの変数の割り当てです=>。お気に入り'field1' => @=original_grid[$i]['field1'],

exit でトリガーを終了し、その前にいくつかのエコーを追加できます。また、プロセス デザイナーでデバッガーを有効にすることもできます。このようにして、プロセスの実行時に変数を値とともに表示できます。また、トリガーが起動されたかどうか、およびエラーが発生したかどうかを確認できます。

于 2013-01-16T12:43:22.993 に答える