Você está na página 1de 4

Serialização de Objetos –1Parte 1

Serialização de Objetos – Parte 1

Lairton N de Almeida Jr.

Conhecendo e divulgando tecnologias Unify desde 1991


Contato através de e-mail lairton@gmail.com
Artigos publicados no blog HTTP://appstartup.blogspot.com

Apresentação

Neste artigo eu vou tocar num assunto que acho até que é pouco usado no Team Developer.
Sempre considerei este um recurso importante e bastante simples. Na última semana,
escolhendo revistas sobre tecnologia para ler encontrei uma sobre .NET e lá estava um artigo
sobre este mesmo assunto. Imediatamente lembrei que este recurso já está disponível no
Team Developer já há alguns anos e lembrei-me da forma como está disponível no Team
Developer, como vocês verão neste artigo, muito simples. Por curiosidade comprei a revista e
ao ler a matéria tive a certeza de uma coisa, este assunto vai pro blog, para mostrar para os
desenvolvedores como é simples utilizar a serialização de objetos no Team Developer.

A serialização de objetos é a capacidade de salvar os objetos em arquivos XML e


posteriormente recuperá-los. Basicamente o que é mesmo feito é salvar a estrutura e dados
de um objeto em formato XML. Existem inúmeros casos de uso para esta tecnologia e neste
artigo mostrarei dois exemplos. Eu não vou tentar apresentar diversos exemplos maravilhosos
aqui, apenas mostrar o recurso, mostrar como é simples e deixar que sua imaginação faça o
resto.

Obs: Concentrarei atenção apenas aos aspectos relacionados ao assunto deste artigo, omitindo qualquer código
necessário para executar tarefas não relacionadas ao exemplo, como criação de janelas, conexões validações de
campos etc.

A aplicação

Imagine aquelas aplicações onde temos que salvar informações na máquina do usuário para
posterior recuperação. Tipo salvar último login e banco de dados escolhidos, preferências de
consultas, impressora escolhida e suas configurações, tamanho e posicionamento das telas,
tema preferido do usuário etc

Neste primeiro exemplo mostrarei como salvar e recuperar o último banco de dados e login
utilizado pelo usuário.

Primeiro passo é definir o objeto que manipulará estes dados na aplicação, sem fazer qualquer
tipo de tratamento de leitura e gravação de arquivo em disco.

Lairton N de Almeida Jr. lairton@gmail.com - http://appstartup.blogspot.com Página 1


Serialização de Objetos –2Parte 1

Para servir de exemplo, defini o objeto mostrado na Figura 1

Figura 1

Observe que se trata de uma classe do tipo Functional Class, básica, sem herança e sem
métodos especiais, apenas os métodos de interface simples para armazenar e recuperar o
valor dos atributos do próprio objeto. Como exemplo de código dos métodos set** e get**
observem a Figura 2.

Figura 2

Para simular a utilização deste objeto imagine uma janela de login qualquer, montei um
exemplo mostrado na Figura 3. Uma janela simples que oferece ao usuário a possibilidade de
escolher o banco de dados num combo Box, informar o login e a senha para conexão.

Figura 3

Lairton N de Almeida Jr. lairton@gmail.com - http://appstartup.blogspot.com Página 2


Serialização de Objetos –3Parte 1

Serializando o objeto

Na Figura 4 está um provável código para o botão “Ok”, onde é validada as credenciais
informadas e, em caso de aceite, as informações de último login com sucesso são armazenadas
no objeto e em seguida o objeto é serializado.

Figura 4

A função SalXMLSerializeUDV
Em termos gerais, a função para serialização tem as seguintes características:

SalXMLSerializeUDV ( strObjeto , strArquivo, nEstiloDeGravação )


Descrição: Esta função grava em um arquivo padrão XML o conteúdo de um objeto definido
pelo usuário ou de um vetor.
As variáveis definidas em Class Variables não são serializadas.
Parâmetros:
strObjeto O nome do objeto definido pelo desenvolvedor que será serializado.
Deve ser usado o nome do objeto instanciado e não o nome da classe
ou de um objeto que não foi instanciado.
strArquivo O caminho completo com o nome do arquivo XML que será gerado
contendo o objeto strObjeto serializado.
nEstiloDeGravação Uma constante que indica o método da serialização. Utilize uma das
constantes abaixo:
XML_DocAndSchema
XML_Document
XML_Schema

Obs: Não consegui notar diferença ao utilizar qualquer uma das


constantes acima. Todas geraram o mesmo resultado, um arquivo com
o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<oParametros class="fcParametros">

<isUltimoDB>HOMOLOGACAO</isUltimoDB>

<isUltimoLogin>lairton</isUltimoLogin>

<idUltimoLogin>2010-07-04T21:33:57</idUltimoLogin>

</oParametros>

Lairton N de Almeida Jr. lairton@gmail.com - http://appstartup.blogspot.com Página 3


Serialização de Objetos –4Parte 1

Deserializando um objeto

A recuperação do objeto serializado no arquivo XML é extremamente simples, basta executar a


linha de comando abaixo para que o objeto seja inicializado com o conteúdo do arquivo XML:

A função SalXMLDeserializeUDV
Em termos gerais, a função para deserialização tem as seguintes características:

SalXMDeserializeUDV ( strObjeto , strArquivo, sEstiloDeGravação )


Descrição: Esta função lê um arquivo padrão XML e carrega seu conteúdo no objeto UDV.
Parâmetros:
strObjeto O nome do objeto definido pelo desenvolvedor.
strArquivo O caminho completo com o nome do arquivo XML.
nEstiloDeGravação Uma constante que indica o método da serialização. Utilize uma das
constantes abaixo:
XML_DocAndSchema
XML_Document
XML_Schema

Obs: Não consegui notar diferença ao utilizar qualquer uma das


constantes acima. Todas geraram o mesmo resultado.

Conclusão
Através deste primeiro exercício, tentei deixar claro que é muito simples trabalhar com
serialização de objetos no Team Developer. Basta colocar a imaginação para funcionar e todas
as rotinas de tratamento de arquivos de parâmetros podem ser simplificadas com o uso deste
recurso.

Lairton N de Almeida Jr. lairton@gmail.com - http://appstartup.blogspot.com Página 4

Você também pode gostar