Header Web
Logo_PHC_Software
Manuais
Configurações De Ficheiros Externos
Configurações de ficheiros externos

Esta 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 Login
Esta 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 software
Serve 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 fixo
Qual 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.retval


Exemplo 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 XML

Deve 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".

Ordem
Esta 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.