AX Retail 2012 R2: Como modificar los numeradores (seed values) en POS

27 02 2013

En Microsoft Dynamics AX 2012 R2 los numeradores se registran en la tabla POSSEEDVALUES de la base de datos de tienda. Sin embargo, si por algún motivo (probablemente para una migración desde 2009) deseamos alterar alguno de los valores de esta numeración nos encontraremos en que no es suficiente cambiar el valor del numerador en esta tabla. A continuación describimos los pasos a realizar para alterar una de las numeraciones almacenadas en POSSEEDVALUES.

Aparentemente, modificando el valor de la tabla POSSEEDVALUES para un tipo de numerador especifico, por ejemplo el TYPEID = 2 que corresponde al tipo ReceiptSale (Ventas), debería cambiar la numeración del ticket de la siguiente transacción. Sin embargo, comprobamos que a pesar de modificar ese valor, POS recupera el valor anterior incrementándolo. Pero, ¿de dónde obtiene la numeración anterior?. En primer lugar podríamos pensar que lo obtiene a partir de una búsqueda del máximo número de ticket, sin embargo, esto sería bastante complicado pues esa numeración se utiliza en la máscara correspondiente al formato de numeración de ticket.

Pues bien, tras investigar el procedimiento usado para recuperar el siguiente valor del numerador correspondiente a uno de los tipos de numerador (a partir del código del service Application) hemos descubierto que localmente POS guarda el último numerador en un archivo encriptado en un LocalStorage. En concreto el archivo lo podéis encontrar en una ruta aleatoria en el path c:ProgramDataIsolatedStorage… El path concreto debéis localizarlo realizando una búsqueda del archivo donde se almacena esos datos que se llama RetailPosSettings.config.

Por ejemplo, en mi portátil, la ubicación del archivo es:

C:\ProgramData\IsolatedStorage\3adcmvnc.yhyroqnoco1.13j\Publisher.m5qskfiokkoxzszdm3chhfwlcduqzom2\AssemFiles

Así pues, si queremos alterar la numeración de algún tipo de numerador en POS, debemos seguir los siguientes pasos:

  1. Localizar el archivo RetailPosSettings.config en el path C:\ProgramData\IsolatedStorage
  2. Renombrar o eliminar el archivo RetailPosSettings.config
  3. Alterar el numerador correspondiente en la tabla POSSEEDVALUES para el terminal del que queramos modificar el numerador. Los tipos de numerador (TYPEID) disponibles se muestran en la siguiente tabla
  4. Iniciar el POS en el terminal y realizar una acción que utilice el numerador (por ejemplo, si modificamos el numerador con TYPEID=2 podemos realizar una venta normal) y observar que ya ha recuperado el nuevo numerador

Tipos de numerador

ReceiptDefault 1
ReceiptSale 2
ReceiptReturn 3
ReceiptSalesOrder 4
ReceiptSalesInvoice 5
ReceiptPayment 6
BatchId 7
TransactionId 8
ReceiptCustomerSalesOrder 9
ReceiptCustomerQuote 10

No he encontrado ninguna información ‘oficial’ de Microsoft sobre cómo realizar este proceso de renumeración por lo que la solución que se propone en este artículo es completamente ‘no soportada’ y se ofrece tal cual, sin ningún tipo de responsabilidad sobre los efectos que pueda producir sobre cualquier instalación de POS.

Anuncios