Configurações de ficheiros externosEsta opção permite configurar ficheiros ASCII (American Standard Code for Information Interchange), Ligações ODBC (Open Database Connectivity) ou
XML para executar uma importação de dados.
Nota: Não é possível gravar registos sem linhas, em todas as configurações.
A
importação de dados em formato ASCII pode ser executada a partir das respectivas rotinas na aplicação, por exemplo a partir dos documentos de facturação ou documentos de compras. Para importar via ODBC existe uma aplicação própria.
Via ASCII:Em primeiro lugar é necessário indicar se o ficheiro é de registos fixos ou se os campos estão separados por um caracter (por exemplo uma vírgula).
De seguida é possível definir o conteúdo e o comprimento do campo de controlo, o que apenas sucede se os registos a importar têm uma característica em comum. Por exemplo, caso os registos a importar comecem todos pela letra "d", então o campo de controlo é constituído pela Letra "d" e terá 1 caracter de comprimento.
No caso dos registos
fixos é necessário indicar a coluna onde inicia o campo de controlo, caso este seja utilizado, bem como os campos do ficheiro com a respectiva coluna de início e comprimento (este campo comprimento não pode estar vazio).
Função em xbase a aplicar ao campo
É possível para cada campo, aplicar uma função xbase. Por exemplo tornar um valor inteiro em decimal.
No caso dos registos
separados é necessário indicar o caracter de separação, a ordem da coluna do campo de controlo, caso este seja utilizado, e os vários campos do ficheiro com a respectiva ordem.
Função em xbase a aplicar ao campo
É possível para cada campo, aplicar uma função xbase.
Ao importar tabelas utilizando uma configuração de ficheiro externo, onde os campos são separados por um caracter fixo deve ter-se em conta que alguns caracteres especiais não podem ser utilizados como caracteres de separação de campos, como por exemplo o caracter §.
A diferença entre estas duas opções reside na origem de dados, ou seja, as opções são utilizadas consoante a estrutura do ficheiro a importar. Se o ficheiro a importar é do tipo Comma delimited ou Tab delimited (delimitador por um determinado caracter) então deve ser utilizada a opção de registos separados. No caso dos ficheiros sem separação, isto significa que os campos estão todos seguidos sem qualquer espaço, deve-se utilizar os registos fixos.
Exemplo de uma configuração para importar um ficheiro ASCII:
Neste exemplo é utilizado um ficheiro ASCII com campos separados.
Para configurar a importação é necessário indicar os nomes dos campos, bem como a ordem em que se encontram no ficheiro ASCII (o campo da Referência é o primeiro campo, o Preço é o segundo, etc.).
Após configuração do ficheiro já é possível importar os dados através do módulo do Supervisor ou a partir das linhas dos documentos.
Via ODBC:Para executar uma importação através de ODBC é necessário configurar os diversos campos, bem como o nome da ligação ODBC, o nome da tabela a importar, o nome dos campos na tabela original e o nome dos campos na tabela no software a utilizar.
Exemplo de uma configuração para importar Facturas via Microsoft® Access (ficheiros MDB):
Para importar de ficheiros via ODBC é necessário configurar a estrutura dos mesmos na Configuração de ficheiros externos.
No exemplo anterior é configurada uma ligação ODBC. A descrição desta configuração
(FactC) tem como objectivo a definição do ficheiro de cabeçalhos de facturação. Para importar documentos de facturação existem duas ligações a definir, uma para os cabeçalhos e outra para a linhas dos documentos.
Neste exemplo é ainda necessário indicar o nome da ligação ODBC, que é o nome do ficheiro, e o nome da tabela de origem, isto é, o nome da tabela dentro da base de dados do Access.
Caso o utilizador pretenda, em vez de digitar o
Nome da ligação ODBC, poderá construir uma
Expressão de Ligação (connection string), para ligar ao servidor de dados.
Exemplos:
1) Ligação odbc a um ficheiro excell: dsn=externo;uid=sa
2) Ligação odbc (connection string): driver={SQL Server};server=servidorx;uid=SA;pwd=;database=BDx;AutoTranslate=no;Regional=no;QuotedId=no;AnsiNPW=no
Nota: Caso se trate de outro tipo de ligação, a definição seria executada de outra forma, por exemplo, se a ligação fosse via TXT, então o nome da ligação seria o directório (pasta) e o nome da tabela seria o nome do ficheiro TXT.
Mostra janela de LoginEsta opção, uma vez seleccionada, permite visualizar a janela de login caso falte algum parâmetro na ligação ODBC, quando se está a configurar os ficheiros externos.
Após definição dos nomes da ligação e da tabela é necessário configurar a estrutura dos ficheiros, na página Ligação ODBC.
Nome do campo no softwareServe para indicar o nome do campo da aplicação (estes nomes têm que estar correctamente indicados);
Todos os campos
obrigatórios devem estar presentes na listagem.
Nome do campo na tabela externa ou valor fixoQual o nome que vai estar na tabela externa.
Ter em atenção que quando o
Nome do campo no software é NO o
Nome do campo na tabela externa ou valor fixo tem de ser diferente de NO, por exemplo: NOSSONO.
Nota:Os nomes dos Campos na origem de dados (por exemplo: tabela do Microsoft® Access) têm que ser exactamente iguais.
É um valor fixo?Define se é um valor fixo. Por exemplo se na coluna anterior colocou
1, nesta coluna deve indicar que é um valor fixo.
Na configuração do ficheiro externo, nas linhas que definem os campos do ficheiro externo, poderá criar:
Função em xbase a aplicar ao campoÉ possível para cada campo, aplicar uma função xbase. Por exemplo tornar um valor inteiro em decimal.
Esta função é aplicada por cada valor de cada campo de cada registo a ser importado. Este função é definida no próprio mapeamento.
Esta função tem de receber como parâmetro o valor existente na origem dos dados. Deve retornar, o valor que se pretende que seja enviado para o destino (Valor a ser importado, em princípio).
O tratamento é efectuado no cursor que está a ser importado, o cursor pode se chamar Fasctmp ou ImpCursor. Nunca são utilizados os dois ao mesmo tempo mas tanto pode ser utilizado um ou outro e cada um destes cursores contém os dados a serem importados com os nomes de colunas iguais aos nomes finais de destino (definidos no mapeamento).
Exemplo 1: Utilizando o cursor Impcursor
Imaginado, que se pretendia que o campo
morada fosse importado sempre em maiúsculas, se o número de cliente fosse superior a 1000. O xbase definido no mapeamento da Morada seria:
LPARAMETERS m.retval
if ImpCursor.NO>1000
m.retval = upper(m.retval)
endif
return m.retvalExemplo 2: Utilizando o cursor FascTmp
LPARAMETERS retval
select fasctmp
If fasctmp.hshe=´015´
retval=3
Endif
RETURN retval
Nota: Este xbase não pode em caso algum, eliminar registos, inserir registos ou mover o ponteiro no cursor ImpCursor
Exemplo 2:
Uma tabela (neste caso a tabela dos cabeçalhos - DADOS - e das linhas - LINHAS - dos documentos de facturação) dentro de uma base de dados em Access:
Para preencher uma tabela com os respectivos dados, é necessário configurar os diversos campos:
Configuração do cabeçalho:
Configuração das linhas:
Para mais informações sobre o funcionamento do Microsoft® Access consulte por favor o respectivo manual.
Os ecrãs anteriores são apenas um exemplo de configuração dos documentos, que no entanto pode ser diferente para outro tipo de documentos.
Após configuração dos documentos já é possível executar a importação dos documentos.
Via XMLDeve ser feito o mapeamento entre os campos da tabela do software e os elementos do documento XML.
O
Nome do campo no software é encontrado através do
Dicionário de Dados existente na aplicação.
O
Nome do elemento desde a «root» é o caminho desde o elemento base e elemento de repetição até ao elemento criado.
Por exemplo, no caso do módulo Imóveis na exportação de propriedades, para um elemento base "propriedades", elemento de repetição "propriedade" e nome do elemento desde a «root» "/dados_principais/asso", vai ser criado um elemento "asso" que contém o valor do campo do software e que estará contido em "//propriedades/propriedade/dados_principais".
OrdemEsta coluna permite indicar a ordem pela qual pretende que os campos sejam colocados no ficheiro XML.
O
Caminho para o elemento base define a estrutura do elemento a transferir. Entre as duas primeiras e a terceira barra é definido o elemento base do documento, é dentro deste elemento base que todos os outros elementos que compõem o documento XML vão constar. A partir da terceira barra é definido o elemento de repetição, ou seja, o elemento que vai aparecer tantas vezes quantos os registos a exportar.
Por exemplo, no caso da exportação de propriedades do módulo Imóveis:
"//Propriedades/propriedade", onde o elemento base é "propriedades" e o elemento de repetição é "propriedade".
De referir que os nomes de elementos em XML são Case Sensitive, ou seja, é diferente escrever um caracter em minúscula ou maiúscula.
Se tiver
PHC ON poderá aprender um pouco mais sobre Terminais Portáteis, carregando
aqui.