Histórico da Página
RESTWeb Service REST
Produto: | TOTVS Automação Fiscal |
Versões: | 12.1.17+ |
Este documento tem o objetivo de fornecer informações para utilização do Web Service REST de integração com o TOTVS Automação Fiscal.
Para mais detalhes sobre o conceito de um serviços REST clique aqui.
Para mais detalhes sobre serviços REST na arquitetura Protheus clique aqui.
Índice
|
---|
Definição do Serviço
Nome: WSTAFST2
Objetivo: Permitir a Integração com o módulo SIGATAF utilizando um WebService do Tipo REST.
Descrição: Integra os produtos na tabela compartilhada TAFST2, permite a consulta do status de integração e cadastro dos registros através do TAFKEY ou TAFTICKET e permite a exclusão dos registros através do TAFTICKET.
Métodos: POST, GET e DELETE.
Configurações do Serviço
A Configuração do serviço REST está documentada no link Configuração REST SERVER - Protheus.
Estas parametrizações estão localizadas fisicamente no arquivo appserver.ini da pasta de instalação "[...]\BIN\APP"
Nota | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||
Na seção HTTPURI, a chave PrepareIn deve ser comentada. Segue exemplo de configuração do WS REST para utilização no modulo TAF:
*
nRefreshRate
|
Definição dos métodos
POST
Descrição do Método: O método POST segue o conceito do próprio método em qualquer outro tipo de serviço REST, devendo seu conteúdo ser enviado no corpo da mensagem (body) no formato json.
O objetivo do método é enviar informações que devem ser gravadas na tabela transacional do TAF ( TAFST2 ), permitindo que os dados sejam submetidos aos processos de integração.
Estrutura da mensagem enviada no POST (Request):
Atributo | Pai | Nivel | TAFST2 | Ocorrência | Formato |
---|---|---|---|---|---|
ticketCode | - | 1 | 1 | String(36) | |
lote | - | 1 | 1:N | - | |
sourceBranch | lote | 2 | TAFFIL | 1 | String(40) |
messageType | lote | 2 | TAFCODMSG | 1 | String(01) |
messageSequential | lote | 2 | TAFSEQ | 1 | String(03) |
registryType | lote | 2 | TAFTPREG | 1 | String(10) |
registryKey | lote | 2 | TAFKEY | 1 | String(100) |
integrationMessage | lote | 2 | TAFMSG | 1 | Memo - Base64 |
integrationDate | lote | 2 | TAFDATA | 0:1 | String - AAAAMM01 |
integrationTime | lote | 2 | TAFHORA | 0:1 | String - HH:MM:SS |
registryPriority | lote | 2 | TAFPRIORIT | 0:1 | String(01) |
integrationQueue | lote | 2 | TAFSTQUEUE | 0:1 | String(01) |
erpowner | lote | 2 | TAFOWNER | 0:1 | String(40) |
registryPredecessor | lote | 2 | TAFREGPRED | 0:1 | String(100) |
transferBranch | lote | 2 | TAFFILTRAN | 0:1 | String(40) |
complement | lote | 2 | TAFCOMP | 0:1 | String(100) |
- ticketCode – atributo raiz
- lote - estrutura dos itens.
- sourceBranch - Código Identificador da filial do ERP emissor.
- messageType - Determina se o arquivo enviado em TAFMSG é .txt (1) - estrutura dos itens.
- sourceBranch - Código Identificador da filial do ERP emissor.
- messageType - Determina se o arquivo enviado em TAFMSG é .txt (1)ou .Xml(2).
- messageSequential - Sequência do arquivo; A Mensagem em TAFMSG pode ser enviada em mais de 1 registro, para isso deve-se repetir as informações dos demais campos e alterar a sequencia de acordo com a ordem das informações enviadas.
- registryType - Chave do Registro.
- integrationMessage - Arquivo/Evento a ser integrado, a mensagem deve ser enviada com criptografia BASE64.
Obs: O XML pode ser enviado com a codificação UTF-8, neste caso é obrigatório o uso da declaração <?xml version="1.0" encoding="utf-8"?> no inicio do Xml. - integrationDate - Data da Integração.
- integrationTime - Hora da Integração.
- registryPriority - Prioridade de processamento do registro.
- integrationQueue - Registro será considerado na fila de integração. '1' - Enable ou '0' - Disable.
- erpowner - Identificação do dono do XML a ser integrado
- registryPredecessor - Identificador com o TAFKEY do registro predecessor, caso exista algum registro que o preceda.
- transferBranch - Identificador da Filial original do trabalhador a ser transferido.
- complement - Campo aberto na TAFST2, onde para os eventos S-1200 e S-1210, quando informado o conteúdo MV será utilizado a regra de gravação de eventos de múltiplos vínculos (gravação aberta).
Aviso | ||
---|---|---|
| ||
Aviso | ||
| ||
Os atributos não obrigatórios têm que fazer parte da estrutura, somente o seu preenchimento é opcional. |
Aviso | ||
---|---|---|
| ||
Para a utilização de caracteres especiais nos conteúdos dos atributos, é necessário a definição do encode correto no Header das mensagens de todos os métodos. Authorization : Basic ****** Content-Type : application/json;charset=UTF-8 |
Estrutura da mensagem de retorno do POST (Response):
Atributo | Pai | Nivel | Ocorrência | Formato |
---|---|---|---|---|
ticketCode | - | 1 | 0:1 | String(36) |
Estrutura da mensagem de retorno do POST (Response):
Atributo | Pai | Nivel | Ocorrência | Formato |
---|---|---|---|---|
ticketCode | - | 1 | 0:1 | String(36) |
registryKey | - | 1 | 0:N | - |
coderr | - | 1 | 0:1 | Int(3) |
description | - | 1 | 0:1 | String(100) |
key | registryKey | 2 | 1 | String(100) |
success | registryKey | 2 | 1 | boolean(true : false) |
error | registryKey | 2 | 0:N | - |
coderr | error | 3 | 1 | Int(3) |
description | error | 3 | 1 | String(100) |
keyAmount | registryKey | 1 | 0:1 | Int(9999) |
- ticketCode – atributo raiz
- registryKey – Array contendo os TAFKEY requisitados.
- coderr - Código de erro que impediu a integração do lote
- description - Descrição do erro que impossibilitou a integração do lote.
- key – Código do TAFKEY
- success – Informa se o TAFKEY foi integrado ou não.
- error – Array contendo os erros que impediram a integração do registro. Atributo gerado somente quando success for igual a false.
- coderr – Código do erro que impossibilitou a integração.
- description – Descrição do erro que impossibilitou a integração.
- keyAmount – Número de registros enviados no POST.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{"ticketCode" : "WIO9753123654789789363655241452363", "lote": [ {"sourceBranch" : "0100", "messageType" : "2", "messageSequential" : "001", "registryType" : "S-1010", "registryKey" : "KEYIO7878874854545454998598525", "integrationMessage": "PGVTb2NpYWw+PGV2dFRhYlJ1YnJpY2EgaWQ9J1MtMTAxMDEzMDUyMDE2MTU0MDE2JyB2ZXJzYW89JzEuMSc+PGlkZUV2ZW50bz48dHBBbWI+MzwvdHBBbWI+PHByb2NFbWk+MTwvcHJvY0VtaT48dmVyUHJvYz48L3ZlclByb2M+PC9pZGVFdmVudG8+PGlkZUVtcHJlZ2Fkb3I+PHRwSW5zYz4xPC90cEluc2M+PG5ySW5zYz41MzExMzc5MTAwMDEyMjwvbnJJbnNjPjwvaWRlRW1wcmVnYWRvcj48aW5mb1J1YnJpY2E+PGFsdGVyYWNhbz48aWRlUnVicmljYT48Y29kUnVicj45OTg8L2NvZFJ1YnI+PGluaVZhbGlkPjIwMTYtMDM8L2luaVZhbGlkPjwvaWRlUnVicmljYT48ZGFkb3NSdWJyaWNhPjxkc2NSdWJyPkJBU0UgUEVOU0FPIFBHVE88L2RzY1J1YnI+PG5hdFJ1YnI+OTk4OTwvbmF0UnVicj48dHBSdWJyPjM8L3RwUnVicj48Y29kSW5jQ1A+MDA8L2NvZEluY0NQPjxjb2RJbmNJUlJGPjAwPC9jb2RJbmNJUlJGPjxjb2RJbmNGR1RTPjAwPC9jb2RJbmNGR1RTPjxjb2RJbmNTSU5EPjAwPC9jb2RJbmNTSU5EPjxyZXBEU1I+TjwvcmVwRFNSPjxyZXAxMz5OPC9yZXAxMz48cmVwRmVyaWFzPk48L3JlcEZlcmlhcz48cmVwUmVzYz5OPC9yZXBSZXNjPjwvZGFkb3NSdWJyaWNhPjwvYWx0ZXJhY2FvPjwvaW5mb1J1YnJpY2E+PC9ldnRUYWJSdWJyaWNhPjwvZVNvY2lhbD4=", "integrationDate" : "20161210", "integrationTime": "14:15:22", "erpowner" : "DATASUL" }, {"sourceBranch" : "0100", "messageType" : "2", "messageSequential" : "001", "registryType" : "S-21002200", "registryKey" : "KEYYZE7878RE4854545454998598576", "integrationMessage": "PGVTb2NpYWw+PGV2dENhZEluaWNpYWwgSWQ9J0lEMTUzMTEzNzkxMDAwMDAwMjAxNjEyMDkxNDU5NTQwMDAwMSc+PGlkZUV2ZW50bz48aW5kUmV0aWY+MTwvaW5kUmV0aWY+PG5yUmVjaWJvPjwvbnJSZWNpYm8+PHRwQW1iPjM8L3RwQW1iPjxwcm9jRW1pPjE8L3Byb2NFbWk+PHZlclByb2M+MS4wPC92ZXJQcm9jPjwvaWRlRXZlbnRvPjxpZGVFbXByZWdhZG9yPjx0cEluc2M+MTwvdHBJbnNjPjxuckluc2M+NTMxMTM3OTE8L25ySW5zYz48L2lkZUVtcHJlZ2Fkb3I+PHRyYWJhbGhhZG9yPjxjcGZUcmFiPjMyMDA5MDM3ODQ2PC9jcGZUcmFiPjxuaXNUcmFiPjEyMjAzNjcxODQ0PC9uaXNUcmFiPjxubVRyYWI+IEdUIFhNQlBFUkhVSlpOQ1FGU0lWTEFPRDwvbm1UcmFiPjxzZXhvPk08L3NleG8+PHJhY2FDb3I+MTwvcmFjYUNvcj48ZXN0Q2l2PjI8L2VzdENpdj48Z3JhdUluc3RyPjwvZ3JhdUluc3RyPjxuYXNjaW1lbnRvPjxkdE5hc2N0bz4xOTc2LTA0LTEzPC9kdE5hc2N0bz48Y29kTXVuaWM+MTIwMDEwNTwvY29kTXVuaWM+PHVmPlNQPC91Zj48cGFpc05hc2N0bz4wMTM8L3BhaXNOYXNjdG8+PHBhaXNOYWM+MDEzPC9wYWlzTmFjPjxubU1hZT5ORVVTQSBDQVJWQUxITyBORVZFUzwvbm1NYWU+PG5tUGFpPkpPU0UgUkVZTkFMRE8gQ1JFU1BPIE5FVkVTPC9ubVBhaT48L25hc2NpbWVudG8+PGRvY3VtZW50b3M+PENUUFM+PG5yQ3Rwcz4wMDAzNTgwMDwvbnJDdHBzPjxzZXJpZUN0cHM+MDAwNzM8L3NlcmllQ3Rwcz48dWZDdHBzPlNQPC91ZkN0cHM+PC9DVFBTPjxSRz48bnJSZz4xNi43MjEuMDMwPC9uclJnPjxvcmdhb0VtaXNzb3I+U1NQPC9vcmdhb0VtaXNzb3I+PGR0RXhwZWQ+MTk4Mi0wMy0wMjwvZHRFeHBlZD48L1JHPjxDTkg+PG5yUmVnQ25oPjAwMDAwMDAwMDA8L25yUmVnQ25oPjx1ZkNuaD48L3VmQ25oPjxkdFZhbGlkPjwvZHRWYWxpZD48Y2F0ZWdvcmlhQ25oPjwvY2F0ZWdvcmlhQ25oPjwvQ05IPjwvZG9jdW1lbnRvcz48ZW5kZXJlY28+PGV4dGVyaW9yPjxwYWlzUmVzaWQ+MDEzPC9wYWlzUmVzaWQ+PGRzY0xvZ3JhZD5BTEJBPC9kc2NMb2dyYWQ+PG5yTG9ncmFkPjE0NDQ8L25yTG9ncmFkPjxiYWlycm8+UFEuIEpBQkFRVUFSQTwvYmFpcnJvPjxubUNpZD5TQU4gTFVJWjwvbm1DaWQ+PGNvZFBvc3RhbD4wNDM0NjAwMDwvY29kUG9zdGFsPjwvZXh0ZXJpb3I+PC9lbmRlcmVjbz48aW5mb0RlZmljaWVuY2lhPjxkZWZGaXNpY2E+TjwvZGVmRmlzaWNhPjxkZWZWaXN1YWw+TjwvZGVmVmlzdWFsPjxkZWZBdWRpdGl2YT5OPC9kZWZBdWRpdGl2YT48ZGVmTWVudGFsPk48L2RlZk1lbnRhbD48ZGVmSW50ZWxlY3R1YWw+TjwvZGVmSW50ZWxlY3R1YWw+PHJlYWJSZWFkYXA+TjwvcmVhYlJlYWRhcD48L2luZm9EZWZpY2llbmNpYT48YXBvc2VudGFkb3JpYT48dHJhYkFwb3NlbnQ+TjwvdHJhYkFwb3NlbnQ+PC9hcG9zZW50YWRvcmlhPjxjb250YXRvPjxmb25lUHJpbmM+MDAxMzQ3MzU1NTUgLzwvZm9uZVByaW5jPjxmb25lQWx0ZXJuYXQ+MDExNzg5Nzk4Nzk4PC9mb25lQWx0ZXJuYXQ+PGVtYWlsQWx0ZXJuYXQ+UkVZTkFMRE9ASE9UTUFJTC5DT008L2VtYWlsQWx0ZXJuYXQ+PC9jb250YXRvPjwvdHJhYmFsaGFkb3I+PHZpbmN1bG8+PG1hdHJpY3VsYT4wMDAwMDAwMDAwMDAwMDAwMDAwNzwvbWF0cmljdWxhPjx0cFJlZ1RyYWI+MTwvdHBSZWdUcmFiPjx0cFJlZ1ByZXY+MTwvdHBSZWdQcmV2PjxpbmZvUmVnaW1lVHJhYj48L2luZm9SZWdpbWVUcmFiPjxpbmZvQ29udHJhdG8+PGNvZENhdGVnPjMwMjwvY29kQ2F0ZWc+PHJlbXVuZXJhY2FvPjx2clNhbEZ4PjEwMDAuMDA8L3ZyU2FsRng+PHVuZFNhbEZpeG8+NTwvdW5kU2FsRml4bz48L3JlbXVuZXJhY2FvPjxkdXJhY2FvPjx0cENvbnRyPjE8L3RwQ29udHI+PC9kdXJhY2FvPjxsb2NhbFRyYWJhbGhvPjwvbG9jYWxUcmFiYWxobz48L2luZm9Db250cmF0bz48L3ZpbmN1bG8+PC9ldnRDYWRJbmljaWFsPjwvZVNvY2lhbD4=", "integrationDate" : "", "integrationTime" : "", "registryPriority" : "0", } ] } | ||||||
Bloco de código | ||||||
| ||||||
{ "ticketCode" "integrationQueue" : "WIO97531236547897893636552414523631", "erpowner" : "DATASUL", "registryPredecessor" : "KEYIO7878874854545454998598525", "transferBranch" : "0200" } ] } |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "ticketCode": "WIO9753123654789789363655241452363", "registryKey": [ "registryKey": [ { "key": "KEYIO7878874854545454998598525", "success": true }, { "key": "KEYYZE7878RE4854545454998598576", "success": true } ], "keyAmount": 2 } |
GET
Descrição do Método: O método GET retorna os status dos registros integrados de acordo com os parâmetros (atributos) enviados na URL.
A Consulta pode combinar parâmetros utilizando a sintaxe “Query String” conforme exemplo abaixo:
http://172.16.31.214:8085/rest/wstafst2?ticketCode=F95975312365478978936365524145236352&RegistryKey=KEYQWE7878RE4854545454998598571&startRecNo=0
Parâmetro | Descrição | Obrigatório | |
---|---|---|---|
ticketCode | TAFTICKET | OC | |
registryKey | TAFKEY | OC | |
startRecNo | RecNo inicial para consulta | O | |
searchMode | Filtro para busca | N | |
sourceBranch | Filial do ERP Emissor | N | O* |
queryElements | Habilita Consulta no TSS | N | |
lotQuantity | Limita a quantidade de registros retornados | ||
returnRetResponse | Retorna XML do Governo |
- ticketCode - ticketCode – Código do TAFTICKET, Obrigatório caso registryKey não seja informado.
- registryKey – - Código do TAFKEY, Obrigatório caso ticketCode não seja informado.
- startRecNo - Numero do RecNo Inicial a ser considerado na consulta.
Observação : O Tamanho máximo do Response é 850 kB ou 500 registros, quando a mensagem chega neste valor é realizado um retorno contendo os registros que já foram incrementados na resposta. O Controle dos itens restantes é feito através do lastRecNo que informa o RecNo do ultimo registro que fez parte da mensagem anterior (respeitando a chave), caso o mesmo seja diferente de maxRecNo é por que existem itens a serem retornados, caso o contrario a consulta está completa.
- searchMode – - Modo de pesquisa, quando não informado o response retorna todos os TAFKEYs relacionados a busca, quando igual a 1 retorna a última ocorrência do TAFKEY, quando igual a 2 retorna a última ocorrência válida do TAFKEY. Este parâmetro é útil quando o mesmo TAFKEY é enviado em vários TAFTICKET diferentes..
- Obs: Esta funcionalidade só deve ser utilizada quando quando a consulta realizada for somente por TAFKEY(registryKey), caso seja utilizada na consulta utilizando o TAFTICKET(ticketCode) dependendo do banco de dados o retorno será o ultimo registro valido do Lote.
- sourceBranch sourceBranch - Código Identificador da filial do ERP emissor . (Em Implementação)
Estrutura da Resposta do método GET (Response):
- - *Não há uma validação de obrigatoriedade no retorno da requisição por conta do legado.
- queryElements - Determina se o método deve retornar os erros dos registros com statusCode igual a 3 (Erros retornados pelo RET e gravados no TSS), o retorno será atribuído no grupo streamingErrors. Quando a tag não é informada os erros são retornados por Default. Valores validos: 0 - Desabilita, 1 - Habilita.
- lotQuantity - Limita a quantidade de registros a serem retornados na requisição. O tamanho da mensagem não poderá ultrapassar 850Kb, caso isto aconteça será realizado um retorno contendo os registros que já foram incrementados na resposta.
- returnRetResponse - Determina se deve retornar o XML autorizado no governo para os eventos transmitidos(XML retornado pelo RET e gravado no TSS). Valores validos: False - não retorna, True - retorna XML.
Estrutura da Resposta do método GET (Response):
Atributo | Pai | Nivel | Ocorrência | Formato |
---|---|---|---|---|
type | - | 1 | 1 | - |
code | - | 1 | 1:N | String(36-100) |
Items | - | 1 | 1 | - |
Atributo | Pai | Nivel | Ocorrência | Formato |
type | - | 1 | 1 | - |
code | - | 1 | 1:N | String(36-100) |
Items | - | 1 | 1 | - |
success | Items | 2 | 1 | boolean(true : false) |
proccessed | Items | 2 | 1 | boolean(true : false) |
description | Items | 2 | 1 | String(100) |
registryKey | Items | 2 | 0:1 | String(100) |
ticketCode | Items | 2 | 0:1 | String(36) |
errorCode | Items | 2 | 0:1 | String(6) |
errorDescription | Items | 2 | 0:1 | String(60) |
errorDetail | Items | 2 | 0:1 | String(220) |
statusCode | Items | 2 | 0:1 | String(1) |
statusDescription | Items | 2 | 0:1 | String(25) |
active | Items | 2 | 0:1 | boolean(true : false) |
registryPriorityreceiptNumber | Items | 2 | 0:1 | String(144) |
integrationQueuedeleteType | Items | 2 | 0:1 | String(1) |
lastRecNoregistryPriority | -Items | 12 | 0:1 | IntString(99991) |
maxRecNointegrationQueue | -Items | 12 | 0:1 | IntString(9999)1) |
streamingErrors | Items | 2 | 0:1 | - |
streamingErrorCode | streamingErrors | 3 | 0:1 | String(6) |
streamingErrorDetail | streamingErrors | 3 | 0:1 | String(220) |
xmlRetResponse | Items | 2 | 0:1 | String(999) |
lastRecNo | - | 1 | 1 | Int(9999) |
maxRecNo | - | 1 | 1 | Int(9999) |
- type – type – Determina o agrupamento do retorno que pode ser por ticketCode (TAFTICKET) ou registryKey (TAFKEY), o agrupamento depende dos parâmetros enviados no request, quando o registryKey é informado e o ticketCode omitido, o retorno será por registryKey caso contrário por ticketCode.
- code – Código do registro indicado no atributo type.
- items – Itens do response.
- success – informa que o envio do registro pelo método POST foi realizado com sucesso.
- proccessed – Informa se o registro foi processado (Job2) e integrado com sucesso no seu respectivo cadastro.
- description – Descrição do status atual do registro.
- registryKey – código do TAFKEY, esse atributo somente é exibido quando type for igual a ticketCode.
- ticketCode – código do TAFTICKET, esse atributo somente é exibido quando type for igual a registryKey.
- errorCode – Código do erro contido no campo TAFCODERR na tabela TAFXERP, atributo exibido somente quando proccessed for igual a false.
- errorDescription – Descrição do errorCode, atributo exibido somente quando proccessed for igual a false.
- errorDetail – Detalhes do erro, alguns tipos de erros possuem detalhes e são armazenados no campo TAFERR na tabela TAFXERP, atributo exibido somente quando proccessed for igual a false.
- statusCode – Status do registro no TAF, atributo exibido somente quando proccessed for igual a true.
- statusDescription – Descrição do status no TAF, atributo exibido somente quando proccessed for igual a true.
- active – Informa se o registro está ativo no TAF, atributo exibido somente quando proccessed for igual a true.
- receiptNumber - Recibo de autorização do registro no governo.
- deleteType - Status da exclusão. Retorna 1 caso o evento excluído esteja transmitido, e 0 caso não esteja transmitido. O atributo será retornado somente para os eventos de excluão através do S-3000.
- registryPriority: Retornar registryPriority: Retornar a prioridade definida para o registro, atributo exibido somente quando proccessed for igual a false.
- integrationQueue: Retorna o status de fila do registro. Retorna branco quando o registro não foi definido para integração utilizando fila de processamento (atributo integrationQueue do método POST), retorna 'F' quando o registro foi retornado para a fila de processamento ou 'R' quando o erro da integração é impeditivo e o registro foi rejeitado pelo TAF. Atributo exibido somente quando proccessed for igual a false.
- lastRecNo - Numero do RecNo do ultimo registro retornado na requisição.
- maxRecNo - Informa o numero do RecNo do ultimo registro relacionado a consulta, deve ser utilizado juntamente com o lastRecNo para controlar a paginação e garantir o retorno de todos os registros.
Exemplos de requisição utilizando o método GET:
- Consulta pelo ticketCode:
- streamingErrors – Agrupa todos os erros de transmissão retornados do Governo para o TAF. Os erros são listados por streamingErrorCode e streamingErrorDetail.
- xmlRetResponse - XML de retorno do governo em sua integralidade (sem nenhuma edição) em base 64.
- streamingErrorCode – Código do erro retornado pelo Governo para o TAF, após transmissão do registro.
- streamingErrorDetail – Descrição do erro retornado pelo Governo para o TAF, após transmissão do registro.
Exemplos de requisição utilizando o método GET:
- Consulta pelo ticketCode:
Request:
http://172.16.
Request:
http://172.16.31.214:8085/rest/wstafst2?sourceBranch=01&ticketCode=WIO9753123654789789363655241452363&startRecNo=0
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "type": "ticketCode", "code": "WIO9753123654789789363655241452363", "items": [ { "success": true, "proccessed": false, "description": "Aguardando Processamento.", "registryKey": "KEYIO7878874854545454998598525", "errorCode": "", "errorDescription": "", "errorDetail": "", }, "receiptNumber":"" }, { "success": true, "proccessed": false, "description": "Aguardando Processamento.", "registryKey": "KEYYZE7878RE4854545454998598576", "errorCode": "", "errorDescription": "", "errorDetail": "", "receiptNumber":"" } ], "lastRecNo": 82, "maxRecNo": 82 } |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "type": "ticketCode", "code": "WIO9753123654789789363655241452363", "items": [ { "success": true, "proccessed": false, "description": "Registro Inconsistente.", "registryKey": "KEYIO7878874854545454998598525", "errorCode": "000007", "errorDescription": "A operacao solicitada no XML esta em desacordo com o cenario do registro na base do TAF", "errorDetail": "", "receiptNumber":"" }, { "success": true, "proccessed": true, "description": "Registro Processado.", "registryKey": "KEYYZE7878RE4854545454998598576", "statusCode": " ", "statusDescription": "Registro Integrado", "active": true, } ], "lastRecNo": 82, "maxRecNo": 82 } |
Observação: O exemplo acima contem os 2 tipos de retorno possíveis para um TAFKEY, o atributo proccessed define se vão ser apresentados os atributos de Erro ou de Sucesso conforme descrito acima na tabela de estrutura da resposta do método GET.
- Consulta pelo ticketCode + registryKey:
Request:
http://172.16.31.214:8085/rest/wstafst2?ticketCode=WIO9753123654789789363655241452363&RegistryKey=KEYYZE7878RE4854545454998598576&startRecNo=0
language | js |
---|---|
theme | Eclipse |
title | Response: |
"receiptNumber":"2.2.558716721752812458585" }, { "success": true, "proccessed": true, "description": "Registro Processado.", "registryKey": "KEYYZE7878RE4854545454998598589", "statusCode": "", "statusDescription": "Registro Integrado", "active": false, " |
receiptNumber": |
"", " |
deleteType": |
"0" |
} ], "lastRecNo": |
82, "maxRecNo": |
82 } |
title | Atenção! |
---|
Observação: O exemplo acima contem os 2 tipos de retorno possíveis para um TAFKEY, o atributo proccessed define se vão ser apresentados os atributos de Erro ou de Sucesso conforme descrito acima na tabela de estrutura da resposta do método GET.
- Consulta pelo ticketCode + registryKey:
Request:
http://172.16.31.214:8085/rest/wstafst2?registryKeyticketCode=WIO9753123654789789363655241452363&RegistryKey=KEYYZE7878RE4854545454998598576&startRecNo=0
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "type": "registryKeyticketCode", "code": "KEYYZE7878RE4854545454998598576WIO9753123654789789363655241452363", "items": [ { "success": true, "proccessed": false, "description": "Aguardando Processamento do Job2.", "ticketCoderegistryKey": "WIO9753123654789789363655241452363KEYYZE7878RE4854545454998598576", "errorCode": "", "errorDescription": "", "errorDetail": "", "receiptNumber":"" } ], "lastRecNo": 8081, "maxRecNo": 8081 } |
Controle de Paginação:
Quando o retorno de uma requisição ultrapassa o valor de 850 Kb a mensagem de resposta é "quebrada" e retornada com o conteúdo até então incrementado, exemplo:
Aviso | ||
---|---|---|
| ||
Quando a consulta for por ticketCode + registryKey o retorno será agrupado por ticketCode. |
- Consulta pelo registryKey:
Request:
http://172.16.31.214:8085/rest/wstafst2?registryKey=KEYYZE7878RE4854545454998598576&startRecNo=0
Bloco de código | ||||
---|---|---|---|---|
Bloco de código | ||||
| ||||
| ||||
{ "type": "ticketCoderegistryKey", "code": "WIO9753123654789789363655241452363KEYYZE7878RE4854545454998598576", "items": [ { "success": true, "proccessed": false, "description": "Aguardando Processamento do Job2.", "registryKeyticketCode": "KEYIO7878874854545454998598525WIO9753123654789789363655241452363", "errorCode": "", "errorDescription": "", "errorDetail": "" }, * * * {several items} * * * { "successreceiptNumber": true, "proccessed": false, } "description": "Aguardando Processamento"], "registryKeylastRecNo": "KEYQIU7878RE4854545454998598544"80, "errorCodemaxRecNo": 80 } |
Controle de Paginação:
Quando o retorno de uma requisição ultrapassa o valor de 850 Kb a mensagem de resposta é "quebrada" e retornada com o conteúdo até então incrementado, exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "type": "ticketCode", "code"", "errorDescription": "WIO9753123654789789363655241452363", "errorDetailitems": ""[ }{ ], "lastRecNosuccess": 150true, "maxRecNoproccessed": 322 } |
No exemplo acima a consulta retornou até o registro 150, sendo que o registro com maior RecNo pertencente a consulta é o 322, isso não quer dizer que foram retornados 150 registros e que faltam 172, o RecNo apenas informa a sequencia do registro na tabela TAFST2 porém o lastRecNo menor que o maxRecNo indica que ainda existem registro a serem retornados para a chave requisitada. Para o retorno dos demais registros deve-se realizar uma nova requisição com o startRecNo igual a lastRecNo + 1, este procedimento deve ser adotado até que o lastRecNo seja igual ao maxRecNo conforme exemplo abaixo:
Request:
http://172.16.31.214:8085/rest/wstafst2?ticketCode=WIO9753123654789789363655241452363&startRecNo=151
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "type": "ticketCode", "code": "WIO9753123654789789363655241452363", "items": [false, "description": "Aguardando Processamento", "registryKey": "KEYIO7878874854545454998598525", "errorCode": "", "errorDescription": "", "errorDetail": "", "receiptNumber":"" }, * * * {several items} * * * { "success": true, "proccessed": false, "description": "Aguardando Processamento", "registryKey": "KEYIO7878874854545454998598888KEYQIU7878RE4854545454998598544", "errorCode": "", "errorDescription": "", "errorDetail": "", }, * * * {several items} * * * { "success": true, "proccessed": false, "description": "Aguardando Processamento", "registryKey": "KEYQIU7878RE4854545454998598987", "errorCode": "", "errorDescription": "", "errorDetail": "" } ], "lastRecNo": 322, "maxRecNo": 322 } |
DELETE
Descrição do Método: O método DELETE permite excluir toda a cadeia de integração de um TAFTICKET; Um ticket submetido a exclusão tem seus TAFKEYS avaliados, rastreados e excluídos, desde a sua inclusão na TAFST2 e TAFXERP até o cadastro no TAF caso já tenha ocorrido o Processamento.
Estrutura da mensagem enviada no DELETE ( "receiptNumber":""
}
],
"lastRecNo": 150,
"maxRecNo": 322
} |
No exemplo acima a consulta retornou até o registro 150, sendo que o registro com maior RecNo pertencente a consulta é o 322, isso não quer dizer que foram retornados 150 registros e que faltam 172, o RecNo apenas informa a sequencia do registro na tabela TAFST2 porém o lastRecNo menor que o maxRecNo indica que ainda existem registro a serem retornados para a chave requisitada. Para o retorno dos demais registros deve-se realizar uma nova requisição com o startRecNo igual a lastRecNo + 1, este procedimento deve ser adotado até que o lastRecNo seja igual ao maxRecNo conforme exemplo abaixo:
Request:
http://172.16.31.214:8085/rest/wstafst2?ticketCode=WIO9753123654789789363655241452363&startRecNo=151
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"type": "ticketCode",
"code": "WIO9753123654789789363655241452363",
"items": [
{
"success": true,
"proccessed": false,
"description": "Aguardando Processamento",
"registryKey": "KEYIO7878874854545454998598888",
"errorCode": "",
"errorDescription": "",
"errorDetail": "",
"receiptNumber":""
},
*
*
*
{several items}
*
*
*
{
"success": true,
"proccessed": false,
"description": "Aguardando Processamento",
"registryKey": "KEYQIU7878RE4854545454998598987",
"errorCode": "",
"errorDescription": "",
"errorDetail": "",
"receiptNumber":""
}
],
"lastRecNo": 322,
"maxRecNo": 322
} |
DELETE
Descrição do Método: O método DELETE permite excluir toda a cadeia de integração de um TAFTICKET; Um ticket submetido a exclusão tem seus TAFKEYS avaliados, rastreados e excluídos, desde a sua inclusão na TAFST2 e TAFXERP até o cadastro no TAF caso já tenha ocorrido o Processamento.
Estrutura da mensagem enviada no DELETE (Request):
Request:
http://172.16.31.214:8085/rest/wstafst2?sourceBranch=T1D MG 01
Parâmetro | Descrição | Obrigatório |
---|---|---|
sourceBranch | TAFFIL | OC |
- O Parâmetro sourceBranch deve ser enviado como parâmetro da requisição (QueryParam) para identificar qual grupo de empresas a filial pertence, na ausência deste parâmetro o sistema irá procurar a mensagem a ser excluída na primeira filial configurada na chave PrepareIn na seção TAF_CFGJOB do arquivo appserver.ini do serviço REST.
Aviso |
---|
A não utilização deste parâmetro em ambientes com mais de 1 grupo de empresas pode gerar exclusões indevidas no grupo de empresas utilizado pelo sistema seguindo a regra destacada acima. |
Estrutura do corpo da Mensagem (Body - Request):
Atributo | Pai | Nivel | Ocorrência | Formato |
deleteTicket | - | 1 | 1 | - |
ticketCode | deleteTicket | 2 | 1:N | String(36) |
Estrutura da mensagem de retorno do método DELETE (Response):
Atributo | Pai | Nivel | Ocorrência | Formato |
success | - | 1 | 1 | Lógico(true : false) |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"deleteTicket" : [{"ticketCode":"WIO9753123654789789363655241452363"}
,{"ticketCode":"UIO9753123654789789363655241452363"}
,{"ticketCode":"F95975312365478978936365524145236352"}
,{"ticketCode":"ZTF059753123654789789363655241452363"}
,{"ticketCode":"AF0597531236547897893636552414523635"}
]
} |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{"success": true} |
Exemplo de Consumo do Serviço
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#Include 'Protheus.ch' Function WSCTAFST2(cMetodo) Local oRestClient := FWRest():New("http://172.16.31.214:8085") Local oObj := Nil Local aHeader := {} Local cBody := {} Local lContinue := .T. Local nPag := 0 Local nRec := 0 // inclui o campo Authorization no formato <usuario>:<senha> na base64 Aadd(aHeader, "Authorization: Basic " + Encode64("usertotvs:totvs123456")) If cMetodo == 'POST' oRestClient:setPath("/rest/wstafst2/") cBody := '{' cBody += '"ticketCode": "WIO9753123654789789363655241452363",' cBody += '"lote": [' cBody += '{' cBody += '"sourceBranch": "0100",' cBody += '"messageType": "2",'' cBody += '"messageSequential": "001",' cBody += '"registryType": "S-1010",' cBody += '"registryKey": "KEYIO7878874854545454998598525",' cBody += '"integrationMessage": "PGVTb2NpYWw+PGV2dFRhYlJ1YnJpY2EgaWQ9J1MtMTAxMDEzMDUyMDE2MTU0MDE2JyB2ZXJzYW89JzEuMSc+PGlkZUV2ZW50bz48dHBBbWI+MzwvdHBBbWI+PHByb2NFbWk+MTwvcHJvY0VtaT48dmVyUHJvYz48L3ZlclByb2M+PC9pZGVFdmVudG8+PGlkZUVtcHJlZ2Fkb3I+PHRwSW5zYz4xPC90cEluc2M+PG5ySW5zYz41Mz' cBody += 'ExMzc5MTAwMDEyMjwvbnJJbnNjPjwvaWRlRW1wcmVnYWRvcj48aW5mb1J1YnJpY2E+PGFsdGVyYWNhbz48aWRlUnVicmljYT48Y29kUnVicj45OTg8L2NvZFJ1YnI+PGluaVZhbGlkPjIwMTYtMDM8L2luaVZhbGlkPjwvaWRlUnVicmljYT48ZGFkb3NSdWJyaWNhPjxkc2NSdWJyPkJBU0UgUEVOU0FPIFBHVE88L2RzY1J1YnI+PG5hdFJ1YnI+OTk4OTwvbmF' cBody += '0UnVicj48dHBSdWJyPjM8L3RwUnVicj48Y29kSW5jQ1A+MDA8L2NvZEluY0NQPjxjb2RJbmNJUlJGPjAwPC9jb2RJbmNJUlJGPjxjb2RJbmNGR1RTPjAwPC9jb2RJbmNGR1RTPjxjb2RJbmNTSU5EPjAwPC9jb2RJbmNTSU5EPjxyZXBEU1I+TjwvcmVwRFNSPjxyZXAxMz5OPC9yZXAxMz48cmVwRmVyaWFzPk48L3JlcEZlcmlhcz48cmVwUmVzYz5OPC9yZXBS' cBody += 'ZXNjPjwvZGFkb3NSdWJyaWNhPjwvYWx0ZXJhY2FvPjwvaW5mb1J1YnJpY2E+PC9ldnRUYWJSdWJyaWNhPjwvZVNvY2lhbD4=",' cBody += '"integrationDate": "20161005",' cBody += '"integrationTime": "14:15:36"' cBody += '},' cBody += '{' cBody += '"sourceBranch": "0100",' cBody += '"messageType": "2",' cBody += '"messageSequential": "001",' cBody += '"registryType": "S-2100",' cBody += '"registryKey": "KEYYZE7878RE4854545454998598576",' cBody += '"integrationMessage": "PGVTb2NpYWw+PGV2dENhZEluaWNpYWwgSWQ9J0lEMTUzMTEzNzkxMDAwMDAwMjAxNjEyMDkxNDU5NTQwMDAwMSc+PGlkZUV2ZW50bz48aW5kUmV0aWY+MTwvaW5kUmV0aWY+PG5yUmVjaWJvPjwvbnJSZWNpYm8+PHRwQW1iPjM8L3RwQW1iPjxwcm9jRW1pPjE8L3Byb2NFbWk+PHZlclByb2M+MS4wPC92ZXJQcm9jPjwvaWRlRXZ' cBody += 'lbnRvPjxpZGVFbXByZWdhZG9yPjx0cEluc2M+MTwvdHBJbnNjPjxuckluc2M+NTMxMTM3OTE8L25ySW5zYz48L2lkZUVtcHJlZ2Fkb3I+PHRyYWJhbGhhZG9yPjxjcGZUcmFiPjMyMDA5MDM3ODQ2PC9jcGZUcmFiPjxuaXNUcmFiPjEyMjAzNjcxODQ0PC9uaXNUcmFiPjxubVRyYWI+IEdUIFhNQlBFUkhVSlpOQ1FGU0lWTEFPRDwvbm1UcmFiPjxzZXhvPk08L' cBody += '3NleG8+PHJhY2FDb3I+MTwvcmFjYUNvcj48ZXN0Q2l2PjI8L2VzdENpdj48Z3JhdUluc3RyPjwvZ3JhdUluc3RyPjxuYXNjaW1lbnRvPjxkdE5hc2N0bz4xOTc2LTA0LTEzPC9kdE5hc2N0bz48Y29kTXVuaWM+MTIwMDEwNTwvY29kTXVuaWM+PHVmPlNQPC91Zj48cGFpc05hc2N0bz4wMTM8L3BhaXNOYXNjdG8+PHBhaXNOYWM+MDEzPC9wYWlzTmFjPjxubU1' cBody += 'hZT5ORVVTQSBDQVJWQUxITyBORVZFUzwvbm1NYWU+PG5tUGFpPkpPU0UgUkVZTkFMRE8gQ1JFU1BPIE5FVkVTPC9ubVBhaT48L25hc2NpbWVudG8+PGRvY3VtZW50b3M+PENUUFM+PG5yQ3Rwcz4wMDAzNTgwMDwvbnJDdHBzPjxzZXJpZUN0cHM+MDAwNzM8L3NlcmllQ3Rwcz48dWZDdHBzPlNQPC91ZkN0cHM+PC9DVFBTPjxSRz48bnJSZz4xNi43MjEuMDMwP' cBody += 'C9uclJnPjxvcmdhb0VtaXNzb3I+U1NQPC9vcmdhb0VtaXNzb3I+PGR0RXhwZWQ+MTk4Mi0wMy0wMjwvZHRFeHBlZD48L1JHPjxDTkg+PG5yUmVnQ25oPjAwMDAwMDAwMDA8L25yUmVnQ25oPjx1ZkNuaD48L3VmQ25oPjxkdFZhbGlkPjwvZHRWYWxpZD48Y2F0ZWdvcmlhQ25oPjwvY2F0ZWdvcmlhQ25oPjwvQ05IPjwvZG9jdW1lbnRvcz48ZW5kZXJlY28+PGV' cBody += '4dGVyaW9yPjxwYWlzUmVzaWQ+MDEzPC9wYWlzUmVzaWQ+PGRzY0xvZ3JhZD5BTEJBPC9kc2NMb2dyYWQ+PG5yTG9ncmFkPjE0NDQ8L25yTG9ncmFkPjxiYWlycm8+UFEuIEpBQkFRVUFSQTwvYmFpcnJvPjxubUNpZD5TQU4gTFVJWjwvbm1DaWQ+PGNvZFBvc3RhbD4wNDM0NjAwMDwvY29kUG9zdGFsPjwvZXh0ZXJpb3I+PC9lbmRlcmVjbz48aW5mb0RlZmlja' cBody += 'WVuY2lhPjxkZWZGaXNpY2E+TjwvZGVmRmlzaWNhPjxkZWZWaXN1YWw+TjwvZGVmVmlzdWFsPjxkZWZBdWRpdGl2YT5OPC9kZWZBdWRpdGl2YT48ZGVmTWVudGFsPk48L2RlZk1lbnRhbD48ZGVmSW50ZWxlY3R1YWw+TjwvZGVmSW50ZWxlY3R1YWw+PHJlYWJSZWFkYXA+TjwvcmVhYlJlYWRhcD48L2luZm9EZWZpY2llbmNpYT48YXBvc2VudGFkb3JpYT48dHJ' cBody += 'hYkFwb3NlbnQ+TjwvdHJhYkFwb3NlbnQ+PC9hcG9zZW50YWRvcmlhPjxjb250YXRvPjxmb25lUHJpbmM+MDAxMzQ3MzU1NTUgLzwvZm9uZVByaW5jPjxmb25lQWx0ZXJuYXQ+MDExNzg5Nzk4Nzk4PC9mb25lQWx0ZXJuYXQ+PGVtYWlsQWx0ZXJuYXQ+UkVZTkFMRE9ASE9UTUFJTC5DT008L2VtYWlsQWx0ZXJuYXQ+PC9jb250YXRvPjwvdHJhYmFsaGFkb3I+P' cBody += 'HZpbmN1bG8+PG1hdHJpY3VsYT4wMDAwMDAwMDAwMDAwMDAwMDAwNzwvbWF0cmljdWxhPjx0cFJlZ1RyYWI+MTwvdHBSZWdUcmFiPjx0cFJlZ1ByZXY+MTwvdHBSZWdQcmV2PjxpbmZvUmVnaW1lVHJhYj48L2luZm9SZWdpbWVUcmFiPjxpbmZvQ29udHJhdG8+PGNvZENhdGVnPjMwMjwvY29kQ2F0ZWc+PHJlbXVuZXJhY2FvPjx2clNhbEZ4PjEwMDAuMDA8L3Z' cBody += 'yU2FsRng+PHVuZFNhbEZpeG8+NTwvdW5kU2FsRml4bz48L3JlbXVuZXJhY2FvPjxkdXJhY2FvPjx0cENvbnRyPjE8L3RwQ29udHI+PC9kdXJhY2FvPjxsb2NhbFRyYWJhbGhvPjwvbG9jYWxUcmFiYWxobz48L2luZm9Db250cmF0bz48L3ZpbmN1bG8+PC9ldnRDYWRJbmljaWFsPjwvZVNvY2lhbD4=",' cBody += '"integrationDate": "",' cBody += '"integrationTime": ""' cBody += '}]' cBody += '}' // define o conteúdo do body oRestClient:SetPostParams(cBody) If oRestClient:Post(aHeader) ConOut("POST", oRestClient:GetResult()) Else ConOut("POST", oRestClient:GetLastError()) EndIf ElseIf cMetodo == "GET" While lContinue nPag++ oRestClient:setPath("/rest/wstafst2?TicketCode=WIO9753123654789789363655241452363&startRecNo=" + AllTrim(Str(nRec))) If oRestClient:Get(aHeader) ConOut("Pag: " + AllTrim(Str(nPag))) ConOut("GET", oRestClient:GetResult()) If FWJsonDeserialize(oRestClient:GetResult(),@oObj) If oObj:lastRecNo == oObj:maxRecNo lContinue := .F. Else nRec := oObj:lastRecNo+1 EndIf EndIf oObj := Nil Else ConOut("GET", oRestClient:GetLastError()) lContinue := .F. EndIf End ConOut("------FIM------") ElseIf cMetodo == "DELETE" cBody := '{"deleteTicket" : [{"ticketCode":"WIO9753123654789789363655241452363"}' cBody += ',{"ticketCode":"UIO9753123654789789363655241452363"}]}' If oRestClient:Delete(aHeader,cBody) ConOut("DELETE", oRestClient:GetResult()) Else ConOut("DELETE", oRestClient:GetLastError()) EndIf Else ConOut("Método Inválido") EndIf FreeObj(oRestClient) Return |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
"errorCode": 101, "errorMessage": "obrigatorio o envio do parametro ticketCode ou registryKey" } |
Códigos De Erros De Validação:
- 800 – Campo não informado na estrutura do arquivo.
- 801 – Campo obrigatório não enviado.
- 802 – Campo com valor inválido.
803 – TAFFIL não encontrado no complemento de empresas.
Aviso title Atenção! No método POST caso o primeiro item do lote não esteja com o TAFFIL cadastrado no complemento de empresas o sistema irá rejeitar o lote inteiro, caso contrario é realizado uma avaliação item a item verificando se a filial é válida e se pertence ao mesmo grupo de empresas no TAF, neste caso é rejeitado somente os registros inválidos dentro do lote.
- 804 – Layout Inválido.
- 805 – Código de Prioridade inválido!
- 806 – Campo com erro na codificação ou criptografia
- 807 – Código de Fila inválido!
- 808 – Estrutura da tabela TAFST2 está desatualizada
- 809 - Não há configuração de empresas na chave PrepareIn seção TAF_CFGJOB
- 810 - Chave # de Identificação de filial não encontrada.
- 811 - Não foi possível identificar a filial # no corpo da mensagem.
- 812 - Código da Filial ERP # não pertence ao mesmo Grupo de Empresas no TAF considerando os registros integrados anteriormente neste lote.
- 813 - O TAFKEY # já existe na TAFST2 e encontra-se pendente de processamento ou em processamento.
- 814 - O Xml Contido no campo TAFMSG (integrationMessage) esta em desacordo com as versoes suportadas pelo TAF. Integracao da Versao 1.0 disponivel apenas para eventos SESMT
Legenda:
# - valor variável.
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "coderr": 803, "description": "O valor do campo sourceBranch (TAFFIL) não está no cadastro no complemento de empresas." } |
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "ticketCode": "WIO9753123654789789363655241452363", "registryKey": [ { "key": "KEYIO7878874854545454998598525", "success": false, "error": [ { "coderr": 801, "description": "Campo TAFFIL (sourceBranch) e Obrigatorio." }, { "coderr": 803, "description": "O valor do campo TAFFIL (sourceBranch) nao esta cadastro no complemento de empresas." } { "coderr": 805, "description": "Codigo de Prioridade invalido! Codigo enviado: '8'. Codigos validos: 0 - Urgente, 1 - Prioridade Critica, 2 - Prioridade Alta, 3 - Prioridade Media, 4 - Prioridade Baixa, 5 - Nao Prioritario" } ] }, { "key": "KEYYZE7878RE4854545454998598576", "success": true }, { "key": "KEYQWE7878RE4854545454998598571", "success": true }, { "key": "KEYQIU7878RE4854545454998598544", "success": true } ], "keyAmount": 4 } |
RESTFAULT*
- 701 - startRecno e ticketCode não informados no GET (é obrigatório que pelo menos 1 deles seja informado)
- 702 - Erro na criação/abertura da tabela TAFST2 ou TAFXERP
- 703 - O parâmetro searchMode deve ser preenchido com 1 ou 2.
- 704 - Arquivo vazio (Não foi enviado uma mensagem no body do POST)
- 705 - Erro ao realizar parser da mensagem (o arquivo enviado no Body não é um json válido)
Aviso | ||
---|---|---|
| ||
Apesar do código de erro iniciar com 7 o status HTTP de um request que submetido a RestFault é 500 - Erro Interno no Servidor. |
*Será liberado juntamente com o pacote de atualização e-Social 2.4.
cQry