0

私はasp.net MVCに基づいてBPMを構築しています.2つのシステムに取り組んでいます:-

  1. サードパーティの BPM。

  2. 独自の BPM システム。

現在、新しいプロセスを追加するときは、次のことを行っています:-

  1. REST API を使用して、サード パーティ アプリケーションで新しいプロセスを作成します。
  2. 自分の BPM データベースに新しいプロセスを作成します。

しかし、私は次の問題に直面しています:-

  1. 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 アクションメソッド内でやっていることは:-

  1. データベースに「保留中」のステータスで新しいレコードを作成します。
  2. サードパーティ API を呼び出し、結果を取得します。
  3. ActivityID が null でない場合 (サードパーティ システムで作成が成功した場合)、レコードのステータスを「完了」に更新しています。それ以外の場合、ステータスは保留中のままになります。
  4. ステータスが「保留中」のすべてのレコードを表示する画面を作成しました。管理者は自分のデータベースからそれらを削除できます。

私のアプローチはうまくいくでしょうか、それとも私が気付いていない問題を引き起こすでしょうか。または、まったく異なるアプローチを探す必要がありますか

助けてくれてありがとう。

4

1 に答える 1