Conceitos
As rotinas CTBANFE e CTBANFS foram desenvolvidas para melhorar a performance do processo de Contabilização Off-Line.
Como principais características das melhorias e modificações implementadas por estas rotinas tem-se:
- As rotinas trabalham com queries as quais unificam as informações dispersas em “N” tabelas em um único registro de um novo ALIAS.
- A forma de utilização das rotinas depende dos parâmetros: MV_OPTNFE e MV_OPTNFS.
Contabilização Compras - CTBANFE
A principal característica de configuração da rotina CTBANFE está na utilização do parâmetro MV_OPTNFE. Este parâmetro irá definir se a rotina irá ou não aglutinar as principais tabelas utilizadas no processo de contabilização em um único ALIAS de uma query.
Parâmetro MV_OPTNFE com conteúdo .F.
- Somente a tabela SD1 será tratada pela query da rotina, restringindo os campos desta tabela que poderão ser utilizados nos Lançamentos Padrões, sendo que o ALIAS da query nesta situação será “SD1”.
Tabela | Campos Disponíveis |
SD1 | Todos os campos, exceto os iniciados em: “D1_BASE” e D1_BASI” |
- As tabelas SA1, SA2, SB1, SF1, SF4 e DKD estarão posicionadas e podem ser utilizadas normalmente nos Lançamentos Padrões. Exemplo:
Crédito | IIF(SF1->F1_TIPO$’DB’,SA1->A1_CONTA,SA2->A2_CONTA) |
Débito | SD1->D1_CONTA |
Valor | SD1->D1_TOTAL-SD1->D1_VALDESC+SD1->D1_VALIPI+SD1->D1_ICMRET |
Parâmetro MV_OPTNFE com conteúdo .T.
- As tabelas SA1, SA2, SB1, SD1, SF1, SF4 e DKD serão tratadas pela Query da rotina, restringindo os campos destas tabelas que poderão ser utilizados nos Lançamentos Padrões, sendo que o ALIAS da query nesta situação será “CTBANFE”.
- Nesta situação, o Lançamento Padrão deverá ser configurado de acordo com o exemplo:
Crédito | IIF(CTBANFE->F1_TIPO$’DB’,CTBANFE->A1_CONTA,CTBANFE->A2_CONTA) |
Débito | CTBANFE->D1_CONTA |
Valor | CTBANFE->D1_TOTAL-CTBANFE->D1_VALDESC+CTBANFE->D1_VALIPI+… |
- Se os Lançamentos Padrões OFF-LINE foram definidos para tratar o ALIAS “CTBANFE” os mesmos não poderão ser utilizados em um processo de contabilização ON-LINE.
- Os campos disponíveis na query CTBANFE são:
Tabela | Campos Disponíveis |
SA1* | A1_FILIAL,A1_COD,A1_LOJA,A1_CONTA,A1_NOME,A1_NREDUZ |
SA2* | A2_FILIAL,A2_COD,A2_LOJA,A2_CONTA,A2_NOME,A2_NREDUZ |
SB1 | B1_FILIAL,B1_COD,B1_CONTA |
SD1 | Todos os campos, exceto os iniciados em: “D1_BASE” e “D1_BASI” |
SF1 | Todos os campos, exceto os iniciados em: “F1_BASE” e “F1_BASI” |
SF4 | F4_FILIAL,F4_CODIGO,F4_CF |
DKD | Todos os campos, exceto: “DKD_FILIAL”, “DKD_DOC”, “DKD_SERIE”, “DKD_FORNEC”, “DKD_LOJA”, “DKD_EMISSA”, “DKD_ESPECI” e “DKD_ITEM” |
* dependendo do tipo da nota
- Caso seja necessária a utilização de outros campos além dos disponibilizados na query deverá ser utilizado o Ponto de Entrada CTBNFE o qual permite a manipulação da query. Um modelo deste ponto de entrada está disponível no link CTBNFE - Alteração da Query para Otimização
Contabilização Faturamento - CTBANFS
A principal característica de configuração da rotina CTBANFS está na utilização do parâmetro MV_OPTNFS. Este parâmetro irá definir se a rotina irá ou não aglutinar as principais tabelas utilizadas no processo de contabilização em um único ALIAS de uma query.
Parâmetro MV_OPTNFS com conteúdo .F.
- Somente a tabela SD2 será tratada pela query da rotina, restringindo os campos desta tabela que poderão ser utilizados nos Lançamentos Padrões, sendo que o ALIAS da query nesta situação será “SD2”.
Tabela | Campos Disponíveis |
SD2 | Todos os campos, exceto os iniciados em: “D2_BASE” e D2_BASI” |
- As tabelas SA1, SA2, SB1, SF2 e SF4 estarão posicionadas e podem ser utilizadas normalmente nos Lançamentos Padrões. Exemplo:
Crédito | IIF(!SF2->F2_TIPO$’DB’,SA1->A1_CONTA,SA2->A2_CONTA) |
Débito | SD2->D2_CONTA |
Valor | SD2->D2_TOTAL+SD2->D2_VALIPI+SD2->D2_ICMRET |
Parâmetro MV_OPTNFE com conteúdo .T.
- As tabelas SA1, SA2, SB1, SD2, SF2 e SF4 serão tratadas pela Query da rotina, restringindo os campos destas tabelas que poderão ser utilizados nos Lançamentos Padrões, sendo que o ALIAS da query nesta situação será “CTBANFS”, sendo que o ALIAS da query nesta situação será “CTBANFS”.
- Nesta situação, o Lançamento Padrão deverá ser configurado de acordo com o exemplo:
Crédito | IIF(!CTBANFS->F2_TIPO $ ’DB’,CTBANFS->A1_CONTA,CTBANFS->A2_CONTA) |
Débito | CTBANFS->D2_CONTA |
Valor | CTBANFS->D2_TOTAL-CTBANFS->D2_VALIPI+CTBANFS->D2_ICMRET |
- Se os Lançamentos Padrões OFF-LINE foram definidos para tratar o ALIAS “CTBANFS” os mesmos não poderão ser utilizados em um processo de contabilização ON-LINE.
- Os campos disponíveis na query CTBANFS são:
Tabela | Campos Disponíveis |
SA1* | A1_FILIAL,A1_COD,A1_LOJA,A1_CONTA,A1_NOME,A1_NREDUZ |
SA2* | A2_FILIAL,A2_COD,A2_LOJA,A2_CONTA,A2_NOME,A2_NREDUZ |
SB1 | B1_FILIAL,B1_COD,B1_CONTA |
SD2 | Todos os campos, exceto os iniciados em: “D2_BASE” e “D2_BASI” |
SF2 | Todos os campos, exceto os iniciados em: “F2_BASE” e “F2_BASI” |
SF4 | F4_FILIAL,F4_CODIGO,F4_CF |
* dependendo do tipo da nota
Caso seja necessária a utilização de outros campos além dos disponibilizados na query deverá ser utilizado o Ponto de Entrada CTBNFS o qual permite a manipulação da query.
Um modelo deste ponto de entrada está disponível no link CTBNFE - Alteração da Query para Otimização