Я строю BPM на основе ASP.NET MVC, я работаю на двух системах: -Синхронизация мои записи между двумя отдельными базами данных
Партия 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, это: -
- Создайте новую запись в моей базе данных со статусом "pending".
- Вызвать сторонний API и получить результат.
- Если ActivityID не является нулевым (создайте успехи в сторонней системе), я обновляю статус записи, чтобы быть «законченным». Иначе статус останется в ожидании.
- Я построил экран, который отображает все записи со статусом «Ожидание», и администратор сможет удалить их из моей собственной базы данных.
Так будет мой подход работать хорошо, или это создаст проблемы, о которых я не знаю. Или я должен искать совершенно другой подход
Заранее благодарим за любую помощь.