Processos Customizados NFS-e
Este tópico visa explicar o funcionamento do processo customizado da NFS-e e como configurá-lo.
Orientações
O Processo Customizado disponibilizado pelo Mega Empresarial permite que o usuário possa customizar determinados processos do sistema e inserir regras específicas dele no sistema.
No módulo NFS-e, estão disponíveis os seguintes processos customizados:
- P_BUSCAMUNICIPIO: Deve retornar os códigos dos municípios do prestador e da prestação de serviço.
- P_DISCRIMINACAOSERVICO: Deve retornar a discriminação do serviço para a NFS-e.
Configuração
Todos os processos customizados de todos os módulos têm sua configuração armazenada na tabela MGGLO.GLO_PROCESSOCUSTOMIZADO, que possui os seguintes campos:
PRC_ST_NOMEOBJETO: Nome do objeto do banco (function) que retornará os dados customizados. Deve conter o nome do usuário (Owner) e o nome do objeto (Exemplo: MGNFS.F_NOMEOBJETO);
PRC_ST_NOMEPROCESSO: Nome de identificação do processo customizado.
PRC_ST_OWNER: Nome do usuário (Owner) da package
PRC_ST_PACKAGE: Nome da package que terá customização.
PRC_ST_DESCRICAO: Descreve a utilização do processo customizado.
PRC_ST_EXEMPLO: Código de uma função exemplo, de como implementar a função específica, que será indicada no campo PRC_ST_NOMEOBJETO.
PRC_BO_STATUS: Define se o processo customizado está ativado (S) ou desativado (N).
A figura a seguir, é apresentado um exemplo de como ficam os dados de configuração do(s) processo(s) customizado(s) da NFS-e quando não há nenhuma customização.
Para que o Processo Customizado seja executado, será necessário ajustar os seguintes campos da tabela MGGLO.GLO_PROCESSOCUSTOMIZADO:
PRC_ST_NOMEOBJETO: Informar o nome do objeto do banco (function) que retornará os dados customizados. Este nome deve ser composto pelo nome do usuário (Owner) e o nome do objeto (Exemplo: MGNFS.F_NOMEOBJETO);
PRC_BO_STATUS: Informar “S”.
Não existe uma tela dentro do Mega Empresarial onde esses dados possam ser manipulados, por isso é necessário um profissional de conhecimento técnico para configurá-lo.
A regra só será utilizada pelo Sistema se esses valores forem informados corretamente.
Funcionamento
O Processo customizado é executado da seguinte forma: a Package responsável pelo processo da NFS-e (owner MGNFS) chama a Package de funções globais (owner MGGLO) passando os parâmetros que identificam o registro do processo customizado na Tabela MGGLO.GLO_PROCESSOCUSTOMIZADO e também os parâmetros necessários para a função específica. A função global dos processos customizados verifica se há uma função específica para customização e se o processo customizado está ativo, caso afirmativo será executada a função específica que retornará os dados customizados para o processo da NFS-e.
A função específica que retornará os dados customizados deverá ser criada com as mesmas características existentes na função de exemplo.
Dentre as questões mais importantes a serem utilizadas para a criação desta função estão:
- Sempre deverá ser uma Função (Function), ou seja, não poderá ser um procedimento (Procedure);
- A função a ser criada sempre deverá receber um parâmetro do tipo Varchar2;
- Deverá ser criada uma variável do tipo “sys_refcursor”;
- Deverá ser criada uma variável do tipo “xmltype”;
- O retorno da função obrigatoriamente deverá ser a variável do tipo sys_refcursor.
Caso ocorra algum erro no processo customizado, como por exemplo, erro de implementação na função específica, o sistema não acusará nenhum erro ao módulo da NFS-e, ele simplesmente não retornará nenhum valor ao processo da NFS-e como se não houvesse processo customizado. Por esse motivo é importante fazer todos os tratamentos de erros necessários para garantir que a implementação da função funcione corretamente.
O objeto específico pode ser criado em qualquer owner, com permissão ao owner MGGLO.
Processo Busca Município
O processo customizado P_BUSCAMUNICIPIO, permitirá a customização do preenchimento da tag <CodigoMunicipio> do grupo <Servico> e a tag <CodigoMunicipio> do grupo <Tomador> referentes aos campos "Código Município da Prestação de Serviço" e "Código do Município do Tomador" do arquivo XML NFS-e.
Este processo customizado esta disponível somente para o município de Goiânia-ABRASF.
Registro de Configuração
O registro de configuração do processo customizado P_BUSCAMUNICIPIO, é identificado pelos seguintes valores:
Campo PRC_ST_NOMEPROCESSO: P_BUSCAMUNICIPIO;
Campo PRC_ST_OWNER: MGNFS;
Campo PRC_ST_PACKAGE: NFS_PCK_LAYOUTABRASF;
A figura a seguir, apresenta como ficará o registro deste processo customizado quando devidamente configurado para ser executado:
Processo Discriminação Serviço
O processo customizado P_ DISCRIMINACAOSERVICO, permitirá a customização do preenchimento da tag <Discriminacao> do grupo <Servico> do arquivo XML NFS-e.
Este processo customizado esta disponível para os layouts DSF e ABRASF.
Registro de Configuração
O registro de configuração do processo customizado P_ DISCRIMINACAOSERVICO, é identificado pelos seguintes valores:
Campo PRC_ST_NOMEPROCESSO: P_DISCRIMINACAOSERVICO;
Campo PRC_ST_OWNER: MGNFS;
Campo PRC_ST_PACKAGE: NFS_PCK_UTILIDADES;
A figura a seguir, apresenta como ficará o registro deste processo customizado quando devidamente configurado para ser executado: