O Motor de Serviços é responsável pela emissão de DF-e. Ele funciona da seguinte forma: consome os arquivos da pasta de entrada, realiza o processamento necessário (como conversão de layouts, validação com o schema atual, assinatura digital) e envia os documentos para a Sefaz.
Depois que a Sefaz processa o documento, o Motor de Serviços gera um arquivo de retorno na pasta de saída configurada. Esse retorno pode ser uma autorização, rejeição ou denegação.
Se o arquivo for considerado inválido, ele não é enviado para a Sefaz. Em vez disso, é gerado um retorno indicando os campos que estão incorretos.
Procedimento
Por padrão as configurações são apontadas para o Banco e ActiveMQ local, caso seja necessário realizar algum ajuste, as configurações específicas do serviço estão todas definidas no diretório: …\Oobj\Aplicativos\Oobj\oobj-motor\config
Banco de Dados
No Motor de Serviços, os arquivos bd-config.xml e hibernate.properties são utilizados para realizar a configuração de conexão das Soluções da Oobj ao banco de dados onde as informações dos documentos e todo o histórico de processamento são armazenadas.
Para configurar um banco de dados diferente do padrão, é necessário alterar as informações: url/porta, usuário e senha como destacado na imagem abaixo:
Em seguida, configure o arquivo hibernate.properties. Neste arquivo, o principal ajuste é no dialeto e por padrão o utilizado é PostgreSQL e caso o ambiente utilize outro banco, basta comentar a linha do Postgres e descomentar a linha do banco utilizado:
Exemplo Oracle:
ActiveMQ
Nos casos de ambiente distribuído, para alterar os dados de acesso utilize o arquivo activemq.properties. Edite seu conteúdo para ficar da seguinte forma:
Módulos
As configurações específicas do serviço são todas definidas no arquivo config-motor.xml.
As funcionalidades do Oobj DF-e são dividas em módulos, que são totalmente independentes entre si (um não requer o outro).
Esse fato garante que o único “Motor de Serviços” ganhe diversos nomes, formas e comportamentos: Motor de Processamento, Motor de Impressão, Motor de Integração, etc.
Na realidade, a única coisa que caracteriza tais nomes é a ausência/presença de determinados módulos. Segue abaixo três principais módulos disponíveis no arquivo config-motor.xml do Oobj DF-e:
Modulo Internalizador
Módulo responsável por internalizar os arquivos de um determinado diretório (de entrada) para a fila de recepção, sem realizar qualquer transformação sobre seu conteúdo.
Exemplo das configurações:
<?xml version="1.0" encoding="UTF-8"?> <motor> <internalizador> <receptor tipo="pdes"> <processador classe="br.com.oobj.me.internalizacao.EnfileiraProcessadorCallback"> <!-- ATENCAO: configurar o valor da unidade com o CNPJ de uma unidade --> <arg name="unidade" value="07385111000102"/> </processador> <params> <param nome="DIRETORIO_TRABALHO" valor="C:/Oobj/Integracao/Emissao"/> <param nome="DIRETORIO_ENTRADA" valor="C:/Oobj/Integracao/Emissao/entrada"/> <param nome="CODIFICACAO" valor="UTF-8"/> </params> </receptor> </internalizador> ... </motor>
Parâmetros
DIRETORIO_ENTRADA: O caminho especificado será a pasta de entrada do motor de serviços, onde os arquivos de envio devem ser gerados pelo: ERP ou Extrator da Oobj caso utilizado.
DIRETORIO_TRABALHO: O caminho especificado será raiz das subpastas de trabalho: pendentes, processados, retornoCopia, embora estas possam ser explicitamente configuradas num caminho diferente, uma vez que todos os parâmetros do PDES estão disponíveis para configuração.
Modulo Entrega
Modulo que determina em que lugar o retorno gerado (no layout específico) será entregue:
<entrega> <filas> <fila nome="oobj_nfe_entrega" /> </filas> <entregadores> <entregador classe="br.com.oobj.me.retorno.PastaEntregadorResposta"> <codificacao>UTF-8</codificacao> <pastaSaida>C:/Oobj/Integracao/Emissao/retorno</pastaSaida> </entregador> </entregadores> </entrega>
pastaSaida: Pasta de saída, onde serão entregues os retornos do processamento do documento.
Modulo Impressão
Todas as informações do módulo de impressão estão detalhadas no artigo: Como configurar uma impressora para impressão automática na modalidade InHouse
Em ambientes distribuídos, onde o modulo de impressão é a parte do Motor de Serviços, devemos remover o modulo “impressao” do config-motor.xml.
Após as alterações, salve o arquivo alterado e reinicie o serviço Oobj DF-e – Motor de Serviços.