Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
gsegreda
Contributor III
Contributor III

Cómo generar un codigo único (UPC) con diferentes formatos (algunos tienen digito verificador, otros no)

Hola Comunidad.

De nuevo recurro a ustedes porque cada mes recibo diferentes archivos de fuentes distintas. Estos archivos vienen con el código UPC o GTIN pero algunas fuentes utilizan el dígito verificador y otros no.

Habrá una solución para que se pueda unificar este campo para que se muestre como uno solo para el usuario de la DATA?

Estas son las opciones estandar de codificación.

D de la clave  de formato

Posiciones de los dígitos

GTIN-8

N 1

N 2

N 3

N 4

N 5

N 6

N 7

N 8

GTIN-12

N 1

N 2

N 3

N 4

N 5

N 6

N 7

N 8

N 9

N 10

N 11

N 12

GTIN-13

N 1

N 2

N 3

N 4

N 5

N 6

N 7

N 8

N 9

N 10

N 11

N 12

N 13

GTIN-14

N 1

N 2

N 3

N 4

N 5

N 6

N 7

N 8

N 9

N 10

N 11

N 12

N 13

N 14

SSCC

N 1

N 2

N 3

N 4

N 5

N 6

N 7

N 8

N 9

N 10

N 11

N 12

N 13

N 14

N 15

N 16

N 17

N 18

Este es un ejemplo de un código que una fuente lo envía en 12 dígitos y otra fuente completo.

  

CODIGODIGITOS
80003003245312
800030032453213

Como siempre gracias por sus contribuciones.

1 Solution

Accepted Solutions
gsegreda
Contributor III
Contributor III
Author

Gracias Héctor y Luis.

Lo vamos a intentar de esa forma. La verdad me estaba preocupando que la fuente cambiara el formato de envío de los datos pero como lo menciona Héctor, no habría forma de identificarlo previo, asumiremos que los datos vienen siempre con el mismo formato...

Feliz semana!!!

View solution in original post

3 Replies
hector_munoz
Specialist
Specialist

Hola Gustavo,

Por lo que he estado leyendo de los códigos UPC (Universal Product Code - Wikipedia) o GTIN (Global Trade Item Number - Wikipedia, la enciclopedia libre) al final lo que tienes es una "ristra" de caracteres que identifican un producto completamente: fabricante+producto+dígito de control.

Si quieres unificar, no sería complicado si dispones del tipo de código (GTIN-8, GTIN-12, GTIN-13, GTIN-14 o SSCC) para cada registro. De esta forma, sabrías la longitud del código (8 caracteres, 12, 13, etc.) y sabrías si cada registro tiene un código con el dígito de control o no... El problema vendría si no dispusieses del tipo de código ya que por la longitud del mismo no podrías averiguarlo puesto que te puede venir con o sin dígito de control (p.e. un código de 12 dígitos puede ser un GTIN-12 con dígito de control o un GTIN-13 sin él).

Llegados al punto del ejemplo de un código de 12 dígitos que puede ser un GTIN-12 con dígito de control o un GTIN-13 sin él, podrías coger los n-1 caracteres de cada código e implementando (suponiendo que sea fácil) el algoritmo de generación del dígito de control de cada tipo de código generarlo y compararlo con el último carácter del código. Si no son iguales, el último dígito no sería el de control; si son iguales podría ser el dígito de control o dar a casualidad de que no lo traiga y el último sea igual a este...


De todas formas lo mismo no he entendido el problema y me estoy complicando mucho... Si podemos ayudarte mejor, nos lo dices.


Suerte y saludos,
H

luis_bisval
Contributor III
Contributor III

Buen día.

Hola Gustavo, apoyándome en la información que de Héctor, adicional debes hacer un algoritmo:

El algoritmo de 5 pasos para cálcular el dígito de control

Supongamos que estamos utilizando el código ficticio de 05432122345.

  1. Sumar todos los dígitos en las posiciones impares (dígitos en la posición 1, 3, 5, 7, 9 y 11)
    0 + 4 + 2 + 2 + 3 + 5 = 16
  2. Multiplicar por 3.
    16 * 3 = 48
  3. Sumar todos los dígitos en las posiciones pares (dígitos en la posición 2, 4, 6, 8 y 10).
    5 + 3 + 1 + 2 + 4 = 15
  4. Sumar los resultados de los pasos 3 y 2.
    48 + 15 = 63
  5. Determinar qué número hay que añadir al resultado de la etapa 4 para crear un múltiplo de 10.
    63 + 7 = 70

Por lo tanto, el dígito de control es 7.


te adjunto el enlace https://www.codigoean.com/calculadora_del_digito_control.php

gsegreda
Contributor III
Contributor III
Author

Gracias Héctor y Luis.

Lo vamos a intentar de esa forma. La verdad me estaba preocupando que la fuente cambiara el formato de envío de los datos pero como lo menciona Héctor, no habría forma de identificarlo previo, asumiremos que los datos vienen siempre con el mismo formato...

Feliz semana!!!