15669 - MovCtbNum - Nova contabilização - arquivo texto
Problema: Ao migrar para nova rotina de Provisão / Contabilização foi observado uma diferença no arquivo texto. Na contabilização da rotina antiga utilizava layout com definição contábil informado no campo Truncar Zeros a Esquerda = N, com uma regra especial que informava um valor e o sistema preenchia com os zeros. Na Nova Rotina de contabilização informamos a nova variável mas não gera os zeros a esquerda.
Exemplo de Layout utilizado com regra especial 999:
FFFF,BBBBBB,DDDDD,CCCCC,EEEEEEEEEEEEEEE,HHHH,JJKK,[999]
Segue regra especial com nova variável:
MovCtbNum(1);
No arquivo texto da Rotina Antiga, o último campo fica 001, na Rotina Nova fica 1.
Quando ocorre / onde se aplica: Ocorre na geração do arquivo texto contábil. Aplica-se para arquivo texto na nova Rotina de Contabilização / Provisão.
Solução: Temos uma diferença entre as duas rotinas de Contabilização, considerando esta função:
Na rotina antiga, havia um comportamento diferente. No caso utilizado como exemplo [999], o sistema entendia que o parâmetro '999' (que é o código da regra especial) era algo a ser trocado por um valor e que portanto assim como ocorre com as demais trocas de letras por números acabava entrando no procedimento de verificação de zeros a esquerda.
Porém, na verdade quando se utiliza o parâmetro de regra isto não ocorre. A utilização de funções como a MovCtbNum(), por exemplo, simplesmente irá inserir o conteúdo retornado pela regra naquela determinada posição do layout do arquivo.
Na situação em questão, se por um acaso fosse retornado da regra o numero 111 por exemplo, a rotina antiga não iria efetuar o tratamento de zeros a esquerda pois coincidentemente a quantidade de dígitos é inferior a quantidade de dígitos do código de regra (999).
Em outras palavras, se o código de regra fosse 9 ao invés de 999, não iria retornar nunca zeros a esquerda.
Por conclusão, caso haja a necessidade dos zeros a esquerda no layout contábil, basta trocar a função na regra conforme abaixo:
de -> MovCtbNum(1);
para -> MovCtbAlf(001);
Validade: /#31/12/2050#
Público: Interno, canais/consultores, clientes
Exemplo de Layout utilizado com regra especial 999:
FFFF,BBBBBB,DDDDD,CCCCC,EEEEEEEEEEEEEEE,HHHH,JJKK,[999]
Segue regra especial com nova variável:
MovCtbNum(1);
No arquivo texto da Rotina Antiga, o último campo fica 001, na Rotina Nova fica 1.
Quando ocorre / onde se aplica: Ocorre na geração do arquivo texto contábil. Aplica-se para arquivo texto na nova Rotina de Contabilização / Provisão.
Solução: Temos uma diferença entre as duas rotinas de Contabilização, considerando esta função:
Na rotina antiga, havia um comportamento diferente. No caso utilizado como exemplo [999], o sistema entendia que o parâmetro '999' (que é o código da regra especial) era algo a ser trocado por um valor e que portanto assim como ocorre com as demais trocas de letras por números acabava entrando no procedimento de verificação de zeros a esquerda.
Porém, na verdade quando se utiliza o parâmetro de regra isto não ocorre. A utilização de funções como a MovCtbNum(), por exemplo, simplesmente irá inserir o conteúdo retornado pela regra naquela determinada posição do layout do arquivo.
Na situação em questão, se por um acaso fosse retornado da regra o numero 111 por exemplo, a rotina antiga não iria efetuar o tratamento de zeros a esquerda pois coincidentemente a quantidade de dígitos é inferior a quantidade de dígitos do código de regra (999).
Em outras palavras, se o código de regra fosse 9 ao invés de 999, não iria retornar nunca zeros a esquerda.
Por conclusão, caso haja a necessidade dos zeros a esquerda no layout contábil, basta trocar a função na regra conforme abaixo:
de -> MovCtbNum(1);
para -> MovCtbAlf(001);
Validade: /#31/12/2050#
Público: Interno, canais/consultores, clientes