我建立基於asp.net MVC一個BPM之間我的記錄,我工作的兩個系統: -同步兩個單獨的數據庫
第三方BPM。
我自己的BPM系統。
目前,當我加入一個新的流程我做了以下內容: -
- 在使用它的REST API的第三方應用程序中創建新的進程。
- 在我自己的BPM數據庫中創建一個新流程。
但我面臨着以下問題: -
- 如何我可以從兩個系統添加/編輯/刪除的記錄是一致的方式,因此,如果在第三,不添加記錄我必須從我的系統中刪除它,反之亦然。
我的流程模型類是: -
public class newprocess
{
public string name { get; set; }
public string activityId { get; set; }
public string Status {get; set;}
}
我的操作方法是: -
[HttpPost]
public ActionResult CreateProcess(string name) {
using (var client = new WebClient())
{
try
{
repository.CreateProcess(name,"Pending");
repository.save();
var query = HttpUtility.ParseQueryString(string.Empty);
query["j_username"] = "kermit";
query["hash"] = "9449B5ABCFA9AFDA36B801351ED3DF66";
query["loginAs"] = User.Identity.Name;
var url = new UriBuilder("http://localhost:8080/jw/web/json/Process/create/" + name.ToString());
url.Query = query.ToString();
string json = client.DownloadString(url.ToString());
var serializer = new JavaScriptSerializer();
var myObject = serializer.Deserialize<newprocess>(json);
string activityid = myObject.activityId;
if (activityid != null)
{
repository.UpdateProcess(name, "Finish");
repository.save();
}
那麼我我的POST操作方法裏面做的,就是: -
- 在我的數據庫中創建一個新的記錄,狀態爲「掛起」。
- 調用第三方API,並獲得結果。
- 如果ActivityID不爲空(在第三方系統中創建成功),我正在更新我的記錄狀態爲「完成」。否則狀態將保持懸而未決。
- 我已經構建了一個屏幕,顯示狀態爲「掛起」的所有記錄,管理員將能夠從我自己的數據庫中刪除它們。
所以我的方法是否正常工作,否則會產生我不知道的問題。或者我應該尋找一個完全不同的方法
在此先感謝您的任何幫助。