数据库
流程流转过程中需要更新第三方数据库,可通过以下方法实现:
- 数据库适配器
- 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