INFORMATICA关于WORKFLOW Manager系统的元数据解析

转自:http://blog.chinaunix.net/uid-2392584-id-3281456.html
informaica是一个很强大的ETL工具,WORKFLOW MANAGER负责对ETL调度流程进行设计与管理和执行,informatica在资料库中提供以下表来存储调动流程的相关信息,以便WORKFLOW MANAGER对用户所设计的调动流程进行管理和执行。

opb_wflow_dep:     描述workflow执行步骤相关信息和每个步骤执行的条件信息
opb_wflow_dep_run:描述workflow执行步骤运行时相关信息
opb_wflow_expr:   描述workflow中相关的表达式或条件的相关信息
opb_wflow_perval: 描述workflow可持续性变量相关信息
opb_wflow_run:     描述workflow运行日志相关信息
opb_wflow_var:     描述workflow变量相关信息
opb_task:          描述任务对象的基本信息
opb_task_attr:     描述任务对象相关的属性的信息
opb_task_inst:     描述任务对象实例的基本信息
opb_task_inst_run: 描述任务对象实例运行日志相关信息
opb_task_val_list: 描述任务对象实例中command信息

WORKFLOW MANAGER系统中常用的有这几个模块,
Command       模块,
Session       模块,
Waiting_Event 模块,
Raising_Event 模块,
Assignment    模块,
Worklet       模块

WORKFLOW MANAGER系统中上述的这些模块统称为任务(Task)。
如果你对一个模块进行了复制后新的模块就称作该任务的任务实例(Task_Inst)。
WORKFLOW MANAGER系统中Worklet模块可以有其他非Worklet模块组成。
在WORKFLOW MANAGER系统中一个工资流被称作Workflow,Workflow由各种任务模块组合而成。

同时一个Workflow也是一个任务。 以下是WORKFLOW元数据表的详细说明
 
1、OPB_WFLOW_DEP:描述workflow执行步骤相关信息和每个步骤执行的条件信息


  1. --WORKFOLW MANAGER系统将用户设计的工作流的流程(步骤)信息存放到该表中。

  2. --将每个步骤的执行的条件详细信息存放到opb_wflow_expr中,然后由CONDITION_ID关联。

  3. --如果用户没有设置步骤执行条件则opb_wflow_expr对应记录中的CONDITION字段值为空。

  4. --WORKFOLW MANAGER系统执行一个工作流时,就根据这个表中的步骤信息

  5. --获得所要调度的任务实例标识,然后到opb_task_inst获取具体信息。

  6. CREATE TABLE OPB_WFLOW_DEP (
  7.   WORKFLOW_ID NUMBER NULL,--工作流步骤归属的工作流标识

  8.   FROM_INST_ID NUMBER NULL,--工作流步骤中起始任务实例标识

  9.   TO_INST_ID NUMBER NULL,--工作流步骤中终止任务实例标识

  10.   CONDITION_ID NUMBER NULL,--工作流步骤可以执行的条件标识

  11.   OPB_OBJECT_ID NUMBER NULL
  12. );
 
 

2、OPB_WFLOW_DEP_RUN:描述workflow执行步骤运行时相关信息

  1. --用于关联opb_wflow_run和opb_task_inst_run

  2. --这样这三张表就能完整的描述一个工作流的运行情况了。

  3. CREATE TABLE OPB_WFLOW_DEP_RUN (
  4.   WORKFLOW_ID NUMBER NULL,--工作流步骤归属的工作流标识

  5.   WORKFLOW_RUN_ID NUMBER NULL,--工作流步骤归属的工作流运行实例标识

  6.   WORKLET_RUN_ID NUMBER NULL,--工作流步骤归属的WORKLET运行实例标识

  7.   FROM_INSTANCE_ID NUMBER NULL,--工作流步骤中起始任务实例标识

  8.   TO_INSTANCE_ID NUMBER NULL --工作流步骤可以执行的条件标识

  9. );

 

3、OPB_WFLOW_EXPR:描述workflow中相关的表达式或条件的相关信息

  1. CREATE TABLE OPB_WFLOW_EXPR (
  2.   WORKFLOW_ID NUMBER NULL,--表达式归属的工作流标识

  3.   CONDITION_ID NUMBER NULL,--条件标识

  4.   LINE_NO NUMBER NULL,
  5.   CONDITION VARCHAR2(2000) NULL,--条件表达式描述

  6.   OPB_OBJECT_ID NUMBER NULL
  7. );

 

4、OPB_WFLOW_PERVAL:描述workflow可持续性变量相关信息

  1. --当下次运用到一持续性变量时,WORKFLOW MANAGER系统就会从该表中读取该变量的VAR_VALUE值了。

  2. --当该持续性变量所在的WORKFLOW(或WORKLET)结束后 --系统就会将该持续性变量的当前值保存到该表相应记录的VAR_VALUE字段中

  3. CREATE TABLE OPB_WFLOW_PERVAL (
  4.   SUBJECT_ID NUMBER NULL,--工作流归属的主题标识

  5.   WORKFLOW_ID NUMBER NULL,--变量归属的工作流标识

  6.   WORKLET_ID NUMBER NULL, VARIABLE_ID NUMBER NULL,--变量标识

  7.   VAR_VALUE VARCHAR2(2000) NULL,--变量当前值

  8.   LAST_SAVED VARCHAR2(30) NULL,
  9.   BIT_OPTIONS NUMBER NULL,
  10.   OPB_OBJECT_ID NUMBER NULL,
  11.   WORKLET_INST_ID NUMBER NULL--变量归属的WORKLET任务实例标识

  12. );

 

5、OPB_WFLOW_RUN:描述workflow运行日志相关信息

  1. --该表中描述运行WROKFLOW的运行环境信息(SERVER_ID、USER_NAME)

  2. --和WORKFLOW的运行结果。

  3. --OPB_WFLOW_RUN和OPB_TASK_INST_RUN这两个表提供了WORKFLOW MONITER系统

  4. --对显示工作流详细运行状态的所需要的所有信息

  5. CREATE TABLE OPB_WFLOW_RUN (
  6.   SUBJECT_ID NUMBER NULL,--工作流归属主题标识

  7.   WORKFLOW_ID NUMBER NULL,--工作流标识

  8.   WORKFLOW_RUN_ID NUMBER NULL,--工作流运行实例标识

  9.   WORKFLOW_NAME VARCHAR2(240) NULL,--工作流名称

  10.   SERVER_ID NUMBER NULL,--运行工作流的INFOMATICA服务器标识

  11.   SERVER_NAME VARCHAR2(240) NULL,--运行工作流的INFOMATICA服务器名称

  12.   START_TIME DATE NULL,--开始运行工作流时间

  13.   END_TIME DATE NULL,--结束运行工作流时间

  14.   LOG_FILE VARCHAR2(2000) NULL,--记录工作流运行详细情况的日志文件全名称

  15.   RUN_ERR_CODE NUMBER NULL,--工作流运行错误代码(如果工作流正常结束该字段值为空)

  16.   RUN_ERR_MSG VARCHAR2(2000) NULL,--工作流运行错误描述(如果工作流正常结束该字段值为空)

  17.   RUN_STATUS_CODE NUMBER NULL,--工作流运行状态

  18.   USER_NAME VARCHAR2(240) NULL,--运行该工作流所使用的用户名称

  19.   RUN_TYPE NUMBER NULL,--工作流运行类型 CODEPAGE_ID NUMBER NULL

  20. );

 

6、OPB_WFLOW_VAR:描述workflow变量相关信息

  1. --在WORKFLOW MANAGER系统中有系统内值变量和用户自定义变量。

  2. CREATE TABLE OPB_WFLOW_VAR (
  3.   SUBJECT_ID NUMBER NULL,--工作流归属主题标识

  4.   WORKFLOW_ID NUMBER NULL,--变量归属的工作流任务实例标识(或者变量归属的WORKLET任务实例标识)

  5.   VARIABLE_ID NUMBER NULL,--变量标识

  6.   VAR_NAME VARCHAR2(240) NULL,--变量名称

  7.   VAR_TYPE NUMBER NULL,--变量类型(临时、持久)

  8.   VAR_DESC VARCHAR2(2000) NULL,--变量描述

  9.   VAR_DATATYPE NUMBER NULL,--变量数据类型

  10.   VAR_DEFAULT VARCHAR2(2000) NULL,--变量缺省值

  11.   LAST_SAVED VARCHAR2(30) NULL,
  12.   OPB_OBJECT_ID NUMBER NULL,
  13.   TASK_INST_ID NUMBER NULL,--变量归属任务实例标识(该任务实例为非WORKFLOW/WORKLET任务实例)

  14.   TASK_INST_NAME VARCHAR2(240) NULL,--变量归属任务实例名称

  15.   BIT_OPTIONS NUMBER NULL
  16. );

 

7、OPB_TASK:描述任务对象实例的基本信息

  1. --任务概论是INFORMAICA系统中对所有可以被调度执行的模块的总称,

  2. --包含Command任务,Session任务,Waiting_Event任务,

  3. --Raising_Event任务,Assignment任务,Worklet任务,Workflow任务等。

  4. CREATE TABLE OPB_TASK (
  5.   SUBJECT_ID NUMBER NULL,--任务归属主题标识

  6.   TASK_ID NUMBER NULL,--任务标识

  7.   TASK_TYPE NUMBER NULL,--任务类型

  8.   TASK_NAME VARCHAR2(240) NULL,--任务名称

  9.   TASK_PROPERTY NUMBER NULL,--任务属性

  10.   IS_REUSABLE NUMBER NULL,--任务是否可以复用标识

  11.   IS_VALID NUMBER NULL,
  12.   IS_ENABLED NUMBER NULL,
  13.   COMMENTS VARCHAR2(2000) NULL,--任务描述

  14.   LAST_SAVED VARCHAR2(30) NULL,
  15.   CREATE_INFO NUMBER NULL,
  16.   OPB_OBJECT_ID NUMBER NULL,
  17.   OBJVERSION NUMBER NULL
  18. );



8、OPB_TASK_ATTR:描述任务实例对象相关的属性的信息

  1. --因为每个任务可以有多个实例,而每个任务实例的属性也可以各自不同

  2. --所以该表的主键应该是WORKFLOW_ID,INSTANCE_ID,ATTR_ID

  3. CREATE TABLE OPB_TASK_ATTR (
  4.   WORKFLOW_ID NUMBER NULL,--任务所归宿的工作流标识

  5.   INSTANCE_ID NUMBER NULL,--任务实例标识

  6.   TASK_ID NUMBER NULL,--任务标识

  7.   TASK_TYPE NUMBER NULL,--任务类型

  8.   REF_SESSION_ID NUMBER NULL,
  9.   COMPONENT_TYPE NUMBER NULL,
  10.   ATTR_ID NUMBER NULL,--任务属性标识

  11.   ATTR_VALUE VARCHAR2(2000) NULL,--任务属性值

  12.   LINE_NO NUMBER NULL,
  13.   GROUP_ID NUMBER NULL,
  14.   OPB_OBJECT_ID NUMBER NULL
  15. );

 

9、OPB_TASK_INST:描述任务对象实例的基本信息

  1. --在INFORMATICA的WORKFLOW MANAGER系统中,提供对任务对象提供复制。

  2. --当一个任务对象被复制后,就在系统中产生一个实例对象,

  3. --但是如果不被复制就不会产生实例对象。同时每个任务实例对象之间及

  4. --任务实例对象和任务对象之间是相互独立的。为的就是信息复制目的。

  5. --不要和JAVA中的对象和实例之间的关系等同起来。 -

  6. CREATE TABLE OPB_TASK_INST (
  7.   WORKFLOW_ID NUMBER NULL,--任务实例所归属的工作流标识

  8.   INSTANCE_ID NUMBER NULL,--任务实例标识

  9.   TASK_ID NUMBER NULL,--任务标识

  10.   TASK_TYPE NUMBER NULL,--任务类型

  11.   INSTANCE_NAME VARCHAR2(240) NULL,--任务实例名称

  12.   TASK_PROPERTY NUMBER NULL,--任务属性

  13.   IS_ENABLED NUMBER NULL,
  14.   BIT_OPTIONS NUMBER NULL,
  15.   COMMENTS VARCHAR2(2000) NULL,--任务描述

  16.   IS_VALID NUMBER NULL,
  17.   OPB_OBJECT_ID NUMBER NULL
  18. );

 

10、OPB_TASK_INST_RUN:描述任务对象实例运行日志相关信息

  1. --当运行一个工作流调度时,INFORMATICA系统会记录WORKFLOW中每个任务实例

  2. --运行结果。在WORKFLOW MANAGER中每个任务实例对象的运行状态属性值就是 --从该表中获得的。 -

  3. CREATE TABLE OPB_TASK_INST_RUN (
  4.   SUBJECT_ID NUMBER NULL,--任务实例归属的主题标识

  5.   WORKFLOW_ID NUMBER NULL,--任务实例归属的工作流标识

  6.   WORKFLOW_RUN_ID NUMBER NULL,--工作流运行实例标识

  7.   WORKLET_RUN_ID NUMBER NULL,--WORKLET运行实例标识

  8.   CHILD_RUN_ID NUMBER NULL,
  9.   INSTANCE_ID NUMBER NULL,--任务实例标识

  10.   INSTANCE_NAME VARCHAR2(240) NULL,--任务实例名称

  11.   TASK_ID NUMBER NULL,--任务标识

  12.   TASK_TYPE NUMBER NULL,--任务类型

  13.   START_TIME DATE NULL,--任务实例开始运行时间

  14.   END_TIME DATE NULL,--任务实例结束运行时间

  15.   RUN_ERR_CODE NUMBER NULL,--任务实例运行错误代码(如果任务实例正常运行该字段值为空)

  16.   RUN_ERR_MSG VARCHAR2(2000) NULL,--任务实例运行错误信息(如果任务实例正常运行该字段值为空)

  17.   RUN_STATUS_CODE NUMBER NULL,--任务运行状态代码 TASK_NAME VARCHAR2(240) NULL--任务名称

  18. );

 

11、OPB_TASK_VAL_LIST:描述任务对象实例中command信息

  1. --该表主要应用于COMMAND任务,记录COMMAND任务的所有命令行信息。

  2. --WORKFLOW MANAGER系统在执行该COMMAND任务时,按顺序逐一读取该任务的命令行,而后以阻塞方式运行该命令行。

  3. --要注意的是:如果复制一个COMMAND任务对象产生了一个COMMAND任务实例对象,

  4. --但是不改变COMMAND任务实例对象的命令行内容时则在OPB_TASK_VAL_LIST中不会出现

  5. --该COMMAND任务实例对象的命令行信息记录的。

  6. CREATE TABLE OPB_TASK_VAL_LIST (
  7.   TASK_ID NUMBER NULL,--任务标识

  8.   SUBJECT_ID NUMBER NULL,--任务实例归属的主题标识

  9.   WORKFLOW_ID NUMBER NULL,--任务实例归属的工作流标识(或WORKLET标识)

  10.   INSTANCE_ID NUMBER NULL,--任务实例标识

  11.   SESSION_ID NUMBER NULL,
  12.   COMPONENT_TYPE NUMBER NULL,
  13.   TASK_TYPE NUMBER NULL,--任务类型(为COMMAND类型的任务)

  14.   DESCRIPTION VARCHAR2(2000) NULL,
  15.   PM_VALUE VARCHAR2(2000) NULL,--命令行内容

  16.   EXEC_ORDER NUMBER NULL,
  17.   VAL_NAME VARCHAR2(240) NULL,--代表命令行内容的变量名称

  18.   LINE_NO NUMBER NULL,
  19.   OPB_OBJECT_ID NUMBER NULL
  20. );


 

举例:下面是一个JAVA的类,该类中描述了如何根据WORKFLOW名称,WORKLET名称和变量名称来获得和设置相应可持续性变量值的方法。


  1. import java.sql.*;
  2. import java.io.*;
  3.   
  4. public class varConfig 
  5. {
  6.     public varConfig(String peizhi,String wflname,String wltname,String varname) 
  7.     {
  8.         this.peizhi=peizhi;
  9.         this.wflname=wflname;
  10.         this.wltname=wltname;
  11.         this.varname=varname;
  12.         File fs=new File(peizhi);
  13.         
  14.         try 
  15.         { 
  16.              BufferedReader in=new BufferedReader(new FileReader(fs));
  17.             //取得配置表中的各个参数

  18.             String line="";
  19.             while((line=in.readLine())!=null) 
  20.             {
  21.                 if(line.trim().startsWith("etldsn")) 
  22.                 {
  23.                   etldsn=line.substring(line.indexOf("=")+1).trim();
  24.                 }
  25.                 if(line.trim().startsWith("etluid")) 
  26.                 {
  27.                   etluid=line.substring(line.indexOf("=")+1).trim();
  28.                 }
  29.                 if(line.trim().startsWith("etlpwd")) 
  30.                 {
  31.                   etlpwd=line.substring(line.indexOf("=")+1).trim();
  32.                 }
  33.             }
  34.             in.close();
  35.         } 
  36.         catch(Exception e) 
  37.         {
  38.             System.out.println(e);
  39.         }
  40.     }

  41.     public boolean init() 
  42.     {
  43.         //根据workflow名称获得相应的

  44.         workflowID workflowID=GetWorkflowID(wflname);
  45.         System.out.println("workflowID="+workflowID);
  46.         
  47.         if(workflowID.trim().equals("")) 
  48.         {
  49.             return false;
  50.         }
  51.         
  52.         if(!wltname.trim().equals("0")) 
  53.         {
  54.             //根据workflowID和workflowlet名称获得workflowlet的ID

  55.             String tempId=GetWorkflowLetID(workflowID,wltname);
  56.             workflowletID=tempId.trim().substring(0,tempId.trim().indexOf("$"));
  57.             workletinstID=tempId.trim().substring(tempId.trim().indexOf("$")+1);
  58.             System.out.println("workflowletID="+workflowletID);
  59.             System.out.println("workletinstID="+workletinstID); 
  60.         }
  61.         
  62.         //根据workflowID和workflowletID和Var名称获得VarID

  63.         if(!workflowletID.trim().equals("")) 
  64.         {
  65.             varID=GetVariableID(workflowletID,varname);
  66.         } 
  67.         else 
  68.         {
  69.             varID=GetVariableID(workflowID,varname);
  70.         }
  71.         
  72.         System.out.println("varID="+varID); 
  73.         return true;
  74.     }

  75.     public boolean setVarValue(String varvalue) 
  76.     {
  77.         //根据workflowID和workflowletID和workletinstID和VarID修改相应变量的值

  78.         try 
  79.         {
  80.             String SQL="";
  81.             CreateConn crtetlconn=new CreateConn(etldsn,etluid,etlpwd);
  82.             Connection etlconn=crtetlconn.backConn();
  83.             Statement etlwf=etlconn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  84.             
  85.             if(!workflowletID.trim().equals("")) 
  86.             {
  87.                 SQL="update opb_wflow_perval set var_value= '" + varvalue + "'" +
  88.                         "where workflow_id= '" + workflowletID + "'" +
  89.                         "and worklet_inst_id='"+workletinstID+"'" +
  90.                         "and variable_id='"+varID+"'";
  91.             } 
  92.             else 
  93.             {
  94.                 SQL="update opb_wflow_perval"+
  95.                     " set var_value= '" + varvalue + "'" + 
  96.                     " where workflow_id= '" + workflowID + "'" +
  97.                     " and variable_id='" + varID + "'";
  98.             } 
  99.             
  100.             System.out.println("update="+SQL);
  101.             ResultSet rswf=etlwf.executeQuery(SQL);
  102.             etlwf.executeQuery("commit");
  103.             rswf.close();
  104.             etlwf.close();
  105.             etlconn.close();
  106.             
  107.             return true;
  108.         } 
  109.         catch(Exception e) 
  110.         {
  111.             System.out.println(e);
  112.             return false;
  113.         }
  114.     }

  115.     public String getVarValue() 
  116.     {
  117.         //获得指定VAR的值

  118.         try 
  119.         {
  120.             String SQL="";
  121.             String varValue="";
  122.             CreateConn crtetlconn=new CreateConn(etldsn,etluid,etlpwd);
  123.             Connection etlconn=crtetlconn.backConn();
  124.             Statement etlwf=etlconn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  125.             
  126.             if(!workflowletID.trim().equals("")) 
  127.             {
  128.                 SQL="select var_value from opb_wflow_perval" +
  129.                       "where workflow_id= '" + workflowletID + "'" +
  130.                       " and worklet_inst_id='" + workletinstID + "'" +
  131.                       " and variable_id='" + varID + "'";
  132.             } 
  133.             else 
  134.             {
  135.                 SQL="select var_value from opb_wflow_perval" +
  136.                     " where workflow_id= '" + workflowID + "'" +
  137.                     " and variable_id='"+varID+"'";
  138.             }
  139.             
  140.             System.out.println("varvalue="+SQL);
  141.             
  142.             ResultSet rswf1=etlwf.executeQuery(SQL);
  143.             while (rswf1.next()) 
  144.             {
  145.                 varValue=rswf1.getString(1).trim();
  146.             }
  147.             
  148.             rswf1.close();
  149.             etlwf.close();
  150.             etlconn.close();
  151.             
  152.             return varValue;
  153.         } 
  154.         catch(Exception e) 
  155.         {
  156.             System.out.println(e);
  157.             return "";
  158.         }
  159.     }

  160.     public String GetWorkflowID(String wflname) 
  161.     {
  162.         //根据workflow名称获得相应的workflowID

  163.         try 
  164.         {
  165.             String SQL="";
  166.             String workflowID="";
  167.             CreateConn crtetlconn=new CreateConn(etldsn,etluid,etlpwd);
  168.             Connection etlconn=crtetlconn.backConn();
  169.             Statement etlwf=etlconn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  170.             
  171.             SQL="select task_ID from opb_task" +
  172.                   "where task_name ='" + wflname +"'";
  173.                   
  174.             ResultSet rswf2=etlwf.executeQuery(SQL);
  175.             while (rswf2.next()) 
  176.             {
  177.                 workflowID=rswf2.getString(1).trim();
  178.             } 
  179.             rswf2.close();
  180.             etlwf.close();
  181.             etlconn.close();
  182.             
  183.             return workflowID;
  184.         }
  185.         catch(Exception e) 
  186.         {
  187.             System.out.println(e);
  188.             return "";
  189.         }
  190.     }

  191.     public String GetWorkflowLetID(String WorkflowID,String WorkflowLetName) 
  192.     {
  193.         //根据workflowID和workflowlet名称获得workflowlet的ID

  194.         try 
  195.         {
  196.             String SQL="";
  197.             String workflowletID="";
  198.             String workletinstID="";
  199.             CreateConn crtetlconn=new CreateConn(etldsn,etluid,etlpwd);
  200.             Connection etlconn=crtetlconn.backConn();
  201.             Statement etlwf=etlconn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  202.             
  203.             SQL="select task_id,INSTANCE_ID from opb_task_INST" +
  204.                 " where workflow_id ='" + WorkflowID +"'" +
  205.                 " and instance_name= '" + WorkflowLetName +"'" ;
  206.                 
  207.             System.out.println("wl="+SQL);
  208.             ResultSet rswf3=etlwf.executeQuery(SQL);
  209.             while (rswf3.next()) 
  210.             {
  211.               workflowletID=rswf3.getString(1).trim();
  212.               workletinstID=rswf3.getString(2).trim();
  213.             }
  214.             rswf3.close();
  215.             etlwf.close();
  216.             etlconn.close();
  217.             
  218.             return workflowletID+"$"+workletinstID;
  219.         }
  220.         catch(Exception e) 
  221.         {
  222.             System.out.println(e); return "";
  223.         }
  224.     }

  225.     public String GetVariableID(String WorkflowID,String VariableName) 
  226.     {
  227.         //根据workflowID和变量名称获得变量ID

  228.         try 
  229.         {
  230.             String SQL="";
  231.             String varID="";
  232.             CreateConn crtetlconn=new CreateConn(etldsn,etluid,etlpwd);
  233.             Connection etlconn=crtetlconn.backConn();
  234.             Statement etlwf=etlconn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  235.             
  236.             SQL="select variable_id from opb_wflow_var" +
  237.                 " where workflow_id ='" + WorkflowID + "'" +
  238.                 " and var_name= '" + VariableName + "'";
  239.                 
  240.             System.out.println("Var="+SQL);
  241.             ResultSet rswf4=etlwf.executeQuery(SQL);
  242.             while (rswf4.next()) 
  243.             {
  244.                 varID=rswf4.getString(1).trim();
  245.             }
  246.             rswf4.close();
  247.             etlwf.close();
  248.             etlconn.close();
  249.          
  250.             return varID;
  251.         }
  252.         catch(Exception e) 
  253.         {
  254.             System.out.println(e);
  255.             return "";
  256.         }
  257.     }

  258.     private String workflowID="";
  259.     private String varID="";
  260.     private String workflowletID="";
  261.     private String workletinstID="";
  262.     private String wflname="";
  263.     private String wltname="";
  264.     private String varname="";
  265.     private String peizhi="";
  266.     private String etldsn="";
  267.     private String etluid="";
  268.     private String etlpwd="";
  269. }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28690368/viewspace-766528/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28690368/viewspace-766528/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值