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:
o 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).
o 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}
}
}