流程流轉過程中需要更新外部資料庫,可通過以下方法實現:
■ 資料庫整合器
■ 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);