Modelos

<< Clique para Mostrar o Sumário >>

 

Modelos

Os Modelos são arquivos INI utilizados para configurar a ferramenta de importação e exportação, informando, por exemplo, qual separador deve ser utilizado no arquivo CSV, se as Associações dos objetos devem ou não ser exportadas, etc. Os arquivos INI têm o seguinte formato:

Linhas iniciadas por ponto e vírgula são comentários, desconsiderados na interpretação do arquivo

O arquivo é organizado em seções, e cada seção contém uma ou mais variáveis. As seções são identificadas por nomes entre colchetes. As variáveis são as palavras antes do símbolo de igualdade. Uma seção não pode conter duas variáveis com o mesmo nome

Linhas em branco são ignoradas

 

Um exemplo de arquivo INI é mostrado a seguir.

; Primeira seção
[SECAO1]
Var1 = 0
Var2 = 1
; Segunda seção
[SECAO2]
Var1 = TRUE
Var3 = FALSE

 

O formato é um texto facilmente modificável pelo usuário, sendo possível gerar um modelo novo utilizando um editor de textos comum. O mesmo modelo pode ser utilizado tanto para a importação como para a exportação de objetos.

Os modelos utilizados no E3 permitem que o usuário redefina valores para nomes das colunas do arquivo CSV, bem como para os tipos de objetos. Além disto, também permitem que o usuário agrupe mais de uma propriedade em uma mesma coluna. Isto tudo é feito através da definição de identificadores, que são palavras-chave utilizadas no arquivo CSV e associadas à propriedades ou classes de objetos no arquivo INI.

No E3, os modelos da ferramenta de importação e exportação estão definidos com as seções e variáveis descritas na tabela a seguir.

Seções definidas para os Modelos

Seção

Descrição

Header

Define os identificadores permitidos para nomes de colunas e tipos de dados. Nesta seção devem ser definidas as variáveis header e types. NOTA: Esta seção é obrigatória para a exportação

Configuration

Define configurações adicionais para a ferramenta de importação e exportação. Nesta seção devem ser definidas as variáveis separator, root, link, collection, objectduplicated e bindduplicated

Types

Relaciona os identificadores de tipos de dados com as classes de objetos reais. Cada identificador listado na variável types que não for igual a um nome de classe de objeto deve estar documentado nesta seção, sendo criada uma variável para cada um dos identificadores

Columns

Relaciona os identificadores de nomes de colunas com os nomes de propriedades. Cada identificador listado na variável header que não for igual a um nome de propriedade deve estar documentado nesta seção, sendo criada uma variável para cada um dos identificadores

Filter

Define quais as classes de objetos que devem ou não ser importadas ou exportadas. Nesta seção deve ser definida uma das duas variáveis, include ou exclude. Se ambas forem definidas, apenas include é considerada

 

Variáveis definidas para os Modelos

Seção

Descrição

header

Define a ordem das colunas e os identificadores que são utilizados. Devem ser listadas todas as colunas que o arquivo CSV tem, separadas por vírgulas. Cada identificador que não for igual a um nome de propriedade deve ser discriminado na seção Columns, cada um com uma variável. NOTA: Esta variável é obrigatória para a exportação

types

Define os identificadores para os tipos de dados permitidos no arquivo CSV. Os identificadores devem ser listados nesta variável separados por vírgulas. Só é necessário definir esta variável se algum identificador for diferente do nome da classe do objeto. Neste caso, para cada um dos identificadores deve haver também uma variável na seção Types

separator

Define o separador que é utilizado para delimitar as colunas no arquivo CSV. Caso esta variável não seja definida, é utilizado o separador de listas configurado no Windows

root

Define se o objeto raiz é exportado ou importado junto com os objetos filhos. Caso esta variável não seja definida, o objeto raiz é utilizado

link

Define se as Associações dos objetos são exportadas ou importadas. Caso esta variável não seja definida, as Associações são utilizadas

collection

Define se as coleções dos objetos são exportadas ou importadas. Caso esta variável não seja definida, as coleções são utilizadas

objectduplicated

Define o que fazer quando um objeto pré-existente estiver sendo importado. Os valores possíveis para esta variável são 0 - askalways: Sempre questiona o usuário sobre qual ação executar, 1 - changealways: Sempre altera as propriedades do objeto existente, 2 - ignorealways: Sempre ignora o objeto sendo importado ou 3 - createalways: Sempre cria um objeto novo, autoincrementando o nome. Caso esta variável não seja definida, assume-se o valor askalways. Esta opção não tem valor na exportação

bindduplicated

Define o que fazer quando uma Associação pré-existente estiver sendo importada. Os valores possíveis para esta variável são 0 - askalways: Sempre questiona o usuário sobre qual ação executar, 1 - changealways: Sempre substitui a Associação existente pela nova ou 2 - ignorealways: Sempre ignora a Associação sendo importada. Caso esta variável não seja definida, assume-se o valor askalways. Esta opção não tem valor na exportação, nem tampouco possui o valor createalways. Neste caso, é sempre modificado para askalways

collectionduplicated

Define o que fazer quando uma coleção pré-existente estiver sendo importada. Os valores possíveis para esta variável são 0 - askalways: Sempre questiona o usuário sobre qual ação executar, 1 - changealways: Sempre substitui a coleção existente pela nova ou 2 - ignorealways: Sempre ignora a coleção sendo importada. Caso esta variável não seja definida, assume-se o valor askalways. Esta opção não tem valor na exportação, nem tampouco possui o valor createalways. Neste caso, é sempre modificado para askalways

itemduplicated

Define o que fazer quando um item de coleção pré-existente estiver sendo importado. Os valores possíveis para esta variável são 0 - askalways: Sempre questiona o usuário sobre qual ação executar, 1 - changealways: Sempre altera as propriedades do item existente, 2 - ignorealways: Sempre ignora o item sendo importado ou 3 - createalways: Sempre cria um item novo, autoincrementando o nome. Caso esta variável não seja definida, assume-se o valor askalways. Esta opção não tem valor na exportação

include

Define quais classes de objetos devem ser importadas ou exportadas. O filtro não é recursivo, ou seja, se for incluída uma classe de um objeto que possa ter filhos, estes filhos não são incluídos automaticamente. Não pode ser usada junto com a variável exclude. Apenas o que estiver definido nesta variável é exportado ou importado

exclude

Define quais classes de objetos não devem ser importadas ou exportadas. O filtro não é recursivo, ou seja, se for excluída uma classe de um objeto que possa ter filhos, estes filhos não são excluídos automaticamente. Não pode ser usada junto com a variável include. Apenas o que estiver definido nesta variável é desconsiderado na importação ou na exportação

 

NOTA

O caractere de ponto e vírgula não pode ser utilizado como nome ou parte do nome da coluna, nem tampouco como nome ou parte do nome do identificador de tipo. Esta limitação se deve ao fato de este caractere definir um comentário no arquivo INI. Desta forma, a variável criada na seção Columns ou na seção Types para definir o identificador que possui o ponto e vírgula não pode ser lida corretamente.

 

Exemplo:

[Header]
header = ObjectType,Name,DocString,N1/B1,N2/B2,N3/B3,N4/B4,Scan,AllowRead,AllowWrite
types = Tag,Bloco,Elemento
 
[Configuration]
separator = ','
root = true
link = true
collection = true
objectduplicated = askalways
bindduplicated = askalways
collectionduplicated = askalways
itemduplicated = askalways
 
[Types]
Tag = IOTag
Bloco = IOBlock
Elemento = IOBlockElement
 
[Columns]
N1/B1 = N1,B1
N2/B2 = N2,B2
N3/B3 = N3,B3
N4/B4 = N4,B4
 
[Filter]
exclude = IOFolder

 

A Elipse Software fornece alguns modelos para importação e exportação de alguns tipos de objetos. Estes modelos também podem ser utilizados como base para a criação de outros. Os modelos fornecidos estão na pasta Templates da instalação do E3.

 

NOTA

Na importação, as colunas utilizadas são lidas diretamente do arquivo CSV. Neste caso específico, não é necessária a variável header no modelo. Porém, se alguma coluna for nomeada por um identificador, este deve estar definido na seção Columns ou a coluna é ignorada.

Esta página foi útil?