2013-01-13 34 views
0

在BPM應用程序ProcessMaker中,我試圖將行內的一個網格複製到第二個dynaform中的後續網格中。我只想複製第一個網格中檢查複選框的行。用戶不需要查看未經檢查的行。循環和複製表(ProcessMaker)

我試圖讓一個觸發器在後續的網格之前運行,並通過第一個網格循環,並檢查哪些行的複選框已打開,但它似乎沒有複製任何內容。 下面是觸發器的代碼。我究竟做錯了什麼?

@=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'] 
); 
} 
} 

回答

0

這一個花了一段時間弄清楚。事實證明,我的觸發器放置在錯誤的位置。我需要在派生/路由之後放置觸發器。這裏是我最終使用的修改後的代碼:

$newGrid = max(array_keys(@=newGrid)); 
$i = 0; 
foreach(@=newGrid as $r){ 
    if($r['my_checkbox'] == "On") 
    { 
    $i = $i + 1; 
    @=newGrid[$newGrid + $i] = $r; 
    } 
} 
0

是變量的使用=代替=>分配給一個字段的數組。像'field1' => @=original_grid[$i]['field1'],

你可以用exit結束觸發​​器並在此之前添加一些echo。也可以在流程設計器中啓用調試器。通過這種方式,您可以在運行流程時查看具有值的變量。此外,您可以查看是否觸發了觸發器以及是否有任何錯誤。