Alfa Beta Sistemas S.A.
Acceso a actualización de bases de datos de precios
Se provee acceso a un Web Service denominado abWsDescargas que
permite la descarga de información correspondiente a la base de datos
de Alfa beta sobre productos farmacéuticos del mercado Argentino.
Detalle del servicio
URL, método y parámetros de entrada
La URL correspondiente al Web Service es:
[Link]
El método al que se debe invocar se denomina "actualizar" y tiene
tres parámetros de entrada (Request).
Parámetro 1: Identificado de Usuario (provisto por Alfa Beta), Tipo:
long.
Parámetro 2: Clave del Usuario (provista por Alfa Beta), Tipo:
Alfanumérico.
Parámetro 3: Archivo xml que contiene tags representando distintos
parámetros de consultas, Tipo: Alfanumérico.
Descripción del Archivo xml (parámetro 3)
<parametros>
<ultimologMF>XXXXXX</ultimologMF>
<basecompleta>S</basecompleta>
</parametros>
NOTA: Al ser el parámetro 3 un string que contiene un xml, hay que
asegurarse de que los caracteres < y & sean escapados o todo el xml
esté contenido dentro de un cdata, entonces si el servidor devuelve
el error 2 (XML mal formado) puede ser que deba armar el contenido
del Parámetro 3 de la siguiente manera:
<![CDATA[<parametros>
<ultimologMF>XXXXXX</ultimologMF>
<basecompleta>S</basecompleta>
</parametros>]]>
Si <basecompleta> está en S, solo devuelve la base completa (ignora
los otros parámetros)
Caso contrario se devuelven las novedades.
Actualización de bases de datos – Web Service Página 1
Alfa Beta Sistemas S.A.
Como salida (Response), el método devuelve un flujo de datos del tipo
base64binary que contiene un archivo zipeado, al descompactarlo se
obtiene un archivo del tipo xml cuyo contenido y estructura varían de
acuerdo al tipo de requerimiento efectuado.
Descripción de la operación del Web Service
1) Actualización de base de datos del Manual Farmacéutico.
Alfa Beta utiliza un número de log numérico entero que va creciendo para
cada novedad ingresada a la base de datos, el cliente deberá informar el
último log recibido para verificar si hay novedades, para ello se utiliza
el tag <ultimoLogMF> del parámetro archivo xml (parámetro 3).
La respuesta a recibir por el Web Service es un archivo xml con la
siguientes características.
Respuesta del Web Service (Caso 1)
<respuesta>
<error>
<codigo></codigo>
<descripcion></descripcion>
</error>
<logsMF>
<logMF>
<log></log>
<tipo></tipo>
. Datos variables según valor del tag <tipo>
.
.
.
</logMF>
</logsMF>
</respuesta>
Descripción de los tags
<error> Tag contenedor de mensajes de respuesta que informa los errores
que puede devolver el servidor.
Los posibles códigos y mensajes de error son:
<codigo>0</codigo><descripcion>OK</descripcion>
<codigo>1</codigo><descripcion>Error en Usuario o
clave</descripcion>
<codigo>2</codigo><descripcion>Xml mal formado</descripcion>
<codigo>3</codigo><descripcion>ultimoLogMf no
encontrado</descripcion>
Actualización de bases de datos – Web Service Página 2
Alfa Beta Sistemas S.A.
<codigo>4</codigo><descripcion>Error al obtener
Ofertas</descripcion>
<codigo>5</codigo><descripcion>Error al obtener base
completa</descripcion>
<codigo>6</codigo><descripcion>ultimoLogMf con fecha anterior a 60
días</descripcion>
</error>
<logsMF> Tag contenedor de las respuestas correspondientes al pedido de
<ultimologMF>
<logMF> Cada uno de los ítems de respuesta correspondientes al pedido del
tag <ultimologMF>
<log> Id numérico secuencial que identifica cada movimiento de la base de
datos, pueden existir saltos en la secuencia y el servidor puede
responder con logs anteriores al enviado en el ultimologMF debido a
que las fechas de vigencia de los precios no siempre se
corresponden con las fechas de carga de los mismos (ej., el día 1
se cargo una modificación con fecha de vigencia 5, por lo que hasta
el día 5 no será entregado ese log).
<tipo> Es el tipo de operación a realizar,
Este tag (<tipo>) y el tag <log> son los UNICOS que se devuelven
siempre independientemente del valor del contenido del tag <tipo>
Los tipos de operaciones posibles son:
P - Modificación de precio
En este caso, a continuación se devuelven los siguientes tags
<reg> Nro. de registro de la presentación (clave), Tipo: Entero
<prc> Precio Sugerido al Público, Tipo: Numérico con 2 decimales
(punto como separador)
<vig> Vigencia del precio, Tipo: Fecha (dd/mm/aaaa)
A, M, R - Alta, Modificación o Rehabilitación de producto
En estos casos, a continuación se devuelven los siguientes tags:
<reg> Nro. de registro de la presentación (clave), Tipo: Entero
<prc> Precio Sugerido al Público, Tipo: Numérico con 2 decimales
(punto como separador)
<vig> Vigencia del precio, Tipo: Fecha (dd/mm/aaaa)
<nom> Nombre de producto, Tipo: Alfanumérico (Máximo 44)
<pres> Presentación del producto, Alfanumérico (Máximo 24)
<labo> Código interno del laboratorio, Tipo: Entero, Referencia:
Tabla "Laborato"
<tro> Código de troquel, Tipo: Entero.
<est> Estado de la presentación, Tipo:A=Activo, I=Inactivo
<imp> Marca de Importado, Tipo:(S/N)
<hel> Marca de Heladera, Tipo:(S/N)
<iva> Marca de IVA, Tipo:(S/N)
<bars> Englobador de códigos de barra, (Lo estándar es que haya uno
solo por presentación, pero pueden haber varios)
<bar> Código de barra, Tipo: Alfanumérico (Máximo 13)
<bar>
</bars>
<tipov> Código interno de Tipo de Venta, Tipo: Entero, Referencia:
Tabla: "TipoVen"
<salud> Código interno de Tipo de control de Salud Pública, Tipo:
Entero, Referencia: Tabla "Control"
Actualización de bases de datos – Web Service Página 3
Alfa Beta Sistemas S.A.
<tam> Código interno de Tamaño relativo a demás presentaciones,
Tipo: Entero, Referencia: Tabla "Tamanio"
<for> Código interno de Forma Farmacéutica, Tipo: Entero,
Referencia: Tabla "Formas"
<via> Código interno de Vía de administración, Tipo: Entero,
Referencia: Tabla "Via"
<dro> Código interno de droga (Descripción de drogas resumidas
publicadas en el Manual Farmacéutico), Tipo: Entero,
Referencia: Tabla "Monodro"
<acc> Código interno de Acción Farmacoterapéutica, Tipo: Entero,
Referencia: Tabla "Acciones"
<mdrogas> Englobador de Drogas
<mdroga> Código interno de droga : Entero, Referencia Tabla
"NuevaDro"
<mdroga>
</mdrogas>
<pot> Potencia de la presentación, Tipo : Alfanumérico
<upot> Código interno de la Unidad en la que esta expresada la
potencia, Tipo : Entero, Referencia Tabla "Potencia"
<uni> Unidades de la presentación
<uuni> Código interno del tipo de Unidad en la que esta expresada
la presentación, Tipo : Entero, Referencia Tabla "Cantidad"
<gtins> Englobador de GTIN, (Lo estándar es que haya uno solo por
presentación, pero pueden haber varios)
<gtin>
<gtin>
<gtins>
<grav> Marca de gravamen (S/N)
<cel> Marca de presentación apta para Celíacos (S/N)
B - Baja de un producto
En estos casos, a continuación se devuelven los siguientes tags:
<reg> Nro. de registro de la presentación, Tipo: Entero
T, C, D – Alta, Modificación o Baja (de tablas adicionales)
En estos casos, a continuación se devuelven los siguientes tags:
<tabla> Nombre de la tabla sobre la que se aplican las novedades.
(Respetar mayúsculas y minúsculas), los valores posibles son:
Laborato, TipoVen, Tamanio, Formas, Via, Monodro, Acciones,
NuevaDro, Potencia, Cantidad.
<id> Id de la tabla (clave), Tipo: Entero.
<des> Descripción del campo descripción de la tabla sobre la que
se aplican las novedades, Tipo: Alfanumérico (Máximo 50)
Actualización de bases de datos – Web Service Página 4
Alfa Beta Sistemas S.A.
Caso particular de querer recibir todos los registros de la base
de datos (base completa)
Para este requerimiento se debe enviar como parámetro el tag
<basecompleta>
Ej.
<parametros>
<basecompleta>S</basecompleta>
</parametros>
La respuesta del servidor será devolver todos los registros de la tabla
de Artículos como si fuesen operaciones de Alta y sin devolver el tag
<log> ni el tag <tipo>, además devolverá todos los registros de las
tablas adicionales con el siguiente formato:
<respuesta>
<basecompleta>
<Articulos>
<Articulo> Cada uno de los registros de la tabla
de artículos
<reg>
<prc>
<vig>
.
. demás tags correspondientes a la tabla
“Articulo”
.
</Articulo>
</Articulos>
<Laborato>
<registro> Cada uno de los registros de la tabla
de Laboratorios
<id> Id del laboratorio
<des> Descripción del laboratorio
</registro>
</Laborato>
<TipoVen>
<registro> Cada uno de los registros de la tabla
de Tipos de venta
<id> Id del tipo de venta
<des> Descripción del tipo de venta
</registro>
<TipoVen>
.
.
.Ídem con cada una de los Tags de las demás tablas ...
.
<Tamanio>
<Formas>
Actualización de bases de datos – Web Service Página 5
Alfa Beta Sistemas S.A.
<Via>
<Monodro>
<Acciones>
<NuevaDro>
<Potencia>
<Cantidad>
<ultimolog>XXXXX</ultimolog>
</basecompleta>
</respuesta>
Inmediatamente después de las tablas se devuelve el tag <ultimolog> que
contiene el último log ingresado en la base de datos, ese número es el
que deberá ser enviado al servidor en la próxima consulta para continuar
con el proceso estándar de actualización.
Nota: Sugerimos consultar las novedades mínimamente 1 vez por día (a
primera hora) para que el mismo devuelva las novedades que entran en
vigencia en ese mismo día (no se entregan novedades con fecha de vigencia
adelantada).
Actualización de bases de datos – Web Service Página 6