Print

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

UWAGA! AMODIT WebAPI w technologii SOAP zostało wycofane z użytku! Należy korzystać z nowszego technologicznie AMODIT REST API.


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

  • wykorzystanie web service AMODWebAPI.asmx (adres to np.: http://{adres domenowy serwera}/webserviceanon/AMODWebAPI.asmx)
  • wykorzystanie biblioteki AMODClasses.dll dostępnej w katalogu w którym jest zainstalowana witryna

Aby wywołać AMODWebApi należy:

  • dodać web reference do web service http://{adres domenowy serwera}/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);

 

Czy artykuł był pomocny?
1.5 na 5 gwiazdek

4 ratings

5 Stars 0%
4 Stars 25%
3 Stars 0%
2 Stars 0%
1 Stars 75%
5
How can we improve this article?
How Can We Improve This Article?

Możliwość komentowania została wyłączona.