我建立基于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不为空(在第三方系统中创建成功),我正在更新我的记录状态为“完成”。否则状态将保持悬而未决。
- 我已经构建了一个屏幕,显示状态为“挂起”的所有记录,管理员将能够从我自己的数据库中删除它们。
所以我的方法是否正常工作,否则会产生我不知道的问题。或者我应该寻找一个完全不同的方法
在此先感谢您的任何帮助。