API
uMov.me
Este documento descreve os aspectos gerais da API uMov.me para integração com outros
sistemas. Aqui são tratadas questões como autenticação, padrões de requisições e respostas
bem como referência para informações específicas dos recursos disponibilizados pela API.
Sumário
Como nossa API está estruturada Autenticação Gerar Token usando o Center Gerar Token usando a API Validação de usuários Realizando requisições Operações Disponíveis Busca Simples Por Identificador Busca Por Lista de Recursos Criação de Novos Recursos Atualização de Recursos Paginação Limites Requisições simultâneas Operações usando HTTP POST ActivityHistory (Histórico de Execução de Atividades) Descrição de Histórico Busca por Lista de Históricos Busca de histórico completo específico (com todos os dados do histórico) Busca de um histórico específico Busca de um item de histórico específico Descrição de Item de Histórico Atualização de histórico (Marcar como Exportado) Inclusão de histórico Callback Para Históricos Retornados AppVersion (Versão do Aplicativo) Descrição de uma appVersion Descrição de uma app Consultar versões disponíveis de um aplicativo Consultar uma versão específica de um aplicativo Agendamento de atualização da versão de um aplicativo Activity (Atividade) Descrição de uma Atividade Busca por Lista de Atividades Busca por Atividade Específica Usando identificador interno Usando identificador alternativo 1 Section (Seção) Descrição de uma Seção Busca Por Lista de Seções Busca de uma Seção Usando Identificador Interno Usando Identificador Alternativo Section Field (Campo da Seção) Descrição de um Campo da Seção Busca por Lista de Campos na Seção Busca de um Campo na Seção Usando Identificador Interno Usando Identificador Alternativo Section SubGroup (Subgrupo da Seção) Descrição de um Subgrupo da Seção Inserir subgrupo na seção Busca de um Subgrupo da Seção Usando Identificador Interno Remoção de um Subgrupo da Seção em Específico Inserir Subgrupos em Lote na Seção Math Expressions (Fórmulas de Valor) Descrição de uma Fórmula de Valor Busca por Lista de Fórmulas de Valor Busca de uma Fórmula de Valor Usando identificador Interno Logical Expressions (Fórmulas de Validação) Descrição de uma Fórmula de Valor Busca por Lista de Fórmulas de Validação Busca de uma Fórmula de Validação Usando Identificador Interno Auditing (Auditoria) Descrição de um Registro de Auditoria Busca Por Lista de Auditoria Busca Por uma Auditoria Usando Identificador Interno Descrição de um Valor da Auditoria Busca Por uma Valor de Auditoria Usando Identificador Interno Busca Hierárquica da Auditoria de um Histórico Atualização dos Dados do Contrato Descrição das Informações do Contrato no uMov.me Atualização dos Dados do Contrato Criação/Cópia de Ambiente Descrição de um Workspace/Ambiente 2 Criação/Copia de Workspace/Ambiente Custom Entity (Cadastro Customizável) Descrição de um Cadastro Customizável Busca Por Lista de Cadastros Customizáveis Busca de um Cadastro Customizável específico Descrição de um Registro do Cadastro Customizável Busca Por Lista de Registros do Cadastro Customizável Busca de um Registro do Cadastro Customizável específico Inclusão de um Registro do Cadastro Customizável Inclusão em Lote de Registro de Cadastro Customizável Custom Field / Custom Field Value (Campo Customizável / Valor Campo Customizável) Descrição de um Custom Field Busca Por Lista de Campos Customizáveis Busca de um Campo Customizável Usando Identificador Interno Usando Identificador Alternativo Descrição de um Custom Field Value Inclusão/Alteração de Valores de Campos Customizáveis Usando Identificador Interno Usando o Identificador Alternativo: Inclusão/Alteração em lote de Valores de Campos Customizáveis Inclusão/Alteração de Valores no formato XML de Campos Customizáveis I ExportLayout(Modelo de exportação) Busca por lista de modelo de exportação Busca por um modelo de exportação específico utilizando ID GeoCoordinate (GeoCoordenadas) Descrição de uma GeoCoordenada Busca por lista de GeoCoordenadas Busca por uma GeoCoordenada em específico ImportFiles (Agendamento de importação de arquivos) Agendamento de importação de arquivos ImportLayout(Modelo de Importação) Descrição de um Modelo de Importação Descrição de um Campo do Modelo de Importação Busca por lista de modelo de importação Busca por um modelo de importação específico utilizando ID Busca de um modelo de importação por entidade Relação de Item Group (Grupo) Descrição de um Grupo Busca por lista de Grupos Busca por um Grupo específico Inclusão de um Grupo 3 Atualização de um Grupo específico Busca por um Grupo específico Item (Item) Descrição de um Item Busca por lista de Itens Busca por um Item específico Inclusão de um Item Atualização de um Item específico Utilizando id interno Utilizando identificador alternativo Inclusão de itens em lote Busca por um Item específico através do identificador alternativo ItemCategory (Categoria de Item) Descrição de uma Categoria de Item Busca por lista de Categoria de Item Busca por uma Categoria de Item específica Inclusão de uma Categoria de Item Atualização de uma Categoria de Item específica Busca por uma Categoria de Item específica através do identificador alternativo SectionItem (Item de Seção) Descrição de um Item de Seção Busca por lista de Itens de Seção Busca por um Item de Seção específico Inclusão de um Item de Seção Atualização de um Item de Seção específico SubGroup (Subgrupo) Descrição de um Subgrupo Busca por lista de Subgrupos Busca por um Subgrupo específico Inclusão de um Subgrupo Atualização de um Subgrupo Usando Identificador Interno Usando Identificador Alternativo Busca por um Subgrupo específico através do identificador alternativo Mix de Produtos Busca por Lista de Tipo de Mix de Produtos Busca por Lista de Mix de Produtos Busca por Lista de Itens de Mix de Produtos Busca por Mix / Itens de Mix / Tipo de Mix de Produto Usando Identificador Interno Usando Identificador Alternativo Descrição de um Tipo de Mix Descrição de um Mix de Produtos 4 Descrição de um Item do Mix de Produtos Tipo de Mix (MixType) Descrição de um Tipo de Mix Inclusão de um tipo de mix Buscar todos os registros de tipo de mix Buscar um registro específico de tipo de mix Mix Descrição de um Mix Inclusão de um mix Buscar todos os registros de mix Buscar um Registro de Mix Itens do Mix (Mix Product) Descrição de um Item de Mix Inclusão de um item do mix Busca por Lista de Registros de Itens do Mix Buscar por Lista de Produtos de um Mix Buscar um registro específico de itens do mix Relação de Locais ServiceLocal (Local de Atendimento) Descrição de um Local de Atendimento Busca Por Lista de Locais de Atendimento Busca de um Local de Atendimento específico Inclusão de um Local de Atendimento Atualização de um Local de Atendimento Usando Identificador Interno Usando Identificador Alternativo ServiceLocal Activity (Atividades dos Locais) Inclusão de atividades dos locais em lote Remoção de uma atividade de Local em específico Usando Identificador Alternativo: ServiceLocalClassification (Classificação de local de atendimento) Descrição de um Classificação de local de atendimento Busca por lista de Classificação de local de atendimento Busca por um Classificação de local de atendimento Inclusão de um Classificação de local de atendimento Atualização de um Classificação de local de atendimento específico Busca por Classificação de Local de Atendimento Usando Identificador Alternativo ServiceLocalType(Tipo de Local de atendimento) Descrição de um Tipo de local de atendimento Busca por lista de Tipo de local de atendimento Inclusão de um Tipo de local de atendimento Atualização de um Tipo de Local de Atendimento 5 Usando Identificador Interno Usando Identificador Alternativo Busca por Tipo de Local de Atendimento Usando Identificador Interno Usando Identificador Alterantivo Local3Dimension (Grupo de local de atendimento) Descrição de um Grupo de local de atendimento Busca por lista de Grupo de local de atendimento Busca por Grupo de Local de Atendimento Usando Identificador Interno Usando Identificadot alternativo Inclusão de um Grupo de local de atendimento Atualização de um Grupo de local de atendimento específico Busca por Grupo de Local de Atendimento Usando Identificador Interno Usando Identificador Alternativo RELACAO DE PESSOAS Agent (Agente) Descrição de um Agente/Pessoa Busca por Lista de Agentes/Pessoas Busca de um Agente/Pessoa específica Inclusão de um Agente/Pessoa específica Atualização de um Agente/Pessoa especifíca Usando Identificador Interno Usando Identificador Alternativo Busca por Agente/Pessoa Usando Identificador Interno Usando Identificador Alternativo Agent Activity (Atividades dos Agentes) Inclusão de atividades dos agentes em lote AgentType (Tipo de Agente) Descrição de um Tipo de Agente Busca por lista de Tipo de Agente Busca por um Tipo de Agente específico Inclusão de um Tipo de Agente Atualização de um Tipo de Agente Usando Identificador Interno Usando Identificaor Alternativo Busca por um Tipo de Agente Usando Identificador Interno Usando Identificador Alternativo SmsRequest (Envio de SMS) Descrição de um SmsRequest 6 Inclusão de um SmsRequest Team(Equipe) Descrição de uma Equipe Busca Por Lista de Equipes Busca por uma Equipe Usando Identificador Interno Usando Identificador Alternativo Inclusão de uma Equipe Atualização de uma Equipe Inclusão de uma pessoa em uma equipe Remoção de uma pessoa de uma equipe Consulta de uma pessoa em uma equipe TeamType(Tipo de Equipe) Descrição de um Tipo de Equipe Busca Por Lista de Tipos de Equipe Busca de um Tipo de Equipe Inclusão de um Tipo de Equipe Atualização de um Tipo de Equipe RELACAO DE TAREFAS Schedule (Tarefas) Descrição de uma Tarefa Busca Por Lista de Tarefas Busca de uma tarefa Usando Identificador Interno Usando Identificador Alternativo Inclusão de uma Tarefa Atualização de uma Tarefa Utilizando Identificador Interno Utilizando Identificador Alternativo Inclusão ou atualização de uma tarefa com identificadores alternativos Cancelamento de uma tarefa Schedule Item (Itens das Tarefas) Inclusão de itens de tarefa em lote Busca Por Lista de Tarefas Busca por um Item de Tarefa em específico Remoção de um Item de Tarefa em específico Usando Identificador Interno Usando Identificador Alternativo: Envio Notificação Push Criação de notificação Envio de Mensagens Criação da Mensagem 7 Como nossa API está estruturada
A API do uMov.me é implementada sobre o protocolo
HTTP/HTTPS usando verbos conhecidos do protocolo como GET e POST
para realizar as requisições. Originalmente o formato suportado pela API é
XML eXtensible Markup Language
. A API é baseada nos conceitos REST (Representational State Transfer)
. Neste sentido dizemos que a nossa API é inspirada em REST e respeita os aspectos mais significativos e restritivos da sua arquitetura, em particular a restrição de "interface uniforme". Cada recurso disponibilizado pela API possui sua própria URL base e é manipulado de forma isolada. Autenticação
Para ter acesso a API uMov.me, o ambiente em questão deve possuir uma chave de acesso da API gerada. Isto é feito através das configurações do ambiente, onde um desenvolvedor pode requisitar uma chave de acesso. Quem possuir esta chave terá o acesso aos dados do ambiente através das chamadas de API. Esta chave de acesso não deve ser publicada pelo cliente — ela é a segurança do cliente no acesso ao sistema através da API. Gerar Token usando o Center
Caso o cliente tenha interesse em criar ou "reiniciar" esta chave, pode fazer isto pelo menu Gestão > Integração > API.
8 A chave é usada como parte das informações de uma dada requisição, exemplo: https://api.umov.me/CenterWeb/api/
4526e732f53e811be6f0678c4512c9bcea990
/serviceLocal/5421.xml Neste caso, o token
4526e732f53e811be6f0678c4512c9bcea990
é a chave de API dentro da requisição. Toda requisição deve ter a chave enviada. Gerar Token usando a API
É possível também gerar ou recuperar o token através de uma requisição POST via API. A requisição a ser feita é: URL:
https://api.umov.me/CenterWeb/api/
token.xml Exemplo da requisição com dados do XML: <apiToken> <login>fulano</login> <password>senhafulano</password> <domain>ambiente</domain> </apiToken> Validação de usuários
Através da API do uMov.me também é possível validar se um determinado usuário é valido através de uma requisição POST via API. A requisição a ser feita é: URL:
https://api.umov.me/CenterWeb/api/authentication.xml Exemplo da requisição com dados do XML: <authentication> <login>fulano</login> <password>senhafulano</password> <domain>ambiente</domain> </authentication> 9 Possiveis códigos de retorno: ●
●
200: Usuário autorizado 401: Usuário não autorizado Realizando requisições
Ao realizar uma requisição para a API uMov.me é necessário: ●
●
●
●
indicar a chave de API o recurso de interesse opcionalmente se pode informar um identificador, no caso de requisições que desejam retornar um registro em específico. o tipo de conteúdo que está sendo tratado, seja no envio ou no retorno de informação. Com relação ao tipo de conteúdo a API uMov.me trabalha com o formato XML; GET
https://api.umov.me/CenterWeb/api/4526e732f53e811be6f0678c4512c9bcea990/... A requisição acima é lida da seguinte forma: desejo retornar (GET) informações via API existente no ambiente uMov.me com chave de API
"4526e732f53e811be6f0678c4512c9bcea990"
, sobre um local de atendimento (serviceLocal) específico, de código 5421, em formato XML. Ainda é possível adicionar parâmetros nas requisições. Este tipo de funcionalidade é disponível nas requisições de consulta de registros. Para enviar parâmetros na requisição, é necessário adicionar parâmetros igual realizamos em uma requisição HTTP/HTTPS. Exemplo: GET
https://api.umov.me/CenterWeb/api/{$apiKey}/agent.xml
?name=fulano&active=true Esta requisição está pedindo todos os agentes disponíveis cujo nome tenha a palavra fulano presente (name=fulano) e que estejam ativos (active=true).
Enviar parâmetros para a API uMov.me é simples assim! Operações Disponíveis
10 Busca Simples Por Identificador
GET
https://api.umov.me/CenterWeb/api/{chave_api}/{nome_recurso}/{identificador_recurso}.xml Busca Por Lista de Recursos
GET https://api.umov.me/CenterWeb/api/{chave_api}/{nome_recurso}.{formato}?{parametro1}={valor1}&{p
arametro2}={valor2}... Criação de Novos Recursos
POST
https://api.umov.me/{chave_api}/{nome_recurso}.{formato} Atualização de Recursos
POST
https://api.umov.me/CenterWeb/api/{chave_api}/{nome_recurso}/{identificador_recurso}.{formato} Respostas e alertas de erro
O método de envio POST pode ser usado para realizar uma inserção ou atualização. No caso de uma inserção, é retornado o código 201 (recurso criado) no caso de sucesso. No caso de uma atualização de recurso, é retornado o código 200 (recurso atualizado). Veja um resumo dos status HTTP que a API pode retornar: ●
●
●
●
●
●
200 um retorno ok para uma consulta (GET) ou operação de atualização de dados com sucesso; 201 um retorno indicando a criação de um novo registro, usado para inserção de dados (requisições POST para inclusão de dados); 400 request mal realizado, retornado quando o cliente executa uma chamada sem usar os parâmetros esperados por exemplo; 401 não autorizado, normalmente quando a chave de API uMov.me não está correta; 404 quando pesquisado por um registro indicando um id especifico, porém inexistente; 501 para entidades não disponiveis via API; Referência dos códigos HTTP: W3C HTTP/1.1 Status Code Definitions (
http://www.w3.org/Protocols/rfc2616/rfc2616sec10.html
) Para requisições de criação e atualização de um recurso com sucesso, será enviado uma mensagem ao usuário conforme o exemplo abaixo: 11 <result> <resourceName>serviceLocal</resourceName> <resourceId>5421</resourceId> <link>/serviceLocal/5421.xml</link> </result> Ao realizar buscas por uma lista de recursos, será enviada ao usuário uma mensagem informando as seguintes informações: ●
●
●
nome do recurso pesquisado total de registros encontrados lista de entradas contento o link para acesso de cada recurso encontrado <result> <resourceName>serviceLocal</resourceName> <size>N</size> <entries> <entry id="5421" link="/serviceLocal/5421.xml"/> ... <entries> </result> Paginação
Existe uma número máximo de registros que uma pesquisa pode retornar. Por padrão a API mostra apenas a primeira página com resultados da pesquisa. Para exibir os demais registros, é necessário paginar a pesquisa, informando o número da página que se deseja consultar. Para isso, devese adicionar o parâmetro 'paging.page' à requisição informando o número da página desejada: GET
https://api.umov.me/CenterWeb/api/{$apiKey}/schedule.xml
?paging.page=5 Limites
Requisições simultâneas
12 A API do uMov.me trabalha atualmente com um
limite máximo de 5 conexões por segundo
. Este bloqueio de conexões simultâneas ocorre baseado em um limite de requisições por IP e TOKEN. Exemplificando: Dado que um determinado IP(200.x.x.x) ou token(4526e732f53e811be6f0678c4512c9bcea990) realizar 6 chamadas de forma simultânea(no mesmo segundo) para a o uMov.me, então serão processadas apenas as cindo primeiras requisição observando a ordem de chegada. A sexta requisição será bloqueada! Operações usando HTTP POST
Ao atualizar um histórico você precisa em sua requisição POST identificar os dados do histórico utilizando um parâmetro com o nome data. Segue um exemplo disparando a requisição a partir de um formulário HTML, onde você precisa trocar {$apiKey} pela chave da sua API e {$id} pelo código do objeto que está sendo modificado. Neste exemplo estamos modificando o status do histórico para exportado. Veja a base do form HTML. <html> <form method="POST" action="http://api.umov.me/CenterWeb/api/{$apiKey}/activityHistory/{$id}.xml"> <input type="text" name="data" value="<activityHistory><executionExportStatus>true</executionExportStatus></activityHistory>" /> <input type="submit" /> </form> </html> Perguntas Frequentes!
●
●
A API uMov.me não suporta outros formatos? Existe alguma aplicação demo, ou algum cliente da API uMov.me para que sirva de exemplo? Entre em contato conosco para saber do nosso roadmap! 13 ActivityHistory (Histórico de Execução de Atividades)
A API de ActivityHistory é responsável por retornar os dados de execução das tarefas de campo. Ela é a forma como o sistema integrado ao uMov.me consegue saber o que aconteceu em campo e poder assim dar prosseguimento aos processos de negócio envolvidos! Descrição de Histórico
Campo Valor Tamanho Obrigatório Descrição activity Não Dados relacionados à atividade. initialStartTimeOnSystem texto 19 Não Data de inico da execução da atividade no sistema. Formato (yyyymmdd HH:mm:ss) 24hs. id numérico 10 Não Identificador interno de histórico de execução de atividade no uMov.me schedule Não Dados relacionados à tarefa endFinishTimeOnS
ystem texto 19 Não Data final de execução da atividade. Formato (yyyymmdd HH:mm:ss) 24hs. status true/fal
se Não Indica se o histórico está ativo ou inativo, válido ou não válido. Busca por Lista de Históricos
GET /CenterWeb/api/{$apiKey}/activityHistory.xml
Este recurso permite fazer a busca de históricos de um determinado ambiente. É permitido que você adicione alguns parâmetros na requisição. Os parâmetros são os seguintes: ● schedule
: pesquisar por uma determinada tarefa GET
/CenterWeb/api/{$apiKey}/activityHistory.xml
?schedule=002 ●
Atividades iniciados entre 20111001 00:00:00 e 20111001 23:59:59 GET 14 /CenterWeb/api/{$apiKey}/activityHistory.xml
?initialStartTimeOnSystem=20111001%2008:00:
00&endStartTimeOnSystem=20111001%2023:59:00:00 ●
Atividades finalizadas entre 20111101 00:00:00 e 20111101 23:59:59 GET /CenterWeb/api/{$apiKey}/activityHistory.xml
?endStartTimeOnSystem=20111101%2008:00:00&endFini
shTimeOnSystem=20111101%2023:59:00:00 ●
Atividades executadas entre 20111001 00:00:00 e 20111101 23:59:59 GET /CenterWeb/api/{$apiKey}/activityHistory.xml
?initialStartTimeOnSystem=20111001%2008:00:00&endFi
nishTimeOnSystem=20111101%2023:59:00:00 ●
Atividades filtrando os históricos através de atributos das entidades vinculadas GET /CenterWeb/api/{$apiKey}/activityHistory.xml
?activity.captureGPS=true&schedule.alternativeIdentifier=t
este Realizar pesquisas de histórico de execução de atividades utilizando parâmetros pela API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>activityHistory</resourceName> <size>1</size> <entries> <entry id="100" link="/activityHistory/100.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, Id do registro no uMov.me e o link, que pode ser usado para recuperar os dados específicos deste registro.
Busca de histórico completo específico (com todos os dados do histórico)
GET
/CenterWeb/api/{$apiKey}/activityHistoryHierarchical/{$id}.xml 15 Esta operação serve para puxar informações de um histórico de execução de atividade do sistema de forma completa. Todos os dados da tarefa e dados coletados são retornadas nessa requisição. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <activityHistory> <id>445</id> <startTimeOnSystem>20101005 19:30:16</startTimeOnSystem> <finishTimeOnSystem>20101005 19:30:36</finishTimeOnSystem> <dataSource>0</dataSource> <status>true</status> <executionExportStatus>false</executionExportStatus> <biExportStatus>false</biExportStatus> <numberPicturesTaken>2</numberPicturesTaken> <numberPicturesReceived>1</numberPicturesReceived> <activity>
<id>9</id> <description>Entrega Total Realizada</description> <alternativeIdentifier /> <displayOrder>1</displayOrder> <minimumAmountPics>0</minimumAmountPics> <maximumAmountPics>2</maximumAmountPics> <active>true</active> <comunicationType>0</comunicationType> <executionType>1</executionType> <loopExecution>false</loopExecution> <takePictures>true</takePictures> <showsSessionWebForm>false</showsSessionWebForm> <confirmClose>2</confirmClose> </activity> <schedule> <id>566</id> <situation> <id>50</id> <description>Returned</description> </situation> <agent> <id>38</id> <name>Entregador 5</name> <active>false</active> <login>e5</login> <centerwebUser>false</centerwebUser> <mobileUser>true</mobileUser> <biUser>false</biUser> <biUserRole>0</biUserRole> <inputWebAsAnotherUser>false</inputWebAsAnotherUser> 16 <centerwebUserRole>D</centerwebUserRole> <validateClient>0</validateClient> <exportStatus>false</exportStatus> </agent> <origin>1</origin> <hour>16:29</hour> <date>20101005</date> <priority>1</priority> <executionDate>20101005</executionDate> <alternativeIdentifier /> <executionHour>19:30</executionHour> <serviceLocal> <id>6</id> <alternativeIdentifier /> <description>Trevisan Sao Paulo</description> <geoCoordinate>23.566675, 46.6499364</geoCoordinate> <corporateName>Trevisan Tecnologia Ltda</corporateName> <streetType>Av.</streetType> <street>Paulista</street> <streetNumber>726</streetNumber> <streetComplement>sala 1707</streetComplement> <zipCode>99999999</zipCode> <state>SP</state> <observation /> <active>true</active> <origin>1</origin> <insertDateTime>20100707 20:25:15</insertDateTime> <lastUpdateDateTime>20101224 14:14:49</lastUpdateDateTime> </serviceLocal> <exportSituation>0</exportSituation> <observation /> <active>true</active> <activitiesOrigin>1</activitiesOrigin> <recreateTaskOnPda>false</recreateTaskOnPda> </schedule> <sections> <section> <id>9</id> <description>Unica</description> <order>0</order> <alternativeIdentifier /> <active>true</active> <mandatory>1</mandatory>
<useItem>false</useItem> <findItemsByIdentifier>false</findItemsByIdentifier> <itemFillMode>0</itemFillMode> <groupingItemsTypeOnMobile>1</groupingItemsTypeOnMobile> 17 <items> <item> <id>6</id> <description>Padrão Item</description> <active>true</active> <fields> <field> <id>23</id> <mobilePageNumber>1</mobilePageNumber> <order>0</order> <nullable>true</nullable> <unique>false</unique> <description>Nome Recebedor:</description> <updatable>true</updatable> <visible>true</visible> <tip /> <type>A</type> <size>25</size> <active>true</active> <sourceValue>0</sourceValue> <showValueInMobile>false</showValueInMobile> <fieldHistory> <id>2645</id> <value>yyyy</value> <valueForExhibition>yyyy</valueForExhibition> <status>true</status> </fieldHistory> </field> <field> <id>24</id> <mobilePageNumber>1</mobilePageNumber> <order>1</order> <nullable>true</nullable> <unique>false</unique> <description>Documento Recebedor:</description> <updatable>true</updatable> <visible>true</visible> <tip />
<type>N</type> <size>15</size> <active>true</active> <sourceValue>0</sourceValue> <showValueInMobile>false</showValueInMobile> <fieldHistory> <id>2646</id> <value>9999</value> <valueForExhibition>9999</valueForExhibition> 18 <status>true</status> </fieldHistory> </field> <field> <id>25</id> <mobilePageNumber>1</mobilePageNumber> <order>2</order> <nullable>true</nullable> <unique>false</unique> <description>Tipo Recebedor:</description> <updatable>true</updatable> <visible>true</visible> <tip /> <type>L</type> <active>true</active> <listType>U</listType> <sourceValue>0</sourceValue> <showValueInMobile>false</showValueInMobile> <fieldHistory> <id>2647</id> <value>1</value> <valueForExhibition>O Mesmo</valueForExhibition> <status>true</status> </fieldHistory> </field> </fields> </item> </items> </section> </sections> <geoCoordinates> <geoCoordinate> <id>1031046</id> <date>20121227</date> <hour>161027</hour> <latitude>0.0</latitude> <longitude>0.0</longitude> <type>ON_START_ACTIVITY</type> <observation>Não foi possível capturar as coordenadas. A pessoa desistiu após tentar novamente 0 vezes.</observation> <provider/> <withGps>true</withGps> <gpsEnabled>true</gpsEnabled> <networkEnabled>false</networkEnabled> </geoCoordinate> <geoCoordinate> <id>1031045</id> <date>20121227</date> 19 <hour>160808</hour> <latitude>0.0</latitude> <longitude>0.0</longitude> <type>ON_START_ACTIVITY</type> <observation>Não foi possível capturar as coordenadas. A pessoa desistiu após tentar novamente 0 vezes.</observation> <provider/> <withGps>true</withGps> <gpsEnabled>true</gpsEnabled> <networkEnabled>false</networkEnabled> </geoCoordinate> </geoCoordinates>
</activityHistory>
Busca de um histórico específico
GET
/CenterWeb/api/{$apiKey}/activityHistory/{$id}.xml Esta operação serve para puxar informações de um histórico de execução de atividade do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <activityHistory> <id>563486</id> <activity> <id>3146</id> <description>Atividade</description> <active>true</active> <loopExecution>false</loopExecution> <takePictures>false</takePictures> </activity> <schedule> <id>394748</id> <origin>4</origin> <hour>23:31</hour> <executionHour>23:31</executionHour> <active>true</active> <activitiesOrigin>3</activitiesOrigin> </schedule> <startTimeOnSystem>20111018 23:31:37</startTimeOnSystem> <finishTimeOnSystem>20111018 23:31:42</finishTimeOnSystem> <items> <activityHistoryItem id="11204373" link="/activityHistoryItem/11204373.xml"/> </items> 20 </activityHistory> Note que ao requisitar as informações de um determinado histórico buscando pelo Id, um conjunto de informações que compõe o histórico de execução são resgatos juntos. Entre as informações estão, dados sobre a atividade, tarefa e uma lista de items que armazenam os valores de execução para os campo da atividade. Busca de um item de histórico específico
GET
/CenterWeb/api/{$apiKey}/activityHistoryItem/{$id}.xml Através desta operação é possivel obter os dados informados para os campos de uma atividade no momento da execução pelo sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <activityHistoryItem> <id>11204373</id> <section> <id>10475</id> <description>Entrega Realizada</description> <active>true</active> <mandatory>true</mandatory> </section> <item> <id>38096</id> <description>Padrão</description> <active>true</active> </item> <sectionField> <id>38037</id> <nullable>true</nullable> <unique>false</unique> <description>Nota</description> <updatable>true</updatable> <visible>true</visible> <type>N</type> <size>2</size> <active>true</active> </sectionField> <value>10</value> </activityHistoryItem> 21 Descrição de Item de Histórico
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se o item de histórico está ativo ou não id numérico 10 Não Identificador interno o item de histórico no uMov.me section.description texto 70 Não Descrição da seção que compõe o item de histórico numérico 10 Não Identificador interno no uMov.me da seção que compõe o item de histórico. section.mandatory true/false Não Inidica se a seção que compõe o item de histórico é obrigatória sectionField.active true/false Não Inidica se o campo está ativo ou não sectionField.description texto 100 Não Descrição do campo de uma seção sectionField.id numérico 10 Não Identificador interno no uMov.me do campo de uma seção. sectionField.nullable true/false Não Inidica se o campo da seção aceita valores nulos ou vazio. sectionField.size numérico 10 Sim Tamanho do campo em caracteres. caracter 3 Sim Referente ao tipo de dado do campo. A(alfanumérico), N(numérico), B(booleano), D(data), T(time/hora), L(lista) true/false Não Inidica que o valor do campo não pode ser repetido em uma mesma seção e item true/false Não Indica se o valor do campo pode ser alterado no momento da execução sectionField.visible true/false Não Indica se o campo é visível na seção value numérico 1000 Não Valor interno do campo utlizado para tratamento do resultado valueForExhibition numérico 1000 Não Valor de exibição do campo selecionado pelo usuário section.id sectionField.type sectionField.unique sectionField.updatable 22 Atualização de histórico (Marcar como Exportado)
POST /CenterWeb/api/{$apiKey}/activityHistory/{$id}.xml Esta operação faz com que o histórico da tarefa seja marcado como exportado. É possível também informar o nome do arquivo ou lote gerado. <activityHistory> <executionExportStatus>true</executionExportStatus> <exportFileName>Arquivo 12345</exportFileName> </activityHistory> Esta operação faz com que o histórico da tarefa seja marcado como não exportado.
<activityHistory> <executionExportStatus>false</executionExportStatus> </activityHistory> Inclusão de histórico
POST /CenterWeb/api/{$apiKey}/schedule/{scheduleId}/activityHistory.xml POST /CenterWeb/api/{$apiKey}/schedule/alternativeIdentifier/{scheduleIdentifier}/activityHistory.xml Esta operação permite fazer a criação de um histórico pela API. O histórico pela api, segue uma estrutura similar ao utilizado pela busca de histórico completo (hierárquico). Nele é informada toda a estrutura do histórico de forma hierárquica (Tarefa > Atividade > Seção > Item > Campo) para que o sistema consiga mapear este registro de forma correta. A criação do histórico obriga a existência de uma tarefa. Esta tarefa por sua vez tem suas atividades vinculadas, seguidas de seções e campos. Sendo assim para que um histórico seja criado, é necessário que toda a hierarquia de uma execução seja préexistente no sistema. Para criação do histórico começamos pela tarefa. Esta tarefa é identificada pela api através das chaves {scheduleId} ou {scheduleIdentifier}, identificada acima na URL de exemplo. Isso demonstra que é possível identificar uma tarefa através de seu id interno do sistema ou pelo identificador alternativo cadastrado. 23 A tarefa informada na URL deve estar na situação pendente de envio ou em campo. Somente é permitida a inclusão de históricos para atividades que mantem a tarefa em campo. Após a inclusão do histórico, a tarefa passa para a situação Em Campo. Existem dois tipos de histórico. Um relacionado a algum item ou aqueles utilizados em seções sem items. Para cada caso, existe uma pequena alteração na estrutura do XML que deve ser enviado para a API. Exemplo de histórico
SEM
itens: POST /CenterWeb/api/{$apiKey}/schedule/alternativeIdentifier/tarefa1/activityHistory.xml <activityHistory> <activity> <alternativeIdentifier>atividade1</alternativeIdentifier> </activity> <sections> <section> <alternativeIdentifier>secao1</alternativeIdentifier> <fields> <field> <alternativeIdentifier>campo1</alternativeIdentifier> <fieldHistory> <value>yyyy</value> <valueForExhibition>yyyy</valueForExhibition> </fieldHistory> </field> <field> <alternativeIdentifier>campo2</alternativeIdentifier> <fieldHistory> <value>9999</value> <valueForExhibition>9999</valueForExhibition> </fieldHistory> </field> </fields> </section> </sections> </activityHistory> No exemplo acima está sendo criado um histórico para a tarefa identificada como "tarefa1". Estão sendo preenchidos os campos "campo1" e "campo2" da seção "secao1" na atividade "atividade1". Todos as referências são identificadas utilizando o identificador alternativo. 24 Exemplo de histórico
COM
itens: POST /CenterWeb/api/{$apiKey}/schedule/alternativeIdentifier/tarefa2/activityHistory.xml <activityHistory> <activity> <alternativeIdentifier>atividade2</alternativeIdentifier> </activity> <sections> <section> <alternativeIdentifier>secao1</alternativeIdentifier> <items> <item> <alternativeIdentifier>item1</alternativeIdentifier> <fields> <field> <alternativeIdentifier>campo1</alternativeIdentifier> <fieldHistory> <value>yyyy</value> <valueForExhibition>yyyy</valueForExhibition> </fieldHistory> </field> <field> <alternativeIdentifier>campo2</alternativeIdentifier> <fieldHistory> <value>9999</value> <valueForExhibition>9999</valueForExhibition> </fieldHistory> </field> </fields> </item> </items> </section> </sections> </activityHistory> No exemplo acima está sendo criado um histórico para a tarefa identificada como "tarefa2". Estão sendo preenchidos os campos "campo1" e "campo2" do item "item1" da seção "secao1" na atividade "atividade2". Todos as referências são identificadas utilizando o identificador alternativo. Callback Para Históricos Retornados
O sistema conta com um serviço de callback para notificar automaticamente um histórico recebido na retaguarda para um outro sistema. Isso torna o processo mais ágil, sem a 25 necessidade de fazer requisições de API para consultar se a informação já chegou ou ainda está sendo processada. Para que o callback funcione de forma adequada, ainda deve ser solicitada a ativação do recurso ao time de suporte. Em breve, estaremos disponibilizando uma interface para que seja possível a ativação do recurso via uMov.Center. Com o processo ativo, deve ser criado um campo customizável alfanumérico na tarefa. Esse campo deve possuir identificador altenativo = "callback". Dessa forma, ao criar uma tarefa, deve ser informado nesse campo (callback) a URL do seu sistema que irá receber os dados do histórico que estão no uMov.me. Quando um histórico da tarefa for recebido na retaguarda, com o processo de callback ativo, e com uma URL de callback cadastrada na tarefa, será disparada uma requisição POST para a URL informada contendo as informações dos históricos recebidos na retaguarda, conforme exemplo listado abaixo: <schedule> <alternativeIdentifier>Tarefa XXX</alternativeIdentifier> <activityHistories> <activityHistory id="8988776655445393"/> </activityHistories> </schedule> Note que nesse exemplo, é enviado o identificador alternativo da tarefa (Tarefa XXX) e o histórico recebido para a tarefa abaixo com o id="8988776655445393". Para buscar os dados do histórico, podem ser usados os métodos
GET /CenterWeb/api/{$apiKey}/activityHistoryHierarchical/{$id}.xml
ou
GET /CenterWeb/api/{$apiKey}/activityHistory/{$id}.xml
, conforme listado acima. Importante:
O sistema somente irá considerar os históricos recebidos após a data e hora de ativação do recurso e para tarefas que possuem uma URL de callback válida. Além disso, ao disparar a requisição do callback, o sistema marca o histórico como já integrado. Dessa forma, a chamada da API de callback é executada uma única vez por histórico. Observações importantes: ●
●
●
●
Os valores informados deverão sempre respeitar as informações de tipo, tamanho, etc. dos campos criados pelo sistema. (Ex. apenas números para campos numéricos, etc.); No caso de campo data o formato esperado do valor deverá ser AAAAMMDD; Não é possível fazer a criação de histórico para campos do tipo foto e multimidia pela API; Os campos
value
e
valueForExhibition
são principalmente usados para casos onde temos campo do tipo lista, nos demais casos (Alfanumérico, Numérico, etc.) você deverá apenas repetir o valor esperado nos dois campos. 26 ●
●
●
●
●
●
As fórmulas de valor e validação para campos, seções e atividades não são executadas na inclusão de histórico via API. Sistema não valida de itens estão vinculados a seção. Somente valida se item está cadastrado no ambiente. Não são validados campos ou itens obrigatórios na inclusão via API. Não é feita a validação de seção e atividades antecessoras. As coordenadas GPS de execução não podem ser incluídas via API. Os valores preenchidos em campo lista não são validados para verificar se são válidos conforme o cadastro do campo. AppVersion (Versão do Aplicativo)
A API de AppVersion permite interagir com os aplicativos e versões geradas do aplicativo vinculado ao ambiente. 27 Descrição de uma appVersion
Campo Valor Tamanho Obrigatório Descrição id numérico 10 Sim Identificador interno da versão do aplicativo no uMov.me description texto 100 Sim Descrição da versão do aplicativo. version texto 20 Sim Identificação da versão do aplicativo informada na publicação da versão. observation texto 500 Não Observação sobre a versão do aplicativo com detalhes sobre ela. updateType texto 1 Sim Indica o tipo de atualização (0=Opcional | 1=Obrigatória). publishDate dateTime Sim Data e hora da publicação da versão do aplicativo Descrição de uma app
Campo Valor Tamanho Obrigatório Descrição id numérico 10 Sim Identificador interno do aplicativo no uMov.me description texto 100 Sim Descrição do aplicativo. observation texto 500 Não Observações gerais sobre o aplicativo Importante
: uma versão de aplicativo (appVersion) sempre está vinculada a um aplicativo (app). A consulta do aplicativo sempre será feita através da versão que está vinculada ao ambiente. Consulta a versão corrente do aplicativo vinculado ao ambiente GET
/CenterWeb/api/{$apiKey}/app/version.xml Esta operação faz com que seja retornada a versão e o aplicativo vinculado ao ambiente. Este é um exemplo de um xml retornado de um ambiente: <appVersion> <id>1</id> <description>Versão 1 do aplicativo de vendas</description> <version>1.0</version> <observation>Versão inicial gerada para o aplicativo de força de vendas</observation> <updateType>0</updateType> 28 <publishDate>20130813 15:00:00</publishDate> <app> <id>1</id> <description>Força de Vendas</description> <observation>Aplicativo para vendas no uMov.me</observation> </app> </appVersion> Consultar versões disponíveis de um aplicativo
GET
/CenterWeb/api/{$apiKey}/app/{$app_id}.xml Esta operação faz com que seja retornada uma lista com as versões disponíveis de um aplicativo. Somente será possível consultar versões de um aplicativo já vinculado ao ambiente Este é um exemplo de um xml retornado de um ambiente: <app> <id>1</id> <description>Força de Vendas</description> <observation>Aplicativo para vendas no uMov.me</observation> <versions> <appVersion id="1" link="/appVersion/1.xml" /> <appVersion id="2" link="/appVersion/2.xml" /> </versions> </app> Consultar uma versão específica de um aplicativo
GET /CenterWeb/api/{$apiKey}/appVersion/{$appVersion_id}.xml Esta operação faz com que seja retornada detalhes de uma versão específica para conferência. Este é um exemplo de um xml retornado de um ambiente: <appVersion> <id>1</id> <description>Versão 1 do aplicativo de vendas</description> <version>1.0</version> <observation>Versão inicial gerada para o aplicativo de força de vendas</observation> <updateType>0</updateType> 29 <publishDate>20130813 15:00:00</publishDate> <app> <id>1</id> <description>Força de Vendas</description> <observation>Aplicativo para vendas no uMov.me</observation> </app> </appVersion> Agendamento de atualização da versão de um aplicativo
POST /CenterWeb/api/{$apiKey}/app/version.xml Esta operação faz com que seja agendada a atualização de um aplicativo <app> <versions> <appVersion> <id>2</id> <scheduledDateTime>20130814 18:00:00</scheduledDateTime> </appVersion> </versions> </app> Deve ser informada a versão que será aplicada no ambiente no momento da atualização. Somente será possível atualizar para uma versão com data mais recente que a versão corrente vinculada ao ambiente. Pode ser informada a data e hora de agendamento. Essa data e hora é opcional. Se não informada, o sistema irá gravar a data corrente para realizada a atualização no momento da chamada. Activity (Atividade)
A API de atividade permite consultar as atividades existentes no uMov.me. Descrição de uma Atividade
Campo Valor description texto id numérico sections lista Tamanho Obrigatório Descrição 10 Sim Descrição da atividade no uMov.me 10 Não Identificador interno da atividade no uMov.me Não Lista de seções vinculadas à atividade 30 alternativeIdentifier texto 100 Não Identificador alternativo da atividade no uMov.me displayOrder numérico 10 Não Ordem de exibição da atividade active true / false Não Indica se uma atividade está no estado ativo ou não. Pode receber valores "true" ou "false" comunicationType caracter 1 Sim Tipo de sincronismo da atividade (0Confirmado pelo Usuário | 1Sincronismo Automático | 2Sincronismo Manual) executionType caracter 1 Sim Tipo de execução da atividade (0Mantem Tarefa no Dispositivo Móvel | 1Finaliza Tarefa | 2Finaliza Atividade) loopExecution true / false Não Indica se execução da atividade é em loop. Pode receber valores "true" ou "false" showSessionWebForm true / false Não Indica se exibe seção na web com campos e itens em formato de grade. Pode receber valores "true" ou "false" confirmClose caracter 1 Não Confirmação de encerramento da atividade executada (0Confirma | 1Confirma e Exibe Dados para Conferência | 2Confirma e Exibe os Itens Não Coletados) acceleratedExecution true / false Não Indica se atividade possui execução acelerada com teclas de atalho. Pode receber valores "true" ou "false" captureGPS true / false Não Indica se GPS é coletado na execução da atividade. Pode receber valores "true" ou "false" confirmWithoutGPS true / false Não Indica se solicita confirmação no encerramento de atividade sem GPS coletado. Pode receber valores "true" ou "false" GPSIsMandatory true / false Não GPS obrigatório na execução da atividade. Pode receber valores "true" ou "false" locked true / false Não Indica se a atividade encontrase bloqueada para edição. Pode receber valores "true" ou "false" documentation texto 500 Não Utilizado para registrar a documentação do registro mathExpressions lista Não Lista de Fórmulas de Valor da atividade 31 logicalExpressions lista Não Lista de Fórmulas de Validação da atividade Busca por Lista de Atividades
GET
/CenterWeb/api/{$apiKey}/activity.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/activity.xml?description=Pedido Esta requisição está puxando todas as atividades em que a sua descrição(description) é igual a pedido. Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>activity</resourceName> <size>1</size> <entries> <entry id="1802274" link="/activity/1802274.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada retornada o Id do registro no uMov.me e o link que possa ser usado para recuperar os dados específicos deste registro. Através desta resposta, o chamador da API pode agora buscar as informações específicas dos retornos que foram encontrados. Busca por Atividade Específica
Usando identificador interno
GET
/CenterWeb/api/{$apiKey}/activity/{$id}.xml 32 Este recurso serve para puxar dados de uma atividade específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <activity> <id>1802275</id> <description>Fechamento</description> <sections> <section id="1782993" link="/section/1782993.xml"/> <section id="1782994" link="/section/1782994.xml"/> </sections> <alternativeIdentifier>ID_Fechamento</alternativeIdentifier> <active>true</active> <comunicationType>0</comunicationType> <executionType>1</executionType> <loopExecution>false</loopExecution> <showsSessionWebForm>false</showsSessionWebForm> <confirmClose>1</confirmClose> <acceleratedExecution>false</acceleratedExecution> <confirmWithoutGPS>true</confirmWithoutGPS> <GPSIsMandatory>false</GPSIsMandatory> <captureGPS>false</captureGPS> <locked>false</locked> <documentation>Documentação</documentation> <mathExpressions> <mathExpression id="1156641" link="/mathExpression/1156641.xml"/> </mathExpressions> <logicalExpressions> <logicalExpression id="1272199" link="/logicalExpression/1272199.xml"/> </logicalExpressions> </activity> Usando identificador alternativo
GET /CenterWeb/api/{$apiKey}/activity/alternativeIdentifier/{$identificador alternativo}.xml Este recurso serve para buscar dados de uma atividade específica do sistema através do seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <activity> <id>863526</id> <description>Atividade</description> <sections> <section id="843515" link="/section/843515.xml"/> 33 </sections> <alternativeIdentifier>ID_ATIV</alternativeIdentifier> <active>true</active> <comunicationType>0</comunicationType> <executionType>1</executionType> <loopExecution>false</loopExecution> <showsSessionWebForm>false</showsSessionWebForm> <confirmClose>1</confirmClose> <acceleratedExecution>false</acceleratedExecution> <confirmWithoutGPS>true</confirmWithoutGPS> <GPSIsMandatory>false</GPSIsMandatory> <captureGPS>false</captureGPS> <locked>false</locked> <documentation>Documentação</documentation> <mathExpressions> <mathExpression id="1156656" link="/mathExpression/1156656.xml"/> </mathExpressions> <logicalExpressions> <logicalExpression id="1272188" link="/logicalExpression/1272188.xml"/> </logicalExpressions> </activity> Section (Seção)
Descrição de uma Seção
Campo Valor id numérico description texto order Tamanho numérico Obrigatório Descrição 10 Não Identificador interno da seção no uMov.me 100 Sim Descrição da seção da atividade 10 Não Ordem de exibição da seção na atividade sectionFields lista Não Lista de campos da seção alternativeIdentifier numérico 100 Não Identificador alternativo da seção mandatory caracter 1 Não Indica se o preenchimento da seção é obrigatório ou opcional (0Opcional | 1Obrigatório) 34 useItem caracter 1 Não Indica como os itens estão vinculados a seção (0Itens selecionados | 1Subgrupos de itens selecionados | 2Todos os itens cadastrados) findItemsByIdentifier true / false Não Habilita a busca de itens da seção pelo identificador alternativo. Pode receber valores "true" ou "false" itemFillMode caracter 1 Não Tipo de preenchimento de itens na seção (0Permitir Preencher Quantos Forem Necessários | 1Apenas 1 Item Deve ser Preenchido | 2Todos os Itens Devem Ser Preenchidos) groupingItensTypeOnMobile caracter 1 Não Forma de agrupamento de itens, grupo ou subgrupo no mobile (0Não Exibir Agrupamento de Itens | 1 Exibir Somente Subgrupo | 2Exibir Grupo e Subgrupo) activityHistoryReportType caracter 1 Não Forma de visualização dos campos no relatório (HHorizontal | VVertical) displayItemsInMobile caracter 1 Não Filtro de itens no mobile (0Itens Vinculados na Seção | 1Itens Vinculados no Local ou Tarefa) seeItemsCollectedAutomatically true / false Não Visualiza itens na tela de itens coletados automaticamente. Pode receber valores "true" ou "false" quizMode true / false Não Configuração para exibir campos aleatoriamente. Pode receber valores "true" ou "false" numberFieldsQuiz numérico 10 Não Quantidade de campos exibidos no mobile quando ativado a opção para Exibir Campos Aleatoriamente locked true / false Não Indica se a atividade encontrase bloqueada para edição. Pode receber valores "true" ou "false" markCompleteGroup true / false Não Exibe uma indicação ao se preencher todos itens de um subgrupo. A indicação também é exibida no grupo, quando seus subgrupos estão todos preenchidos documentation texto 500 Não Utilizado para registrar a 35 documentação do registro mathExpressions lista Não Lista de Fórmulas de Valor da atividade logicalExpressions lista Não Lista de Fórmulas de Validação da atividade Busca Por Lista de Seções
GET
/CenterWeb/api/{$apiKey}/section.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/section.xml?activity.description={descrição da atividade}
Esta requisição busca todas as seções contidas na atividade requisitada. Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>section</resourceName> <size>3</size> <entries> <entry id="1782990" link="/section/1782990.xml"/> <entry id="1782991" link="/section/1782991.xml"/> <entry id="1782992" link="/section/1782992.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada retornada o Id do registro no uMov.me e o link que possa ser usado para recuperar os dados específicos deste registro. Através desta resposta, o chamador da API pode agora buscar as informações específicas dos retornos que foram encontrados. Busca de uma Seção
36 Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/section/{$id}.xml Este recurso serve para puxar todos os dados de uma seção específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <section> <id>1782992</id> <description>Total</description> <order>2</order> <sectionFields/> <alternativeIdentifier/> <active>false</active> <mandatory>1</mandatory> <useItem>0</useItem> <findItemsByIdentifier>false</findItemsByIdentifier> <itemFillMode>0</itemFillMode> <groupingItemsTypeOnMobile>1</groupingItemsTypeOnMobile> <activityHistoryReportType>V</activityHistoryReportType> <displayItemsInMobile>0</displayItemsInMobile> <seeItemsCollectedAutomatically>false</seeItemsCollectedAutomatically> <quizMode>false</quizMode> <locked>false</locked> <markCompleteGroup>false</markCompleteGroup> <documentation>Documentação</documentation> <mathExpressions> <mathExpression id="1156641" link="/mathExpression/1156641.xml"/> </mathExpressions> <logicalExpressions> <logicalExpression id="1272199" link="/logicalExpression/1272199.xml"/> </logicalExpressions> </section> Usando Identificador Alternativo
GET
/CenterWeb/api/{$apiKey}/section/alternativeIdentifier{$identificador alternativo} Este recurso serve para buscar todos os dados de uma seção específica do sistema através do seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <section> <id>2173315</id> 37 <description>Seção Padrão</description> <order>0</order> <sectionFields> <sectionField id="2190245" link="/sectionField/2190245.xml"/> <sectionField id="2190246" link="/sectionField/2190246.xml"/> </sectionFields> <alternativeIdentifier>SEC_ID</alternativeIdentifier> <active>true</active> <mandatory>1</mandatory> <useItem>2</useItem> <findItemsByIdentifier>false</findItemsByIdentifier> <itemFillMode>0</itemFillMode> <groupingItemsTypeOnMobile>1</groupingItemsTypeOnMobile> <activityHistoryReportType>V</activityHistoryReportType> <displayItemsInMobile>0</displayItemsInMobile> <seeItemsCollectedAutomatically>false</seeItemsCollectedAutomatically> <quizMode>false</quizMode> <locked>false</locked> <markCompleteGroup>false</markCompleteGroup> <documentation>Documentação</documentation> <mathExpressions> <mathExpression id="1156656" link="/mathExpression/1156656.xml"/> </mathExpressions> <logicalExpressions> <logicalExpression id="1272188" link="/logicalExpression/1272188.xml"/> </logicalExpressions> </section> 38 Section Field (Campo da Seção)
Descrição de um Campo da Seção
Campo Valor Tamanho Obrigatório numérico 10 Não Indentificador interno de um campo da seção alternativeIdentifier texto 100 Não Identificador alternativo de um campo da seção mobilePageNumber numérico 10 Não Define em qual tela o campo deve ser exibido order numérico 10 Não Ordem de exibição do campo na seção da atividade nullable true / false Não Define se a campo deve ter preenchimento obrigatório ou não. Pode receber os valores "true" ou "false" texto 100 Sim Descrição de um campo id description Descrição 39 updatable true / false Não Define se a campo pode ser editado ou não. Pode receber os valores "true" ou "false" visible true / false Não Define se o campo é visível ou não. Pode receber os valores "true" ou "false" tip texto 500 Não Dica de preenchimento para o campo da seção type texto 1 Não Tipo de campo (AAlfanumérico | NNumérico | LLista | BBooleano/Lógico | DData | HHora | IImagem | MMultimídia size numérico 10 Não Tamanho do campo decimal numérico 10 Não Número de casas decimais do campo. Somente exibido para campos Numéricos. active true / false Não Indica se um campo está em estado ativo ou não. Pode receber os valores "true" ou "false" caracter 1 Não Define o tipo de lista nos campos do tipo lista (ULista de Seleção Única | MLista de Seleção Múltipla) trueValue texto 100 Não Valor verdadeiro a ser gravado quando campo booleno / lógico estiver marcado falseValue texto 100 Não Valor falso a ser gravado quando campo booleno / lógico estiver desmarcado caracter 1 Não Define a origem dos valores de campos do tipo lista (0Valores informados manualmente | 1Valores carregados a partir de campo customizável multivalorado | 2Valores carregados a partir de um cadastro customizável) true / false Não Define se deve aparecer os valores do campo na lista de itens do mobile. Pode receber os valores "true" ou "false" listType sourceValue showValueInMobile 40 customFieldReference lista Não Referência a campo customizável multivalorado da pessoa ou local que alimenta o campo do tipo lista. Somente preenchido quando sourceValue = 1 true / false Não Define se deve aparecer valor coletado na tela de conferência de dados. Pode receber os valores "true" ou "false" subType caracter 1 Não Define o subtipo de dados em campos do tipo multimídia (IImagem | XXML | UURL | HHTML) persistent true / false Não Indica se valor coletado é armazenado na base de dados ou não. Pode receber os valores "true" ou "false" urlViewType caracter 1 Não Define modo de abertura de campos multimídia do subtipo URL (WWebview | BBrowser) customEntity lista Não Referência a cadastro customizável que alimenta o campo do tipo lista. Somente preenchido quando sourceValue = 2 customEntityFieldInternalValue texto 100 Não Indica campo do cadastro customizável que carregará o valor interno de campo do tipo lista. Somente preenchido quando sourceValue = 2 customEntityFieldExternalValue texto 100 Não Indica campo do cadastro customizável que carregará o valor de exibição de campo do tipo lista. Somente preenchido quando sourceValue = 2 true / false Não Indica se a atividade encontrase bloqueada para edição. Pode receber valores "true" ou "false" documentation texto 500 Não Utilizado para registrar a documentação do registro mathExpressions lista Não Lista de Fórmulas de Valor da atividade showDataCollected locked 41 logicalExpressions lista Não Lista de Fórmulas de Validação da atividade Busca por Lista de Campos na Seção
GET
/CenterWeb/api/{$apiKey}/sectionField.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/sectionField.xml?description=foto Esta requisição está puxando todos os campos da seção em que a sua descrição(description) é igual a pedido. Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>sectionField</resourceName> <size>15</size> <entries> <entry id="545779" link="/sectionField/545779.xml"/> <entry id="657983" link="/sectionField/657983.xml"/> <entry id="888201" link="/sectionField/888201.xml"/> <entry id="888202" link="/sectionField/888202.xml"/> <entry id="1533374" link="/sectionField/1533374.xml"/> <entry id="952519" link="/sectionField/952519.xml"/> <entry id="545770" link="/sectionField/545770.xml"/> <entry id="1935876" link="/sectionField/1935876.xml"/> <entry id="1088073" link="/sectionField/1088073.xml"/> <entry id="1533375" link="/sectionField/1533375.xml"/> <entry id="740728" link="/sectionField/740728.xml"/> <entry id="1088074" link="/sectionField/1088074.xml"/> <entry id="798239" link="/sectionField/798239.xml"/> <entry id="798240" link="/sectionField/798240.xml"/> <entry id="1088075" link="/sectionField/1088075.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada retornada o 42 Id do registro no uMov.me e o link que possa ser usado para recuperar os dados específicos deste registro. Através desta resposta, o chamador da API pode agora buscar as informações específicas dos retornos que foram encontrados. Busca de um Campo na Seção
Usando Identificador Interno
GET /CenterWeb/api/{$apiKey}/sectionField/{$id}.xml Este recurso serve para puxar dados de um campo da seção específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <sectionField> <id>1088073</id> <alternativeIdentifier>ft</alternativeIdentifier> <mobilePageNumber>1</mobilePageNumber> <order>1</order> <nullable>true</nullable> <description>Foto</description> <updatable>true</updatable> <visible>true</visible> <tip>campo foto</tip> <type>I</type> <active>true</active> <showValueInMobile>false</showValueInMobile> <showDataCollected>true</showDataCollected> <persistent>true</persistent> <locked>false</locked> <documentation>Documentação</documentation> <mathExpressions> <mathExpression id="1156641" link="/mathExpression/1156641.xml"/> </mathExpressions> <logicalExpressions> <logicalExpression id="1272199" link="/logicalExpression/1272199.xml"/> </logicalExpressions> </sectionField> Usando Identificador Alternativo
GET
/CenterWeb/api/{$apiKey}/sectionField/alternativeIdentifier/{$identificador alternativo}
43 Este recurso serve para buscar todos os dados de um campo customizável de uma seção específica do sistema através do seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <sectionField> <id>1088073</id> <alternativeIdentifier>ft</alternativeIdentifier> <mobilePageNumber>1</mobilePageNumber> <order>1</order> <nullable>true</nullable> <description>Foto</description> <updatable>true</updatable> <visible>true</visible> <tip>campo foto</tip> <type>I</type> <active>true</active> <showValueInMobile>false</showValueInMobile> <showDataCollected>true</showDataCollected> <persistent>true</persistent> <locked>false</locked> <documentation>Documentação</documentation> <mathExpressions> <mathExpression id="1156656" link="/mathExpression/1156656.xml"/> </mathExpressions> <logicalExpressions> <logicalExpression id="1272187" link="/logicalExpression/1272187.xml"/> </logicalExpressions> </sectionField> 44 Section SubGroup (Subgrupo da Seção)
Descrição de um Subgrupo da Seção
Campo Valor Tamanho Obrigatório Descrição id numérico 10 Não Indentificador interno de um subgrupo da seção subGroup referência Sim SubGrupo vinculado section referência Sim Seção vinculada Inserir subgrupo na seção
POST /CenterWeb/api/{$apiKey}/sectionSubGroup.xml Esta operação serve para incluir um subgrupo em uma seção do sistema. Veja um exemplo da requisição com dados em XML: <sectionSubGroup> <subGroup> <id>15728352</id> </subGroup> <section> <id>3892</id> </section> </sectionSubGroup> Alterar subgrupo da seção: POST /CenterWeb/api/{$apiKey}/sectionSubGroup/{$id}.xml Esta operação serve para alterar o subgrupo ou a seção de uma relação entre um subgrupo da seção do sistema. Veja um exemplo da requisição com dados em XML: 45 <sectionSubGroup> <subGroup> <id>15728352</id> </subGroup> <section> <id>3892</id> </section> </sectionSubGroup> Busca Por subgrupos na seção GET
/CenterWeb/api/{$apiKey}/sectionSubGroup.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET /CenterWeb/api/{$apiKey}/sectionSubGroup.xml?section=1234 Esta requisição está puxando todos os subgrupos vinculados a alguma seção específica identificada pelo id. Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>sectionSubGroup</resourceName> <size>2</size> <entries> <entry id="203" link="/sectionSubGroup/203.xml"/> <entry id="292" link="/sectionSubGroup/292.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada retornada o Id do registro no uMov.me e o link que possa ser usado para recuperar os dados específicos deste registro. Através desta resposta, o chamador da API pode agora buscar as informações específicas dos retornos que foram encontrados. 46 Busca de um Subgrupo da Seção
Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/sectionSubGroup/{$id}.xml Este recurso serve para puxar dados de um campo da seção específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <sectionSubGroup> <id>203</id> <subGroup> <id>3558929</id> <description>Padrão</description> <alternativeIdentifier>1</alternativeIdentifier> <active>true</active> </subGroup> <section> <id>3416289</id> <description>seção qualquer</description> <order>0</order> <alternativeIdentifier>qualquer</alternativeIdentifier> <active>true</active> <mandatory>1</mandatory> <useItem>0</useItem> <findItemsByIdentifier>false</findItemsByIdentifier> <itemFillMode>0</itemFillMode> <groupingItemsTypeOnMobile>1</groupingItemsTypeOnMobile> <activityHistoryReportType>V</activityHistoryReportType> <displayItemsInMobile>0</displayItemsInMobile> <seeItemsCollectedAutomatically>false</seeItemsCollectedAutomatically> <quizMode>false</quizMode> <locked>false</locked> <markCompleteGroup>false</markCompleteGroup> <documentation/> <executionWayItem>0</executionWayItem> <cleanFilterSearchItem>false</cleanFilterSearchItem> </section> </sectionSubGroup> 47 Remoção de um Subgrupo da Seção em Específico
DELETE
/CenterWeb/api/{$apiKey}/sectionSubGroup/{$id}.xml Como confirmação da remoção do subgrupo da seção, o sistema retorna como status da requisição, o código de retorno 200 (OK) bem como apresenta a seguinte mensagem de retorno: Ex.: <result> <statusCode>200</statusCode> <message>scheduleItem: scheduleItem.item.exclusion.successful</message> </result> Inserir Subgrupos em Lote na Seção
POST /CenterWeb/api/{$apiKey}/batch/sectionSubGroup.xml Este recurso permite fazer a inclusão em lote de subgrupos da seção, sem que haja necessidade de fazer inúmeras requisições à API: <sectionSubGroups> <sectionSubGroup> <subGroup> <id>15728352</id> </subGroup> <section> <id>3892</id> </section> </sectionSubGroup> ... <sectionSubGroup> <subGroup> <id>15728352</id> </subGroup> <section> <id>3892</id> </section> </sectionSubGroup> </sectionSubGroups> 48 O elemento "<sectionSubGroup></sectionSubGroup>" representa cada subgrupo da seção
a ser inserido, limitando em 100 o número máximo de subgrupos por requisição.
Caso algum erro ocorra, toda a operação será abortada e nenhum subgrupo da seção será
inserido.Como retorno a esta chamada o sistema apresenta os o link de acesso a cada
subgrupo criado.
Ex: <result> <resourceName>sectionSubGroups</resourceName> <size>2</size> <entries> <entry id="1803794" link="/sectionSubGroup/1803794.xml" /> <entry id="1803795" link="/sectionSubGroup/1803795.xml" /> </entries> </result> Math Expressions (Fórmulas de Valor)
Descrição de uma Fórmula de Valor
Campo Valor Tamanho Obrigatório Descrição 49 id numérico 10 Não Indentificador interno de um campo da seção objectType numérico 10 Não Indica a qual entidade a expressão pertence. Os possíveis valores são: 1 = Atividade, 2 = Seção, 3=Campo objectCode numérico 10 Não Indica o objeto ao qual a fórmula está veiculada moment numérico 1 Não Indica quando a expressão deve ser executada. Os valores são: 1 = Précondição 2 = Póscondição expressionForPrint texto 1000 Não Representação da expressão convertEmptyValuesToZero texto 1 Não Comportamento do uMov.Mobile quando um operando possui valor vazio. numérico Não Ordem de exibição e execução. texto 500 Não Armazena a documentação do registro, inserida pelo desenvolvedor. numérico 10 Não Indica o campo utilizado na fórmula ordination documentation sectionField Busca por Lista de Fórmulas de Valor
GET
/CenterWeb/api/{$apiKey}/mathExpression.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET /CenterWeb/api/{$apiKey}/mathExpression.xml?sectionField.type=L§ionField.active=true Esta requisição filtra fórmulas de valor com base nos atribulos do campo de seção do tipo lista ativos relacionados à fórmula. 50 GET
/CenterWeb/api/{$apiKey}/mathExpression.xml?objectCode=386789 Esta requisição está puxando todos os campos da fórmula de valor em que a sua código do objeto (objectCode) é igual a 386789. Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>mathExpression</resourceName> <size>12</size> <entries> <entry id="1234768" link="/mathExpression/1234768.xml"/> <entry id="1234767" link="/mathExpression/1234767.xml"/> <entry id="1194885" link="/mathExpression/1194885.xml"/> <entry id="1194813" link="/mathExpression/1194813.xml"/> <entry id="1182968" link="/mathExpression/1182968.xml"/> <entry id="1182961" link="/mathExpression/1182961.xml"/> <entry id="1165524" link="/mathExpression/1165524.xml"/> <entry id="1156643" link="/mathExpression/1156643.xml"/> <entry id="1156642" link="/mathExpression/1156642.xml"/> <entry id="1156641" link="/mathExpression/1156641.xml"/> <entry id="1071423" link="/mathExpression/1071423.xml"/> <entry id="1108821" link="/mathExpression/1108821.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro
retornados e uma lista simples, sem detalhes de cada registro retornado, contendo
para cada entrada retornada o Id do registro no uMov.me e o link que possa ser
usado para recuperar os dados específicos deste registro. A
través desta resposta, o chamador da API pode agora buscar as informações específicas dos retornos que foram encontrados. Busca de uma Fórmula de Valor
Usando identificador Interno
51 GET
/CenterWeb/api/{$apiKey}/mathExpression/1234768.xml Este recurso serve para puxar dados de uma fórmula de valor específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): mathExpression> <
<id>1234768</id> <objectType>3</objectType> <objectCode>3869476</objectCode> <moment>2</moment> <expressionForPrint> Documentação:Custom Entity|=|Pessoa:Campo 2 da Pessoa </expressionForPrint> <convertEmptyValuesToZero>false</convertEmptyValuesToZero> <ordination>1</ordination> <documentation/> <sectionField> <id>3869476</id> <alternativeIdentifier/> <mobilePageNumber>1</mobilePageNumber> <order>1</order> <nullable>true</nullable> <description>Custom Entity</description> <updatable>true</updatable> <visible>true</visible> <tip/> <type>L</type> <active>true</active> <listType>U</listType> <sourceValue>2</sourceValue> <showValueInMobile>false</showValueInMobile> <showDataCollected>true</showDataCollected> <persistent>true</persistent> <customEntityFieldInternalValue>alternativeId</customEntityFieldInternalValue> <customEntityFieldExternalValue>description</customEntityFieldExternalValue> <locked>false</locked> <documentation/> </sectionField> </mathExpression> Logical Expressions (Fórmulas de Validação)
Descrição de uma Fórmula de Valor
Campo Valor Tamanho Obrigatório Descrição 52 id numérico 10 Não Indentificador interno de um campo da seção objectType numérico 10 Não Indica a qual entidade a expressão pertence. Os possíveis valores são: 1 = Atividade, 2 = Seção, 3=Campo moment numérico 1 Não Indica quando a expressão deve ser executada. Os valores são: 1 = Précondição 2 = Póscondição. objectCode numérico 10 Não Indica o objeto ao qual a fórmula está veiculada expressionsForPrint texto 1000 Não Representação da expressão falseResultMode texto 1 Sim Forma como ocorre a validação: 0=Bloqueio, 1=Alerta validationMessage texto 1000 Não Mensagem a ser exibida quando a fórmula retorna falso emitBeep texto 1 Não Emitir aviso sonoro executeExpressionVisibleField texto 1 Sim Executar fórmula apenas se os campos estiverem visíveis
. numérico Não Ordem de exibição e execução. texto 500 Não Armazena a documentação do registro, inserida pelo desenvolvedor. ordination documentation Busca por Lista de Fórmulas de Validação
GET
/CenterWeb/api/{$apiKey}/logicalExpression.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/logicalExpression.xml?objectCode=386476 Esta requisição está puxando todos os campos da fórmula de valor em que a sua código do objeto (objectCode) é igual a 386789. 53 Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: result> <
<resourceName>logicalExpression</resourceName> <size>12</size> <entries> <entry id="1355385" link="/logicalExpression/1355385.xml"/> <entry id="1355384" link="/logicalExpression/1355384.xml"/> <entry id="1313540" link="/logicalExpression/1313540.xml"/> <entry id="1313528" link="/logicalExpression/1313528.xml"/> <entry id="1300747" link="/logicalExpression/1300747.xml"/> <entry id="1300741" link="/logicalExpression/1300741.xml"/> <entry id="1272201" link="/logicalExpression/1272201.xml"/> <entry id="1272200" link="/logicalExpression/1272200.xml"/> <entry id="1272199" link="/logicalExpression/1272199.xml"/> <entry id="1218622" link="/logicalExpression/1218622.xml"/> <entry id="1160580" link="/logicalExpression/1160580.xml"/> <entry id="492539" link="/logicalExpression/492539.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada retornada o Id do registro no uMov.me e o link que possa ser usado para recuperar os dados específicos deste registro. Através desta resposta, o chamador da API pode agora buscar as informações específicas dos retornos que foram encontrados. Busca de uma Fórmula de Validação
Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/logicalExpression/1355385.xml Este recurso serve para puxar dados de uma fórmula de valor específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): logicalExpression> <
<id>1355385</id> <objectType>3</objectType> <moment>4</moment> <objectCode>3869476</objectCode> <expressionForPrint> 54 Carro:Descrição|>|Pessoa:Versão do Aplicativo </expressionForPrint> <falseResultMode>0</falseResultMode> <validationMessage/> <emitBeep>false</emitBeep> <executeExpressionVisibleField>false</executeExpressionVisibleField> <ordination>1</ordination> <documentation/> </logicalExpression> Auditing (Auditoria)
A partir da versão 04.54 da mobile na plataforma Android o uMov.me armazena dados de auditoria no momento da execução da atividade. São dados relativos aos dispositivos móveis e 55 seu estado no momento da coleta das informações. Esses dados podem ser capturados via API, conforme mostrado abaixo. Somente é possível realizar a busca desses dados via API e não é permitida a inclusão. Descrição de um Registro de Auditoria
Campo Valor id numérico date Tamanho Obrigatório Descrição 10 Sim Identificador interno da auditoria coletada no uMov.me datetime Sim Data e hora da coleta da auditoria no mobile. moment char 1 Sim Momento da realização da coleta. Inicialmente será sempre 0=Ao finalizar a execução da atividade agent numérico 10 Sim Identificador da pessoa no uMov.me. schedule numérico 10 Sim Identificador da tarefa no uMov.me. history numérico 10 Sim Identificador da histórico coletado no uMov.me. auditionValues numérico Sim Lista com os valores coletados na auditoria do mobile. Busca Por Lista de Auditoria
GET
/CenterWeb/api/{$apiKey}/auditing.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP. O mais comum é filtrar a auditoria coletada em uma execução: ●
Pesquisar por um determinado histórico: GET
/CenterWeb/api/{$apiKey}/auditing.xml?history={HISTORY_ID} O resultado de uma requisição deve ser o seguinte: <result> <resourceName>auditing</resourceName> 56 <size>1</size> <entries> <entry id="38" link="/auditing/38.xml"/> </entries> </result> Busca Por uma Auditoria
Usando Identificador Interno
Ao realizar a busca informando o Id da auditoria, o sistema irá buscar todos os dados da auditoria, conforme mostrado no exemplo abaixo: GET
/CenterWeb/api/{$apiKey}/auditing/{AUDITING_ID}.xml <auditing> <id>38</id> <date>20140718 15:01:58</date> <moment>0</moment> <agent> <id>7</id> <name>Administrador</name> <login>master</login> <active>true</active> </agent> <schedule> <id>655470042</id> <alternativeIdentifier>999</alternativeIdentifier> <hour>15:00</hour> </schedule> <history> <id>999</id> </history> <auditingValues> <auditingValue id="81" link="/auditingValue/81.xml"/> <auditingValue id="82" link="/auditingValue/82.xml"/> <auditingValue id="83" link="/auditingValue/83.xml"/> <auditingValue id="84" link="/auditingValue/84.xml"/> <auditingValue id="85" link="/auditingValue/85.xml"/> <auditingValue id="86" link="/auditingValue/86.xml"/> <auditingValue id="87" link="/auditingValue/87.xml"/> <auditingValue id="88" link="/auditingValue/88.xml"/> <auditingValue id="89" link="/auditingValue/89.xml"/> 57 <auditingValue id="90" link="/auditingValue/90.xml"/> <auditingValue id="91" link="/auditingValue/91.xml"/> </auditingValues> </auditing> Descrição de um Valor da Auditoria
Campo Valor id numérico keyInformation valueInformation Tamanho Obrigatório Descrição 10 Sim Identificador interno do valor da auditoria coletado no uMov.me texto 100 Sim Identificação do dado que foi coletado. texto 100 Sim Valor coletado para o dado. Busca Por uma Valor de Auditoria
Usando Identificador Interno
Ao realizar a busca informando o Id do valor da auditoria, o sistema irá buscar todos os dados do valor da auditoria, conforme mostrado no exemplo abaixo: GET
/CenterWeb/api/{$apiKey}/auditingValue/{AUDITIONVALUE_ID}.xml <auditingValue> <id>81</id> <keyInformation>PlatformOS</keyInformation> <valueInformation>ANDROID</valueInformation> </auditingValue> Pode ser realizada a busca por um valor filtrando pela chave que deseja ser encontrada: GET
/CenterWeb/api/{$apiKey}/auditingValue.xml?keyInformation=PlatformOS Busca Hierárquica da Auditoria de um Histórico
É possível também buscar todos os valores de auditoria de um histórico específico em uma única chamada. Para isso, pode ser executada a seguinte chamada: 58 GET
/CenterWeb/api/{$apiKey}/auditingHierchical/{HISTORY_ID}.xml <auditing> <id>38</id> <date>20140718 15:01:58</date> <moment>0</moment> <agent> <id>7</id> </agent> <schedule> <id>655470042</id> </schedule> <history> <id>8988776655448482</id> </history> <auditingValues> <auditingValue> <id>81</id> <keyInformation>PlatformOS</keyInformation> <valueInformation>ANDROID</valueInformation> </auditingValue> <auditingValue> <id>82</id> <keyInformation>uMovVersion</keyInformation> <valueInformation>4,54</valueInformation> </auditingValue> <auditingValue> <id>83</id> <keyInformation>PlatformAPILevel</keyInformation> <valueInformation>19</valueInformation> </auditingValue> <auditingValue> <id>84</id> <keyInformation>IMSI</keyInformation> <valueInformation>724065103161737</valueInformation> </auditingValue> <auditingValue> <id>85</id> <keyInformation>IMEI</keyInformation> <valueInformation>356891050533910</valueInformation> </auditingValue> <auditingValue> <id>86</id> <keyInformation>BatteryLevel</keyInformation> <valueInformation>45</valueInformation> </auditingValue> <auditingValue> <id>87</id> <keyInformation>DeviceSerialNumber</keyInformation> <valueInformation>cc1d6e58</valueInformation> </auditingValue> 59 <auditingValue> <id>88</id> <keyInformation>DeviceManufacturer</keyInformation> <valueInformation>samsung</valueInformation> </auditingValue> <auditingValue> <id>89</id> <keyInformation>DeviceModel</keyInformation> <valueInformation>GTI9505</valueInformation> </auditingValue> <auditingValue> <id>90</id> <keyInformation>PhoneNumber</keyInformation> <valueInformation>UNAVAILABLE_PHONE_NUMBER</valueInformation> </auditingValue> <auditingValue> <id>91</id> <keyInformation>SignalLevel</keyInformation> <valueInformation>UNAVAILABLE_SIGNAL_LEVEL</valueInformation> </auditingValue> </auditingValues> </auditing> Para executar a busca filtrando por alguns valores específicos, pode ser realizada a chamada da seguinte forma: GET
/CenterWeb/api/{$apiKey}/auditingHierchical/{HISTORY_ID}.xml?values=PlatformOS,IMEI Nesse caso, o sistema retorna todos os dados listados acima, porém somente com os valores PlatformOS e IMEI, conforme informado no filtro. É possível filtrar por vários campos, somente incluindo uma vírgula (,) entre os valores da pesquisa. 60 Atualização dos Dados do Contrato
A API de atualização de contrato permite manipular as informações do ambiente necessárias para iniciar o seu uso. Se não informados os dados do contrato, o sistema não permite a inclusão de novos usuários. Descrição das Informações do Contrato no uMov.me
Campo Valor Tamanho Obrigatório Descrição companyName texto 100 Sim Indica o nome da empresa ou pessoa que está adquirindo o uMov.me. cnpj número 20 Sim Indica o CPF (pessoa física) ou CNPJ (pessoa jurídica) da pessoa responsável pela aquisição. Sistema valida se CPF ou CNPJ possui dados válidos. Informar somente números, sem formatação. contactName texto 50 Sim Indica o nome da pessoa para contato 61 contactEmail texto 50 Sim Indica o email da pessoa para contato contactPhone número 20 Sim Indica o telefone da pessoa para contato. Favor informar com DDD e somente números, sem formatação country texto 50 Sim Indica o país em que a empresa ou pessoa está situada state texto 50 Sim Indica o estado em que a empresa ou pessoa está situada city texto 50 Sim Indica a cidade em que a empresa ou pessoa está situada neighborhood texto 50 Sim Indica o bairro em que a empresa ou pessoa está situada street texto 50 Sim Indica o logradouro em que a empresa ou pessoa está situada number número 10 Sim Indica o número em que a empresa ou pessoa está situada complement texto 50 Não Indica o complemento em que a empresa ou pessoa está situada zipCode número 20 Sim Indica o CEP em que a empresa ou pessoa está situada. Informar somente números, sem formatação licensesQuantity número 20 Sim Indica a quantidade de licenças contratadas para o ambiente acceptTermsOfUse true/false Sim Indica se aceita ou não os termos de uso do contrato Atualização dos Dados do Contrato
POST /CenterWeb/api/{$apiKey}/workspace/info.xml Esta operação faz com que sejam atualizados os dados do contrato com os dados informados. Este é um exemplo de um xml para
atualização do contrato
: <client> <companyName>Empresa ABC</companyName> 62 <cnpj>99999999999</cnpj> <contactName>João da Silva</contactName> <contactEmail>[email protected]</contactEmail> <contactPhone>9999999999</contactPhone> <country>Brasil</country> <state>SP</state> <city>São Paulo</city> <neighborhood>Centro</neighborhood> <street>Av. Dom Pedro I</street> <number>999</number> <complement>Sala 9</complement> <zipCode>90000000</zipCode> <licensesQuantity>100</licensesQuantity> <acceptTermsOfUse>true</acceptTermsOfUse> </client> Criação/Cópia de Ambiente
A API de Workspace permite interagir com a parte de criação de ambiento do uMov.me. Descrição de um Workspace/Ambiente
Campo Valor Tamanho Obrigatório Descrição domain texto 10 Sim Indica o nome do dominio do novo ambiente a ser criado ou copiado. username texto 10 Sim Indica o nome do usuário do novo ambiente a ser criado ou copiado. password texto 9 Não Indica o password para se logar no novo ambiente criado ou copiado. repeatPassword texto 9 Não Indica o campo de repetição do password email texto 100 Sim Indica o email configurado para o novo ambiente a ser criado ou copiado. 63 copy true/false Sim Indica se você deseja copiar o ambiente (copy = true) ou criar novo ambiente (copy = false) Criação/Copia de Workspace/Ambiente
POST /CenterWeb/api/{$apiKey}/workspace.xml Esta operação faz com que seja criado ou copiado um novo ambiente com os dados informados. Este é um exemplo de um xml para
criação de ambiente
: <workspaceRequest> <domain>domainfulano</domain> <username>fulano</username> <password>123</password> <repeatPassword>123</repeatPassword> <email>[email protected]</email> <copy>
false
</copy> </workspaceRequest> Este é um exemplo de um xml para
copiar um ambiente: <workspaceRequest> <domain>domainfulano</domain> <username>fulano</username> <password>123</password> <repeatPassword>123</repeatPassword> <email>[email protected]</email> <copy>
true
</copy> </workspaceRequest> 64 Custom Entity (Cadastro Customizável)
A API de Custom Entity é responsável pela manutenção de cadastros customizáveis e valores para os cadastros. É nela que vamos conseguir consultar os cadastros customizáveis, consultar, incluir e atualizar os registros dos cadastros customizáveis. Descrição de um Cadastro Customizável
Campo Valor Tamanho Obrigatório Descrição description texto 100 Sim Descrição do cadastro customizável. alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). id numérico 10 Não Identificador interno do cadastro customizável no uMov.me active true/false Não Indica se um cadastro customizável está no estado ativo ou não. Pode receber valores "true" ou "false" 65 labelDescription texto 100 Não Label que será utilizado para a descrição do registro no cadastro customizável descriptionAlternativeIdentifier texto 100 Não Label que será utilizado para o identificador alternativo do registro no cadastro customizável customFields lista Não Lista com os campos customizáveis vinculados no cadastro customizável Importante:
Somente é possível consultar os cadastros customizáveis via API. Não é possível criar ou editar os cadastros customizáveis. Somente é possível incluir e editar os registros dos cadastros customizáveis. Busca Por Lista de Cadastros Customizáveis
GET
/CenterWeb/api/{$apiKey}/customEntity.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: ●
pesquisar por um determinado cadastro customizável com descrição = 134 GET
/CenterWeb/api/{$apiKey}/customEntity.xml?description=134 Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>customEntity</resourceName> <size>6</size> <entries> <entry id="60026" link="/customEntity/60026.xml"/> <entry id="44" link="/customEntity/44.xml"/> <entry id="9" link="/customEntity/9.xml"/> <entry id="33" link="/customEntity/33.xml"/> <entry id="60025" link="/customEntity/60025.xml"/> <entry id="25851" link="/customEntity/25851.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, Id do 66 registro no uMov.me e o link, que pode ser usado para recuperar os dados específicos deste registro. Busca de um Cadastro Customizável específico
GET
/CenterWeb/api/{$apiKey}/customEntity/{$id}.xml Esta operação serve para puxar informações de um cadastro customizável no sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <customEntity> <id>60026</id> <description>Pilotos</description> <alternativeIdentifier>PILOTO</alternativeIdentifier> <active>true</active> <labelDescription>Nome</labelDescription> <descriptionAlternativeIdentifier>ID</descriptionAlternativeIdentifier> <customFields> <customField> <id>9850</id> <fieldType>A</fieldType> <description>Equipe do Piloto</description> ... <customField> <customField> <id>9858</id> <fieldType>N</fieldType> <description>Número do carro</description> ... <customField> </customFields> </customEntity> Descrição de um Registro do Cadastro Customizável
Campo Valor description texto alternativeIdentifier id Tamanho Obrigatório Descrição 100 Sim Descrição do registro do cadastro customizável. texto 10 Não Identificador que possibilita a relação com o outros sistemas(legados). numérico 10 Não Identificador interno do registro do cadastro customizável no uMov.me 67 active true/false Não Indica se um cadastro customizável está no estado ativo ou não. Pode receber valores "true" ou "false" customFields lista Não Relação de valores dos campos customizáveis vinculados ao cadastro customizável. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão do campo customizável deve ser feita através do identificador alternativo do campo. Busca Por Lista de Registros do Cadastro Customizável
GET
/CenterWeb/api/{$apiKey}/customEntity/{id cadastro}/customEntityEntry.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: ●
pesquisar por um determinado registro do cadastro customizável com descrição = 134 GET /CenterWeb/api/{$apiKey}/customEntity/{id cadastro}/customEntityEntry.xml?description=134 Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>customEntityEntry</resourceName> <size>3</size> <entries> <entry id="2576" link="/customEntity/60026/customEntityEntry/2576.xml"/> <entry id="2577" link="/customEntity/60026/customEntityEntry/2577.xml"/> <entry id="2575" link="/customEntity/60026/customEntityEntry/2575.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, Id do registro no uMov.me e o link, que pode ser usado para recuperar os dados específicos deste registro. Nesse caso está retornando os registros do cadastro customizável = 60026. 68 Busca de um Registro do Cadastro Customizável específico
GET /CenterWeb/api/{$apiKey}/customEntity/{id cadastro}/customEntityEntry/2576.xml Esta operação serve para puxar informações de um cadastro customizável no sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <customEntityEntry> <id>2576</id> <description>Alonso</description> <alternativeIdentifier>2</alternativeIdentifier> <active>true</active> <customFields> <NroKart>12</NroKart> <Equipe>Ferrari</Equipe> </customFields> </customEntityEntry> Inclusão de um Registro do Cadastro Customizável
POST /CenterWeb/api/{$apiKey}/customEntity/{id cadastro}/customEntityEntry.xml Esta operação serve para incluir um registro para o cadastro customizável no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo registro no ambiente em questão. Confira a descrição de um registro de cadastro customizável para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <customEntityEntry> <description>Vettel</description> <alternativeIdentifier>1</alternativeIdentifier> <customFields> <NroKart>1</NroKart> <Equipe>Red Bull</Equipe> </customFields> </customEntityEntry> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um registro para um cadastro customizável, utilizando os custom fields NroKart e Equipe. Nesse caso, está sendo criado o cadastro de piloto Vettel. Inclusão em Lote de Registro de Cadastro Customizável
69 POST /CenterWeb/api/{$apiKey}/batch/customEntity/alternativeIdentifier/{IdAlternativo}/customEntityEntries.xml Esta operação serve para incluir vários registros para o cadastro customizável no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo registro no ambiente em questão. Confira a descrição de um registro de cadastro customizável para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: data= <customEntityEntries> <customEntityEntry> <active>true</active> <description>Exemplo 1</description> <alternativeIdentifier>exemplo_1</alternativeIdentifier> <customFields> <id_alternativo_custom_field>valor do custom field</id_alternativo_custom_field> </customFields> </customEntityEntry> <customEntityEntry> <active>true</active> <description>Exemplo 2</description> <alternativeIdentifier>exemplo_1</alternativeIdentifier> <customFields> <id_alternativo_custom_field>valor do custom field</id_alternativo_custom_field> </customFields> </customEntityEntry> </customEntityEntries> 70 Custom Field / Custom Field Value (Campo Customizável / Valor
Campo Customizável)
Descrição de um Custom Field
Campo Valor id numérico fieldType caracter alternativeIdentifier texto description Tamanho Obrigatório Descrição 10 Não Identificador interno do campo customizável no uMov.me 3 Sim Indica o tipo de um campo customizável. Atualmente possuímos somente o campo customizável do tipo Lista. Deve sempre ser informado "L". 100 Não Identificador que possibilita a relação com o outros sistemas(legados). texto 100 Não Descrição do campo customizável. Dica: Pesquisar por nome do campo customizável size numérico 10 Não Tamanho do campo customizável no uMov.me. Deixar 0 para campo do tipo Lista. active true/false Não Indica se o campo customizável está ativo no uMov.me entity numérico 10 Não Indica qual entidade (tabela) o campo referencia. Possui os seguintes valores: 1 = Agente 2 = Local Atendimento 3 = Item 71 4 = Tarefa viewQueryOnMobile caracter 1 Não Indica se permite consultar o campo customizável no celular. 0 = Nao Permite 1 = Permite customFieldValues lista Não Lista de valores do campo customizável internalValueLabel texto 100 Não Label do valor interno que será exibido em tela para o usuário externalValueLabel texto 100 Não Label do valor externo que será exibido em tela para o usuário Busca Por Lista de Campos Customizáveis
GET /CenterWeb/api/{$apiKey}/{nomeEntidade}/{idEntidade}/customField.xml
{nomeEntidade}
= agent, serviceLocal, item ou schedule; {idEntidade}
= Identificador interno da entidade informada em {nomeEntidade} Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET /CenterWeb/api/{$apiKey}/{nomeEntidade}/{idEntidade}/customField.xml
?description=campo&active=true Esta requisição está pedindo todos os campos customizáveis disponíveis cuja descrição tenha a palavra campo presente (description=campo) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>customField</resourceName> <size>3</size> <entries> <entry id="1" link="/agent/1234/customField/1.xml"/> <entry id="2" link="/agent/1234/customField/2.xml"/> <entry id="3" link="/agent/1234/customField/3.xml"/> </entries> </result> 72 A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca de um Campo Customizável
Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/{nomeEntidade}/{idEntidade}/customField/{$id}.xml {nomeEntidade}
= agent, serviceLocal, item ou schedule; {idEntidade}
= Identificador interno da entidade informada em {nomeEntidade} {$id}
= Identificador do campo customizável Usando Identificador Alternativo
GET /CenterWeb/api/{$apiKey}/{nomeEntidade}/{idEntidade}/customField/alternativeIdentifier/{$idalternativ
o}.xml {nomeEntidade}
= agent, serviceLocal, item ou schedule; {idEntidade}
= Identificador interno da entidade informada em {nomeEntidade} {$idalternativo}
= Identificador alternativo do campo customizável Este recurso serve para puxar dados de um agente/pessoa específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <customField> <id>1</id> <fieldType>L</fieldType> <alternativeIdentifier>identificadorAlternativo</alternativeIdentifier> <description>descrição</description> <size>1</size> <active>true</active> <entity>1</entity> <viewQueryOnMobile>false</viewQueryOnMobile> <customFieldValues> <customFieldValue> <internalValue>1</internalValue> <externalValue>valor 1</externalValue> 73 </customFieldValue> <customFieldValue> <internalValue>2</internalValue> <externalValue>valor 2</externalValue> </customFieldValue> </customFieldValues> </customField> Descrição de um Custom Field Value
Campo Valor Tamanho Obrigatório Descrição internalValue texto 100 Sim Descrição do campo customizável. Dica: Pesquisar por nome do campo customizável externalValue texto 100 Sim Tamanho do campo customizável no uMov.me Inclusão/Alteração de Valores de Campos Customizáveis
Usando Identificador Interno
POST /CenterWeb/api/{$apiKey}/{nomeEntidade}/{idEntidade}/customField/{$id}.xml {nomeEntidade}
= agent, serviceLocal, item ou schedule; {idEntidade}
= Identificador interno da entidade informada em {nomeEntidade} {$id}
= Identificador do campo customizável Usando o Identificador Alternativo:
POST /CenterWeb/api/{$apiKey}/{nomeEntidade}/{idEntidade}/customField/alternativeIdentifier/{$altId}.xml {nomeEntidade}
= agent, serviceLocal, item ou schedule; {idEntidade}
= Identificador interno da entidade informada em {nomeEntidade} {$altId}
= Identificador alternativo do campo customizável 74 Inclusão/Alteração em lote de Valores de Campos Customizáveis
POST /CenterWeb/api/{$apiKey}/batch/{nomeEntidade}/alternativeIdentifier/{idAltEntidade}/customFields.xml {nomeEntidade}
= agent, serviceLocal, item ou schedule; {idAltEntidade}
= Identificador alternativo da entidade informada em {nomeEntidade} Este recurso permite fazer a inclusão/alteração de valores de campos customizados em lote para um determinada entidade, sem que haja a necessidade de fazer inúmeras requisições para a api. Abaixo segue exemplo da estrutura do xml a ser enviado:
<customFields> <customField> <alternativeIdentifier>identificadoralternativo1</alternativeIdentifier> <customFieldValues> <customFieldValue> <internalValue>valorinterno1</internalValue> <externalValue>valorexterno1</externalValue> </customFieldValue> </customFieldValues> </customField> ... <customField> <alternativeIdentifier>identificadoralternativo2</alternativeIdentifier> <customFieldValues> <customFieldValue> <internalValue>valorinterno2</internalValue> <externalValue>valorexterno2</externalValue> </customFieldValue> </customFieldValues> </customField> </customFields> Ambos as chamadas servem para incluir/alterar os valores de um campo customizável no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a operação em questão. Confira a descrição do custom field para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <customField> <customFieldValues> <customFieldValue> 75 <internalValue>1</internalValue> <externalValue>Valor 1</externalValue> </customFieldValue> <customFieldValue> <internalValue>2</internalValue> <externalValue>Valor 2</externalValue> </customFieldValue> </customFieldValues> </customField> Neste caso, lendo o que está sendo pedido ao uMov.me é que sejam criados/alterados os valores de um custom field com os campos obrigatórios preenchidos (internalValue e externalValue). É importante lembrar que ao solicitar a criação/alteração de valores de campos customizáveis, todos os valores existentes serão substituídos pelos novos valores, ou seja, se for passado dois valores e haviam três, o campo customizável ficará com dois valores, mesmo que estes sejam diferentes. Inclusão/Alteração de Valores no formato XML de Campos
Customizáveis
I
Este recurso serve para incluir/alterar os valores de um campo XML customizável no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a operação em questão. Para incluir um XML como valor de um campo customizável é necessario inserir dentro de uma tag especial chamada CDATA. Veja um exemplo da requisição com valores em XML: <customField> <customFieldValues> <customFieldValue> <internalValue> <![CDATA[ <agent> <nome>umov.me</nome> </agent> ]]> </internalValue> <externalValue> <![CDATA[ <agent> <nome>umov.me</nome> </agent> ]]> </externalValue> </customFieldValue> </customFieldValues> 76 </customField> Neste caso, lendo o que está sendo pedido ao uMov.me é que sejam criados/alterados os valores de um custom field com os campos obrigatórios preenchidos (internalValue e externalValue) com valores no formato XML. É importante lembrar do uso da tag especial CDATA para que o sistema consiga realizar a criação/alteração do valor. Toda vez que ao solicitar a criação/alteração de valores de campos customizáveis, todos os valores existentes serão substituídos pelos novos valores, ou seja, se for passado dois valores e haviam três, o campo customizável ficará com dois valores, mesmo que estes sejam diferentes. ExportLayout(Modelo de exportação)
A API de exportLayout é responsável por realizar consultas sobre o modelo de exportação de cada cliente. Pode realizar consultar através de parâmetros como o ID e descrição do modelo de exportação. Busca por lista de modelo de exportação
GET
/CenterWeb/api/{$apiKey}/exportLayout.xml Este recurso permite fazer a busca de modelos de exportação de um determinado ambiente. É permitido que você adicione alguns parâmetros na requisição. Os parâmetros são os seguintes: ●
Busca por modelo de exportação filtrando pela descrição: GET
/CenterWeb/api/{$apiKey}/exportLayout.xml?description=description Realizar pesquisas de modelo de exportação utilizando parâmetros pela API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>exportLayout</resourceName> <size>1</size> <entries> <entry id="180" link="/exportLayout/180.xml"/> </entries> </result> 77 Busca por um modelo de exportação específico utilizando ID
GET
/CenterWeb/api/{$apiKey}/exportLayout/{$id}.xml Esta operação serve para puxar informações de um modelo de exportação do sistema de forma completa. Todos os dados do modelo de exportação são retornados nessa requisição. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <exportLayout> <id>180</id> <description>Modelo de exportação</description> <active>true</active> <type>3</type> <status>4</status> <updatable>true</updatable> <updated>true</updated> <hasHeader>true</hasHeader> <hasFooter>true</hasFooter> <multipleListingExportingType>1</multipleListingExportingType> <fields> <field> <id>112</id> <order>1</order> <type>0</type> <readOnly>true</readOnly> <fileFieldTitle>Tipo Registro</fileFieldTitle> <active>true</active> <dataFieldType/> </field> ... </fields> </exportLayout> 78 GeoCoordinate (GeoCoordenadas)
A API GeoCoordenadas permite pesquisar geoCoordenadas coletadas em execuções de atividades, bem como a coleta de geoCoordenadas geradas periodicamente. Descrição de uma GeoCoordenada
Campo Valor id numérico agent Referência date Tamanho Obrigatório Descrição Sim Indica o id do registro de geoCoordenada Sim Indica o agente que gerou aquele registro de geoCoordenada. Data Sim A data em que a geoCoordenada foi coletada. hour Hora 10 Sim A hora em que a geoCoordenada foi coletada. latitude Numérico 20 Sim A latitude do registro de geoCoordenada longitude Numérico 20 Sim A longitude do registro de geoCoordenada type Opção Sim O tipo de coleta realizada. Valores válidos (
ON_START_ACTIVITY = Quando a 10 atividade for iniciada, PERIODICALLY = Coletado periodicamente de acordo com a configuração do ambiente
) observation Texto 300 Não Observação sobre a geoCoordenada coletada. 79 provider Texto 20 Não Indica o dispositivo utilizado para a busca da localização. withGps Booleano Não Indica se o aparelho possui GPS. gpsEnabled Booleano Não Indica se o aparelho estava com GPS ativo no momento da coleta. networkEnabled Booleano Não Indica se a opção de rede para captura de geoCoordenada está habilitada. activityHistory Referência Não Referência para o histórico de actividade caso a geoCoordenada esteja relacionada a um. Busca por lista de GeoCoordenadas
GET /CenterWeb/api/{$apiKey}/geoCoordinate.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: Exemplo 1: Filtro por agente GET /CenterWeb/api/{$apiKey}/geoCoordinate.xml?
agent=111 Esta requisição está pedindo todas as geoCoordenadas para o agente de código 111. Exemplo 2: Filtro por data de inicio e fim GET /CenterWeb/api/{$apiKey}/geoCoordinate.xml?initialDate=20150101&finalDate=20150110 Esta requisição está pedindo todas as geoCoordenadas realizadas entre o dia 01 de Janeiro de 2015 e 10 de Janeiro de 2015. Exemplo 3: Filtro por data e hora de inicio e fim GET /CenterWeb/api/{$apiKey}/geoCoordinate.xml?initialDateTime=20150101 09:00:00&finalDateTime=20150101 10:30:00 Esta requisição está pedindo todas as geoCoordenadas realizadas no dia 01 de Janeiro de 2015 entre 9hs e 10:30hs. Enviar parâmetros para a API uMov.me é simples assim. A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Veja um exemplo, do resultado de uma requisição que foi feita em XML: 80 <result> <resourceName>geoCoordinate</resourceName> <size>20</size> <entries> <entry id="1" link="/geoCoordinate/1.xml"/> <entry id="2" link="/geoCoordinate/2.xml"/> </entries> </result> Busca por uma GeoCoordenada em específico
GET /CenterWeb/api/{$apiKey}/geoCoordinate/{$id}.xml Este recurso serve para puxar dados de uma geoCoordenada específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <geoCoordinate> <id>1031047</id> <agent>...</agent> <date>20121227</date> <hour>161243</hour> <latitude>0.0</latitude> <longitude>0.0</longitude> <type>ON_START_ACTIVITY</type> <observation>Não foi possível capturar as coordenadas. A pessoa desistiu após tentar novamente 0 vezes.</observation> <provider/> <withGps>true</withGps> <gpsEnabled>true</gpsEnabled> <networkEnabled>false</networkEnabled> <activityHistory>...</activityHistory> </geoCoordinate> ImportFiles (Agendamento de importação de arquivos)
Agendamento de importação de arquivos
POST /CenterWeb/api/{$apiKey}/importfiles.xml 81 Este recurso serve para incluir os arquivos do FTP no agendamento de importação do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar o agendamento no ambiente em questão. Veja um exemplo da requisição com dados em XML: <import> <files> <entry name="PSA00001.CSV"/> <entry name="LOC00001.CSV"/> <entry name="AGD00001.CSV"/> </files> </import> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja agendada a importação dos arquivos PSA00001.CSV, LOC00001.CSV e AGD0001.CSV no sistema. Esse agendamento irá gerar um único pacote de importação. Com isso, os arquivos do pacote serão processados em sequência. ImportLayout(Modelo de Importação)
A API de importLayout é responsável por realizar consultas sobre o modelo de importação de cada cliente. Pode realizar consultar através de parâmetros como o ID do modelo de importação, descrição e a entidade do modelo de importação. 82 Descrição de um Modelo de Importação
Campo Valor Tamanho Obrigatório Descrição id numérico 10 Não Identificador interno do modelo de importação no uMov.me. description texto 100 Sim Descrição do modelo de importação. active true/false Não Indica se um modelo de importação está no estado ativo ou não. Pode receber valores "true" ou "false". filePrefix texto 3 Sim Prefixo do arquivo para importação. fields lista Lista de campos para importação do arquivo. Descrição de um Campo do Modelo de Importação
Campo Valor Tamanho Obrigatório Descrição id numérico 10 Não Identificador interno do campo no modelo de importação no uMov.me. name texto 100 Sim Nome do campo no modelo de importação. active true/false Sim Indica se um campo do modelo de importação está no estado ativo ou não. Pode receber valores "true" ou "false". mandatory true/false Sim Indica se um campo do modelo de importação é obrigatório no arquivo ou não. Pode receber valores "true" ou "false". dataType texto 50 Não Tipo do dado que deverá ser informado no campo:
ALPHANUMERIC (alfanumérico), NUMERIC (numérico), DATE (data), TIME (hora), DATETIME (data/hora), MULTIVALUED (multivalorado), MULTIMEDIA (multimídia), BOOLEAN (booleano true/false), CHARACTER (caracter), REFERENCE (referência para outra tabela)
. maxSize numérico 10 Não Tamanho máximo do campo que deve ser preenchido no campo no modelo de importação 83 Busca por lista de modelo de importação
GET
/CenterWeb/api/{$apiKey}/importLayout.xml Este recurso permite fazer a busca de modelos de importação de um determinado ambiente. É permitido que você adicione alguns parâmetros na requisição. Os parâmetros são os seguintes: ●
Busca por modelo de importação filtrando por descrição: GET
/CenterWeb/api/{$apiKey}/importLayout.xml?description=description Realizar pesquisas de modelo de importação utilizando parâmetros pela API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>importLayout</resourceName> <size>1</size> <entries> <entry id="120" link="/importLayout/120.xml"/> </entries> </result> Busca por um modelo de importação específico utilizando ID
GET
/CenterWeb/api/{$apiKey}/importLayout/{$id}.xml Esta operação serve para puxar informações de um modelo de importação do sistema de forma completa. Todos os dados do modelo de importação são retornados nessa requisição. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <importLayout> <id>120</id> <description>Modelo de importação</description> <active>true</active> <filePrefix>PSA</filePrefix> <fields> <field> <id>1234</id> <active>true</active> 84 <name>command</name> <mandatory>true</mandatory> </field> <field> <id>4321</id> <active>true</active> <name>description</name> <mandatory>true</mandatory> </field> </fields> ... </importLayout> Busca de um modelo de importação por entidade
GET
/CenterWeb/api/{$apiKey}/importLayout/entity/{$entity}.xml Está operação serve para listar os modelos de importação de uma determinada entidade. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): GET
/CenterWeb/api/{$apiKey}/importLayout/entity/item.xml <result> <resourceName>importLayout</resourceName> <size>1</size> <entries> <entry id="49" link="/importLayout/49.xml"/> </entries> </result> 85 Relação de Item
Group (Grupo)
A API de group permite interagir com a parte
"O Quê?"
do uMov.me. Descrição de um Grupo
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se um grupo está no estado ativo ou não. Pode receber valores "true" ou "false" alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). description texto 100 Sim Descrição de seu grupo. id numérico 10 Não Identificador interno do grupo no uMov.me Busca por lista de Grupos
GET /CenterWeb/api/{$apiKey}/group.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/group.xml?description=xyz&active=true Esta requisição está pedindo todos os grupos disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>group</resourceName> 86 <size>2</size> <entries> <entry id="5421" link="/group/2870.xml"/> <entry id="5422" link="/group/2871.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca por um Grupo específico
GET
/CenterWeb/api/{$apiKey}/group/{$id}.xml Este recurso serve para puxar dados de um grupo específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <group> <id>5421</id> <description>xyz</description> <active>false</active> <alternativeIdentifier>id_alternativo</alternativeIdentifier> </group> Inclusão de um Grupo
POST /CenterWeb/api/{$apiKey}/group.xml Este recurso serve para incluir um grupo no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo grupo no ambiente em questão. Confira a descrição do grupo para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <group> <active>true</active> <description>Novo Grupo</description> <alternativeIdentifier>33456745</alternativeIdentifier> </group> 87 Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um grupo com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o grupo em questão está sendo criado ativo e com o identificador dele no sistema de origem é 33456745. Atualização de um Grupo específico
POST /CenterWeb/api/{$apiKey}/group/{$id}.xml Este recurso serve para atualizar um grupo específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de um grupo no ambiente em questão. Confira a descrição do grupo para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <group> <description>Novo Grupo</description> </group> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja atualizada a descrição do grupo cujo id está sendo informado. Busca por um Grupo específico
GET
/CenterWeb/api/{$apiKey}/group/alternativeIdentifier{$alternative Identifier}.xml Este recurso serve para bucar dados de um grupo específico do sistema através de seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <group> <id>401957</id> <description>grupo1</description> <alternativeIdentifier>grupoItem</alternativeIdentifier> <active>true</active> </group> 88 Item (Item)
A API de item permite interagir com a parte
"O Quê?"
do uMov.me. Descrição de um Item
Campo Valor itemCategory numérico subGroup numérico active true/false image Tamanho Obrigatório Descrição 10 Não Identificador interno da categoria de item no uMov.me 10 Sim Identificador interno do subgrupo no uMov.me Não Indica se um item está no estado ativo ou não. Pode receber valores "true" ou "false" Não Imagem vinculada ao item através de URL para importação. É a imagem que será exibida no mobile para cada item. Para funcionar corretamente deve ser informada a tag <imageUrlImport> alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). description texto 100 Sim Descrição de seu item. id numérico 10 Não Identificador interno do item no uMov.me customFields lista Não Relação de valores dos campos customizáveis vinculados ao item. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas através do identificador alternativo do campo. Busca por lista de Itens
GET
/CenterWeb/api/{$apiKey}/item.xml 89 Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/item.xml?description=xyz&active=true Esta requisição está pedindo todos os itens disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>item</resourceName> <size>2</size> <entries> <entry id="5421" link="/item/2870.xml"/> <entry id="5422" link="/item/2871.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca por um Item específico
GET
/CenterWeb/api/{$apiKey}/item/{$id}.xml Este recurso serve para puxar dados de um item específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <item> <id>390103</id> <subGroup> <id>1</id> </subGroup> <description>xyz</description> <active>true</active> <alternativeIdentifier>alternative_identifier</alternativeIdentifier> <itemCategory> <id>1</id> </itemCategory> <customFields> <Estoque>200</Estoque> <Preço>49.90</Preço> ... 90 </customFields> </item> Inclusão de um Item
POST /CenterWeb/api/{$apiKey}/item.xml Este recurso serve para incluir um item no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo subgrupo no ambiente em questão. Confira a descrição do item para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <item> <subGroup><id>1*</id></subGroup> <description>xyz</description> <active>true</active> <image> <imageUrlImport>http://www.testeimagem.jpg</imageUrlImport> </image> <alternativeIdentifier>alternative_identifier</alternativeIdentifier> <itemCategory><id>1**</id></itemCategory> <customFields> <Estoque>200</Estoque> <Preço>49.90</Preço> ... </customFields> </item> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um item com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o subgrupo em questão está sendo criado ativo e com o identificador dele no sistema de origem é 33456745. *Este identificador interno é somente como exemplo. Você deve usar o subgrupo cadastrado em seu sistemas através do http://center.umov.me/CenterWeb/subGroup **Este identificador interno é somente como exemplo. Você deve usar a categoria de ítem cadastrado em seu sistemas através do http://center.umov.me/CenterWeb/itemCategory É possível também fazer a vinculação de categoria e subgrupo de itens através do identificador alternativo ao realizar a inclusão de um item, conforme descrito no exemplo abaixo: <item> <subGroup><alternativeIdentifier>
Subgrupo 1
</alternativeIdentifier></subGroup> <description>xyz</description> <active>true</active> <image> <imageUrlImport>http://www.testeimagem.jpg</imageUrlImport> 91 </image> <alternativeIdentifier>alternative_identifier</alternativeIdentifier> <itemCategory><alternativeIdentifier>
Categoria 1
</alternativeIdentifier></itemCategory> <customFields> <Estoque>200</Estoque> <Preço>49.90</Preço> ... </customFields> </item> Atualização de um Item específico
Este recurso serve para atualizar um item específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de um item no ambiente em questão. Confira a descrição do item para identificar os campos obrigatórios. Veja os exemplos de requisições possíveis usando dados no formato XML: Utilizando id interno
POST /CenterWeb/api/{$apiKey}/item/{$id}.xml Utilizando identificador alternativo
POST /CenterWeb/api/{$apiKey}/item/alternativeIdentifier/{$alternativeIdentifier}.xml <item> <subGroup><id>1</id></subGroup> <description>xyz</description> <active>true</active> <image> <imageUrlImport>http://www.testeimagem.jpg</imageUrlImport> </image> <alternativeIdentifier>alternative_identifier</alternativeIdentifier> <itemCategory><id>1</id></itemCategory> <customFields> <Estoque>200</Estoque> <Preço>49.90</Preço> ... </customFields> </item> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja atualizada as informações do item, usando ou o id interno ou o identificador alternativo do item. 92 Inclusão de itens em lote
POST /CenterWeb/api/{$apiKey}/batch/items.xml Este recurso permite fazer a criação de itens em lote, sem que haja a necessidade de fazer inúmeras requisições para a api.
<items> <item> <subGroup><id>1</id></subGroup> <description>abc</description> <active>true</active> <alternativeIdentifier>alternative_identifier1</alternativeIdentifier> <itemCategory><id>1</id></itemCategory> <customFields> <Estoque>200</Estoque> <Preço>49.90</Preço> ... </customFields> </item> <item> <subGroup><id>1</id></subGroup> <description>xyz</description> <active>true</active> <alternativeIdentifier>alternative_identifier2</alternativeIdentifier> <itemCategory><id>1</id></itemCategory> <customFields> <Estoque>200</Estoque> <Preço>49.90</Preço> ... </customFields> </item> </items> A seção "<item></item>" representa cada item a ser inserido e pode ser replicada quantas vezes forem necessárias. Caso algum erro ocorra, toda a operação será abortada e nenhum item será inserido. Como retorno a esta chamada o sistema apresenta o link de acesso para cada item criado. No link é mostrado o id interno e o identificador alternativo de cada registro a fim de identificar melhor qual o ID gerado para cada item criado. 93 Ex: <result> <resourceName>items</resourceName> <size>2</size> <entries> <entry id="1401792" alternativeIdentifier="alternative_identifier1" link="/item/1401792.xml" /> <entry id="1401793" alternativeIdentifier="alternative_identifier2" link="/item/1401793.xml" /> </entries> </result> Busca por um Item específico através do identificador alternativo GET
/CenterWeb/api/{$apiKey}/item/alternativeIdentifier{$alternative identifier}.xml Este recurso serve para puxar dados de um item específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <item> <id>1421216</id> <subGroup> <id>513496</id> <description>sub1</description> <alternativeIdentifier>sub_1</alternativeIdentifier> <active>true</active> </subGroup> <description>itemTest</description> <alternativeIdentifier>ID_item</alternativeIdentifier> <customFields> <Estoque>200</Estoque> <Preço>49.90</Preço> ... </customFields> </item> ItemCategory (Categoria de Item)
A API de itemCategory permite interagir com a parte
"O Quê?"
do uMov.me. 94 Descrição de uma Categoria de Item
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se uma categoria de item está no estado ativo ou não. Pode receber valores "true" ou "false" alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). description texto 100 Sim Descrição de sua categoria de item. id numérico 10 Não Identificador interno da categoria de item no uMov.me Busca por lista de Categoria de Item
GET
/CenterWeb/api/{$apiKey}/itemCategory.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/itemCategory.xml?description=xyz&active=true Esta requisição está pedindo todas as categorias de itens disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>itemCategory</resourceName> <size>2</size> <entries> <entry id="5421" link="/itemCategory/2870.xml"/> <entry id="5422" link="/itemCategory/2871.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do 95 registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca por uma Categoria de Item específica
GET
/CenterWeb/api/{$apiKey}/itemCategory/{$id}.xml Este recurso serve para puxar dados de uma categoria de item específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <itemCategory> <id>5421</id> <description>xyz</description> <active>false</active> <alternativeIdentifier>id_alternativo</alternativeIdentifier> </itemCategory> Inclusão de uma Categoria de Item
POST /CenterWeb/api/{$apiKey}/itemCategory.xml Este recurso serve para incluir uma categoria de item no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de uma nova categoria de item no ambiente em questão. Confira a descrição da categoria para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <itemCategory> <active>true</active> <description>Nova Categoria</description> <alternativeIdentifier>33456745</alternativeIdentifier> </itemCategory> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criada uma categoria de item com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que a categoria de item em questão está sendo criado ativo e com o identificador dele no sistema de origem é 33456745. Atualização de uma Categoria de Item específica
POST /CenterWeb/api/{$apiKey}/itemCategory/{$id}.xml 96 Este recurso serve para atualizar uma categoria de item específica do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de uma categoria de item no ambiente em questão. Confira a descrição da categoria para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <itemCategory> <description>Nova Categoria</description> </itemCategory> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja atualizada a descrição da categoria cujo id está sendo informado. Busca por uma Categoria de Item específica através do identificador
alternativo
GET /CenterWeb/api/{$apiKey}/itemCategory/alternativedentifier{$alternative identifier}.xml Este recurso serve para buscar dados de uma categoria de item específica do sistema através do seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML):
<itemCategory> <id>427594</id> <description>categItem</description> <alternativeIdentifier>CAT_ID</alternativeIdentifier> <active>true</active> </itemCategory> SectionItem (Item de Seção)
A API de itens de seção permite interagir com a parte
"O Quê?"
do uMov.me. Descrição de um Item de Seção
Campo Valor item numérico section numérico Tamanho 10 10 Obrigatório Descrição Sim Indica qual é o item que o item de seção pertence. Sim Indica qual é a seção que o item de seção pertence. 97 mandatory true/false Sim Indica se o item de seção é obrigatório. order numérico 10 Sim Indica a ordenação do item de seção. active true/false Sim Indica se um item de seção está no estado ativo ou não. Pode receber valores "true" ou "false" id numérico 10 Não Identificador interno do item de seção no uMov.me Busca por lista de Itens de Seção
GET
/CenterWeb/api/{$apiKey}/sectionItem.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/sectionItem.xml?active=true Esta requisição está pedindo todos os itens de seção disponíveis que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>sectionItem</resourceName> <size>2</size> <entries> <entry id="5421" link="/sectionItem/2870.xml"/> <entry id="5422" link="/sectionItem/2871.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca por um Item de Seção específico
GET
/CenterWeb/api/{$apiKey}/sectionItem/{$id}.xml Este recurso serve para puxar dados de um item de seção específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): 98 <sectionItem> <id>123</id> <active>true</active> <order>0</order> <mandatory>true</mandatory> </sectionItem> Inclusão de um Item de Seção
POST /CenterWeb/api/{$apiKey}/sectionItem.xml Este recurso serve para incluir um item de seção no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo item de seção no ambiente em questão. Confira a descrição do item de seção para identificar os campos obrigatórios. Veja dois exemplos da requisição com dados em XML: <sectionItem> <active>true</active> <order>0</order> <mandatory>true</mandatory> <section> <id>1*</id> </section> <item> <id>1**</id> </item> </sectionItem> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um item de seção com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o item de seção em questão está sendo criado ativo e com o identificador dele no sistema de origem é 33456745. <sectionItem> <active>true</active> <order>0</order> <mandatory>true</mandatory> <section> <alternativeIdentifier>sectionIdentifier</alternativeIdentifier> </section> <item> <alternativeIdentifier>itemIdentifier</alternativeIdentifier> </item> </sectionItem> 99
Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um item de seção com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o item com identificador alternativo 'itemIdentifier' está sendo vinculado à seção em questão com identificador alternativo 'sectionIdentifier'. *Este identificador interno é somente como exemplo. Você deve usar a seção cadastrada em seu sistemas. **Este identificador interno é somente como exemplo. Você deve usar o item cadastrado em seu sistemas através do http://center.umov.me/CenterWeb/item Atualização de um Item de Seção específico
POST /CenterWeb/api/{$apiKey}/sectionItem/{$id}.xml Este recurso serve para atualizar um item de seção específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de um item de seção no ambiente em questão. Confira a descrição do item de seção para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <sectionItem> <active>true</active> <order>0</order> <mandatory>true</mandatory> <section> <id>1</id> </section> <item> <id>1</id> </item> </sectionItem> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja atualizada a descrição do item de seção cujo id está sendo informado. SubGroup (Subgrupo)
A API de subgroup permite interagir com a parte
"O Quê?"
do uMov.me. 100 Descrição de um Subgrupo
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se um subgrupo está no estado ativo ou não. Pode receber valores "true" ou "false" alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). description texto 100 Sim Descrição de seu subgrupo. id numérico 10 Não Identificador interno do subgrupo no uMov.me group numérico 10 Não Grupo ao qual o subgrupo pertence Busca por lista de Subgrupos
GET
/CenterWeb/api/{$apiKey}/subGroup.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/subGroup.xml?description=xyz&active=true Esta requisição está pedindo todos os subgrupos disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>subGroup</resourceName> <size>2</size> <entries> <entry id="5421" link="/subGroup/2870.xml"/> <entry id="5422" link="/subGroup/2871.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. 101 Busca por um Subgrupo específico
GET
/CenterWeb/api/{$apiKey}/subGroup/{$id}.xml Este recurso serve para puxar dados de um subgrupo específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <subGroup> <id>5421</id> <description>xyz</description> <active>false</active> <alternativeIdentifier>id_alternativo</alternativeIdentifier> </subGroup> Inclusão de um Subgrupo
POST /CenterWeb/api/{$apiKey}/subGroup.xml Este recurso serve para incluir um subgrupo no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo subgrupo no ambiente em questão. Confira a descrição do subgrupo para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <subGroup> <active>true</active> <description>Novo Subgrupo</description> <alternativeIdentifier>33456745</alternativeIdentifier> <group>1234<group> </subGroup> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um subgrupo com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o subgrupo em questão está sendo criado ativo e com o identificador dele no sistema de origem é 33456745. Pode também ser criado um subgrupo vinculando o grupo através do identificador alternativo, conforme exemplo abaixo: <subGroup> <active>true</active> <description>Novo Subgrupo</description> <alternativeIdentifier>33456745</alternativeIdentifier> <group><alternativeIdentifier>
Grupo 1
<alternativeIdentifier><group> </subGroup> 102 Atualização de um Subgrupo
Usando Identificador Interno
POST
/CenterWeb/api/{$apiKey}/subGroup/{$id}.xml Usando Identificador Alternativo
POST /CenterWeb/api/{$apiKey}/subGroup/alternativeIdentifier/{$alternativeIdentiier}.xml Este recurso serve para atualizar um subgrupo específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de um subgrupo no ambiente em questão. Confira a descrição do subgrupo para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <subGroup> <description>Novo Subgrupo</description> </subGroup> Busca por um Subgrupo específico através do identificador alternativo
GET
/CenterWeb/api/{$apiKey}/subGroup/alternativeIdentifier{$alternative identifier}.xml Este recurso serve para buscar dados de um subgrupo específico do sistema através do seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <subGroup>
<id>513496</id> <description>sub1</description> <alternativeIdentifier>sub_ID</alternativeIdentifier> <group> <id>401957</id> <description>grupo1</description> <alternativeIdentifier>grupoItem</alternativeIdentifier> <active>true</active> </group> <active>true</active> </subGroup> 103 Mix de Produtos
O mix de produtos trabalha com cadastros customizáveis configurados como estruturais no uMov.me e que são criados automaticamente pelo sistema. Ao informar que utiliza mix de produtos (configurações do cadastro de itens), o sistema cria 3 cadastros com alguns campos customizáveis, conforme descrito a seguir. Os cadastros são os listados abaixo. Veja também a definição específica de cada um dos cadastros. ● Tipo de mix
:
somente permite criar uma classificação para cada um dos mix. Não é utilizado no mobile ou em outro filtro no Center. Exemplo de tipo de mix: Mix para locais, mix fixo, mix da rede X, ... ● Mix
:
é a definição do mix que será associado em uma seção, local, tipo de local ou pessoa. Somente tem o ID para vínculo, descrição e seleção de tipo de mix. ● Itens do mix
:
é o cadastro com todos os produtos que pertencem a um mix. A descrição e identificador alternativo deve ser um sequencial, ou concatenado o id do mix e id do produto. Há campos customizáveis para informar o ID do mix e o ID do produto para cada registro. Também pode ser definida a ordem de exibição do produto no mobile. Busca por Lista de Tipo de Mix de Produtos
GET
/CenterWeb/api/{$apiKey}/customEntity.xml?structuralFunction=tipomix Busca por Lista de Mix de Produtos
GET
/CenterWeb/api/{$apiKey}/customEntity.xml?structuralFunction=mix Busca por Lista de Itens de Mix de Produtos
GET
/CenterWeb/api/{$apiKey}/customEntity.xml?structuralFunction=
itensmix <result> <resourceName>customEntity</resourceName> <size>1</size> <entries> <entry id="ID_1 link="/customEntity/ID_1.xml"/> </entries> </result> 104 Busca por Mix / Itens de Mix / Tipo de Mix de Produto
Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/customEntity/ID_1.xml Usando Identificador Alternativo
GET
/CenterWeb/api/{$apiKey}/customEntity/alternativeIdentifier/{$alternativeIdentifier}.xml
Descrição de um Tipo de Mix
<customEntity> <id>ID_CADASTRO_1</id> <description>Mix Type</description> <alternativeIdentifier>MIXTYPE</alternativeIdentifier> <active>true</active> <labelDescription>Descrição</labelDescription> <descriptionAlternativeIdentifier>Identificador Alternativo</descriptionAlternativeIdentifier> <locked>false</locked> <structural>true</structural> <structuralFunction>tipomix</structuralFunction> <myRecords>false</myRecords> <customFields/> </customEntity> Descrição de um Mix de Produtos
<customEntity> <id>ID_CADASTRO_2</id> <description>Mix</description> <alternativeIdentifier>MIX</alternativeIdentifier> <active>true</active> <labelDescription>Descrição</labelDescription> <descriptionAlternativeIdentifier>Identificador Alternativo</descriptionAlternativeIdentifier> <locked>false</locked> <structural>true</structural> <structuralFunction>mix</structuralFunction> <myRecords>false</myRecords> <customFields> <customField> <id>ID_CAMPO_TIPOMIX</id> <fieldType>C</fieldType> <subType>3</subType> <alternativeIdentifier>mix_mixType</alternativeIdentifier> <description>Mix Type</description> <size>0</size> <active>true</active> 105 <entity>6</entity> <viewQueryOnMobile>false</viewQueryOnMobile> <mandatoryField>false</mandatoryField> <sourceDataSet>6</sourceDataSet> <locked>false</locked> <orderField>100</orderField> <structural>true</structural> <structuralFunction>tipomix</structuralFunction> </customField> </customFields> </customEntity> Descrição de um Item do Mix de Produtos
<customEntity> <id>ID_CADASTRO_3</id> <description>Mix Product</description> <alternativeIdentifier>MIXITEM</alternativeIdentifier> <active>true</active> <labelDescription>Descrição</labelDescription> <descriptionAlternativeIdentifier>Identificador Alternativo</descriptionAlternativeIdentifier> <locked>false</locked> <structural>true</structural> <structuralFunction>itensmix</structuralFunction> <myRecords>false</myRecords> <customFields> <customField> <id>ID_CAMPO_MIX</id> <fieldType>C</fieldType> <subType>3</subType> <alternativeIdentifier>mixItem_mix</alternativeIdentifier> <description>Mix</description> <size>0</size> <active>true</active> <entity>6</entity> <viewQueryOnMobile>false</viewQueryOnMobile> <mandatoryField>true</mandatoryField> <sourceDataSet>6</sourceDataSet> <locked>false</locked> <orderField>100</orderField> <structural>true</structural> <structuralFunction>mix</structuralFunction> </customField> <customField> <id>ID_CAMPO_ORDEM</id> <fieldType>N</fieldType> <alternativeIdentifier>mixItem_order</alternativeIdentifier> 106 <description>Ordem</description> <size>4</size> <active>true</active> <entity>6</entity> <viewQueryOnMobile>false</viewQueryOnMobile> <mandatoryField>false</mandatoryField> <locked>false</locked> <orderField>100</orderField> <structural>true</structural> <structuralFunction>ordem</structuralFunction> </customField> <customField> <id>ID_CAMPO_ITEM</id> <fieldType>C</fieldType> <subType>3</subType> <alternativeIdentifier>mixItem_item</alternativeIdentifier> <description>Itens</description> <size>0</size> <active>true</active> <entity>6</entity> <viewQueryOnMobile>false</viewQueryOnMobile> <mandatoryField>true</mandatoryField> <sourceDataSet>3</sourceDataSet> <locked>false</locked> <orderField>100</orderField> <structural>true</structural> <structuralFunction>item</structuralFunction> </customField> </customFields> </customEntity> Tipo de Mix (MixType)
A API de Tipo de Mix permite definir uma classificação para os mix dos produtos do uMov.me. Note que os exemplos a seguir possuem a seguinte definição: ● ID_CADASTRO_TIPOMIX
= ID interno do cadastro customizável que representa o tipo de mix no sistema ● ID_REGISTRO_TIPOMIX
= ID interno do registro do cadastro customizável, que contem os dados de um tipo de mix 107 Descrição de um Tipo de Mix
Campo Valor id numérico description texto alternativeIdentifier texto active true/false Tamanho Obrigatório Descrição 10 Não Identificador interno do tipo de mix no uMov.me 100 Sim Descrição do tipo de mix 100 Sim Identificador que possibilita a relação com o outros sistemas(legados). Não Indica se um tipo de mix está no estado ativo ou não. Pode receber valores "true" ou "false" Inclusão de um tipo de mix
POST /CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_TIPOMIX/customEntityEntry.xml <customEntityEntry> <description>Teste</description> <alternativeIdentifier>Teste</alternativeIdentifier> </customEntityEntry> Buscar todos os registros de tipo de mix
GET
/CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_TIPOMIX/customEntityEntry.xml <result> <resourceName>customEntityEntry</resourceName> <size>1</size> <entries> <entry id="ID_1" link="/customEntity/ID_CADASTRO_TIPOMIX/customEntityEntry/ID_1.xml"/> </entries> </result> Buscar um registro específico de tipo de mix
GET /CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_TIPOMIX/customEntityEntry/ID_REGISTRO_TIPOMIX
.xml <customEntityEntry> 108 <id>ID_REGISTRO_TIPOMIX</id> <description>Teste</description> <alternativeIdentifier>Teste</alternativeIdentifier> <active>true</active> </customEntityEntry> Mix
A API de Mix permite criar a definição de mix dos produtos no uMov.me. A partir dele é possível indicar os itens e fazer a associação nos cadastros de seções, locais, tipos de locais e pessoas Note que os exemplos a seguir possuem a seguinte definição: ● ID_CADASTRO_MIX
= ID interno do cadastro customizável que representa o mix no sistema ● ID_REGISTRO_MIX
= ID interno do registro do cadastro customizável, que contem os dados de um mix ● ID_REGISTRO_TIPOMIX
= ID interno do registro do cadastro customizável, que contem os dados de um tipo de mix Descrição de um Mix
Campo Valor id numérico description texto alternativeIdentifier texto active mix_mixType Tamanho Obrigatório Descrição 10 Não Identificador interno do mix no uMov.me 100 Sim Descrição do mix 100 Sim Identificador que possibilita a relação com o outros sistemas(legados). true/false Não Indica se um mix está no estado ativo ou não. Pode receber valores "true" ou "false" numérico 10 Não Identificador interno do tipo de mix no uMov.me. Deve estar dentro da tag <customFields> para funcionar corretamente. Inclusão de um mix
POST /CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_MIX/customEntityEntry.xml <customEntityEntry> <description>Mix Teste</description> 109 <alternativeIdentifier>Mix teste</alternativeIdentifier> <customFields> <mix_mixType>ID_REGISTRO_TIPOMIX</mix_mixType> </customFields> </customEntityEntry> Buscar todos os registros de mix
GET /CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_MIX/customEntityEntry.xml <result> <resourceName>customEntityEntry</resourceName> <size>1</size> <entries> <entry id="ID_1" link="/customEntity/{$ID_CADASTRO_MIX}/customEntityEntry/ID_1.xml"/> </entries> </result> Buscar um Registro de Mix
GET /CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_MIX/customEntityEntry/ID_REGISTRO_MIX.xml <customEntityEntry> <id>ID_REGISTRO_MIX</id> <description>Mix Teste</description> <alternativeIdentifier>Mix teste</alternativeIdentifier> <active>true</active> <customFields> <mix_mixType>ID_REGISTRO_TIPOMIX</mix_mixType> </customFields> </customEntityEntry> Itens do Mix (Mix Product)
A API de Itens do Mix permite definir os produtos que compõem cada mix no uMov.me Note que os exemplos a seguir possuem a seguinte definição: ● ID_CADASTRO_ITENSMIX
= ID interno do cadastro customizável que representa os itens do mix no sistema ● ID_REGISTRO_ITENSMIX
= ID interno do registro do cadastro customizável, que contem os dados de um item de mix ● ID_REGISTRO_MIX
= ID interno do registro do cadastro customizável, que contem os dados de um mix ● ID_REGISTRO_ITEM
= ID interno do registro de um item 110 Descrição de um Item de Mix
Campo Valor id numérico description texto alternativeIdentifier texto active Tamanho Obrigatório Descrição 10 Não Identificador interno do tipo de mix no uMov.me 100 Sim Descrição do tipo de mix. Deve ser única. É sugerido concatenar o ID do mix com o ID do item. 100 Sim Identificador que possibilita a relação com o outros sistemas(legados). Deve ser única. É sugerido concatenar o ID do mix com o ID do item. true/false Não Indica se um tipo de mix está no estado ativo ou não. Pode receber valores "true" ou "false" mixItem_mix numérico 10 Sim Identificador interno do mix no uMov.me. Para funcionar corretamente deve estar dentro da tag <customFields> mixItem_order numérico 10 Não Ordem de exibição do item no mobile. Para funcionar corretamente deve estar dentro da tag <customFields> mixItem_item numérico 10 Sim Identificador interno do item no uMov.me. Para funcionar corretamente deve estar dentro da tag <customFields> Inclusão de um item do mix
POST /CenterWeb/api/{$apiKey}/customEntity/{ID_CADASTRO_ITENSMIX}/customEntityEntry.xml <customEntityEntry> <description>Mix_Product_IDREGISTROMIX_ID_REGISTRO_ITEM</description> <alternativeIdentifier>Mix_Product_IDREGISTROMIX_ID_REGISTRO_ITEM</alternativeIdentifier> <customFields> <mixItem_mix>ID_REGISTRO_MIX</mixItem_mix> <mixItem_order>1</mixItem_order> <mixItem_item>ID_REGISTRO_ITEM</mixItem_item> </customFields> </customEntityEntry> 111 Busca por Lista de Registros de Itens do Mix
GET
/CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_ITENSMIX/customEntityEntry.xml
<result> <resourceName>customEntityEntry</resourceName> <size>2</size> <entries> <entry id="ID_1" link="/customEntity/ID_1/customEntityEntry/ID_1.xml"/> <entry id="ID_2" link="/customEntity/ID_1/customEntityEntry/ID_2.xml"/> </entries> </result> Buscar por Lista de Produtos de um Mix
GET /CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_ITENSMIX/customEntityEntry.xml?mixItem_mix=ID_
REGISTRO_MIX <result> <resourceName>customEntityEntry</resourceName> <size>2</size> <entries> <entry id="ID_1" link="/customEntity/ID_1/customEntityEntry/ID_1.xml"/> <entry id="ID_2" link="/customEntity/ID_1/customEntityEntry/ID_2.xml"/> </entries> </result> Buscar um registro específico de itens do mix
GET /CenterWeb/api/{$apiKey}/customEntity/ID_CADASTRO_ITENSMIX/customEntityEntry/ID_REGISTRO_ITENS
MIX.xml <customEntityEntry> <id>ID_REGISTRO_ITENSMIX</id> <description>Mix_Product_IDREGISTROMIX_ID_REGISTRO_ITEM</description> <alternativeIdentifier>Mix_Product_IDREGISTROMIX_ID_REGISTRO_ITEM</alternativeIdentifier> <active>true</active> <customFields> <mixItem_mix>ID_REGISTRO_MIX</mixItem_mix> <mixItem_order>1</mixItem_order> <mixItem_item>ID_REGISTRO_ITEM</mixItem_item> </customFields> 112 </customEntityEntry> Relação de Locais
ServiceLocal (Local de Atendimento)
113 A API de ServiceLocal permite interagir com a parte "Onde?" do uMov.me. Neste caso conseguimos criar ou atualizar dados de locais de atendimento de um determinado ambiente através de chamadas de API. Descrição de um Local de Atendimento
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se o local de atendimento está ativo ou não image Não Imagem vinculada ao local através de URL para importação. É a imagem que será exibida no mobile para cada local. Para funcionar corretamente deve ser informada a tag <imageUrlImport> corporateName texto Não Razão social do local de atendimento 500 alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). state texto 10 Não Estado do país ao qual pertence o local city texto 50 Não Cidade deste local country texto 50 Não País deste local description texto 500 Sim Descrição do local. Pode ser o nome do estabelecimento, nome do cliente etc ... geoCoordinate texto 60 Não Latitude e longitude que representa o endereço deste local. Usado nas funcionalidades de mapas do uMov.me. Ex.: (23.5642303, 46.6792142) geoCoordinatePrecisi
on texto 100 Não Indica a precisão da coordenada GPS retornada pela API do Google Maps. Seus valores podem ser:
ROOFTOP (exato), RANGE_INTERPOLATED (grau de precisão maior, mas sem certeza), GEOMETRIC_CENTER (grau de precisão menor, mas sem certeza) e APPROXIMATE (cálculo aproximado) id numérico 10 Não Identificador interno da pessoa no uMov.me (usado apenas para Get) street texto 100 Não Rua deste local 114 zipCode texto 10 Não Cep deste local streetType texto 50 Não Tipo de logradouro referente ao endereço do local streetNumber numérico 10 Não Número do logradouro do endereço do local streetComplement texto 50 Não Complemento do logradouro do endereço do local cellphoneIdd numérico 10 Não DDI do telefone celular cellphoneStd numérico 10 Não DDD do telefone celular cellphoneNumber numérico 10 Não Número do telefone celular phoneIdd numérico 10 Não DDI do telefone fixo phoneStd numérico 10 Não DDD do telefone fixo phoneNumber numérico 10 Não Número do telefone fixo email texto 50 Não Email do local cityNeighborhood texto 50 Não Bairro do local observation texto 1000 Não Observações sobre o local accountable caracter 1 Não Responsável pelo local (devese informar o ID Interno do agente) itemsRelationship lista Não Lista que permite vincular um ou mais itens através do seu identificador alternativo ou código exportStatus caracter 1 Não Indica se local já foi exportado ou não, a fim de permitir a exportação incremental somente dos locais criados ou alterados. 1 (Novo local criado) | 2 (Local exportado) | 3 (Local exportado alterado) pendingExport true/false Não Campo para facilitar a busca dos locais que necessitam ser exportados. Se criado novo local (exportStatus = 1) ou local alterado (exportStatus = 3), então pendingExport = True. Caso contrário é False. customFields lista Não Relação de valores dos campos customizáveis vinculados ao local. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas 115 através do identificador alternativo do campo. Busca Por Lista de Locais de Atendimento
GET
/CenterWeb/api/{$apiKey}/serviceLocal.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/serviceLocal.xml?country=Spain&active=true Esta requisição está pedindo todos os locais de atendimento disponíveis cujo país seja a Espanha (country=Spain) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>serviceLocal</resourceName> <size>3</size> <entries> <entry id="115" link="/agent/115.xml"/> <entry id="130" link="/agent/130.xml"/> <entry id="132" link="/agent/132.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada retornada o Id do registro no uMov.me e o link que possa ser usado para recuperar os dados específicos deste registro. Através desta resposta, o chamador da API pode agora buscar as informações específicas dos retornos que foram encontrados. Busca de um Local de Atendimento específico
GET
/CenterWeb/api/{$apiKey}/serviceLocal/{$id}.xml Este recurso serve para puxar dados de um local de atendimento específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <serviceLocal> <id>132</id> <description>Delivery Place Sample</description> 116 <geoCoordinate>41.3752007, 2.1529847</geoCoordinate> <country>Spain</country> <city>Barcelona</city> <street>Avinguda del Paral. lel, 188</street> <zipCode/> <alternativeIdentifier>34</alternativeIdentifier> <active>true</active> <customFields> <CNPJ>000000000/000000</CNPJ> <Funcionários>200</Funcionários> ... <customFields> </serviceLocal> Inclusão de um Local de Atendimento
POST /CenterWeb/api/{$apiKey}/serviceLocal.xml Este recurso serve para incluir um local de atendimento no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo registro no ambiente em questão. Confira a descrição de um local de atendimento para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <serviceLocal> <description>Delivery Place New</description> <country>Spain</country> <city>Barcelona</city> <street>Avinguda del Paral. lel, 188</street> <zipCode/> <alternativeIdentifier>674</alternativeIdentifier> <active>true</active> <image> <imageUrlImport>http://www.testeimagem.jpg</imageUrlImport> </image> <accountable> <id>código_agente</id> </accountable> <itemsRelationship> <item> <alternativeIdentifier>identifier</alternativeIdentifier> </item> </itemsRelationship> <customFields> <CNPJ>000000000/000000</CNPJ> 117 <Funcionários>200</Funcionários> ... <customFields> </serviceLocal> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um local de atendimento com descrição "Delivery Place New", no país Espanha, cidade Barcelona, na rua "Avinguda del Paral. lel, 188". Além disto, está sendo dito que o local de atendimento em questão está sendo criado ativo, que o identificador dele no sistema de origem é 674. Também está sendo dito que neste local será vinculado um item com identificador alternativo identifier. Uma vez não informado altitude e longitude através do parâmetro(geoCoordinate) o uMov.me irá tentar obter tais coordenadas baseado no endereço cadastrado. Caso o endereço for inválido, a informação não será preenchida. Atualização de um Local de Atendimento
Ambas as operações abaixo fazem com que os dados de um local de atendimento
possam ser modificados no sistema. Desta forma é possível atualizar informações
de um local de atendimento através do id interno ou então através do identificador
alternativo. O xml de exemplo abaixo modifica apenas os dados desejados. Usando Identificador Interno
POST /CenterWeb/api/{$apiKey}/serviceLocal/{$id}.xml Usando Identificador Alternativo
POST /CenterWeb/api/{$apiKey}/serviceLocal/alternativeIdentifier/{$alternativeIdentifier}.xml <serviceLocal>
<id>1760479</id>
<description>GNU</description>
<active>false</active>
<alternativeIdentifier>gnu</alternativeIdentifier>
<corporateName>gremio</corporateName>
<country>Brasil</country>
<state>RS</state>
<city>Porto ALegre</city>
<cityNeighborhood>são joão</cityNeighborhood>
<streetType/>
<street/>
<streetComplement/>
<zipCode/>
<email/>
118 <observation/>
<geoCoordinate>-30.0277041, -51.228734599999996</geoCoordinate>
<origin>1</origin>
<insertDateTime>2013-04-17 17:44:19</insertDateTime>
<agentInsert>
<id>36324</id>
<name>lucas</name>
<login>lucas</login>
<active>true</active>
<alternativeIdentifier>kubiaki</alternativeIdentifier>
<validateClient>0</validateClient>
<centerwebUser>true</centerwebUser>
<centerwebUserRole>D</centerwebUserRole>
<mobileUser>true</mobileUser>
<biUser>true</biUser>
<biUserRole>0</biUserRole>
<inputWebAsAnotherUser>true</inputWebAsAnotherUser>
<observation/>
<country/>
<state/>
<city/>
<neighborhood/>
<streetType/>
<street/>
<streetComplement/>
<exportStatus>false</exportStatus>
<viewServiceLocal>false</viewServiceLocal>
<lockLoginInChangeImei>false</lockLoginInChangeImei>
</agentInsert>
<lastUpdateDateTime>2013-07-17 10:27:53</lastUpdateDateTime>
<agentLastUpdate>
<id>36324</id>
<name>lucas</name>
<login>lucas</login>
<active>true</active>
<alternativeIdentifier>kubiaki</alternativeIdentifier>
<validateClient>0</validateClient>
<centerwebUser>true</centerwebUser>
<centerwebUserRole>D</centerwebUserRole>
<mobileUser>true</mobileUser>
<biUser>true</biUser>
<biUserRole>0</biUserRole>
<inputWebAsAnotherUser>true</inputWebAsAnotherUser>
<observation/>
<country/>
<state/>
<city/>
<neighborhood/>
<streetType/>
<street/>
119 <streetComplement/>
<recordComplement1/>
<recordComplement2/>
<recordComplement3/>
<recordComplement4/>
<recordComplement5/>
<exportStatus>false</exportStatus>
<viewServiceLocal>false</viewServiceLocal>
<lockLoginInChangeImei>false</lockLoginInChangeImei>
</agentLastUpdate>
<customFields>
<CNPJ>000000000/0000-00</CNPJ>
<Funcionários>200</Funcionários>
...
<customFields>
</serviceLocal>
ServiceLocal Activity (Atividades dos Locais)
Inclusão de atividades dos locais em lote
POST /CenterWeb/api/{$apiKey}/batch/serviceLocalActivities.xml Este recurso permite fazer a criação de atividades em locais em lote, sem que haja a necessidade de fazer inúmeras requisições para a API. <serviceLocalActivities> <serviceLocalActivity> <serviceLocal> <alternativeIdentifier>ID_local_1</alternativeIdentifier> </serviceLocal> <activity> <alternativeIdentifier>ID_atividade_1</alternativeIdentifier> </activity> </serviceLocalActivity> <serviceLocalActivity> <serviceLocal> <alternativeIdentifier>ID_local_1</alternativeIdentifier> </serviceLocal> <activity> <alternativeIdentifier>ID_atividade_2</alternativeIdentifier> </activity> </serviceLocalActivity> </serviceLocalActivities> 120 A seção "<serviceLocalActivity</serviceLocalActivity>" representa cada atividade de um local a ser inserido,
limitando em 100
o número máximo de atividades de local por requisição. Caso algum erro ocorra, toda a operação será abortada e nenhuma atividade de local será inserida. Como retorno a esta chamada o sistema apresenta os o link de acesso a cada item criado. Ex:
<result> <resourceName>serviceLocalActivity</resourceName> <size>2</size> <entries> <entry id="1803794" link="/serviceLocalActivity/1803794.xml" /> <entry id="1803795" link="/serviceLocalActivity/1803795.xml" /> </entries> </result> Remoção de uma atividade de Local em específico
Usando Identificador Alternativo:
DELETE
/CenterWeb/api/{$apiKey}/serviceLocalActivity/{$id}.xml Como confirmação da remoção da atividade específica o sistema retorna como status da requisição o código de retorno OK(200) bem como apresenta a seguinte mensagem de retorno: Ex.: <result> <statusCode>200</statusCode> <message>serviceLocalActivity: serviceLocalActivity.activity.exclusion.successful</message> </result> ServiceLocalClassification (Classificação de local de
atendimento)
A API de serviceLocalClassification permite interagir com a parte
"Onde?"
do uMov.me. 121 Descrição de um Classificação de local de atendimento
Campo Valor Tamanho Obrigatório Descrição id numérico Não Identificador interno da classificação de local de atendimento no uMov.me description texto 100 Sim Descrição do classificação de local de atendimento. alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). active true/false Não Indica se um classificação de local está no estado ativo ou não. Pode receber valores "true" ou "false" Busca por lista de Classificação de local de atendimento
GET
/CenterWeb/api/{$apiKey}/serviceLocalClassification.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/serviceLocalClassification.xml?description=xyz&active=true Esta requisição está pedindo todas as classificações de locais disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>serviceLocalClassification</resourceName> <size>2</size> <entries> <entry id="9874" link="/serviceLocalClassification/9874.xml"/> <entry id="9875" link="/serviceLocalClassification/9875.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. 122 Busca por um Classificação de local de atendimento
GET
/CenterWeb/api/{$apiKey}/serviceLocalClassification/{$id}.xml Este recurso serve para puxar dados de uma classificação de local específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <serviceLocalClassification> <id>9874</id> <description>classificação 1</description> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <active>true</active> </serviceLocalClassification> GET /CenterWeb/api/{$apiKey}/serviceLocalClassification/alternativeIdentifier/{$alternativeId}.xml Pode também realizar a pesquisa utilizando o id alternativo ao invés do id. Veja exemplo do retorno de uma entidade abaixo: <serviceLocalClassification> <id>9874</id> <description>classificação 1</description> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <active>true</active> </serviceLocalClassification> Inclusão de um Classificação de local de atendimento
POST
/CenterWeb/api/{$apiKey}/serviceLocalClassification.xml Este recurso serve para incluir uma classificação de local de atendimento no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de uma nova classificação de local no ambiente em questão. Confira a descrição da classificação de local para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <serviceLocalClassification> <description>nova classificação</description> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <active>true</active> </serviceLocalClassification> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado uma classificação de local com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que a 123 classificação de local de atendimento em questão está sendo criado ativo e com o identificador dele no sistema de origem é id_alternativo. Atualização de um Classificação de local de atendimento específico
POST /CenterWeb/api/{$apiKey}/serviceLocalClassification/{$id}.xml Este recurso serve para atualizar uma classificação de local de atendimento específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de uma classificação de local no ambiente em questão. Confira a descrição da classificação de local para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <serviceLocalClassification> <description>classificação local alterada</description> </serviceLocalClassification> Ou pode ainda realizar a requisição usando o id alternativo ao inves do id. Confira um exemplo da requisição com os mesmos dados em XML: POST /CenterWeb/api/{$apiKey}/serviceLocalClassification/alternativeIdentifier/{$alternativeId}.xml <serviceLocalClassification> <description>classificação local alterada</description> </serviceLocalClassification> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja atualizada a descrição da classificação do local cujo id ou id alternativo está sendo informado. Busca por Classificação de Local de Atendimento
Usando Identificador Alternativo
GET /CenterWeb/api/{$apiKey}/serviceLocalClassification/alternativeIdentifier/{$alternative Identifier}.xml Este recurso serve para puxar dados de uma classificação de local específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <serviceLocalClassification>
<id>1949</id> <description>porto alegre</description> 124 <alternativeIdentifier>poa</alternativeIdentifier> <active>true</active> </serviceLocalClassification> ServiceLocalType(Tipo de Local de atendimento)
A API de serviceLocalType permite interagir com a parte
"Onde?"
do uMov.me. Descrição de um Tipo de local de atendimento
Campo Valor Tamanho Obrigatório Descrição id numérico Não Identificador interno de tipo de local de atendimento no uMov.me description texto 100 Sim Descrição do tipo de local de atendimento. alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). active true/false Não Indica se um tipo de local está no estado ativo ou não. Pode receber valores "true" ou "false" Busca por lista de Tipo de local de atendimento
GET
/CenterWeb/api/{$apiKey}/serviceLocalType.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/serviceLocalType.xml?description=xyz&active=true Esta requisição está pedindo todos os tipos de locais disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>serviceLocalType</resourceName> <size>2</size> <entries> 125 <entry id="8578" link="/serviceLocalType/8578.xml"/> <entry id="8579" link="/serviceLocalType/8579.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Inclusão de um Tipo de local de atendimento
POST /CenterWeb/api/{$apiKey}/serviceLocalType.xml Este recurso serve para incluir um tipo de local de atendimento no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de uma novo tipo de local no ambiente em questão. Confira a descrição do tipo de local para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <serviceLocalType> <description>novo tipo local</description> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <active>true</active> </serviceLocalType> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um tipo de local com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o tipo de local de atendimento em questão está sendo criado ativo e com o identificador dele no sistema de origem é id_alternativo. Atualização de um Tipo de Local de Atendimento
Usando Identificador Interno
POST /CenterWeb/api/{$apiKey}/serviceLocalType/{$id}.xml Usando Identificador Alternativo
POST /CenterWeb/api/{$apiKey}/serviceLocalType/alternativeIdentifier/{$alternativeId}.xml 126 Este recurso serve para atualizar um tipo de local de atendimento específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de um tipo de local no ambiente em questão. Confira a descrição do tipo de local para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <serviceLocalType> <description>tipo local alterado</description> </serviceLocalType> Busca por Tipo de Local de Atendimento
Usando Identificador Interno
GET /CenterWeb/api/{$apiKey}/serviceLocalType/{$ID}.xml Usando Identificador Alterantivo
GET /CenterWeb/api/{$apiKey}/serviceLocalType/alternativeIdentifier{$alternative identifier}.xml Este recurso serve para bucasdados de um tipo de local específico do sistema através do seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <serviceLocalType> <id>7693</id> <description>lazer</description> <alternativeIdentifier>clube</alternativeIdentifier> <active>true</active> </serviceLocalType> Local3Dimension (Grupo de local de atendimento)
A API de local3Dimension permite interagir com a parte
"Onde?"
do uMov.me. Descrição de um Grupo de local de atendimento
Campo Valor Tamanho Obrigatório Descrição 127 id numérico description texto alternativeIdentifier texto active true/false Não Identificador interno do grupo de local de atendimento no uMov.me 100 Sim Descrição do grupo de local de atendimento. 100 Não Identificador que possibilita a relação com o outros sistemas(legados). Não Indica se um grupo de local está no estado ativo ou não. Pode receber valores "true" ou "false" Busca por lista de Grupo de local de atendimento
GET
/CenterWeb/api/{$apiKey}/local3Dimension.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/local3Dimension.xml?description=xyz&active=true Esta requisição está pedindo todos os grupos de locais disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>local3Dimension</resourceName> <size>2</size> <entries> <entry id="9630" link="/local3Dimension/9630.xml"/> <entry id="9631" link="/local3Dimension/9631.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca por Grupo de Local de Atendimento
Usando Identificador Interno
128 GET
/CenterWeb/api/{$apiKey}/local3Dimension/{$id}.xml Usando Identificadot alternativo
GET
/CenterWeb/api/{$apiKey}/local3Dimension/alternativeIdentifier/{$alternativeId}.xml Este recurso serve para puxar dados de um grupo de local específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <local3Dimension> <id>9630</id> <description>grupo local</description> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <active>true</active> </local3Dimension> Inclusão de um Grupo de local de atendimento
POST /CenterWeb/api/{$apiKey}/local3Dimension.xml Este recurso serve para incluir um grupo de local de atendimento no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de uma novo grupo de local no ambiente em questão. Confira a descrição do grupo de local para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <local3Dimension> <description>novo grupo local</description> <alternativeIdentifier>novo_id_alternativo</alternativeIdentifier> <active>true</active> </local3Dimension> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um grupo de local com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o grupo de local de atendimento em questão está sendo criado ativo e com o identificador dele no sistema de origem é novo_id_alternativo. Atualização de um Grupo de local de atendimento específico
POST /CenterWeb/api/{$apiKey}/local3Dimension/{$id}.xml 129 Este recurso serve para atualizar um grupo de local de atendimento específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de um grupo de local no ambiente em questão. Confira a descrição do grupo de local para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <local3Dimension> <description>grupo local alterado</description> </local3Dimension> Ou pode ainda realizar a requisição usando o id alternativo ao inves do id. Confira um exemplo da requisição com os mesmos dados em XML: POST /CenterWeb/api/{$apiKey}/local3Dimension/alternativeIdentifier/{$alternativeId}.xml <local3Dimension> <description>grupo local alterado</description> </local3Dimension> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja atualizada a descrição do grupo local cujo id ou id alternativo está sendo informado. Busca por Grupo de Local de Atendimento
Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/local3Dimension/{$ID}.xml Usando Identificador Alternativo
GET
/CenterWeb/api/{$apiKey}/local3Dimension/alternativeIdentifier{$alternative Identifier}.xml Este recurso serve para buscar dados de um grupo de local específico do sistema através do seu identificador alternativo. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): local3Dimension> <
<id>905</id> <description>grupo teste</description> <alternativeIdentifier>grupoLocal</alternativeIdentifier> <active>true</active> </local3Dimension> 130 RELACAO DE PESSOAS
Agent (Agente)
A API de Agent permite interagir com a parte "
Quem?
" do uMov.me. Descrição de um Agente/Pessoa
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se um agente está no estado ativo ou não. Pode receber valores "true" ou "false" image Não Imagem vinculada a pessoa através de URL para importação. Para funcionar corretamente deve ser informada a tag <imageUrlImport> alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). agentType numérico 10 Sim Código do tipo do agente. Dica: Pesquisar por tipo de agentes login texto 50 Sim Login do agente no uMov.me name texto 100 Sim Nome completo do agente password texto 10 Sim Senha do agente no uMov.me id numérico 10 Não Identificador interno da pessoa no uMov.me email texto 50 Não Email do agente/pessoa centerwebuser true/false Não Indica se o agente/pessoa pode fazer login no Center mobileuser true/false Não Indica se o agente/pessoa usar o aplicativo mobile centerwebUserRole caracter 1 Não Inidica o papel que uma pessoa no sistema [D]eveloper, [A]dministrator, [M]anager e [O]perator. 131 true/false Não Indica se esta pessoa pode operar no formato callcenter, onde então ela pode executar tarefas para outras pessoas observation texto 255 Não Observações gerais sobre a pessoa city texto 50 Não Cidade da pessoa neighborhood texto 50 Não Bairro da pessoa country texto 50 Não País da pessoa state texto 50 Não Estado do país ao qual pertence a pessoa street texto 100 Não Logradouro ao qual a pessoa reside streetType texto 50 Não Tipo de logradouro referente ao endereço da pessoa zipCode numérico 10 Não CEP ao qual pertence o endereço da pessoa streetNumber numérico 10 Não Número do logradouro do endereço da pessoa texto 50 Não Complemente do logradouro do endereço da pessoa cellphoneIdd numérico 10 Não DDI do telefone celular cellphoneStd numérico 10 Não DDD do telefone celular cellphone numérico 10 Não Número do telefone celular phoneIdd numérico 10 Não DDI do telefone fixo phoneStd numérico 10 Não DDD do telefone fixo phone numérico 10 Não Número do telefone fixo biUser true/false Sim Indica se agente tem acesso a aplicacao BI biUserRole caracter 1 Não Indica o perfil do usuário do BI: 0Usuario; 1Administrador; 2Somente Leitura validateClient caracter 1 Não Indica se deve validar a carteira de clientes: 0 Não Valida; 1 Valida conforme pessoa responsável do local; 2 Valida conforme rotas da pessoa changePassword true/false Não Permite que o sistema obrigue o usuário a trocar a senha no próximo login inputWebAsAnotherUser streetComplement 132 lastSynchronismDate data Não Exibe a data do último sincronismo realizado no PDA lastSynchronismTime hora Não Exibe a hora do último sincronismo realizado no PDA lockLoginInChangeImei true/false Não Se configurado para bloquear login na troca de IMEI, o sistema valida se IMEI do login é igual ao cadastrado. Se for diferente, gera mensagem de erro e não permite realizar o login. imeiLastSynchronism caracter 100 Não IMEI (identificação do aparelho) do último login realizado. memorizePasswordMobile true/false Não Indica se senha será armazenada no mobile sem necessidade de digitar a cada login realizado. geoLocation caracter 20 Não Última posição GPS coletada para o agente. customFields lista Não Relação de valores dos campos customizáveis vinculados a pessoa. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas através do identificador alternativo do campo. Busca por Lista de Agentes/Pessoas
GET
/CenterWeb/api/{$apiKey}/agent.xml
Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/agent.xml?agentType.description=Padrão Esta requisição filtra todos os agentes com base na descrição do tipo de agente, sendo o tipo de agente Padrão. GET
/CenterWeb/api/{$apiKey}/agent.xml?name=fulano&active=true 133 Esta requisição está pedindo todos os agentes disponíveis cujo nome tenha a palavra fulano presente (name=fulano) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>agent</resourceName> <size>2</size> <entries> <entry id="5421" link="/agent/5421.xml"/> <entry id="5422" link="/agent/5422.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca de um Agente/Pessoa específica
GET
/CenterWeb/api/{$apiKey}/agent/{$id}.xml Este recurso serve para puxar dados de um agente/pessoa específica do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <agent> <id>5421</id> <name>Fulano da Silva</name> <active>false</active> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <observation>Observação</observation> <agentType> <id>10860</id> <description>Pdrão</description> <alternativeIdentifier>tipoPessoaPadrao</alternativeIdentifier> <active>true</active> </agentType> <email>[email protected]</email> <cellphoneIdd>55</cellphoneIdd> <cellphoneStd>51</cellphoneStd> <cellphone>347851488</cellphone> <login>fulano</login> <centerwebUser>true</centerwebUser> <mobileUser>true</mobileUser> 134 <centerwebUserRole>D</centerwebUserRole> <customFields> <CPF>00000000000</CPF> <Número_Funcionário>1512</Número_Funcionário> ... <customFields> </agent> Inclusão de um Agente/Pessoa específica
POST /CenterWeb/api/{$apiKey}/agent.xml Este recurso serve para incluir um agente/pessoa no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de uma nova pessoa no ambiente em questão. Confira a descrição de agente para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <agent> <active>true</active> <image> <imageUrlImport>http://www.testeimagem.jpg</imageUrlImport> </image> <agentType><id>10860*</id></agentType> <login>fulano</login> <name>Fulano da Silva</name> <password>minha_senha_nao_criptografada</password> <email>[email protected]</email> <alternativeIdentifier>33456745</alternativeIdentifier> <centerwebUser>true</centerwebUser> <mobileUser>true</mobileUser> <centerwebUserRole>D</centerwebUserRole> <customFields> <CPF>00000000000</CPF> <Número_Funcionário>1512</Número_Funcionário> ... <customFields> </agent> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um agente com os campos obrigatórios preenchidos (login, senha, nome e tipo de agente) e ainda, está sendo dito que o agente em questão está sendo criado ativo, com o [email protected], e que o identificador dele no sistema de origem é 33456745 e que este usuário tem acesso ao center e ao celular para logar. E que no center, este agente/pessoa tem o perfil de Desenvolvedor (D).
*Este identificador interno é somente como exemplo. Você deve usar o tipo de agente cadastrado em seu sistemas através do http://center.umov.me/CenterWeb/agentType 135 Atualização de um Agente/Pessoa especifíca
Ambas as operações abaixo fazem com que os dados de um agente possam ser modificados no sistema. Desta forma você consegue atualizar informações isoladas de um agente utilizando ou o id interno ou o identificador alternativo. No xml abaixo é demonstrado a alteração de apenas de algumas informações. Usando Identificador Interno
POST /CenterWeb/api/{$apiKey}/agent/{$id}.xml Usando Identificador Alternativo
POST /CenterWeb/api/{$apiKey}/agent/alternativeIdentifier/{$alternativeIdentifier}.xml <agent> <name>Agente001</name> </agent> Busca por Agente/Pessoa
Este recurso serve para bucar dados de um agente/pessoa específica através de
seu identificador alternativo ou identificador interno do sistema. Veja os exemplos
de retorno de uma entidade abaixo (considerando uma requisição feita em XML): Usando Identificador Interno
GET /CenterWeb/api/{$apiKey}/agent/{$ID}.xml Usando Identificador Alternativo
GET /CenterWeb/api/{$apiKey}/agent/alternativeIdentifier/{$alternativeIdentifier}.xml <agent> <id>5421</id> <name>Fulano da Silva</name> <active>false</active> 136 <alternativeIdentifier>id_alternativo</alternativeIdentifier> <observation>Observação</observation> <agentType> <id>10860</id> <description>Pdrão</description> <alternativeIdentifier>tipoPessoaPadrao</alternativeIdentifier> <active>true</active> </agentType> <email>[email protected]</email> <cellphoneIdd>55</cellphoneIdd> <cellphoneStd>51</cellphoneStd> <cellphone>347851488</cellphone> <login>fulano</login> <centerwebUser>true</centerwebUser> <mobileUser>true</mobileUser> <centerwebUserRole>D</centerwebUserRole> <customFields> <CPF>00000000000</CPF> <Número_Funcionário>1512</Número_Funcionário> <customFields> </agent> Agent Activity (Atividades dos Agentes)
Inclusão de atividades dos agentes em lote POST /CenterWeb/api/{$apiKey}/batch/agentActivities.xml Este recurso permite fazer a criação de atividades em agentes em lote, sem que haja a necessidade de fazer inúmeras requisições para a API. <agentActivities> <agentActivity> <agent> <alternativeIdentifier>ID_local_1</alternativeIdentifier> </agent> <activity> <alternativeIdentifier>ID_atividade_1</alternativeIdentifier> </activity> </agentActivity> <agentActivity> <agent> 137 <alternativeIdentifier>ID_local_1</alternativeIdentifier> </agent> <activity> <alternativeIdentifier>ID_atividade_2</alternativeIdentifier> </activity> </agentActivity> </agentActivities> A seção "<agentActivity></agentActivity>" representa cada atividade de um agente a ser inserido, limitando em 100 o número máximo de atividades de agente por requisição. Caso algum erro ocorra, toda a operação será abortada e nenhuma atividade de agente será inserida. Como retorno a esta chamada o sistema apresenta os o link de acesso a cada registro criado. Ex: <result> <resourceName>agentActivity</resourceName> <size>2</size> <entries> <entry id="1803794" link="/agentActivity/1803794.xml" /> <entry id="1803795" link="/agentActivity/1803795.xml" /> </entries> </result> AgentType (Tipo de Agente)
A API de AgentType permite interagir com a parte
"Quem?"
do uMov.me. Descrição de um Tipo de Agente
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se um tipo de agente está no estado ativo ou não. Pode receber valores "true" ou "false" alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). 138 description texto 100 Sim Descrição de seu tipo de agente. id numérico 10 Não Identificador interno do tipo de agente no uMov.me Busca por lista de Tipo de Agente
GET
/CenterWeb/api/{$apiKey}/agentType.xml Se ainda preferir, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: GET
/CenterWeb/api/{$apiKey}/agentType.xml?description=xyz&active=true Esta requisição está pedindo todos os tipos de agente disponíveis cuja descrição tenha a palavra xyz presente (description=xyz) e que estejam ativos (active=true). Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>agentType</resourceName> <size>2</size> <entries> <entry id="5421" link="/agentType/2870.xml"/> <entry id="5422" link="/agentType/2871.xml"/> <entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, o Id do registro no uMov.me e o link que pode ser usado para recuperar os dados específicos deste registro. Busca por um Tipo de Agente específico
GET /CenterWeb/api/{$apiKey}/agentType/{$id}.xml Este recurso serve para puxar dados de um tipo de agente específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <agentType> <id>5421</id> <description>xyz</description> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <active>false</active> 139 </agentType> Inclusão de um Tipo de Agente
POST /CenterWeb/api/{$apiKey}/agentType.xml Este recurso serve para incluir um tipo de agente no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo tipo de agente no ambiente em questão. Confira a descrição do tipo de agente para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <agentType> <active>true</active> <description>Novo Tipo de Agente</description> <alternativeIdentifier>33456745</alternativeIdentifier> </agentType> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado um tipo de agente com o campo obrigatório preenchido (descrição) e ainda, está sendo dito que o tipo de agente em questão está sendo criado ativo e que o identificador dele no sistema de origem é 33456745. Atualização de um Tipo de Agente
Usando Identificador Interno
POST /CenterWeb/api/{$apiKey}/agentType/{$id}.xml Usando Identificaor Alternativo
POST
/CenterWeb/api/{$apiKey}/agentType/alternativeIdentifier/{$alternativeIdentifier}.xml Este recurso serve para atualizar um tipo de agente específico do sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a atualização de um tipo de agente no ambiente em questão. Confira a descrição do tipo de agente para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <agentType> <description>Nova Descrição para Tipo de Agente Existente</description> </agentType> 140 Neste caso, lendo o que está sendo pedido ao uMov.me é que seja atualizada a descrição do tipo de agente cujo id ou identificador alternativo está sendo informado. Busca por um Tipo de Agente
Usando Identificador Interno
GET /CenterWeb/api/{$apiKey}/agentType/{$ID}.xml Usando Identificador Alternativo
GET /CenterWeb/api/{$apiKey}/agentType/alternativeIdentifier/{$alternativeIdentifier}.xml Este recurso serve para buscar dados de um tipo de agente específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <agentType> <id>102496</id> <description>Tipo Agente Padrão</description> <alternativeIdentifier>tipo</alternativeIdentifier> <active>true</active> </agentType> 141 SmsRequest (Envio de SMS)
A API de SmsRequest é responsável pelo envio de SMS (via API) para as pessoas cadastradas no uMov.me. Descrição de um SmsRequest
Campo Valor Tamanho Obrigatório Descrição agent numérico Sim Agente que deve receber o SMS. Pode ser informado o id iinterno ou identificador alternativo. message texto 160 Sim Mensagem que será enviado no SMS sendDownloadLink boolean Não Se informado True, o SMS irá conter a URL de instalação da aplicação mobile. Se informado False, será enviado somente a mensagem. Inclusão de um SmsRequest
POST /CenterWeb/api/{$apiKey}/smsRequest.xml Esta operação serve para enviar SMS para uma pessoa cadastrada no uMov.me. Existe um mínimo de informações que o sistema espera receber para poder realizar o envio de SMS. 142 Confira a descrição de um smsRequest para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <smsRequest> <agent> <id>123</id> </agent> <message>Teste de mensagem SMS</message> <sendDownloadLink>false</sendDownloadLink> </smsRequest> ou <smsRequest> <agent> <alternativeIdentifier>agente 123</alternativeIdentifier> </agent> <message>Teste de mensagem SMS</message> <sendDownloadLink>false</sendDownloadLink> </smsRequest> Importante: Se realizado o post informando o alternativeIdentifier, o sistema somente irá enviar o SMS se for encontrado apenas um agente com o identificador alternativo informado. Para enviar o SMS via API, o agente informado na requisição deve possuir um telefone celular cadastrado corretamente Team(Equipe)
A API de Team é responsável pela manutenção das equipes de pessoas. É nela que vamos conseguir criar uma equipe e informar as pessoas da equipe Através dos recursos desta API poderemos criar e atualizar equipes, além de vincular ou remover pessoas de equipes. Descrição de uma Equipe
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se a equipe está ativa ou não alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). id numérico 10 Não Identificador interno da equipe no uMov.me 143 description texto 100 Sim Nome da equipe teamType numérico 10 Não O identificador do tipo de equipe no uMov.me teamResponsible numérico 10 Não O identificador da equipe no uMov.me agentRelationship lista Não Lista que permite vincular uma ou mais pessoas através do seu identificador interno. Busca Por Lista de Equipes
GET
/CenterWeb/api/{$apiKey}/team.xml Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>team</resourceName> <size>3</size> <entries> <entry id="99" link="/team/99.xml"/> <entry id="100" link="/team/100.xml"/> <entry id="479" link="/team/479.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, Id do registro no uMov.me e o link, que pode ser usado para recuperar os dados específicos deste registro. Busca por uma Equipe
Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/team/{$id}.xml Usando Identificador Alternativo
144 GET
/CenterWeb/api/{$apiKey}/team/alternativeIdentifier/{$alternativeIdentifier}.xml Esta operação serve para puxar informações de uma equipe do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <team> <id>100</id> <description>Equipe A</description> <alternativeIdentifier>Equipe A</alternativeIdentifier> <active>true</active> <teamType> <id>133</id> <description>Vendedores</description> </teamType> <agentRelationship> <agentTeam> <agent> <id>7</id> <alternativeIdentifier>Pessoa 1</alternativeIdentifier> <name>Pessoa 1</name> </agent> </agentTeam> <agentTeam> <agent> <id>38762</id> <alternativeIdentifier>Pessoa 2</alternativeIdentifier> <name>Pessoa 2</name> </agent> </agentTeam> </agentRelationship> </team> Inclusão de uma Equipe
POST /CenterWeb/api/{$apiKey}/team.xml Esta operação serve para incluir uma equipe no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo registro no ambiente em questão. Confira a descrição de uma Equipe para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <team> <description>Equipe X</description> <alternativeIdentifier>Equipe X</alternativeIdentifier> <teamType> <id>133</id> </teamType> 145 <agentRelationship> <agentTeam> <agent> <id>7</id> </agent> </agentTeam> <agentTeam> <agent> <id>38762</id> </agent> </agentTeam> </agentRelationship> </team> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criada uma Equipe com a descrição Equipe X para os agentes com id 7 e 38762 vinculados a equipe. Atualização de uma Equipe
POST /CenterWeb/api/{$apiKey}/team/{$id}.xml Esta operação permite atualizar informações de uma equipe enviando apenas os dados desejados: <team> <description>Equipe X</description> <alternativeIdentifier>Equipe X</alternativeIdentifier> </team
> Esta operação acima não irá alterar as pessoas vinculadas a equipe. Somente será alterada a descrição e identificador alternativo da equipe. Se informado somente a tag <agentRelationship> todas as pessoas vinculadas a equipe serão removidas.Ao informar pessoas da equipe a partir da tag <agentRelationship>, o sistema sempre irá remover todas as pessoas vinculadas a equipe e adicionar as novas pessoas vinculadas. Para operações unitárias de inclusão ou remoção de uma pessoa da equipe, verifique as operações a seguir. Inclusão de uma pessoa em uma equipe
POST /CenterWeb/api/{$apiKey}/team/{$id}/agent.xml 146 Para incluir uma pessoa em uma equipe, basta realizar uma requisição, conforme descrito acima, passando os atributos abaixo. Somente será incluída a pessoa a uma equipe, se ela ainda não estiver vinculada a equipe. <agentTeam> <agent> <id>{agentId}</id> </agent> </agentTeam> Remoção de uma pessoa de uma equipe
DELETE /CenterWeb/api/{$apiKey}/team/{$id}/agent/{$id}.xml Para remover uma pessoa de uma equipe, basta realizar uma requisição, passando por parâmetro o ID da equipe e o ID da pessoa. Somente será removida a pessoa da, se ela for encontrada na equipe. Somente será removida a relação. A pessoa continuará cadastrada no sistema. <result> <statusCode>200</statusCode> <message>Agent with id: 7 was removed from team id: 100</message> </result> Consulta de uma pessoa em uma equipe
GET
/CenterWeb/api/{$apiKey}/team/{$id}/agent/{$id}.xml Para consultar uma pessoa específica de uma equipe, deve ser passado por parâmetro o ID da equipe e o ID da pessoa. O sistema retornará apenas as informações da pessoa solicitada. <team> <id>100</id> <description>Equipe A</description> <alternativeIdentifier>Equipe A</alternativeIdentifier> <active>true</active> <agentRelationship> <agentTeam> <agent> <id>7</id> <name>Pessoa 1</name> </agent> </agentTeam> </agentRelationship> 147 </team> TeamType(Tipo de Equipe)
A API de TeamType é responsável pela manutenção dos tipos de equipe. É nela que vamos conseguir criar um tipo de equipe para posterior associação em equipes. Descrição de um Tipo de Equipe
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se tipo de equipe está ativo ou não alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). id numérico 10 Não Identificador interno dp tipo de equipe no uMov.me description texto 100 Sim Nome do tipo de equipe Busca Por Lista de Tipos de Equipe
GET /CenterWeb/api/{$apiKey}/teamType.xml Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>teamType</resourceName> <size>2</size> <entries> <entry id="132" link="/teamType/132.xml"/> <entry id="133" link="/teamType/133.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, Id do 148 registro no uMov.me e o link, que pode ser usado para recuperar os dados específicos deste registro. Busca de um Tipo de Equipe
GET
/CenterWeb/api/{$apiKey}/teamType/{$id}.xml Esta operação serve para puxar informações de um tipo de equipe do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <teamType> <id>132</id> <description>Vendedores</description> <alternativeIdentifier>Venda</alternativeIdentifier> <active>true</active> </teamType> Inclusão de um Tipo de Equipe
POST /CenterWeb/api/{$apiKey}/teamType.xml Esta operação serve para incluir um tipo de equipe no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo registro no ambiente em questão. Confira a descrição de um Tipo de Equipe para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <teamType> <description>Vendedores</description> <alternativeIdentifier>Venda</alternativeIdentifier> </teamType> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criada um Tipo de Equipe com a descrição Vendedores. Atualização de um Tipo de Equipe
POST /CenterWeb/api/{$apiKey}/teamType/{$id}.xml 149 Esta operação permite atualizar informações de um tipo de equipe enviando apenas os dados desejados: <teamType> <description>Entregadores</description> <alternativeIdentifier>Entregadores</alternativeIdentifier> </teamType> RELACAO DE TAREFAS
Schedule (Tarefas)
A API de Schedule é responsável pela manutenção das tarefas. É nela que vamos conseguir criar uma tarefa fazendo o panorama quem (Pessoa) deve ir onde (Local de Atendimento) fazer o que (Atividades relacionadas) e quando (identificando uma data e hora específica). Através dos recursos desta API poderemos criar tarefas e atualizar as mesmas. Descrição de uma Tarefa
Campo Valor Tamanho Obrigatório Descrição active true/false Não Indica se a tarefa está ativo ou não image Não Imagem vinculada a tarefa através de URL para importação. É a imagem que será exibida no mobile para cada tarefa activitiesOrigin numérico 1 Sim Origem das atividades. 1(atividades do agente), 2(atividades do local de atendimento), 3 (atividades cadastradas 150 como padrao do sistema), 4(atividades informadas manualmente pelo identificador alternativo) agent numérico 10 Não O identificador da pessoa no uMov.me. Se informada a equipe com somente uma pessoa, é carregada a pessoa da equipe. Se informada a equipe (team), a pessoa deve pertencer a equipe. team numérico 10 Não O identificador da equipe no uMov.me. Se não informada a pessoa, e equipe possuir só uma pessoa vinculada, então tarefa será vinculada a pessoa da equipe. alternativeIdentifier texto 100 Não Identificador que possibilita a relação com o outros sistemas(legados). date texto 10 Sim Data prevista para o início da tarefa. Formato (yyyymmdd) hour texto 8 Sim Hora prevista para o início da tarefa. Formato HH:mm(24hs) executionForecastEndDate texto 10 Não Data prevista para o fim da tarefa. Formato (yyyymmdd) executionForecastEndTime texto 8 Não Hora prevista para o fim da tarefa. Formato HH:mm(24hs) waitTimeOnField numérico 10 Não Indica o tempo médio de espera no cliente antes de finalizar a tarefa. Usado para casos onde é necessário aguardar o cliente antes de executar a tarefa. É utilizado no cálculo de tempo estimado de execução das tarefas nos mapas do uMov.me id numérico 10 Não Identificador interno da tarefa no uMov.me observation texto 500 Não Observações gerais da tarefa origin numérico 1 Não Origem da criação da atividade. 3(API) serviceLocal numérico 10 Sim O identificador da local de atendimento no uMov.me situation numérico 10 Não Os valores possíveis são 30 (aguardando envio), 40 (em campo disponível no dispositivo móvel), 50 (retornada de campo executada) e 70 (cancelada). 151 activityRelationship lista Não Lista que permite vincular uma ou mais ativididades através do seu identificador alternativo. É necessario informar o campo activiesOrigin com valor 4. priority numérico 10 Não Define a prioridade da tarefa: 0 mais urgente toleranceBeforeStart numérico 10 Não Tempo de tolerancia (em minutos) para antecipacao do inicio de execucao da tarefa toleranceAfterStart numérico 10 Não Tempo de tolerancia (em minutos) para atraso do inicio de execucao da tarefa toleranceBeforeEnd numérico 10 Não Tempo de tolerancia (em minutos) para antecipacao do final de execucao da tarefa toleranceAfterEnd numérico 10 Não Tempo de tolerancia (em minutos) para atraso do final da execucao da tarefa. toleranceBlockBefore numérico 10 Não Tempo de tolerancia (em minutos) para bloquear a execucao de tarefa antes de um determinado horario toleranceBlockAfter numérico 10 Não Tempo de tolerancia (em minutos) para bloquear a execucao de tarefa depois de um determinado horario recreateTaskOnPda true/false Não Indica se deve ser recriada a tarefa no mobile ao finalizar sua execução. validateDateTimeExecution true/false Não Indica se tarefa valida data e hora de execução ao ser executada no mobile. lista Não Relação de valores dos campos customizáveis vinculados a tarefa. Todos os campos customizáveis vinculados ao cadastro aparecerão na consulta. A consulta, atualização e inclusão dos campos customizáveis devem ser feitas através do identificador alternativo do campo. customFields Busca Por Lista de Tarefas
GET
/CenterWeb/api/{$apiKey}/schedule.xml 152 Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: ●
Pesquisar por um determinado local de atendimento: GET
●
Pesquisar por um determinado agente/pessoa: GET
●
/CenterWeb/api/{$apiKey}/schedule.xml?serviceLocal=134 /CenterWeb/api/{$apiKey}/schedule.xml?agent=5421 Pesquisar tarefas criadas em uma determinada data. Data de início e fim GET
/CenterWeb/api/{$apiKey}/schedule.xml?initialDate=20111001&finalDate=20111101 ●
Pesquisar por uma determinada situação. Os valores possíveis são 30 (aguardando envio), 40 (em campo disponível no dispositivo móvel), 50 (retornada de campo executada) e 70 (cancelada). GET /CenterWeb/api/{$apiKey}/schedule.xml?situation=30 ●
Outros filtros. Ex.: Filtrar todas as tarefas com base em atributos das entidades vinculadas à tarefa GET /CenterWeb/api/{$apiKey}/schedule.xml?serviceLocal.country=Brasil&agent.active=tr
ue&situation.description=Em Campo Enviar parâmetros para a API uMov.me é simples assim. Veja um exemplo, do resultado de uma requisição que foi feita em XML: <result> <resourceName>schedule</resourceName> <size>2</size> <entries> <entry id="001" link="/schedule/001.xml"/> <entry id="002" link="/schedule/002.xml"/> </entries> </result> A resposta da requisição será uma mensagem contendo o total de registro retornados e uma lista simples, sem detalhes de cada registro retornado, contendo para cada entrada, Id do registro no uMov.me e o link, que pode ser usado para recuperar os dados específicos deste registro. Busca de uma tarefa
153 Usando Identificador Interno
GET
/CenterWeb/api/{$apiKey}/schedule/{$id}.xml Usando Identificador Alternativo
GET
/CenterWeb/api/{$apiKey}/schedule/alternativeIdentifier/{$alternativeIdentifier}.xml Esta operação serve para puxar informações de uma tarefa do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): <schedule> <id>93615</id> <situation> <id>50</id> <description>Retornada de Campo</description> </situation> <serviceLocal> <id>132</id> <description>Delivery Place Sample</description> <country>Spain</country> <city>Barcelona</city> <street>Avinguda del Paral. lel, 188</street> <active>true</active> </serviceLocal> <origin>3</origin> <hour>14:57</hour> <date>20110718</date> <alternativeIdentifier>S</alternativeIdentifier> <agent> <id>5421</id> <name>Fulano da Silva</name> <active>false</active> <alternativeIdentifier>id_alternativo</alternativeIdentifier> <email>[email protected]</email> <cellphoneIdd>55</cellphoneIdd> <cellphoneStd>51</cellphoneStd> <cellphone>347851488</cellphone> <login>fulano</login> <centerwebUser>true</centerwebUser> <mobileUser>true</mobileUser> <centerwebUserRole>D</centerwebUserRole> </agent> <observation>Tarefa criada via API uMov.me</observation> <active>true</active> <activitiesOrigin>4</activitiesOrigin> 154 <activities> <activity id="10" link="/activity/10.xml" /> <activity id="11" link="/activity/11.xml" /> </activities> <customFields> <Nro_OS>9854</Nro_OS> <Contato>Fulano de tal</Contato> ... </customFields> </schedule> Observação:
Somente na consulta de uma tarefa já criada, o sistema lista as atividades <activities> vinculadas a tarefa. E o sistema mostra todas as atividades vinculadas a tarefa, independente se foi executada ou não
. Inclusão de uma Tarefa
POST /CenterWeb/api/{$apiKey}/schedule.xml Esta operação serve para incluir uma tarefa no sistema. Existe um mínimo de informações que o sistema espera receber para poder realizar a criação de um novo registro no ambiente em questão. Confira a descrição de uma Tarefa para identificar os campos obrigatórios. Veja um exemplo da requisição com dados em XML: <schedule> <agent> <id>5421*</id> </agent> <serviceLocal> <id>132**</id> </serviceLocal> <image> <imageUrlImport>http://www.testeimagem.jpg</imageUrlImport> </image> <activitiesOrigin>4</activitiesOrigin> <date>20111101</date> <hour>08:00</hour>
<activityRelationship> <activity> <alternativeIdentifier>identifier***</alternativeIdentifier> </activity> </activityRelationship> <customFields> 155 <Nro_OS>9854</Nro_OS> <Contato>Fulano de tal</Contato> ... </customFields> </schedule> Neste caso, lendo o que está sendo pedido ao uMov.me é que seja criado uma Tarefa para o agente cujo id é 5421, utilizando o local da atendimento com o id 132. Além disto, está sendo dito que a tarefa em questão possuirá uma atividade associada manualmente(activitiesOrigin=4) com identificador alternativo identifier, que a data prevista para inicio é no dia 1° de Novembro do ano de 2011 a partir das 08hs da manhã. *Este identificador interno é somente como exemplo. Você deve usar o agente cadastrado em seu sistemas através do http://center.umov.me/CenterWeb/agent **Este identificador interno é somente como exemplo. Você deve usar o local cadastrado em seu sistemas através do http://center.umov.me/CenterWeb/serviceLocal ***Este identificador alternativo é somente como exemplo. Você deve usar o identificador alternativo da sua atividade cadastrada em seu sistemas através do
http://center.umov.me/CenterWeb/activity ****Este identificador alternativo é somente como exemplo. Você deve usar o identificador alternativo de seu item cadastrado em seus sistema através do
http://center.umov.me/CenterWeb/item Atualização de uma Tarefa
Ambas as operações abaixo permitem atualizar informações de uma tarefa utilizando ou o id interno ou o identificador alternativo. Assim é possível atualizar a tarefa enviando apenas os dados desejados conforme é demonstrado o xml de exemplo abaixo: Utilizando Identificador Interno
POST /CenterWeb/api/{$apiKey}/schedule/{$id}.xml Utilizando Identificador Alternativo
POST /CenterWeb/api/{$apiKey}/schedule/alternativeIdentifier/{$alternativeIdentifier}.xml <schedule> <hour>09:00</hour> </schedule> Inclusão ou atualização de uma tarefa com identificadores alternativos
156 POST /CenterWeb/api/{$apiKey}/schedule.xml Esta operação serve para incluir ou atualizar uma tarefa no sistema, informando o
local ou pessoa através do identificador alternativo
. Veja um exemplo da requisição com dados em XML: <schedule> <agent> <alternativeIdentifier>AGENTE X</alternativeIdentifier> </agent> <serviceLocal> <alternativeIdentifier>LOCAL Y</alternativeIdentifier> </serviceLocal> <image> <imageUrlImport>http://www.testeimagem.jpg</imageUrlImport> </image> <activitiesOrigin>4</activitiesOrigin> <date>20111101</date> <hour>08:00</hour>
<activityRelationship> <activity> <alternativeIdentifier>ATIVIDADE ABC</alternativeIdentifier> </activity> </activityRelationship> <customFields> <Nro_OS>9854</Nro_OS> <Contato>Fulano de tal</Contato> ... </customFields> </schedule> Observação:
Ao vincular um local ou pessoa informando o identificador alternativo, o sistema fará a vinculação quando existir
apenas um registro para o cadastro com o identificador alternativo
. Caso possuir mais de um registro com mesmo identificador alternativo, o sistema retornará uma mensagem de erro. 157 Cancelamento de uma tarefa
POST /CenterWeb/api/{$apiKey}/schedule/{$id}.xml Para cancelar uma tarefa, basta realizar uma atualização comum informando a nova situação da tarefa. (70 = Cancelada). São passíveis de cancelamento apenas tarefas uja situação for diferente de 50 (retornada de campo executada) e 70 (cancelada). <schedule> <situation><id>70</id></situation> </schedule> Schedule Item (Itens das Tarefas)
Inclusão de itens de tarefa em lote
POST /CenterWeb/api/{$apiKey}/batch/scheduleItems.xml Este recurso permite fazer a criação de itens de tarefa em lote, sem que haja a necessidade de fazer inúmeras requisições para a api. <scheduleItems> <scheduleItem> <schedule> <alternativeIdentifier>ID_tarefa_1</alternativeIdentifier> </schedule> <item> <alternativeIdentifier>ID_item_1</alternativeIdentifier> </item> </scheduleItem> ... <scheduleItem> <schedule> <alternativeIdentifier>ID_tarefa_2</alternativeIdentifier> </schedule> <item> <alternativeIdentifier>ID_item_100</alternativeIdentifier> </item> </scheduleItem> </scheduleItems> A seção "<scheduleItem></scheduleItem>" representa cada item de tarefa a ser inserido, limitando em 100 o número máximo de itens de tarefa por requisição. Caso algum erro ocorra, toda a operação será abortada e nenhum item de tarefa será inserido. 158 Como retorno a esta chamada o sistema apresenta os o link de acesso a cada item criado. Ex: <result> <resourceName>scheduleItems</resourceName> <size>2</size> <entries> <entry id="1803794" link="/scheduleItem/1803794.xml" /> <entry id="1803795" link="/scheduleItem/1803795.xml" /> </entries> </result> Busca Por Lista de Tarefas
GET
/CenterWeb/api/{$apiKey}/scheduleItem.xml Se preferir ainda, pode refinar as pesquisas enviando parâmetros na requisição, para isso é necessário adicionar parâmetros igual realizamos em uma requisição HTTP: ●
Pesquisar por um determinado item de tarefa GET /CenterWeb/api/{$apiKey}/scheduleItem.xml?item=134 ●
Pesquisar por uma determinada tarefa GET /CenterWeb/api/{$apiKey}/scheduleItem.xml?schedule=5421 ●
Filtrar itens de tarefa com base em atributos das entidades vinculadas de item e tarefa GET /CenterWeb/api/{$apiKey}/scheduleItem.xml?item.alternativeIdentifier=item1&schedule.active=true Busca por um Item de Tarefa em específico
GET
/CenterWeb/api/{$apiKey}/scheduleItem/{$id}.xml Este recurso serve para puxar dados de um item de tarefa específico do sistema. Veja o exemplo de retorno de uma entidade abaixo (considerando uma requisição feita em XML): Ex.: <scheduleItem> <id>10830724</id> <item> <id>579749</id> <description>Item do ID 100</description> <alternativeIdentifier>ID_item_100</alternativeIdentifier> <active>true</active> </item> 159 <schedule> <id>4099150</id> <hour>15:27</hour> <executionHour>20:12</executionHour> <active>true</active> <activitiesOrigin>4</activitiesOrigin> <executionStartTime>15:27</executionStartTime> </schedule> </scheduleItem> Remoção de um Item de Tarefa em específico
Usando Identificador Interno
DELETE /CenterWeb/api/{$apiKey}/scheduleItem/{$id}.xml Usando Identificador Alternativo:
DELETE /CenterWeb/api/{$apiKey}/scheduleItem/schedule/{$scheduleAltId}/item/{$itemAltId}.xml ●
●
{$scheduleAltId} = Identificador alternativo da Tarefa {$itemAltId} = Identificador alternativo do Item
Ambos as chamadas servem para remover um item de tarefa específico do sistema. Como confirmação da remoção do item específico o sistema retorna como status da requisição o código de retorno OK(200) bem como apresenta a seguinte mensagem de retorno: Ex.: <result> <statusCode>200</statusCode> <message>scheduleItem: scheduleItem.item.exclusion.successful</message> </result> Envio Notificação Push
Este recurso permite o envio unidirecional de notificações a usuários em campo. As notificações, são pequenas mensagens de texto para rápida visualização e que não são armazenadas no dispositivo móvel, sendo assim, após a leitura a notificação é apagada. Embora tenha como vantagem o envio instantâneo, pode sofrer um
delay
entre o momento de envio até a recepção da notificação. 160 Criação de notificação
POST /CenterWeb/api/{$apiKey}/scheduleNotification.xml Este recurso permite a criação de notificação para mais de um agente na mesma requisição. Exemplo de envio de notificação para apenas um agente:
<scheduleNotification> <message>Mensagem exibida na notificação</message> <agents> <agent> <alternativeIdentifier>ALTERNATIVE_IDENTIFIER</alternativeIdentifier> </agent> </agents> </scheduleNotification> Exemplo de envio de notificação para apenas mais de um agente: <scheduleNotification> <message>Mensagem exibida na notificação</message> <agents> <agent> <alternativeIdentifier>joao</alternativeIdentifier> </agent> <agent> <alternativeIdentifier>alberto</alternativeIdentifier> </agent> ... </agents> </scheduleNotification> Para
o recebimento da notificação, o usuário precisa ter o uMov.me e estar logado no ambiente. Envio de Mensagens
Este recurso permite uma comunicação mais eficiente, pois serve para enviar mensagens com até 500 caracteres para o dispositivo móvel. Após sua criação, a mensagem será enviada no próximo sincronismo com o dispositivo móvel. O tempo de entre cada sincronismo varia de ambiente para ambiente, com isso é possível enviar uma notificação, marcando a tag <sendNotification>. Com isso, o usuário em campo pode ser sinalizado que existe uma nova mensagem assim que esta é enviada. Criação da Mensagem
POST /CenterWeb/api/{$apiKey}/message.xml 161 Exemplo para criação de mensagem para apenas 1 usuário em campo: <message> <sender> <alternativeIdentifier></alternativeIdentifier> </sender> <recipients> <recipient> <alternativeIdentifier></alternativeIdentifier> </recipient> </recipients> <description></description> <sendNotification></sendNotification> </message> Exemplo para criação de mensagem para mais de um usuário em campo: <message> <sender> <alternativeIdentifier></alternativeIdentifier> </sender> <recipients> <recipient> <alternativeIdentifier>user_1</alternativeIdentifier> </recipient> <recipient> <alternativeIdentifier>user_2</alternativeIdentifier> </recipient> <recipient> <alternativeIdentifier>user_3</alternativeIdentifier> </recipient> ... </recipients> <description></description> <sendNotification></sendNotification> </message> Exemplo para criação de mensagem para todos os usuários do ambiente: <message> <sender> <alternativeIdentifier></alternativeIdentifier> </sender> <description></description> <sendNotification></sendNotification> 162 </message> 163