BISModulesSocket

De BIS Wiki
Ir para navegação Ir para pesquisar

Introdução

O BISModulesSocket é como uma pequena biblioteca que facilita a comunicação entre terminais (aplicações externas ao servidor de aplicações) e o BISCore e BISModules. 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:

  1. Cria uma instância do BISModulesSocketClient, passe no construtor o host e a porta do servidor BISERP para que o cliente conecte-se;
  2. Chama os métodos passando os atributos desejados e aguarde pela resposta.


Protocolo entre BISModulesSocketClient e BISModulesSocketServer

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.

Stop 256.png
Chamada Pela Fachada
Quando o BISModulesSocketServer faz o repasse da chamada dos métodos na parte do Core (do BIS ou dos Plugins), deve 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, as transações dos EJBs e outros serviços oferecidos pelo servidor de aplicação.

Métodos de Serviço do BISModulesSocket

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