NO?ÕES PARA CONTROLE DE FILA

FBGSYSTEMS 16/12/2015 13:57:13
#455237
Boa tarde galera.
Estou montando meu gerenciador de documentos S@T e estou com algumas duvidas em como faze-lo.

Fiz uma pasta com as seguintes sub pastas

[Ô]Entrada>Processo[Ô] - em entrada sera a recepção de novos arquivos e processo é a fila de arquivos sendo processados.

[Ô]Autorizados>MMAAAA[Ô] - aqui salvarei em pastas com o nome do mes e ano de autorização dos cupons

Dei uma pesquisada e vi que o controle FileSystemWatcher é o ideal para isto.
Então pensei no seguinte para resolver essa questão:

Meu sistema cria o arquivo em Entrada, o sistema identifica e o joga(apenas o arquivo mais recente) para a pasta processos. Neste momento a [Ô]vigilia[Ô] na pasta entrada é desativada. E um outro filewatcher é acionado para processar o arquivo movido de entrada para processo. Assim que esse arquivo for autorizado ou rejeitado eu aciono o primeiro filewatchar e o jogo para a pasta processos e assim sucessivamente.

Minha pergunta é:
Isso é o jeito correto de fazer, pois foi o jeito que consegui imaginar para gerenciar os arquivos?


PS: Meu sistema é de pequeno porte então serão no máximo 3 pdv[ô]s fazendo isso.
Que dicas vocês me dariam para isso ?
LEANDROVIP 17/12/2015 01:43:19
#455256
Boa noite!

Eu desenvolvi da seguinte forma:

Três pastas: [Ô]Envio[Ô], [Ô]Retorno[Ô], [Ô]Aprovadas[Ô] (dentro de aprovadas é separado da mesma forma que você faz, [Ô]MMAAAA[Ô]).

No PDV eu crio o arquivo dentro da pasta [Ô]Envio[Ô] com a nomenclatura [Ô]Venda[Ô] + Nº PDV quando for venda e [Ô]Cancelar[Ô] + Nº PDV quando o for o caso, o gerenciador identifica e começa o processo. Já o PDV fica esperando o arquivo na pasta Retorno com a nomenclatura Retorno + Número do PDV, já que o gerenciador vai somente processar as requisições e [ô]solta-las[ô] de acordo com o resultado, sendo assim todos os pdv's podem gerar vendas ao mesmo tempo que não terá problemas e também não corre o perigo de sobrescrever nenhum arquivo ou ocasionar algum tipo de perda de processo.

Dentro do arquivo de retorno eu envio a maior quantidade de informações possíveis, por exemplo...

Linha 1 = 0 ou 1 (0 para correto 1 para erro)
Linha 2 = Quando for erro Erro (Descrição do erro) / Quando for Correto (Nº Sessão)
Linha 3 = Correto (Data E hora Autorizalção)
linha 4 = Correto (Chave da Consulta)
Linha 5 = correto (Valor da CFe)
Linha 6 = Correto (XML, para gravar ou imprimir.)


O PDV recebe o arquivo de retorno e processa as informações, sendo false ou true ...

Fora o tratamento de erro quando o gerenciador esta desativado, ou não encontra o SAT.. etc..

Obs: Testei este gerenciador com 4 pdv's simultaneamente e levou cerca de 3/4 segundos o processamento da venda (com rede e tudo)

[]'s



LEANTRONIC 17/12/2015 08:24:42
#455259
Resposta escolhida
Eu criei um servidor usando socket... PDV manda o xml por mensagem com o nome do micro, o gerenciador envia e retorna o XML assinado para o PDV que imprime o cupom,se por acaso o cupom não for validado ele nao finaliza a venda, ja utilizei em varios terminais e funcionou perfeitamente
FBGSYSTEMS 17/12/2015 09:57:28
#455262
Valeu pela resposta galera.
A minha dúvida era com relação a mais de um arquivo na pasta de entrada simultaneos. Tambem chamarei o arquivo com um nome que nao poderá ser alterado.
Vou continuar a implementação e vamos nos falando.
LEANDROVIP 17/12/2015 10:57:40
#455265
Tranquilo! Qualquer dúvida dá um grito!
Bom trabalho!!

[]'s
FOXMAN 19/12/2015 10:00:33
#455332
Bem , eu criei um WebService com chamadas síncrona dos webmethods , ou seja, na mesma conexão já retorna o resultado e que executa algumas funções como :

EnvioDadosVenda
CancelamentoVenda
ConsultaStatusOperacional
ReImpressao
ConsultaSat

Além de armazenamento dos arquivos separando apenas por Gerados, Cancelados e Enviados.
Até pensei em separar por MMAAAA , mas como faço reimpressão tendo apenas a chave de acesso como parâmetro não posso searar por DDMMAAAA.

FBGSYSTEMS 20/12/2015 10:52:02
#455349
FOXMAN, obrigado pela resposta.

Mas uma coisa, se você tem apenas a chave de acesso porque não concatenar com a pasta MMYYYY do seu path ao chamar a reimpressão ?

FOXMAN 20/12/2015 11:53:12
#455352
Citação:

:
FOXMAN, obrigado pela resposta.

Mas uma coisa, se você tem apenas a chave de acesso porque não concatenar com a pasta MMYYYY do seu path ao chamar a reimpressão ?



Porque eu teria que Informar MMYYYY para achar o arquivo. E se fosse um arquivo do mês passado por exemplo, eu teria que setar MMYYYY = 112015, ou seja em algum momento o usuário teria que informar o mês e ano. Já da forma que estou fazendo ele apenas informa a chave(selecionando em um grid por ordem de data).
Ainda não tive a necessidade de separar os arquivos por mês, uma vez que não há necessidade de fazer o envio dos arquivos como no PAF-ECF.

FBGSYSTEMS 21/12/2015 09:24:54
#455369
Entendi. Eu gerencio isso simplesmente pela data de validação do cupom

Não sabia que o sat nao precisa enviar no fim do mês.
LEANDROVIP 21/12/2015 16:46:58
#455386
Não precisa ser enviado à controles como incluir na NFP, etc.
Porém aqui foi preciso separarmos por YYYYMM pois todos os escritórios de contabilidade estão pedindo os arquivos para serem importados em seus sistemas.

[]'s
LEANTRONIC 24/12/2015 08:22:20
#455516
No gerenciador que desenvolvi ele grava em uma pasta MMAAAA na maquina que o Gerenciador esta instalado e no final do mês a pessoa consegue ordenar os CFe por data e enviar para a contabilidade...

Tópico encerrado , respostas não são mais permitidas