Introdução
O TerminalApp é 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:
- Cria uma instância do TerminalAppClient, 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 TerminalAppClient e TerminalAppServer
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 TerminalAppServer 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 TerminalApp
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
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 temrinal
|
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
|
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.
|