Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


Índice
exclude^.*((Method)|(Class)).*$


Introdução

Neste documento procuramos apresentar e justificar as escolhas técnicas realizadas durante a implementação da rotina SCANCREF. As escolhas podem ser agrupadas da seguinte maneira:

...

  • É uma evolução do ADVPL e, ao contrário desta, continuará recebendo atualizações no futuro, portanto é a escolha mais adequada para a construção de uma rotina durável;
  • Suporte a namespaces: o que permitiu otimizar a organização conforme arquitetura escolhida;
  • Suporte a Reflection e Annotations: embora não tenha sido essencial, este recurso permitiu criar uma nova camada de abstração sobre os objetos o que facilitou muito a implementação da rotina (ex.: a criação de metadados sobre os campos de cada registro, tais como a quantidade de casas decimais ou a posição de cada campo).


Anexo I – Artefatos MVC

Anexo II – Classes e métodos TLPP


Namespace backoffice.fiscal.arquivos.estadual.scancref.model

...

ScancRefService():QryCJO()

Retorno

TipoDescrição
Charactercom o alias da query para uso


...


DefCliFor of Class ScancRefService method

...

ScancRefService():DefCliFor()

Retorno

TipoDescrição
Arraycom os dados da base


...


getRegA6HD of Class ScancRefService method

...

ScancRefService():getRegA6HD()

Retorno

TipoDescrição
Objectretorna um objeto do tipo RegA6HD


...


getRegA6Q1 of Class ScancRefService method

...

ScancRefService():getRegA6Q1()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q1


...


getRegA6Q2 of Class ScancRefService method

...

ScancRefService():getRegA6Q2()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q2


...


getRegA6Q3 of Class ScancRefService method

...

ScancRefService():getRegA6Q3()

Retorno

TipoDescrição
Arrayretorna um array de objetos do tipo RegA6Q3


...


getRegA6Q41 of Class ScancRefService method

...

ScancRefService():getRegA6Q41()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q41


...


getRegA6Q42 of Class ScancRefService method

...

ScancRefService():getRegA6Q42()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q42


...


getRegA6Q43 of Class ScancRefService method

...

ScancRefService():getRegA6Q43()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q43


...


getRegA6Q5 of Class ScancRefService method

...

ScancRefService():getRegA6Q5()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q5


...


getRegA6Q6 of Class ScancRefService method

...

ScancRefService():getRegA6Q6()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q6


...


getRegA6Q61 of Class ScancRefService method

...

ScancRefService():getRegA6Q61()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q61


...


getRegA6Q62 of Class ScancRefService method

...

ScancRefService():getRegA6Q62()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q62


...


getRegA6Q63 of Class ScancRefService method

...

ScancRefService():getRegA6Q63()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q63


...


getRegA6Q71 of Class ScancRefService method

...

ScancRefService():getRegA6Q71()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q71


...


getRegA6Q72 of Class ScancRefService method

...

ScancRefService():getRegA6Q72()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q72


...


getRegA6Q73 of Class ScancRefService method

...

ScancRefService():getRegA6Q73()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q73


...


getRegA6Q8 of Class ScancRefService method

...

ScancRefService():getRegA6Q8()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q8


...


getRegA6Q91 of Class ScancRefService method

...

ScancRefService():getRegA6Q91()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q91


...


getRegA6Q92 of Class ScancRefService method

...

ScancRefService():getRegA6Q92()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q92


...


getRegA6Q93 of Class ScancRefService method

...

ScancRefService():getRegA6Q93()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q93


...


getRegA6Q10 of Class ScancRefService method

...

ScancRefService():getRegA6Q10()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q10


...


getRegA6Q11 of Class ScancRefService method

...

ScancRefService():getRegA6Q11()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q11


...


getRegA6Q12 of Class ScancRefService method

...

ScancRefService():getRegA6Q12()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q12


...


getRegA6Q13 of Class ScancRefService method

...

ScancRefService():getRegA6Q13()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q13


...


getRegA6Q14 of Class ScancRefService method

...

ScancRefService():getRegA6Q14()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q14


...


getRegA6Q15 of Class ScancRefService method

...

ScancRefService():getRegA6Q15()

Retorno

TipoDescrição
Objectobjeto com dados do registro A6Q15

Namespace backoffice.fiscal.arquivos.estadual.scancref.file


ScancRef class

...

Classe modelo para o arquivo SCANC Refinaria

Definição:

Sintaxe

ScancRef()


...


makeRecords of Class ScancRef method

...

Método responsável por montar os registros do arquivo

Definição:

Sintaxe

ScancRef():makeRecords(cIdGrupo,cMesAno,cUfDest,_cFilial)

Parâmetros

NomeTipoUsoDescrição
cIdGrupocharacterObrigatórioIdentificador do grupo
cMesAnocharacterObrigatórioIdentificador do período
cUfDestcharacterObrigatórioUnidade federativa do arquivo
_cFilialcharacterObrigatórioFilial para a qual o arquivo será gerado


...


writeRecords of Class ScancRef method

...

Método responsável por escrever o arquivo texto

Definição:

Sintaxe

ScancRef():writeRecords(oWriter)

Parâmetros

NomeTipoUsoDescrição
oWriterobjectObrigatórioObjeto da classe FWFileWriter responsável pela escrita no arquivo texto


...


writeCounters of Class ScancRef method

...

RODAPÉ - gera os totais de linhas de todos os registros do arquvo

Definição:

Sintaxe

ScancRef():writeCounters()


...


ScancTotais class

...

RODAPÉ - gera os totais de linhas de todos os registros do arquivo

Definição:

Sintaxe

ScancTotais()

Namespace backoffice.fiscal.arquivos.utils


AnnotationHelper class

...

Classe no padrão Singleton que fornece um objeto e métodos estáticos para manipulação de annotations

Definição:

Sintaxe

AnnotationHelper()


...


getDataAnnotation of Class AnnotationHelper method

...

Organiza as annotations de um objeto em um objeto HashMap de acordo com a chave de pesquisa informada

Definição:

Sintaxe

AnnotationHelper():getDataAnnotation(oObj,cAnnotationName,cKey)

Parâmetros

NomeTipoUsoDescrição
oObjObjectObrigatórioo objeto para o qual se quer obter os dados de annotation
cAnnotationNameCharacterObrigatórioo nome da annotation a ser obtida
cKeyCharacterObrigatórioo índice de pesquisa para o HashMap (deve ser uma propriedade da annotation)

Retorno

TipoDescrição
Objectretorna um objeto HashMap


...


getInstance of Class AnnotationHelper method

...

Cria uma instância (se não houver) e a fornece

Definição:

Sintaxe

AnnotationHelper():getInstance()

Retorno

TipoDescrição
Objectretorna um objeto oAnnotationHelper