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