私はasp.net MVCに基づいてBPMを構築しています.2つのシステムに取り組んでいます:-
サードパーティの BPM。
独自の BPM システム。
現在、新しいプロセスを追加するときは、次のことを行っています:-
- REST API を使用して、サード パーティ アプリケーションで新しいプロセスを作成します。
- 自分の BPM データベースに新しいプロセスを作成します。
しかし、私は次の問題に直面しています:-
- 2 つのシステムからレコードを追加/編集/削除する方法は一貫した方法であるため、レコードがサード パーティのシステムに追加されていない場合は、自分のシステムから削除する必要があり、その逆も同様です。
私のプロセスモデルクラスは次のとおりです:-
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 が null でない場合 (サードパーティ システムで作成が成功した場合)、レコードのステータスを「完了」に更新しています。それ以外の場合、ステータスは保留中のままになります。
- ステータスが「保留中」のすべてのレコードを表示する画面を作成しました。管理者は自分のデータベースからそれらを削除できます。
私のアプローチはうまくいくでしょうか、それとも私が気付いていない問題を引き起こすでしょうか。または、まったく異なるアプローチを探す必要がありますか
助けてくれてありがとう。