vlei 发表于 2015-9-18 12:09:13

智遥工作流调用SAP基础数据,解决方案

  在制造业公司,实施工作流的过程中,很多流程都需要调用ERP中基础数据。尤其是那些使用了SAP的大企业,可以说大部分流程都需要调用SAP的基础数据。比如取:plant,company,profilecenter,costcenter等信息。

  事实上这类数据很少发生变动,但是使用却非常频繁;如果每次发起流程都连接到SAP取数据,必然导致效率不高。

通常我都是建议企业将这些基础数据,导入到“智遥工作流软件”的数据库中。

  同时我们再做一个更新基础数据流程,当有基础数据变动时,管理员在进行点击一下更新按钮,将数据同步到“工作流”的数据库中。

  如图所示:

代码很简单:




//更新SAP基础数据
protected void BUpdateData_Click(object sender, DirectEventArgs e)
{
SapRFCHelper saph = new SapRFCHelper();
string tableName=Tdatatype.SelectedItem.Value.ToString();
string[] param = { "TABLE_NAME|" + tableName };
DataTable dt = saph.GetRfcOutTable("SAPDevConn",param,"ZGET_KEY_TEXT_LIST","ZLIST");
if (dt.Rows.Count > 0)
{
string sql = "Delete F_SAPDATA where datatype='" + tableName + "'";
SqlHelper sh = new SqlHelper();
sh.Execute(sql);
sql = "Insert into F_SAPDATA(datatype,key1,key2,key3,text,creator,ctime) Values (";
StringBuilder sqlStr = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
sqlStr.Clear();
sqlStr.Append(sql);
sqlStr.Append("'" + tableName + "'");
sqlStr.Append(",'"+ dt.Rows["KEY1"].ToString()+"'");
sqlStr.Append(",'" + dt.Rows["KEY2"].ToString() + "'");
sqlStr.Append(",'" + dt.Rows["KEY3"].ToString() + "'");
sqlStr.Append(",'" + dt.Rows["TEXT"].ToString() + "'");
sqlStr.Append(",'" + u.GetLoginID() + "'");
sqlStr.Append(",'" + DateTime.Now.ToString() + "'");
sqlStr.Append(")");
sh.Execute(sqlStr.ToString());
}
X.Msg.Alert("提示:", "数据更新成功!").Show();
}
}
  注:所有的SAP基础数据都是放在同一个表的,取数据的时候,根据类别来取就好了
页: [1]
查看完整版本: 智遥工作流调用SAP基础数据,解决方案