流程流转过程中需要更新第三方数据库,可通过以下方法实现:

  • 数据库适配器
  • SQL插件
  • C#插件

数据库适配器

使用数据库适配器,无需书写代码,通过配置,即可更新第三方数据库。

数据库适配器,支持更新、插入、删除数据,也支持明细表数据操作。

使用前需要先添加目标数据库为数据源。

  • 配置


  • 更新、删除配置

SQL插件

可以在目标数据库上运行动态生成的SQL语句。

使用asp.net格式书写动态SQL,执行时先解析asp.net生成SQL语句,然后在目标数据库上运行。

UPDATE Purchase SET State='核准' WHERE SN='<%=Context.Current.FormDataSet["BPMPurchase.PurchaseSN"]%>'

  • 更新明细表

使用asp.net的循环语句即可更新明细表。

<%

foreach(FlowDataRow row in Context.Current.FormDataSet.Tables["PurchaseDetail"].Rows)

{

   String sql = String.Format("UPDATE ERPProduct SET Stock=Stock+{0} WHERE ProdCode='{1}';",row["Qty"],row["ProdCode"]);

   Response.Write(sql);

}

%>

C#插件

使用C#插件运行SQL语句,可以更新任何类型的第三方数据库。

using(SqlConnection cn = new SqlConnection())

{

   cn.ConnectionString = "...";

   cn.Open();

   using(SqlCommand cmd = new SqlCommand())

   {

        cmd.Connection = cn;

        cmd.CommandText = "UPDATE Purchase SET State='核准' WHERE SN=@SN";

        cmd.Parameters.Add("@SN", SqlDbType.NVarChar).Value = Context.Current.FormDataSet["BPMPurchase.PurchaseSN"];

        cmd.ExecuteNonQuery();

   }

}

  • 库引用

使用C#更新数据库时,需要在流程属性中引用相应的库。

  • 数据源

数据源更新推荐使用SQL插件,如果用C#插件,可用如下方法简化数据库连接。

string sql = String.Format("UPDATE Purchase SET State='核准' WHERE SN='{0}'", Context.Current.FormDataSet["BPMPurchase.PurchaseSN"]);

DataSourceManager.ExecuteNonQuery("ERP",sql);

  • BPM数据库

BPM数据库更新推荐使用SQL插件,如果用C#插件,可用如下方法简化数据库连接。

string sql = String.Format("UPDATE Purchase SET State='核准' WHERE SN='{0}'", Context.Current.FormDataSet["BPMPurchase.PurchaseSN"]);

Context.Current.IDataProvider.ExecuteNonQuery(sql);

Created with the Personal Edition of HelpNDoc: Full-featured multi-format Help generator