Introdução
O ThinSync é o serviço do BIS que permite a comunicação entre terminais (aplicações externas ao servidor de aplicações) e BIS na Nuvem. Desenvolvido apenas com Java e Sockets (implementado em cima do BISSocket), pode ser usado para realizar chamadas e comunicar com o sistema sem a necessidade de utilizar bibliotecas RMI/JNDI ou outras mais complexas de integração.
Funcionamento
O lado servidor será "levantado" junto com o plugin. A partir deste momento o servidor já estará escutando a porta e aguardado conexão dos terminais.
A utilização é simples:
- Cria uma instância do BISModulesSocketClient, passe no construtor o host e a porta do servidor BISERP para que o cliente conecte-se;
- Chama os métodos passando os atributos desejados e aguarde pela resposta.
Protocolo entre BISThinSyncClient e BISThinSyncServer
Abaixo estão listados os comandos utilizados atualmente pelas duas classes para abstrair a comunicação. Para utilizar as classes não é necessário se familiarizar com o protocolo, apenas para manutenção e implementação das mesmas.
|
Chamada Pela Fachada
|
Quando o BISThinSyncServer fizer o repasse da chamada para o Core do BIS, deve-se sempre chamar a fachada de acesso. Para que o servidor de aplicações instancie as transações e o Interceptor da fachada possa fazer seu trabalho.
Uma chamada direta ao CRUD pode funcionar em alguns casos, mas com certeza desabilitará o BISLogger e falhará na verificação de segurança de acesso do usuário, as transações dos EJBs e outros serviços oferecidos pelo servidor de aplicação.
|
|
Métodos de Serviço do BISThinSync
serverTime
Recupera o horário do Servidor.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
SERVERTIME
|
PROPERTY_SERVERTIME_REQID
|
<Long> - Número qualquer para identificar a requisição. O mesmo valor é retornado na resposta.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_SERVERTIME
|
PROPERTY_SERVERTIME_TIME
|
<Long> System.currentTimeMillis() do servidor.
|
PROPERTY_SERVERTIME_REQID
|
<Long> Exatamente mesmo valor recebido na requisição, mesmo que null.
|
Métodos de Integração com o BISCore
getProperty
Busca no servidor uma propriedade do sistema.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
GETPROPERTY
|
PROPERTY_GETPROPERTY_PROPERTY
|
<String> - Propriedade a ser recuperada no servidor.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_GETPROPERTY_VALUE
|
String - Valor da propriedade do sistema, null caso a propriedade tenha o valor nulo ou não tenha sido encontrado.
|
PROPERTY_COMMAND
|
OK_GETPROPERTY
|
hasPermissionKey
Envia para o servidor a autenticação de um usuário e uma chave de segurança para saber se o usuário tem acesso para a chave passada. Note que, seguindo a funcionalidade do Kernel, o método lança exception caso a autenticação falhe, caso o usuário não tenha autorização o retorno será false.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
HASPERMISSIONKEY
|
PROPERTY_HASPERMISSIONKEY_USER
|
<String> - Login do usuário.
|
PROPERTY_HASPERMISSIONKEY_PASS
|
<String> - Senha do usuário.
|
PROPERTY_HASPERMISSIONKEY_ACCESSKEY
|
<String> - Chave de acesso para questionar.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_HASPERMISSIONKEY_RESPONSE
|
Boolean - True caso o usuário tenha acesso a chave, false caso contrário.
|
PROPERTY_COMMAND
|
OK_HASPERMISSIONKEY
|
postBISLog
Envia para o servidor um registro de LOG para ser salvo. Como não há como ter um controle de sincronia de objeto (um ID local como nos objetos do PDV), casa post gerará um objeto novo no servidor. Por isso é preciso controlar os posts pelo lado do cliente.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
POSTBISLOG
|
PROPERTY_POSTBISLOG_BISLOGOBJ
|
<BISLogVO> - Objeto completo com o registro de erro pronto para ser cadastrado no sistema.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_POSTBISLOG
|
notifyActiveSupport
Este método força o envio de uma mensage para o sistema de suporte ativo do BISERP.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
NOTIFYACTIVESUPPORT
|
PROPERTY_NOTIFYACTIVESUPPORT_MSG
|
<String> - Mensagem a ser enviada para o suporte.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_NOTIFYACTIVESUPPORT
|
findBISCertificateList
Busca uma lista de certificados do sistema.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDBISCERTIFICATELIST
|
PROPERTY_FINDBISCERTIFICATELIST_MO
|
<BISCertificateMO> - MO para filtrar os dados
|
PROPERTY_FINDBISCERTIFICATELISTLIST_ORDERBY
|
<BISOrderBy> - Objeto para organizar a lista retornada
|
PROPERTY_FINDBISCERTIFICATELIST_ATTRIBUTES
|
<String[]> Array de propriedades à serem populadas
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDBISCERTIFICATELIST
|
PROPERTY_FINDBISCERTIFICATELIST_LIST
|
<ArrayList<BISCertificateVO>> - Lista com os objetos solicitados
|
findCompanyList
Busca uma lista de empresas.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDCOMPANYLIST
|
PROPERTY_FINDCOMPANYLIST_MO
|
<CompanyMO> - MO para filtrar os dados
|
PROPERTY_FINDCOMPANYLIST_ORDERBY
|
<BISOrderBy> - Objeto para organizar a lista retornada
|
PROPERTY_FINDCOMPANYLIST_ATTRIBUTES
|
<String[]> Array de propriedades à serem populadas
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDCOMPANYLIST
|
PROPERTY_FINDCOMPANYLIST_LIST
|
<ArrayList<CompanyVO>> - Lista com os objetos solicitados
|
findUserList
Busca uma lista de usuários do sistema.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDUSERLIST
|
PROPERTY_FINDUSERLIST_MO
|
<UserMO> - MO para filtrar os dados
|
PROPERTY_FINDUSERLIST_ORDERBY
|
<BISOrderBy> - Objeto para organizar a lista retornada
|
PROPERTY_FINDUSERLIST_ATTRIBUTES
|
<String[]> Array de propriedades à serem populadas
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDUSERLIST
|
PROPERTY_FINDUSERLIST_LIST
|
<ArrayList<UserVO>> - Lista com os objetos solicitados
|
createNewTokenToUser
Solicita ao servidor que gere um novo token para o usuário passado.
Requsição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
CREATENEWTOKENTOUSER
|
PROPERTY_CREATENEWTOKENTOUSER_USER
|
<String> - Login do usuário
|
PROPERTY_CREATENEWTOKENTOUSER_PASS
|
<String> - Senha do usuário
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_CREATENEWTOKENTOUSER
|
PROPERTY_CREATENEWTOKENTOUSER_TOKEN
|
<String> - Token recém criado para o usuário.
|
Métodos de Integração com o BISModules
registerTerminal
Faz o registro do terminal no servidor do BIS. Necessário para que o BIS reconheça esse terminal e possa gerencia-lo adequadamente, como sincronizar dados, conhecer status, etc.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
REGISTERTERMINAL
|
PROPERTY_REGISTERTERMINAL_UNIQUEID
|
<String> - ID do terminal. String gerada que deve ser única par o terminal. Normalmente usado o macaddress da máquina por já ser uma númeração única.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_REGISTERTERMINAL
|
PROPERTY_REGISTERTERMINAL_SERVERID
|
<Long> - ID Gerado pelo servidor que passará a identificar o terminal no servidor
|
findPDVItemListToSync
Solicita do módulo PDV uma lista de itens. Esta lista terá apenas os itens alterados a partir da data passada. Método usado para sincronizar novos itens no terminal.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDPDVITEMLISTTOSYNC
|
PROPERTY_FINDPDVITEMLISTTOSYNC_COMPANYID
|
<Long> - ID da empresa usada no terminal
|
PROPERTY_FINDPDVITEMLISTTOSYNC_LASTSYNCDATE
|
<Long> - Última data sincronizada. Usada para retornar apenas os itens mais novos que esta data. Se for nulo, retornamos todos os itens.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDPDVITEMLISTTOSYNC
|
PROPERTY_FINDPDVITEMLISTTOSYNC_LIST
|
<ArrayList<PDVItemVO>> - Lista com os objetos solicitados
|
findPDVPropertiesListToSync
Solicita do módulo PDV uma lista das propriedades de configuração para o aplicativo BISPDV definidas para uma determinada empresa. Esta lista terá trará todas as propriedades com o prefixo "br.com.biserp.bismodules.pdv.pdvapp.centralconfig" e no sufixo o ID da empresa separado por um ".".
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDPDVPROPERTIESLISTTOSYNC
|
PROPERTY_FINDPDVPROPERTIESLISTTOSYNC_COMPANYID
|
<Long> - ID da empresa usada no terminal
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDPDVITEMLISTTOSYNC
|
PROPERTY_FINDPDVPROPERTIESLISTTOSYNC_LIST
|
<ArrayList<PropertyVO>> - Lista com os objetos solicitados
|
findFiscalIBPTRatiosListToSync
Solicita do módulo Fiscal uma lista dos ratios fornecida pelo IBPT usada para calcular o total de imposto aproximado pago no cupom. Esta lista terá apenas os objetos alterados a partir da data passada. Método usado para sincronizar novos objetos nos terminais.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDFISCALIBPTRATIOSLISTTOSYNC
|
PROPERTY_FINDFISCALIBPTRATIOSLISTTOSYNC_COMPANYID
|
<Long> - ID da empresa usada no temrinal
|
PROPERTY_FINDFISCALIBPTRATIOSLISTTOSYNC_LASTSYNCDATE
|
<Long> - Última data sincronizada. Usada para retornar apenas os objetos mais novos que esta data. Se for nulo, retornamos todos os objetos.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDFISCALIBPTRATIOSLISTTOSYNC
|
PROPERTY_FINDFISCALIBPTRATIOSLISTTOSYNC_LIST
|
<ArrayList<FiscalIBPTRatioVO>> - Lista com os objetos solicitados
|
findPDVPaymentListToSync
Solicita do módulo PDV uma lista de itens. Esta lista terá apenas os itens alterados a partir da data passada. Método usado para sincronizar novos itens no terminal.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDPDVPAYMENTLISTTOSYNC
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDPDVPAYMENTLISTTOSYNC
|
PROPERTY_FINDPDVPAYMENTLISTTOSYNC_LIST
|
<ArrayList<PDVPaymentVO>> - Lista com os objetos solicitados
|
findPDVContractListToSync
Solicita do módulo PDV uma lista de contratos (convênios) para venda no caixa.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDPDVCONTRACTLISTTOSYNC
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDPDVCONTRACTLISTTOSYNC
|
PROPERTY_FINDPDVCONTRACTLISTTOSYNC_LIST
|
<ArrayList<PDVContractVO>> - Lista com os objetos solicitados
|
findPDVTokenList
Solicita do módulo PDV uma lista dos tokens de sistema filtrados de acordo com o MO passado.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDPDVTOKENLIST
|
PROPERTY_FINDPDVTOKENLIST_MO
|
<PDVTokenMO> MO para filtrar a lista
|
PROPERTY_FINDPDVTOKENLIST_ORDERBY
|
<BISOrderBy> para organizar a lista
|
PROPERTY_FINDPDVTOKENLIST_ATTRIBUTE
|
<String[]> Atributos que devem ser populados nos objetos da lista.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDPDVTOKENLIST
|
PROPERTY_FINDPDVTOKENLIST_LIST
|
<ArrayList<PDVTokenVO>> - Lista com os objetos solicitados
|
lockPDVToken
Solicita do módulo PDV uma lista dos tokens de sistema filtrados de acordo com o MO passado.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
LOCKPDVTOKEN
|
PROPERTY_LOCKPDVTOKEN_TOKEN
|
<Long> Número do token a ser bloqueado
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_LOCKPDVTOKEN
|
PROPERTY_LOCKPDVTOKEN_OBJ
|
<PDVTokenVO> - Token bloqueado para edição
|
saveAndUnlockToken
Solicita do módulo PDV que salva uma comanda e a deixe desbloqueada para edição por outros terminais.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
SAVEANDUNLOCKTOKEN
|
PROPERTY_SAVEANDUNLOCKTOKEN_OBJ
|
<PDVTokenVO> Objeto representando o token a ser salvo e desbloqueado.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_SAVEANDUNLOCKTOKEN
|
unlockToken
Solicita do módulo PDV que desbloqueie uma comanda da edição.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
UNLOCKTOKEN
|
PROPERTY_UNLOCKTOKEN_TOKEN
|
<Long> Número do token a ser desbloqueado da edição.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_UNLOCKTOKEN
|
clearTokens
Solicita do módulo PDV que limpe e desbloqueie as comandas informadas.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
CLEARTOKENS
|
PROPERTY_CLEARTOKENS_TOKENS
|
<ArrayList<PDVTokenVO>> Coleção de comandas a serem limpas e desbloqueadas.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_CLEARTOKENS
|
syncPDVCheckoutVOList
Envia para o servidor uma lista de objetos PDVCheckoutVO para ser salvo. Esses objetos normalmente são criados nas aplicações de PDV e são salvos no servidor para ficarem centralizados.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
SYNCPDVCHECKOUTVOLIST
|
PROPERTY_SYNCPDVCHECKOUTVOLIST_SERVERID
|
<Long> Identificador do terminal - gerado quando a estação se resgistrou no servidor.
|
PROPERTY_SYNCPDVCHECKOUTVOLIST_LIST
|
<ArrayList<PDVCheckoutVO>> Coleção de checkouts para serem sincronizados com o servidor.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_SYNCPDVCHECKOUTVOLIST
|
syncPDVCupomVOList
Envia para o servidor uma lista de objetos PDVCheckoutVO para ser salvo. Esses objetos normalmente são criados nas aplicações de PDV e são salvos no servidor para ficarem centralizados.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
SYNCPDVCUPOMVOLIST
|
PROPERTY_SYNCPDVCUPOMVOLIST_SERVERID
|
<Long> Identificador do terminal - gerado quando a estação se resgistrou no servidor.
|
PROPERTY_SYNCPDVCUPOMVOLIST_LIST
|
<ArrayList<PDVCupomVO>> Coleção de cupons para serem sincronizados com o servidor.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_SYNCPDVCUPOMVOLIST
|
findPDVNFCeLastDocumentNumber
Solicita ao servidor que retorne o número do documento do último cupom emitido para uma determinada empresa e série da documento.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDPDVNFCELASTDOCUMENTNUMBER
|
PROPERTY_FINDPDVNFCELASTDOCUMENTNUMBER_COMPANYID
|
<Long> ID da empresa.
|
PROPERTY_FINDPDVNFCELASTDOCUMENTNUMBER_DOCSERIAL
|
<Integer> Número da série do documento desejado.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDPDVNFCELASTDOCUMENTNUMBER
|
PROPERTY_FINDPDVNFCELASTDOCUMENTNUMBER_DOCNUMBER
|
<Long> Número do último documento emitido para a empresa e na série solicitada.
|
findLocationCountryListToSync
Solicita ao servidor que retorne o cadastro de Países alterados recentemente para sincronização com outros sistemas externos.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDLOCATIONCOUNTRYLISTTOSYNC
|
PROPERTY_FINDLOCATIONCOUNTRYLISTTOSYNC_LASTSYNCDATE
|
<Date> Data da última sincronização.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDLOCATIONCOUNTRYLISTTOSYNC
|
PROPERTY_FINDLOCATIONCOUNTRYLISTTOSYNC_SYNCLIST
|
List<LocationCountryVO> Retorna uma lista com todos os LocationCountryVO cuja data de última alteração seja maior que a data recebida.
|
findLocationStateListToSync
Solicita ao servidor que retorne o cadastro de Estados alterados recentemente para sincronização com outros sistemas externos.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDLOCATIONSTATELISTTOSYNC
|
PROPERTY_FINDLOCATIONSTATELISTTOSYNC_IDCOUNTRY
|
<Long> ID do País que se deseja os estados.
Obrigamos o filtro de países para evitar que o excesso de dados em memória atrapalhe o funcionamento do BIS.
|
PROPERTY_FINDLOCATIONSTATELISTTOSYNC_LASTSYNCDATE
|
<Date> Data da última sincronização.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDLOCATIONSTATELISTTOSYNC
|
PROPERTY_FINDLOCATIONSTATELISTTOSYNC_SYNCLIST
|
List<LocationStateVO> Retorna uma lista com todos os LocationStateVO cuja data de última alteração seja maior que a data recebida.
|
findLocationCityListToSync
Solicita ao servidor que retorne o cadastro de Municípios alterados recentemente para sincronização com outros sistemas externos.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDLOCATIONCITYLISTTOSYNC
|
PROPERTY_FINDLOCATIONCITYLISTTOSYNC_IDSTATE
|
<Long> ID do Estado que se deseja os municípios.
Obrigamos o filtro de estados para evitar que o excesso de dados em memória atrapalhe o funcionamento do BIS.
|
PROPERTY_FINDLOCATIONCITYLISTTOSYNC_LASTSYNCDATE
|
<Date> Data da última sincronização.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDLOCATIONCITYLISTTOSYNC
|
PROPERTY_FINDLOCATIONCITYLISTTOSYNC_SYNCLIST
|
List<LocationCityVO> Retorna uma lista com todos os LocationCityVO cuja data de última alteração seja maior que a data recebida.
|
findLocationAddressListToSync
Solicita ao servidor que retorne o cadastro de Municípios alterados recentemente para sincronização com outros sistemas externos.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
FINDLOCATIONADDRESSLISTTOSYNC
|
PROPERTY_FINDLOCATIONADDRESSLISTTOSYNC_IDCITY
|
<Long> ID do Estado que se deseja os municípios.
Obrigamos o filtro de cidade para evitar que o excesso de dados em memória atrapalhe o funcionamento do BIS.
|
PROPERTY_FINDLOCATIONADDRESSLISTTOSYNC_LASTSYNCDATE
|
<Date> Data da última sincronização.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_FINDLOCATIONADDRESSLISTTOSYNC
|
PROPERTY_FINDLOCATIONADDRESSLISTTOSYNC_SYNCLIST
|
List<LocationAddressVO> Retorna uma lista com todos os LocationAddressVO cuja data de última alteração seja maior que a data recebida.
|
importSATXML
Solicita ao servidor que importe um arquivo de XML do SAT.
Requisição
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
IMPORTSATXML
|
PROPERTY_IMPORTSATXML_XML
|
<String> Conteúdo do arquivo XML a ser importado.
|
Retorno
|
Propriedade
|
Valor
|
PROPERTY_COMMAND
|
OK_IMPORTSATXML
|