2015-11-20 35 views
0

我將下面的代碼嵌入到腳本中,我可以通過業務邏輯層將記錄插入到數據庫中。當我運行腳本時,彈出一個Win32對話框,並詢問我是否回答了一個問題。只有在數據庫中輸入了某些值時,該對話框纔會顯示給用戶。所以這只是一個問題的時間百分比。是否有一個命令嵌入到我的腳本中,該腳本忽略默認Yes響應的彈出窗口?還是有辦法讓腳本響應並繼續處理?在使用Google搜索和搜索此網站時,我沒有在這個主題上看到太多內容。也許有,我正在尋找錯誤的詞組。如果這是不可能的,我可以讓業務邏輯程序員爲我的腳本將運行的角色設置一個例外。Perl可以監視彈出窗口並自動選擇是嗎?

#Process each action required to update the State field 
      foreach $action (@performAction) { 
       $entity->EditEntity($action); 
       #Evaluate for validation errors 
       $trappedErrorValidate = $entity->Validate(); 
        if ($trappedErrorValidate ne "") { 
        print ERRFILE "The State field has not been updated from $startState to $finishState for record number @fieldValues[0] due to the error code below.\n"; 
        print ERRFILE "Error Code:$trappedErrorValidate\n"; 
        print ERRFILE "*********************************************************************************\n"; 
         $entity->Revert(); 
            } else { 
               #Commit and evaluate for errors 
            $trappedErrorCommit =$entity->Commit(); 
            if ($trappedErrorCommit ne "") { 
             print ERRFILE "The State field has not been updated from $startState to $finishState for record number @fieldValues[0] due to the error code below.\n"; 
             print ERRFILE "Error Code:$trappedErrorCommit\n"; 
             print ERRFILE "*********************************************************************************\n"; 
                          }else { 
                  $stateChanges++; 
                              } 
            } 
          } 

回答

0

你有ClearQuest鉤子中的代碼來彈出對話框嗎?這些不是來自你粘貼的腳本,所以他們一定是從鉤子來。

你可以做的是在腳本中設置一個會話變量,例如,

$session->SetNameValue("RUNNING_IN_SCRIPT", "true"); 

然後在你的鉤子代碼有這樣的:

my $runningInHook = $session->GetNameValue("RUNNING_IN_SCRIPT"); 
my $suppressPopup = $runningInHook eq "true"; 

然後任何地方,你可能做的彈出窗口中,檢查是否$ suppressPopup,並承擔「是」,而不是試圖彈出一個對話框。