熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

工作流引擎Shark中調用外部程序的方法

2013-11-23 19:23:54  來源: Java核心技術 

  最近看了一下工作流引擎Shark感覺還可以可擴展性和可配置性都很不錯
  
  
  
  步驟
  
   定義流程主要是relevant date及applications等
  
   編寫調用的class文件見後面
  
   運行Shark裝載TestAppInvokexpdl增加Application Mapping選擇應用程序為TestApp即在包中定義的應用程序ToolAgent類型為JavaClassToolAgentApplication Name一欄填入Class名稱
  
   在Process instantiation management中啟動流程此時會自動執行應用程序
  
  
  
  注意事項
  
  應用程序中使用到的數據可定義為Workflow Relevant Date傳入類型可為INOUT或INOUT運行應用程序的節點處增加Extended Attribute名稱為VariableToProcess_UPDATE或VariableToProcess_VIEWvalue為參數名
  
  程序需要在classpath裡面使用的程序名稱為全名包括包路徑(不帶class)
  
  編譯後的class文件放到repository/ storedprocedures路徑下注意包的路徑
  
  有三種類型的活動節點可調用外部程序
  
  l     活動節點為Tool類型執行者為System開始和結束模式為AUTOMATIC
  
  l     活動節點為Tool類型沒有執行者開始和結束模式為AUTOMATIC
  
  l     活動節點為Tool類型執行者為System以外的類型開始模式為MANUAL結束模式為AUTOMATIC
  
   如果在Shark中未定義程序映射Shark將調用默認的ToolAgent在nf中可定義
  
   RuntimeApplicationToolAgent可執行其它外部程序比如notepad等此時傳入的application mode如果為則Shark會等待應用程序的執行結束如果不為則Shark在應用程序開始後會繼續流程的處理
  
   JavaScriptToolAgent可用於執行JavaScriptapplication mode為則系統將搜索名為applicationName的文件執行
  
  TestAppInvokejava
  public class TestAppInvoke {
  
    public TestAppInvoke() {
    }
  
    public static void execute(AppParameter p AppParameter p AppParameter p) {
      JOptionPaneshowMessageDialog(null 初始值param= + pthe_value
          +   param= + pthe_value +   param= + pthe_value);
      
      //這裡可設置獲取的參數注意在包定義中應定義參數類型為OUT或INOUT
      //pthe_mode可獲取參數的權限類型可讀可寫還是可讀寫
      pthe_value = new String(ABCDE);
      pthe_value = new Long(); //在Shark中將Integer類型做為Long類型來處理
      pthe_value = new Boolean(true);     
  
      JOptionPaneshowMessageDialog(null 更改後param= +pthe_mode +pthe_value
          +   param= + pthe_value +   param= + pthe_value);
    }
  
  }

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26796.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.