Detalhando passo consulta do Sincronismo de Documentos na Tarefa Gestão do Resultado da Aplicação BI CIGAM
Segue abaixo detalhamento do Sincronismo dos documentos(Passo 05 Tarefa Padrão) que é executado na Tarefa GR – Gestão do Resultado na Aplicação do BI:
Índice
- 1 Palavras-Chave
- 2 Fluxograma Passo Sincronismo dos Documentos - Gestão do Resultado
- 3 Validar Dados Licenca CIGAM no LicencaService.cs
- 4 Obter Data base Info no PwConexaoOracleBase.cs :
- 5 Obter Data base Info no PwConexaoOracleBase.cs
- 6 Obter Data Atual no PwConexaoOracleBase.cs
- 7 Salvar Oracle no LogAgendamento.cs
- 8 Obter Nome Colunas no LogSincronismo.cs:
- 9 Obter Dados Origem no ProcessoImp.cs
- 10 Busca Cfg no ConfiguracaoCigamService.cs 100149
- 11 Busca Cfg no ConfiguracaoCigamService.cs 100150
- 12 Busca Cfg no ConfiguracaoCigamService.cs 100259
- 13 Busca Cfg no ConfiguracaoCigamService.cs 100313
- 14 Busca Cfg no ConfiguracaoCigamService.cs 100021
- 15 Busca Cfg no ConfiguracaoCigamService.cs 100020
- 16 Busca Cfg no ConfiguracaoCigamService.cs 100156
- 17 BuscaCfg no ConfiguracaoCigamService.cs 100023
- 18 Busca Cfg no ConfiguracaoCigamService.cs 100004
- 19 Método: Busca Cfg 100073
- 20 Arquivo: SincronismoService.cs
- 21 Arquivo: DocumentoExclusaoRepository.cs
- 22 ConfiguracaoCigamService.cs - BuscaCfg 100136
- 23 NotaFiscalRepository.cs - Obter Notas Para Sincronizar:
- 24 Documento Exclusao Repository.cs no método Marcar Log Como Sincronizado(Notas Canceladas)
- 25 Método...: Marcar Log Como Sincronizado
- 26 Documento Exclusao Repository.cs - Método: ExcluirTodosRegistros
- 27 Inconsistencia Sincronismo Repository.cs - Método: Salvar
- 28 Vendas Exclusao Repository.cs - Métodos: ExcluirTodosRegistros e ExecutarExclusao
- 29 Log Sincronismo.cs - Método: ObterNomeColunas
- 30 Processo Imp.cs - Método: Obter Campos Por Distinct
- 31 Log Sincronismo.cs - Método: ObterNomeColunas
- 32 Processo Imp.cs - Método: ObterMaximoCodigoLog
- 33 Processo Imp.cs - Método: ObterCamposPorDistinct
- 34 Fonte De Dados Base.cs - Método: Obter Dados
Palavras-Chave
Sincronismo dos documentos.Vendas.Devolução de Vendas.Nota Fiscal.Tarefas.
- A finalidade é fornecer uma explicação sobre as operações realizadas por cada método.
- Exemplo abaixo é uma base Banco de Dados Oracle.
- Após a avaliação pelo usuário em sua base em relação às configurações essenciais para a execução do sincronismo automático, se estiverem corretas, e caso persistam eventuais divergências, é possível avaliar os seguintes passos apresentados.
Fluxograma Passo Sincronismo dos Documentos - Gestão do Resultado
Validar Dados Licenca CIGAM no LicencaService.cs
- O código está validando dados de licença no método ValidarDadosLicencaCIGAM na classe LicencaService.cs.
- Ação específica Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Consulta específica O código está realizando uma alteração de sessão para configurar o formato de data e hora no Oracle Database.
- O código está realizando uma consulta SQL para selecionar dados da tabela GELICENC no método ValidarDadosLicencaCIGAM na classe LicencaService.cs.
- Ação específica A cláusula SQL está buscando informações do CNPJ/CPF e Nome Completo da tabela GELICENC onde o código de unidade é '000' ou ' ' (espaço), ordenados por código de unidade de forma decrescente.
Obter Data base Info no PwConexaoOracleBase.cs :
- O código está obtendo informações do banco de dados no método ObterDatabaseInfo na classe PwConexaoOracleBase.cs.
- Ação específica Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Consulta específica: O código está realizando uma alteração de sessão para configurar o formato de data e hora no Oracle Database.
- O código está executando uma consulta SQL para obter informações do banco de dados, incluindo domínio, servidor, serviço, nome do banco de dados, ID do objeto e data de criação da tabela 'C0LICENCA'.
Obter Data base Info no PwConexaoOracleBase.cs
- O código está novamente alterando a configuração de formato de data para 'DD/MM/YYYY'.
- Consulta específica: O código está realizando uma alteração de sessão para configurar o formato de data e hora no Oracle Database.
- Classe: Classe...: PwComandoOracleBase.ExecutarAntes
- O código está executando uma consulta SQL para obter informações da versão do Oracle Database.
Obter Data Atual no PwConexaoOracleBase.cs
- O código está obtendo a data atual no método ObterDataAtual na classe PwConexaoOracleBase.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Consulta específica: O código está realizando uma alteração de sessão para configurar o formato de data e hora no Oracle Database.
- Classe: Classe...: PwComandoOracleBase.ExecutarAntes
- O código está executando uma consulta SQL para obter a data atual do sistema Oracle.
Salvar Oracle no LogAgendamento.cs
- O código está salvando logs de agendamento no método SalvarOracle na classe LogAgendamento.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe: Classe...: PwComandoOracleBase.ExecutarAntes
- O código está realizando uma inserção de dados na tabela C8AGLOGAGENDAMENTO no método SalvarOracle na classe LogAgendamento.cs.
- Ação específica: A cláusula SQL está inserindo uma nova entrada na tabela com um código gerado automaticamente, uma mensagem e a data do log.
- Executar no ScriptSQL.cs
- O código está executando comandos SQL no método Executar na classe ScriptSQL.cs.
- Ação específica Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe Classe...: PwComandoOracleBase.ExecutarAntes
- O código está executando um comando SQL para atualizar dados na tabela GECFG no método Executar na classe ScriptSQL.cs.
- Ação específica: A cláusula SQL está atualizando o campo DADO_ALPHA para ' ' (espaço) onde a sequência é 100048 e o valor atual é diferente de ' '.
Obter Nome Colunas no LogSincronismo.cs:
- O código está obtendo o nome das colunas no método ObterNomeColunas na classe LogSincronismo.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe: Classe...: PwComandoOracleBase.ExecutarAntes
- O código está executando uma consulta SQL para obter os nomes das colunas da tabela C8GDILOGSIN no método ObterNomeColunas na classe LogSincronismo.cs.
Obter Dados Origem no ProcessoImp.cs
- O código está obtendo dados de origem no método ObterDadosOrigem na classe ProcessoImp.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe: Classe...: PwComandoOracleBase.ExecutarAntes
- O código está obtendo dados de origem no método ObterDadosOrigem na classe ProcessoImp.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe: Classe...: PwComandoOracleBase.ExecutarAntes
- O código está executando uma consulta SQL complexa para obter dados de origem no método ObterDadosOrigem na classe ProcessoImp.cs.
Busca Cfg no ConfiguracaoCigamService.cs 100149
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
Busca Cfg no ConfiguracaoCigamService.cs 100150
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
Busca Cfg no ConfiguracaoCigamService.cs 100259
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe: Classe...: PwComandoOracleBase.ExecutarAntes
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
Busca Cfg no ConfiguracaoCigamService.cs 100313
- Indica a linha exata dentro do método onde a ação está acontecendo.
- Busca informações de configuração na tabela GECFG.
- O propósito do código é obter dados específicos da tabela GECFG. Esses dados incluem sequência, código do módulo, descrição, e outros detalhes relacionados à configuração.
- Estabelece a condição para a busca, indicando que o código está interessado nas informações relacionadas à sequência '100313'.
Busca Cfg no ConfiguracaoCigamService.cs 100021
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica na Linha 49: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe na Linha 49: Classe...: PwComandoOracleBase.ExecutarAntes
Busca Cfg no ConfiguracaoCigamService.cs 100020
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica na Linha 49: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe na Linha 49: Classe...: PwComandoOracleBase.ExecutarAntes
Busca Cfg no ConfiguracaoCigamService.cs 100156
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
Ação específica na Linha 49: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe na Linha 49: Classe...: PwComandoOracleBase.ExecutarAntes
BuscaCfg no ConfiguracaoCigamService.cs 100023
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica na Linha 49: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
- Classe na Linha 49: Classe...: PwComandoOracleBase.ExecutarAntes
Busca Cfg no ConfiguracaoCigamService.cs 100004
- O código está buscando configurações no método BuscaCfg na classe ConfiguracaoCigamService.cs.
- Ação específica na Linha 49: Alteração da configuração de formato de data para 'DD/MM/YYYY'.
Método: Busca Cfg 100073
- Consulta que busca configurações no banco de dados usando a sequência como parâmetro. As colunas retornadas são Tipo, Dado_Alpha,
Dado_Data, Dado_Time, Dado_Numeric (duas vezes), Dado_Logico e Texto. A sequência é traduzida como '100073'
Arquivo: SincronismoService.cs
- Consulta que busca o Tipo de Movimento de Documento na tabela ESPDOCUM usando a Especie_Documento como parâmetro. A Especie_Documento é traduzida como 'NFS' ou 'NFD'.
- Método: BuscarTipoDaEspecie
- Método: BuscaCfg
Consulta semelhante à primeira, mas com uma sequência diferente, traduzida como '100004'.
Arquivo: DocumentoExclusaoRepository.cs
- Consulta que recupera dados da tabela GELOGSIN com condições específicas.
- Método: DescartarLogDuplicados
- Traduzida: DocumentoExclusaoRepository.cs - DescartarLogDuplicados:
ConfiguracaoCigamService.cs - BuscaCfg 100136
- Essa consulta SQL busca dados da tabela GECFG com base em uma condição (Cfg.Sequencia = :SequenciaConfig). Os tipos de dados retornados
incluem Tipo, Dado_Alpha, Dado_Data, Dado_Time, Dado_Numeric (duas vezes), Dado_Logico e Texto. A sequência está traduzida como
'100316'.
NotaFiscalRepository.cs - Obter Notas Para Sincronizar:
- Esta consulta SQL recupera informações relacionadas a notas fiscais. A primeira parte da consulta lida com notas fiscais de saída
('S'), enquanto a segunda parte lida com notas fiscais de entrada ('E'). Ela junta várias tabelas (FANFISCA, FACPAGAM, GETOPERA e
GELOGSIN) e aplica várias condições para selecionar os dados desejados.
Parte 01 Notas de Saída (nf.Especie_nota = 'S')
- Esta parte seleciona notas de saída (Especie_nota = 'S').Ela recupera várias informações relacionadas à nota fiscal e realiza várias
junções (JOIN) com outras tabelas para obter detalhes adicionais.A condição Where filtra as notas fiscais de saída que têm "Especie_nota" igual a 'S'.
- Cláusula:
Select
nf.Nf, nf.Serie, nf.Cd_unidade_de_n Cd_UN, nf.Especie_nota EspecieNota,
nf.Cd_tipo_operaca CdTipoOperacao, nf.Dt_emissao Data, nf.Cd_Cliente, nf.Cd_Representant Cd_Representante, nf.Total_mercadori TotalMercadorias,
nf.Total_servico TotalServico, nf.Cd_transportado CdTransportadora, nf.Tipo_frete TipoFrete, nf.Cd_condicao_pag CdCondicaoPagamento,
Case When t.Incidencia_ISS = 'S' OR t.Incidencia_ISS = 'R' Then nf.Pe_iss Else 0 End PercentualISS,
nf.Tipo_nota TipoNota, nf.Cd_mercado CdMercado, nf.Placa, nf.campo132 Forma, nf.Cd_cobranca CdCobranca, Coalesce(c.Periodicidade, ' ') Periodicidade,
l.Data DataLog, l.Hora HoraLog,
0 NFReferencia, ' ' SerieReferencia, null DataReferencia, 1 NF_Propria
From FANFISCA nf
Inner Join FACPAGAM c on c.Cd_condicao_pag = nf.Cd_condicao_pag
Inner Join GETOPERA t on t.Cd_Tipo_Operaca = nf.Cd_Tipo_Operaca
Inner Join GELOGSIN l on l.Sincron_B = 'N' And l.Tipo = 'NS' And l.Unica3_Numero10 = nf.NF And l.Unica2_alpha6 = nf.Serie And l.Unid_Negocio = nf.Cd_unidade_de_n And l.Tipo_Acao <> 'E'
Where
nf.Especie_nota = 'S';
Parte 2: Union All e Notas de Entrada (ne.Tipo_nota = 'D')
- A cláusula Union All é utilizada para combinar os resultados da parte 1 (notas de saída) com os resultados desta parte (notas de
entrada).Esta parte seleciona notas de entrada (Tipo_nota = 'D').Novamente, são realizadas várias junções (JOIN) para obter informações
detalhadas e calcular percentuais com base nas condições fornecidas.As informações da tabela GELOGSIN são utilizadas para filtrar
apenas as entradas que ainda não foram sincronizadas (Sincron_B = 'N' e Tipo = 'NE').A condição Where filtra as notas fiscais de entrada
que têm "Tipo_nota" igual a 'D'.
- Cláusula:
“Union All
Select
ne.Nf, ne.Serie, ne.Cd_unidade_de_n Cd_UN, 'E' EspecieNota,
ne.Cd_tipo_operaca CdTipoOperacao, ne.Dt_Entrada Data, ne.Cd_Fornecedor Cd_Cliente, Coalesce(nf.Cd_Representant, ' ')
Cd_Representante, Coalesce(nf.Total_mercadori, 0) TotalMercadorias,
Coalesce(nf.Total_servico, 0) TotalServico, Coalesce(nf.Cd_transportado, ' ') CdTransportadora, ne.Tipo_frete TipoFrete,
Coalesce(nf.Cd_condicao_pag, ' ') CdCondicaoPagamento,
Case When t.Incidencia_ISS = 'S' OR t.Incidencia_ISS = 'R' Then Coalesce(nf.Pe_iss, 0) Else 0 End PercentualISS,
ne.Tipo_nota TipoNota, ne.Cd_mercado CdMercado, Coalesce(nf.Placa, ' ') Placa, Coalesce(nf.campo132, ' ') Forma,
Coalesce(nf.Cd_cobranca, ' ') CdCobranca, Coalesce(c.Periodicidade, ' ') Periodicidade,
l.Data DataLog, l.Hora HoraLog,
ne.Nf_referencia NFReferencia, ne.Serie_referenci SerieReferencia, nf.Dt_emissao DataReferencia, 0 NF_Propria
From COENTRAD ne
Inner Join GELOGSIN l on l.Sincron_B = 'N' And l.Tipo = 'NE' And l.Unica3_Numero10 = ne.NF And l.Unica2_alpha6 = ne.Serie And
l.Unid_Negocio = ne.Cd_unidade_de_n And l.Unica1_alpha12 = ne.Cd_Fornecedor And l.Tipo_Acao <> 'E'
Left Outer Join FANFISCA nf on nf.NF = ne.Nf_referencia And nf.Serie = ne.Serie_referenci And nf.Cd_unidade_de_n = ne.Cd_unidade_de_n
Left Outer Join FACPAGAM c on c.Cd_condicao_pag = nf.Cd_condicao_pag
Left Outer Join GETOPERA t on t.Cd_Tipo_Operaca = nf.Cd_Tipo_Operaca
Where ne.Tipo_nota = 'D';
Documento Exclusao Repository.cs no método Marcar Log Como Sincronizado(Notas Canceladas)
- Essa cláusula SQL ajusta o formato de data na sessão atual para 'DD/MM/YYYY'. Isso pode ser útil para garantir que as datas sejam interpretadas corretamente.
Linha 260 - Select l.Unica3_Numero10 Nf, l.Unica2_alpha6 Serie, l.Unid_Negocio Cd_UN, l.Tipo TipoLog, l.Data DataLog, l.Hora HoraLog, l.Unica1_Alpha12 Fornecedor...:
Essa é uma consulta SQL que recupera informações da tabela GELOGSIN juntamente com informações da tabela FANFISCA usando um LEFT JOIN.
Ela seleciona várias colunas, incluindo Nf, Serie, Cd_UN, TipoLog, DataLog, HoraLog e Fornecedor.
As condições do WHERE especificam que a sincronização (Sincron_B) deve ser 'N', o tipo deve ser 'NS', a ação não deve ser de exclusão (Tipo_Acao <> 'E'), e a Especie_nota na tabela FANFISCA deve ser nula ou diferente de 'S'.
Essa consulta está relacionada à marcação de logs como sincronizados, filtrando registros específicos das tabelas mencionadas.
Método...: Marcar Log Como Sincronizado
- O método "MarcarLogComoSincronizado" inicia configurando a sessão para interpretar datas no formato 'DD/MM/YYYY'. Em seguida, é
executada uma consulta SQL que seleciona dados da tabela GELOGSIN, incluindo informações como número da nota fiscal, série, unidade de
negócio, tipo de log, data, hora e fornecedor. A consulta utiliza um left outer join com a tabela FANFISCA, relacionando os campos
apropriados. A cláusula WHERE filtra os resultados para registros não sincronizados ('Sincron_B' igual a 'N'), do tipo 'NS', com ação
diferente de 'E' e onde a espécie da nota fiscal é nula ou diferente de 'S'. Essa lógica é empregada para marcar logs como
sincronizados, considerando condições específicas nos dados.
Documento Exclusao Repository.cs - Método: ExcluirTodosRegistros
- O código em DocumentoExclusaoRepository.cs, no método "ExcluirTodosRegistros", inicia configurando a sessão para interpretar datas no
formato 'DD/MM/YYYY' através da instrução "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'". Em seguida, há uma cláusula "DELETE" que
remove todos os registros da tabela TMPDOCEXC. Esta operação é encapsulada no método "ExcluirTodosRegistros", que é executado antes de
realizar qualquer outra ação na classe "PwComandoOracleBase.ExecutarAntes". Essencialmente, o propósito desse código é limpar a tabela
TMPDOCEXC, excluindo todos os seus registros, e garante que a sessão esteja configurada corretamente para interpretar datas no formato
desejado antes da execução. Este tipo de operação é comum em processos de exclusão em bancos de dados, frequentemente utilizado para preparar o ambiente.
Inconsistencia Sincronismo Repository.cs - Método: Salvar
- No código presente em InconsistenciaSincronismoRepository.cs, no método "Salvar", inicialmente, é configurada a sessão para interpretar
datas no formato 'DD/MM/YYYY' por meio da instrução "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'". Posteriormente, há uma cláusula
"TRUNCATE" que efetua o esvaziamento completo da tabela C3LOGDOC, removendo todos os seus registros. Este processo é encapsulado no
método "Salvar", e a cláusula "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'" é repetida, indicando que a sessão permanece
configurada adequadamente para o formato de data desejado durante a execução do método. Em resumo, esse trecho de código visa preparar o
ambiente antes de salvar dados, assegurando que a tabela C3LOGDOC esteja vazia e que a sessão esteja configurada corretamente para
interpretar datas no formato específico. Essa abordagem é comum para evitar inconsistências e garantir uma operação de salvamento limpa
no banco de dados.
Vendas Exclusao Repository.cs - Métodos: ExcluirTodosRegistros e ExecutarExclusao
- Primeiramente, a instrução "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'" configura a sessão para interpretar datas no formato
especificado. No método "ExcluirTodosRegistros", há um comando "DELETE" que remove todos os registros da tabela "TMPVENDASEXC". Esta operação é relevante para limpar a tabela antes de realizar operações subsequentes.
No método "ExecutarExclusao", novamente a sessão é configurada para o formato de data desejado. Neste método, ocorre um comando "DELETE" na tabela "BIFT_FA_VENDASGR". A cláusula "WHERE EXISTS" é utilizada para excluir registros da tabela principal onde há uma correspondência na tabela "TMPVENDASEXC" com base na condição "E.ChaveDocumento = I.Cd_Chave_Documento". Essa lógica implica que apenas os registros associados na tabela temporária serão excluídos da tabela principal, promovendo uma exclusão seletiva e condicional.
Essas operações de exclusão são executadas antes de outras ações na classe, como indicado pela presença da cláusula "PwComandoOracleBase.ExecutarAntes". Essa abordagem é comum em contextos de banco de dados para garantir que a base de dados esteja em um estado apropriado antes de realizar operações mais complexas ou de escrita.
- A tabela TMPVENDASEXC é utilizada no contexto de exclusão de registros no método ExcluirTodosRegistros do arquivo VendasExclusaoRepository.cs.
Há uma cláusula DELETE que é usada no método ExcluirTodosRegistros para deletar todos os registros da tabela TMPVENDASEXC.
A tabela TMPVENDASEXC também é referenciada em uma cláusula DELETE no método ExecutarExclusao. Nesse caso, a
exclusão é realizada na tabela BIFT_FA_VENDASGR com base em uma condição que envolve a tabela TMPVENDASEXC.
Há uma cláusula ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY' que configura o formato da data na sessão para o formato 'DD/MM/YYYY'. Isso é feito antes da execução de exclusões na tabela TMPVENDASEXC.
A tabela TMPVENDASEXC está relacionada à tabela BIFT_FA_VENDASGR com base na cláusula DELETE no método ExecutarExclusao. A condição de exclusão envolve a comparação entre a coluna ChaveDocumento na tabela TMPVENDASEXC e a coluna Cd_Chave_Documento na tabela BIFT_FA_VENDASGR.
Em resumo, a tabela TMPVENDASEXC é utilizada para armazenar temporariamente dados relacionados a vendas, e os métodos s estão envolvidos na exclusão de registros dessa tabela, sendo parte de algum processo de Gestão de Resultados em uma aplicação. A tabela também tem um papel em operações que envolvem a tabela BIFT_FA_VENDASGR.
Log Sincronismo.cs - Método: ObterNomeColunas
- O código SQL fornecido configura a sessão para interpretar datas no formato 'DD/MM/YYYY' e realiza consultas em uma tabela chamada
'C8GDILOGSIN'. Primeiramente, busca os nomes das colunas dessa tabela. Em seguida, dentro do método 'ObterMaximoCodigoLog', obtém o
valor máximo da coluna 'CODIGO' onde a 'IDENTIFICACAO' é '0' e a 'NOMETABELA' é 'BIDM_GE_EMPRESA'. No método 'ObterCamposPorDistinct',
busca valores distintos da coluna 'CAMPO', filtrando por 'IDENTIFICACAO' igual a 0, 'NOMETABELA' igual a 'BIDM_GE_EMPRESA', e 'CODIGO'
menor ou igual a 0, ordenando os resultados de forma descendente.
Processo Imp.cs - Método: Obter Campos Por Distinct
- No arquivo ProcessoImp.cs, o método "ObterCamposPorDistinct" inicia configurando a sessão para interpretar datas no formato
'DD/MM/YYYY' através da instrução "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'". Posteriormente, a consulta SQL "SELECT DISTINCT
CAMPO" é executada na tabela C8GDILOGSIN, buscando valores únicos da coluna CAMPO, com as condições adicionais de que a IDENTIFICACAO
seja igual a 0, o NOMETABELA seja 'BIDM_GE_UNIDADE_NEGOCIO' e o CODIGO seja menor ou igual a 0. Os resultados são ordenados de forma
descendente pela coluna CAMPO. Esse conjunto de operações, encapsulado no método "ObterCamposPorDistinct", é definido para ser
executado antes de outras ações na classe "PwComandoOracleBase.ExecutarAntes".
Log Sincronismo.cs - Método: ObterNomeColunas
- No código contido no arquivo LogSincronismo.cs, no método "ObterNomeColunas", inicialmente, a sessão é configurada para interpretar
datas no formato 'DD/MM/YYYY' por meio da instrução "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'". Posteriormente, é executada uma
consulta SQL com a cláusula "SELECT c.COLUMN_NAME FROM USER_TAB_COLUMNS c WHERE c.TABLE_NAME = 'C8GDILOGSIN'", que tem como objetivo
obter os nomes das colunas da tabela 'C8GDILOGSIN'. Esta operação é encapsulada no método "ObterNomeColunas", que é definido para ser
executado antes de outras ações na classe "PwComandoOracleBase.ExecutarAntes". A repetição da cláusula "ALTER SESSION SET
NLS_DATE_FORMAT = 'DD/MM/YYYY'" indica a importância de manter a configuração adequada da sessão ao realizar consultas no banco de dados .
Processo Imp.cs - Método: ObterMaximoCodigoLog
- No arquivo ProcessoImp.cs, no método "ObterMaximoCodigoLog", o código começa configurando a sessão para interpretar datas no formato
'DD/MM/YYYY' por meio da instrução "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'". Em seguida, é realizada uma consulta SQL usando
"SELECT MAX(CODIGO)" para obter o valor máximo da coluna CODIGO da tabela 'C8GDILOGSIN', onde as condições especificadas são que a
IDENTIFICACAO seja igual a '0' e NOMETABELA seja 'BIDI_GR_UNID_RESULT'. Essa consulta é encapsulada no método "ObterMaximoCodigoLog", o
qual está definido para ser executado em algum momento antes de outras ações na classe "PwComandoOracleBase.ExecutarAntes". A tradução
da consulta indica que o código busca o valor máximo da coluna CODIGO na tabela 'C8GDILOGSIN' onde a IDENTIFICACAO é '0' e a NOMETABELA
é 'BIDI_GR_UNID_RESULT'. Essa abordagem sugere que o método é utilizado para obter o valor máximo da coluna CODIGO para registros
específicos da tabela, potencialmente para operações subsequentes no sistema.
Processo Imp.cs - Método: ObterCamposPorDistinct
- No arquivo ProcessoImp.cs, existem dois métodos importantes: "ObterCamposPorDistinct" e "ObterMaximoCodigoLog", ambos configurando a
sessão para interpretar datas no formato 'DD/MM/YYYY' através da instrução "ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'". No método
"ObterCamposPorDistinct", uma consulta SQL "SELECT DISTINCT CAMPO" é realizada na tabela 'C8GDILOGSIN', buscando valores únicos da
coluna 'CAMPO' sob as condições de que a 'IDENTIFICACAO' seja 0, a 'NOMETABELA' seja 'BIDI_GR_UNID_RESULT', e o 'CODIGO' seja menor ou
igual a 0. Os resultados são ordenados de forma descendente pela coluna 'CAMPO'. Já no método "ObterMaximoCodigoLog", a consulta "SELECT
MAX(CODIGO)" é usada para obter o valor máximo da coluna 'CODIGO' na mesma tabela, com condições de que a 'IDENTIFICACAO' seja '0' e a
'NOMETABELA' seja 'BIDM_GE_TIPO_OPERACAO'. Essas operações são executadas antes de outras ações na classe
"PwComandoOracleBase.ExecutarAntes", possivelmente preparando o ambiente de banco de dados para operações subsequentes e garantindo
consistência nos dados.
Fonte De Dados Base.cs - Método: Obter Dados
- Neste registro de log, referente ao arquivo FonteDeDadosBase.cs, no método "ObterDados" em uma linha específica,
há uma configuração da sessão para interpretar datas no formato 'DD/MM/YYYY' por meio da cláusula "ALTER SESSION
SET NLS_DATE_FORMAT = 'DD/MM/YYYY'". A consulta SQL subsequente, que não está completamente visível, parece
envolver operações em tabelas como "BIFT_FA_VENDASGR" e "BIDM_GE_DATA". Essa consulta realiza uma seleção de dados
agrupados e ordenados, considerando condições específicas, como a restrição "Where F865.DATA Between 'XX/YY/YYYY'
And 'XX/YY/YYYY' ". Essas operações fazem parte do método "ObterDados" e são precedidas pela configuração de
formato de data. O registro inclui informações sobre a classe PwComandoOracleBase.ExecutarAntes".
Em seguida, o código apresenta uma consulta SQL que envolve tabelas como "BIFT_FA_VENDASGR", "BIDI_GR_OPERACAO",
"BIDM_GE_EMPRESA", "BIDM_GE_MATERIAL" e "BIDM_GE_DATA". A consulta realiza seleção e agregação de dados,
considerando condições específicas, como a restrição "Where F865.DATA Between 'XX/YY/YYYY' And 'XX/YY/YYYY' ". A
tradução da consulta indica uma busca por valores agrupados relacionados a da consulta dimensões e métricas.
Essas operações estão encapsuladas no método "ObterDados" e são precedidas pela configuração de formato de data.