EBA WEB SERVİCE START-CONTINUE
1. Bilgilendirme
Harici uygulamaya webservis linki web reference olarak eklenmesi gerekmektedir
--> http://localhost/eba.net/ws/ebawsapi.asmx
**İşlem yapacak kullanıcıda aşağıdaki yetki olması gerekmektedir.
-- sysHiddenImpersonation -- sysImpersonation
** Request id için
select * from FLOWREQUESTS Where PROCESSID='1465'
Sorgudan Dönen ID değerin son değerini almak gerekmektedir.
2. Akış Tarafı
Akış tarafına 2 tane değişken ekliyoruz. bunlardan 1 tanesi formid alacak (Harici uygulamada form create edilecek) 2.ci ise sürecin hariciden başladığını belirtecek değeri tutan değişken olacaktır.
akışta karşılaştırma nesnesine göre yönlendirme yapılacaktır. görseli paylaşıyorum.
3. WebService C# Code
namespace external_EBA_Project
{
internal class Program
{
static void Main(string[] args)
{
EbaProjeService projeService = new EbaProjeService();
projeService.EbaStartProcess("Ext_EbaProject");
// projeService.EbaContinueProject(1465, 3, 5, "Harici Süreç devam edildi");
}
}
public class EbaProjeService
{
eBAWSAPI ebaservice = new eBAWSAPI();
public string ebauser { get; set; } = "admin";
public string ebapass { get; set; } = "0";
public string ebatargetuser { get; set; } = "admin";
public string ebalanguage { get; set; } = "Turkish";
public void EbaStartProcess(string projename) //Ext_EbaProject
{
// Form oluşturuyoruz...
CreateFormParameters createForm = new CreateFormParameters();
createForm.Form = "Form";
createForm.Process = projename;
var resultform = ebaservice.CreateForm(ebauser, ebapass, ebatargetuser, ebalanguage, createForm);
// Akış tarafına parametre gönderiyoruz.
WorkflowStartParameters startParameters = new WorkflowStartParameters();
List<WorkflowParameter> parameters = new List<WorkflowParameter>();
parameters.Add(new WorkflowParameter()
{
Name = "vStatus",
Value = "1"
});
parameters.Add(new WorkflowParameter()
{
Name = "vdocid",
Value = resultform.DocumentId.ToString()
});
startParameters.Process = projename;
startParameters.ProcessParameters = parameters.ToArray();
//startprocess ile süreci tetikliyoruz.
var result = ebaservice.StartProcess(ebauser, ebapass, ebatargetuser, ebalanguage, startParameters);
}
public void EbaContinueProject(int surecid,int requestid, int eventid,string reason)
{
WorkflowContinueParameters wfContinueParameters = new WorkflowContinueParameters();
wfContinueParameters.ProcessId = surecid;
wfContinueParameters.RequestId = requestid;
wfContinueParameters.ReturnValue = eventid; // Pozisyonun event id normalde 5 - 6 dır
wfContinueParameters.Reason = reason;
ebaservice.ContinueProcess(ebauser, ebapass, ebatargetuser, ebalanguage, wfContinueParameters);
}
}
}