Współpraca aplikacji zewnętrznych z AMODIT poprzez API

Tworzenie własnych aplikacji korzystających z AMODIT’a może być zrealizowane na dwa sposoby:

Aby wywołać AMODWebApi należy:

  • dodać web reference do web service http://server/webserviceanon/AMODWebAPI.asmx
  • Settings.Default.AMODExternalApplication_AMODWebApi_AMODWebAPI – powinna zawierać url webservice AMODWebAPI.asmx
  • Settings.Default.AMODWebApiUser i Settings.Default.AMODWebApiPass to login i hasło użytkownika na którego chcemy się zalogować (jeżeli jest logowanie AD to nie trzeba tego podawać, wtedy wystarczy api.UseDefaultCredentials = true;)
using (AMODWebApi.AMODWebAPI api = Tools.GetAPI())
{
return api.GetCase(Convert.ToInt32(caseID));
}public static AMODWebApi.AMODWebAPI GetAPI()
{
AMODWebApi.AMODWebAPI api = new AMODWebApi.AMODWebAPI();
string mainServiceURl = Settings.Default.AMODExternalApplication_AMODWebApi_AMODWebAPI;
api.Url = mainServiceURl;
AMODWebApi.AMODWebAPIHeader auth = new AMODWebApi.AMODWebAPIHeader(); auth.Username = Settings.Default.AMODWebApiUser;
auth.Password = Settings.Default.AMODWebApiPass;
api.AMODWebAPIHeaderValue = auth;
auth.AuthenticatedToken = api.AuthenticateUser();
return api;
}

Przykłady dla AMODClasses.dll (należy dodać referencję do pliku do projektu – plik jest katalogu bin w aplikacji webowej). Dostępne klasy i biblioteki będą widoczne w Inteli Sense w Visual Studio.

Przykłady

Utworzenie nowej sprawy

AMODCase amodCase = AMODCase.CreateCase();

Pobranie listy spraw z danej procedury w których podane pole ma daną wartość:

string query = String.Format(@"<where><and><field name=""caseProcedureId"" op=""="" val=""{0}"" type=""int"" /><field name=""{1}"" op=""="" val=""{2}"" type=""int"" /></and></where>", prc[0].PrcId, par.PpaFieldName, req.primeId);

 List<AMODCase> list = AMODCase.GetCases(query);

Ustawianie użytkownika, na którym ma działać aplikacja

Jeżeli nie ustawimy, to zostanie pobrany bieżący użytkownik który uruchomił program

AMODUtils.CurrentUserName=login;

Utworzenie sprawy z podanej procedury, w podanym statusie i tytule

List<AMODProcedure> prcList = AMODProcedure.GetProcedures(procName);
string status = "...";
string title = "...";
AMODCase cs = AMODCase.CreateNewCase(prcList[0],status,title);

Uzupełnianie standardowych pól, np przypisanie właściciela

AMODWorkflowUser owner=AMODWorkflowUser.CreateAMODWorkflowUser(login);
cs.CaseOwnerId=owner.UserId;

Uzupełnianie zwykłych pól formularza (nie standardowych)

//dla pól typu użytkownik powinien być to login

string val="...."
cs["Nazwa pola"].SetValue(val);
....
cs.Update();

Dodawanie wiersza tabeli

//tableName to nazwa pola tabeli

AMODCaseParam param = context.Case[tableName];
string updated;
int result=cs.AddTableRow(param.PrcParam, out updated);

Pobranie sprawy z wiersza tabeli – AddTableRow zwraca id wiersza, trzeba pobrać obiekt sprawy

//tak samo można pobrać obiekt głównej sprawy

AMODCase row=AMODCase.CreateAMODCase(result);

Uzupełnianie pól jak dla głównej sprawy, można oczywiście robić tabele zagnieżdżone

row["Nazwa pola"].SetValue(val);
row.Update();

Przekazanie sprawy dalej to ustawienia CaseStatusId i CaseOwnerId

//ustawiamy status jeżeli inny niż przy tworzeniu sprawy

AMODProcedureStatus status = cs.CaseProcedure.StateExists("nazwa etapu");
cs.CaseStatusId=status.PstId;
AMODWorkflowUser owner=AMODWorkflowUser.CreateAMODWorkflowUser(login);
cs.CaseOwnerId=owner.UserId;

//na koniec update

cs.Update();

//ewentualnie można wysłać maila

AMODUtils.SendEmailCase(AMODWorkflowUser.Current, owner, cs, null);

 

Was this article helpful?
1.5 out Of 5 Stars
5 Stars 0%
4 Stars 25%
3 Stars 0%
2 Stars 0%
1 Stars 75%
How can we improve this article?
Please submit the reason for your vote so that we can improve the article.

Comments are closed.