domingo, junho 29, 2008

Código de Barras - UCC/EAN 128

O UCC/EAN 128 (renomeado mais recentemente para GS1-128) não é exatamente uma simbologia mas sim uma convenção para o formato de informações codificadas com a simbologia Code 128.

Nos posts anteriores desta série não nos preocupamos com o que estava sendo codificado em barras. Não exisitia nenhuma indicação nos dados codificados de qual era a informação, isto tinha que ser assumido pela aplicação que imprime ou lê os códigos. Por exemplo, um mesmo código de barras com conteúdo 081231 pode significar:
  • um código de produto (produto 081231 - rebimbela transversal)

  • um número de documento (contrato 1231 de 2008)

  • uma data de validade (31 de dezembro de 2008)
A situação fica mais complicada quando se deseja codificar mais de uma informação em um mesmo código de barras, principalmente se quisermos a flexibilidade de colocar as informações em qualquer ordem ou deixá-las opcionais.

O UCC/EAN 128 define não somente um estrutura para o conteúdo do código como identificações para os tipos de informação mais comuns.

Um UCC/EAN 128 é codificado com a simbologia Code 128 e deve obrigatoriamente começar com o símbolo FNC1. Em seguida temos uma série de pares . Os identificadores de aplicação (ou simplesmente AIs) são códigos numéricos de 2 a 4 dígitos que identificam a informação que o segue. Alguns AIs exigem informação com tamanho fixo e outros informação com tamanho variável. No primeiro caso um novo par pode vir logo em seguida; no segundo caso é necessário colocar um FNC1 para indicar o fim da informação.

No texto impresso abaixo das barras a convenção é apresentar os AIs entre parenteses; estes parenteses não são codificados nas barras.

Existe uma longa lista de AIs definidos a nível mundial pela GS1. Alguns deles estão na tabela abaixo:



De posse de uma tabela dos AIs suportados, uma aplicação pode fazer o 'parse' de um código de barras UCC/EAN-128, extraindo os dados que lhe interessam (independente da sua posição no código) e descartando demais.

Nenhum comentário: