Listar eventos

Retorna a lista paginada de eventos do módulo Workflow.

 

URL

{WSUrl}/api/events[?[status=<Situação>][[&]$filter=<filtro>][[&]page=<Página>][[&]page_size=<Tamanhodapágina>][[&]$orderby=<campo1[desc],campo2[desc]...campoN[desc]>]]

 

MÉTODO DE SOLICITAÇÃO

GET

 

PARÂMETROS DA URL

status: filtro das situações dos eventos do Workflow. Lista separada por vírgula com as situações desejadas. Uma situação pode assumir um dos seguintes valores numéricos: 0: Cancelled (cancelado), 1: Open (aberto) ou 2: Closed (fechado). Caso omitido, todos os eventos serão retornados.

page: número da página a ser exibida. Valores válidos: de 1 até o número máximo de páginas. Se omitido, o valor 1 é utilizado. Se for superior ao número máximo de páginas, será retornada uma lista vazia.

page_size: número de itens exibidos por página. Valores válidos: de 1 a 1.000. Caso omitido, o valor padrão de 10 itens é utilizado.

filter: consulta baseada na sintaxe do protocolo OData para configurar filtros. Os campos permitidos estão listados abaixo. Siga os exemplos para identificar as operações permitidas.

orderby: ordena os eventos listados na página por campo. Para ordenar por mais de um campo, utilize a vírgula entre os campos. Para utilizar a ordem decrescente, digite a palavra-chave "desc" para cada campo desejado. Os campos permitidos estão listados abaixo.

 

CAMPOS SUPORTADOS

string Title;

string Code;

string Description;

byte Urgency;

byte Severity;

byte Relevance;

byte USR;

byte Status;

DateTime? UpdatedOn;

DateTime? StartDate;

DateTime? EndDate;

DateTime? ExpectedStartDate;

DateTime? ExpectedEndDate;

DateTime? Deadline;

string Author;

string Responsible;

string Coordinator;

string FirstReviewer;

string SecondReviewer;

string ThirdReviewer;

string Origin;

string ParentEvent;

byte Progress;

DateTime Created;

double? Value;

bool Notify;

string LastUpdatedBy;

string ProjectLeader;

double? Latitude;

double? Longitude;

string EventType;

string InvolvedsNames;

string AssetsNames;

object CustomAttributes;

 

Os filtros seguem o padrão ODATA (http://www.odata.org/developers/protocols/uri-conventions). Os operadores suportados na linguagem da expressão estão descritos na tabela abaixo:

Operador

Descrição

Exemplo

eq

Igual

Urgency eq 5

ne

Diferente

Urgency ne 5

gt

Maior que

Urgency gt 3

ge

Maior que ou igual

Urgency ge 4

lt

Menor que

Urgency lt 3

le

Menor que ou igual

Urgency le 2

substringof

Contém uma substring

substringof('xpto',Title)

 

Os operadores lógicos suportados na linguagem da expressão estão descritos na tabela abaixo:

Operador

Descrição

Exemplos

and

E lógico

Urgency eq 5 and Severity eq 5

or

Ou lógico

Urgency eq 5 or Severity eq 5

not

Negação lógica

not Urgency eq 5

(  )

Agrupamento precedente

(Urgency eq 5 and Severity eq 5) or (Relevance eq 5)

 

TIPOS DE DADOS

String ou Text: o texto deve ser colocado entre aspas simples.

Byte: valor numérico inteiro.

Double: valor numérico real que utiliza um ponto (.) como separador de casas decimais.

Datetime: deve seguir o formato datetime'AAAA-MM-DDT00:00:00' entre aspas simples. Exemplos:

    Com data e hora: datetime'2010-10-25T12:34:56'.

    Somente com data: datetime'2010-10-25'.

 

LIMITAÇÕES CONHECIDAS

    Os parâmetros $select e $expand do padrão ODATA não foram implementados.

    Para utilizar caracteres especiais como "&" e aspas simples, são necessários tratamentos especiais. Exemplos:

Para fazer um filtro que contenha "McDonald's" no campo "Description", é necessário duplicar a aspa de "McDonald's", como no exemplo a seguir: substringof('McDonald''s',Description).

Para fazer um filtro que contenha "Johnson&Johnson" no campo "Description", é necessário substituir o & pela sua codificação hexadecimal, nesse caso %26, como no exemplo a seguir: substringof('Johnson%26Johnson',Description).

    Para criar um filtro para uma data específica – por exemplo, para eventos criados no dia 19 de setembro de 2011 – o seguinte filtro não funcionará: (Created eq datetime'2011-09-19'). No lugar desse, o seguinte filtro deve ser utilizado: (Created ge datetime'2011-09-19')and(Created lt datetime'2011-09-20').

    Os filtros dos atributos são aplicáveis apenas aos atributos do tipo Texto, Lista de Opções de seleção única e Lista de Opções de seleção múltipla.

 

EXEMPLOS DE SOLICITAÇÃO

Os primeiros 10 eventos em qualquer situação:

{WSUrl}/api/events

 

Os primeiros 10 eventos fechados:

{WSUrl}/api/events?status=2

 

Os eventos de 11 a 20 (segunda página) em qualquer situação:

{WSUrl}/api/events?page=2

 

Os primeiros cinco eventos em qualquer situação:

{WSUrl}/api/events?page_size=5

 

Os eventos de 15 a 21 (terceira página de tamanho 7) que estão fechados:

{WSUrl}/api/events?status=2&page=3&page_size=7

 

Filtrar pelo campo "Urgency" com valor igual a 3:

{WSUrl}/api/events?$filter=Urgency eq 3

 

Filtrar por parte de uma string do campo "Title":

{WSUrl}/api/events?$filter=substringof('suporte',Title)

 

Filtrar por uma string completa contida no campo "Title":

{WSUrl}/api/events?$filter=Title eq 'evento de suporte ao usuário'

 

Filtrar pelo campo "Value" com valor menor que 20:

{WSUrl}/api/events?$filter=Value lt 20

 

Filtrar pelo campo "Deadline" com data entre 24/08/2011 e 28/08/2011:

{WSUrl}/api/events?$filter=(Deadline ge datetime'2011-08-24') and (Deadline le datetime'2011-08-28')

 

Ordenação principal utilizando o progresso do evento e ordenação secundária com a data de criação descendente:

{WSUrl}/api/events?$orderby=Progress, Created desc

 

Filtro de eventos abertos com campo "Urgency" com valor igual a 5 ordenados pela data de alteração:

{WSUrl}/api/events?status=Open&$filter=Urgency eq 5&$orderby=UpdatedOn desc

 

Filtro de eventos fechados em 09/19/2011.

{WSUrl}/api/events?status=2&$filter=(EndDate ge datetime'2011-09-19')and(EndDate lt datetime'2011-09-20')

 

Filtro de eventos onde o autor é o usuário "João".

{WSUrl}/api/events?$filter=substringof('João',Author)

 

Filtro de eventos do tipo "Risco" em ordem crescente de data de atualização.

{WSUrl}/api/events?$filter=substringof('Risco',EventType)&$orderby=UpdatedOn desc

 

Filtro de eventos com atributo do tipo Texto. Tenha em mente que filtros de atributos de eventos requerem que o campo CustomAttributes seja especificado na chamada.

{WSUrl}/api/events?$filter=substringof('Marketing',CustomAttributes/atributotexto)

 

Filtro de eventos com atributo do tipo E-mail para exibir eventos com e-mail diferente de um determinado domínio. Suporta as mesmas funções dos atributos do tipo Texto.

{WSUrl}/api/events?$filter=CustomAttributes/atributoemail@corporate.com'

 

Filtro de eventos com atributo do tipo Link para exibir eventos com um determinado endereço web. Suporta as mesmas funções dos atributos do tipo Texto.

{WSUrl}/api/events?$filter=CustomAttributes/atributolink eq 'http://exemplo.com'

 

Filtro de eventos com atributo do tipo Número para exibir eventos com um número específico, como 40 no exemplo abaixo.

{WSUrl}/api/events?$filter=CustomAttributes/atribnumero eq 40

 

Filtro de eventos com atributo do tipo Lista de Opções de seleção única. Suporta as mesmas funções dos atributos do tipo Texto.

{WSUrl}/api/events?$filter=CustomAttributes/atribsingleselect eq 'opcao1'

 

Para exemplificar os filtros de atributos, considere um atributo do tipo Lista de Opções de seleção múltipla com nome "atribmultiselect" que pode ter os valores "op1", "op2" e "op3". Considere também a existência dos seguintes eventos com os seguintes valores selecionados:

Evento 1: op1

Evento 2: op2

Evento 3: op3

Evento 4: op1, op2

Evento 5: op1, op3

Evento 6: op2, op3

Evento 7: op1, op2, op3

Evento 8: "vazio"

 

Filtro para eventos que tenham pelo menos "op1".

{WSUrl}/api/events?$filter=CustomAttributes/atribmultiselect/any(i: i eq 'op1')

Retorno:

Evento 1, Evento 4, Evento 5 e Evento 7.

 

Filtro para eventos que tenham somente "op1".

{WSUrl}/api/events?$filter=CustomAttributes/atribmultiselect/any() and CustomAttributes/atribmultiselect/all(i: i eq 'op1')

Retorno:

Evento 1.

 

Filtro para eventos que tenham somente "op1" ou não tenham nenhuma opção.

{WSUrl}/api/events?$filter=CustomAttributes/atribmultiselect/all(i: i eq 'op1')

Retorno:

Evento 1, Evento 8.

 

Filtro para eventos que tenham pelo menos "op1" e "op2".

{WSUrl}/api/events?$filter=CustomAttributes/atribmultiselect/any(i: i eq 'op1') and CustomAttributes/atribmultiselect/any(i: i eq 'op2')

Retorno:

Evento 4 e Evento 7.

 

Filtro para eventos que tenham somente "op1" ou "op2".

{WSUrl}/api/events?$filter=CustomAttributes/atribmultiselect/any() and CustomAttributes/atribmultiselect/all(i: i eq 'op1' or i eq 'op2')

Retorno:

Evento 1, Evento 2, Evento 4.

 

Filtro para eventos que tenham pelo menos "op1" ou "op2".

{WSUrl}/api/events?$filter=CustomAttributes/atribmultiselect/any(i: i eq 'op1' or i eq 'op2')

Retorno:

Evento 1, Evento 2, Evento 4, Evento 5, Evento 6 e Evento 7.

 

Filtro para eventos que tenham somente "op1" e "op2".

{WSUrl}/api/events?$filter=CustomAttributes/atribmultiselect/any(i: i eq 'op1') and CustomAttributes/atribmultiselect/any(i: i eq 'op2') and CustomAttributes/atribmultiselect/all(i: i eq 'op1' or i eq 'op2')

Retorno:

Evento 4.

 

Filtro de eventos com atributo customizado do tipo Data.

{WSUrl}/api/events?$filter=CustomAttributes/data_001 ge datetime2'2024-06-25'

 

Filtro de eventos com atributo customizado do tipo Fórmula com saída em Data/Hora.

{WSUrl}/api/events?$filter=CustomAttributes/prazo_texto ge datetime'2024-06-25'

 

RESPOSTA DE SUCESSO

Lista de objetos com as informações dos eventos segundo o filtro e a paginação solicitados.

Retorna um WorkflowEvent[].

 

O objeto WorkflowEvent tem o seguinte formato:

WorkflowEvent

{

Guid Id;

string Title;

string Code;

string Description;

byte Urgency;

byte Severity;

byte Relevance;

byte USR;

EventState Status;

DateTime? UpdatedOn;

DateTime? StartDate;

DateTime? EndDate;

DateTime? ExpectedStartDate;

DateTime? ExpectedEndDate;

DateTime? Deadline;

string Author;

string Responsible;

string Coordinator;

string FirstReviewer;

string SecondReviewer;

string ThirdReviewer;

string Origin;

string ParentEvent;

byte Progress;

DateTime Created;

double? Value;

      bool Notify;

string LastUpdatedBy;

string ProjectLeader;

double? Latitude;

double? Longitude;

string GeolocationDescription;

string EventType;

string InvolvedsNames;

string AssetsNames;

object CustomAttributes;

}

 

EXEMPLO DE RESPOSTAS DE SUCESSO

{

"Id" :"aab251eb-791d-43cc-adac-0460c5d8c53f",

"Title" :"Evento de suporte ao usuário",

"Code" :"EVTD201109000720",

"Description" :"Suporte ao usuário do sistema",

"Urgency" :5,

"Severity" :4,

"Relevance" :3,

"USR" :60,

"Status" :1,

"Created" :"\/Date(1316527841617-0300)\/",

"Deadline" :"\/Date(1316574000000-0300)\/",

"ExpectedStartDate" :"\/Date(1316574000000-0300)\/",

"StartDate" :"\/Date(1316574000000-0300)\/",

"ExpectedEndDate" :"\/Date(1316574000000-0300)\/",

"EndDate" :"\/Date(1316638025603-0300)\/",

"UpdatedOn" :"\/Date(1316638025603-0300)\/",

"Author" :"administrator",

"AuthorId" :"84428d3f-cd41-11e2-9459-22ddd55f8100",

"Coordinator" :"Alexandre Ferreira",

"CoordinatorData" :{"Id":"5938d97a-bd43-11e0-94f0-001ec91f4b0a",

"Name" :"Alexandre Ferreira","Type":"Person"},

"Responsible" :"equipe de suporte",

"ResponsibleData" :{"Id":"c1e5cf48-b3d5-11e0-8b69-001ec91f4b0a","Name":"equipe de suporte","Type":"Group"},

"InvolvedsNames" :"Alexandre Ferreira;equipe de suporte;administrator",

"Progress" :66,

"Value" :1,

"LastUpdatedBy" :"aferreira",

"ProjectLeader" :"Alexandre Ferreira",

"Notify" :false,

"Latitude" :40.477552,

"Longitude" :-3.696289,

"GeolocationDescription" :"Rio de Janeiro ",

"Origin" :"PRJR11007",

"ParentEvent" : "EVTR201203023756",

"EventType" :"Evento de Riscos",

"AssetsNames" :"Servidor Windows;Servidor Linux;Sala de reunião;Notebook_01"

"CustomAttributes" : {

"number_customized" : 7,

"text_customized" : "servidor utilizado pelos coletores",

"date_customized" : "\/Date(324615600000-0300)\/",

"formula":{"Status":"Ok","Value":27.0}

}

}