Guias de instalación

Ambientación local de ambiente de desarrollo Farmax OR

 

Objetivo

El objetivo de este documento es detallar una guía para el aprovisionamiento de un ambiente local de Farmax-OR, con el fin de que los desarrolladores cuenten con una referencia para tener un ambiente de desarrollo con el cual puedan realizar la tareas de nuevos requerimientos o proporcionar soporte sobre las incidencias reportadas.

 

Audiencia

Este documento va dirigido principalmente a los integrantes del equipo de desarrollo pero también al equipo de soporte y arquitectura que estén interesados en entender la manera en la que se puede tener un ambiente propio para los fines de desarrollar nuevos requerimientos o incluso solo para el entendimiento del sistema.

 

Alcance

Este documento contempla la instalación de los principales componentes del punto de venta:

Prerrequisitos

Hardware

Se recomienda tener una máquina con las siguientes características:

  • RAM: 8g RAM o superior

  • Procesador: I5 o superior

  • Pantalla: Con una resolución con al menos 1024 x 768, pero se recomienda 1920 x 1080

  • Disco: Disco de estado sólido de 512 G

 

Software

  • Win 10 Pro (x64)

  • SQL server 2012 developer edition sp4

  • PostSharp 4.1.10 express

  • Visual studio comunity 

  • Instalar WCF

  • NetFramework 4.5

  • JetBrains Rider

  • Git (https://git-scm.com/download/win)

  • Internet Information services (característica recomendada de windows)

  • Microsoft Message Queue Server (característica recomendada de windows)

Herramientas adicionales recomendadas

  • NotePad ++

  • WinRar

  • Beyond compare

  • FreeCommander

  • SQL server Management Studio 19

  • Fiddler Classic

  • SOAPUI

  • Postman

  • Jetbrains DataGrip

Bases de datos para aplicativos

Lo primero que se debe hacer es instalar la base de datos  SQL server 2012 en nuestro equipo, la cual puede descargarse de https://drive.google.com/file/d/1j5TRX3r1kvrHMXZ0zQL-vcLbqCiCoquo/view?usp=drive_link

Para estandarizar  durante la instalación se debe  configurar  el collation como Modern_Spanish_100 Accent-sensitive por ejemplo:

 

Además se debe habilitar la autenticación mixta, así como colocar al usuario sa el password  adm1n

 

Se debe habilitar los protocolos Named Pipes y TCP/IP, mediante la herramienta SQL server Configuration manager

Por último se debe importar el respaldo de cada una se las bases de datos con la herramienta SQL server management studio, los archivos están comprimidos por lo que se deben descomprimir primero.

Aplicativos

Para tener un ambiente local corriendo el punto de venta, es necesario descargar el código fuente de la aplicación, lo cual logramos clonando el repositorio, lo cual logramos ejecutando el siguiente comando en powershell o en cmd

git clone  https://hnolasco:glpat-F9soS6tC75C5MBV28crx@gitlab.com/farmaciasdelahorro/coe/farmax/pos-or/pos.git pos-or

 

Descargar libs/Bin.zip que viene dentro de las carpetas que acompañan a este documento, descomprimir el el archivo Bin.zip  y su contenido  colocarlo en pos-or\Farmax\Bin

El archivo Bin.zip contiene lo siguiente:

El contenido del archivo Bin.zip debe quedar depositado en  pos-or\Farmax\Bin


Se debe importar el archivo libs/hna_fda_farmax_posld.reg que viene junto con este documento, lo anterior dando doble click sobre el archivo.

 

Además es posible que no se encuentren todos lo dll en la carpeta BIN, esto debido a que si para el momento que se está montando el ambiente, ya se aplicó el merge al main que incluye uso de nuggets, entonces se necesitará instalar nuget y dar de alta el repositorio de farmacias, dicho procedimiento viene descrito en Instalar Nuget y Agregar repositorio Nuget Farmacias del Ahorro GitLab 

Aplicar los procedimientos anteriores si se llega a un error de compilación por falta de referencias
 

Servicios webCentrales

1.- Abrir la solución pos-or\Farmax\Src\POS\POS.Services.sln con Jetbrains Rider 

2.- Compilar la solución completa:


 

Probablemente aparezca la pantalla de postsharp, si es el caso seleccionar “Ask me later”


3.- Reemplazar el archivo pos-or\Farmax\Src\POS\Services.Host\Web.config por pos-or\Farmax\Src\POS\Services.Host\Web.local.config

4.- Correr el proyecto Pos.Services.Host:

 

 

Servicios de caja

Dado que  este proyecto se encuentra en la misma solución (pos-or\Farmax\Src\POS\POS.Services.sln) que los webCentrales ya no es necesario volver a abrirlo. 

1.- reemplazar pos-or\Farmax\Src\POS\Win.Services.TillHost\Program.cs por libs\Program.cs este último viene junto con éste documento

2.- Colocar como argumento de ejecución “console”

 

3.- Correr el proyecto Win.Services.TillHost

 

Front-End POS

Esta es la solución que contiene la vista del punto de venta, para levantar la interfaz es necesario que los servicios de caja y los webCentrales se encuentren corriendo, dicho proceso se describió arriba.

1.- Abrir la solución  pos-or\Farmax\Src\POS\POS.Win.sln

 

2.- Compilar la solución

3.- Correr el proyecto Win.Main

 

 

4.- Usar los siguientes datos  usuario: c31 y pass: 123

Cuando se esté firmado al sistema y éste  pida corte, aplicarlo, si después de eso dice que el turno está obsoleto, esto se corrige adecuando la fechaProgramadaDeCierre con una fecha posterior a hoy  en la base de datos POSDB_local. Por ejemplo si hoy es 29 de julio del 2023, el siguiente update corregiría el problema

update venFechaOperacion set fechaProgramadaDeCierre='2023-07-30 23:59:00.000' where estadoActual='A' and codigoSucursal='1553';

 

 

 

BackOffice

 

Abir la solución  pos-or\Farmax\Src\BackOffice\FAhorro.BackOffice.sln con Rider y compilarla completa

Después sustituir el archivo pos-or\Farmax\Src\BackOffice\BackOffice\Web.config por pos-or\Farmax\Src\BackOffice\BackOffice\Web.local.config

Antes de proceder a levantar el aplicativo backoffice es necesario que el servicio Pos.Services.Host esté arriba.

Levantamos el backoffice de la siguiente manera:

 

Abrimos el browser la ruta:

http://localhost:54327/

 

usar las credenciales usuario:administrador y password:123

 

Servicios Centrales

Abrir la con Rider la solución pos-or\AnxoFARMAX\DEV_SOLUTION.sln

Aquí hay varios proyectos importantes, para el alcance de este documento solo se mostrará como compilar la solución.

 

 

Central Services

Este proyecto forma parte de la solución Dev_Solucion y para este punto ya debería estar compilado. Este el principal proyecto que interopera con el store, bd central y STG, por lo que es necesario aprovisionar la base de sql server que funge como central (FARMAX_CENTRAL), la cual se aprovisionó   en la sección Base de Datos , además es necesario instalar una base de datos Oracle Express Edition en la que se montará la estructura del STG.

Para la instalación y aprovisionamiento de la base STG primero debemos instalar Oracle Express el cual podemos descargar de sofware/OracleXE213_Win64.zip

Ejecutar el archivo setup.exe

Cuando el instalador pida la contraseña a usar para sys o system colocar adm1n

 

Al finalizar la instalación debe aparecer algo como lo siguiente:


 

Se procede a verificar la conexión usando system como usuario y adm1n como password

 

e procede a conectarse  a la base de datos oracle express (jdbc:oracle:thin:@//localhost:1521/XEPDB1)  y una vez ahí ejecutamos el siguiente script ddl.sql dicho script generará la estructura de la base STG


El servicio central requiere de una conexión a la base de datos de ld (POSDB) la cual debe estar montada en el sqlserver local (ver sección Base de Datos), para ello es necesario importar el respaldo respaldosbds/posdb_hna_ld_100723.rar 

Despues de tener las instancias de base de datos necesarias, se debe ubicar en el proyecto pos-or\AnxoFARMAX\CentralService\DEV_CentralService.csproj

  Se debe sustituir el archivo local pos-or\AnxoFARMAX\CentralService\Program.cs por el archivo libs\central_services\Program.cs   

Se debe aplicar el siguiente script en la base de datos FARMAX_CENTRAL la cual se encuentra en el sqlserver local

alter table sadCentralOrdenes
   add appToken uniqueidentifier
go

 

Se debe sustituir el archivo pos-or\AnxoFARMAX\CentralService\App.config por  el archivo pos-or\AnxoFARMAX\CentralService\App_local.config 

Por último se debe correr el proyecto DEV_CentralService pero con el argumento console

 

 

 

FarmaxStoreWeb

Esta es una aplicación auxiliar que realiza operaciones como cortes de caja, y da unos reportes asociados al store.

Para poder correr este proyecto primero debemos dirigirnos a pos-or\AnxoFARMAX\FarmaxStoreWeb\FarmaxStoreWeb.csproj


Despues sustituir el archivo por-or\AnxoFARMAX\FarmaxStoreWeb\Web.config por por-or\AnxoFARMAX\FarmaxStoreWeb\Web.local.config para esto se debe realizar un fetch o pull de git en caso de que no se tenga.

Antes de proceder a levantar el aplicativo FarmaxSToreWeb es necesario que el servicio Pos.Services.Host esté arriba.

Por último se procede a levantar el aplicativo FarmaxSToreWeb 

Se abrirá la siguiente pantalla

Para ingresar se debe usar el usuario c31 y el password 123

 

CentralServiceReport

Este es el servicio central que esté a la espera de la solicitudes realizadas por backoffice para la ejecución de reportes mediante una tabla de solicitudes(rptReporteSolicitudEjecucion).

Para levantar este proyecto se debe dirigir a pos-or\AnxoFARMAX\CentralServiceReport\CentralServiceReport.csproj

Reemplazar el archivo pos-or\AnxoFARMAX\CentralServiceReport\App.config por pos-or\AnxoFARMAX\CentralServiceReport\App.local.config

dentro del archivo App.local.config ajustar la variable CONFIG_REPORT_SERVICE_DIRECTORY acorde al lugar donde se encuentre el directorio de configuración de reportes. Dicho directorio reside bajo el mismo directorio donde se clonó el repositorio, por ejemplo:

Se debe correr el proyecto con el argumento console

Cuando haya corrido ingresar la palabra start en el prompt y teclear enter

Esto iniciará el servicio

y con esto el servicio ya está a la espera de solicitudes del backoffice local

 

SadWebServices

Este es el servicio central expone el api el manejo de servicio a domicilio, por ejemplo expone servicios de manejo de órdenes, notificaciones adyen, etc.

En esencia este proyecto contiene un conjunto de servicios tipo rest. El proyecto se encuentra en pos-or\AnxoFARMAX\SadWebServices\SadWebServices.csproj que forma parte de la solución DEV_SOLUTION

Para ejecutar este servicios es necesario reemplazar el archivo pos-or\AnxoFARMAX\SadWebServices\Web.config por el archivo pos-or\AnxoFARMAX\SadWebServices\Web.local.config

Si el archivo Web.local.config no se encuentra, será necesario descargar los ultimos cambios con un pull o un fetch

Además se requiere  que el servicio Pos.Services.Host esté arriba.

Después se procede a ejecutar el proyecto de SadWebServices

Cuando el servicio levante, se aparecerá la siguiente pantalla

Si le damos click a API debe aparecer:

 

LabWebServices

Este es el servicio central que expone un servicio rest de cara a ROCHE para el procesamiento de órdenes de laboratorio.

Para ejecutar el servicio  se debe reemplazar el archivo  pos-or\AnxoFARMAX\LabWebServices\Web.config por el archivo pos-or\AnxoFARMAX\LabWebServices\Web.local.config

Si el archivo Web.local.config no se encuentra, será necesario descargar los ultimos cambios con un pull o un fetch

Ejecutar el proyecto 

 

Deberá abrirse la siguiente pantalla

si le damos click  API debe aparecer:

 

RTLog

Este es el proyecto que se encarga de transferir los datos de las tablas intermedias generadas en el store y que contienen la información de ventas, factura global, etc. 

Las tablas intermedias se generan en store, se suben a central y este proyecto las traslada al STG.

Este proyecto se encuentra dentro de la solución DEV_SOLUTION en pos-or\AnxoFARMAX\CentralServiceRtlog\CentralServiceRtlog.csproj

Para poder ejecutarlo se asume que la base de datos Oracle Express se encuentra instalada como se detalla en Servicios Centrales, y por su puesto las bases de datos aprovisionadas estén  acorde a Bases de datos para aplicativos.

 

Despues se debe se debe reemplazar el archivo pos-or\AnxoFARMAX\CentralServiceRtlog\App.config por el archivo pos-or\AnxoFARMAX\CentralServiceRtlog\App.local.config

Tener como argumento de ejecución “console”

 

Ejecutar el proyecto

Y teclear la palabra start en el prompt de la parte inferior y teclear enter

Archive

Este proyecto es el encargado de transferir los datos de una base a otra (central->archive) realizando un proceso de purga de la central y de esta manera teniendo solo un periodo de tiempo  los datos de la central  y los datos históricos se mantendrán en la base de datos archive, además de ir sincronizando los datos nuevos que lleguen a central y clonarlos al archive. Es un proyecto de auto depuración de datos en la base de datos central.

Para poder ejecutar este proyecto, es necesario montar el respaldo de la base FARMAX_CENTRAL pero destinando a una nueva base de datos a la cual llamaremos FARMAX_ARCHIVE

Para evitar conflictos con los archivos de data y log de la base FARMAX_CENTRAL que ya se tiene, es necesario adaptar los valores para que apunten a un nuevo path, y de esta manera ejecutar el respaldo

Al realizar el procedimiento anterior la base de datos FARMAX_CENTRAL, quedará en un estado inaccesible, para sacarla de ese estado basta realizar el respaldo que está solicitando, y sin mover ningun parametro ejecutar el respaldo.

 

Despues se debe aplicar el siguiente script en la base de datos FARMAX_CENTRAL

INSERT INTO AX_PARAMETERS (PARAMETER, VALUE, CREATION_DATETIME, LAST_UPDATE_DATETIME, OBJECT_VERSION, LAST_UPDATE_LOG) VALUES (510, N'12', N'2023-05-09 10:25:33.737', N'2023-05-09 10:25:33.737', 1, N'');
INSERT INTO cnfParametrosConfiguracionAplicacion (idParametroConfiguracion, parametro, valor, descripcion, estaActivo, tipo, syncCreadoFecha, syncActualizadoFecha, syncActualizadoPor, syncVersionRegistro) VALUES (1095, N'PeriodoRetencionPurgaPrincipal', N'10', N'Parámetro que establece el tiempo máximo (en meses) de retención de datos para la base de datos principal', 1, N'G', N'2023-05-09 10:24:50.810', N'2023-05-09 10:24:50.810', N'FARMAX.SYNC.INSERT', 1);
INSERT INTO dbo.cnfParametrosConfiguracionAplicacion (idParametroConfiguracion, parametro, valor, descripcion, estaActivo, tipo, syncCreadoFecha, syncActualizadoFecha, syncActualizadoPor, syncVersionRegistro) VALUES (1096, N'PeriodoRetencionPurgaArchive', N'24', N'Parámetro que establece el tiempo máximo (en meses) de retención de datos para la base de datos archive', 1, N'G', N'2023-05-09 10:24:50.810', N'2023-05-09 10:24:50.810', N'FARMAX.SYNC.INSERT', 1);

 

 

Despues aplicar el siguiente script tanto en la base FARMAX_CENTRAL como en FARMAX_ARCHIVE

alter table AX_SYNC_MONITORING_ENTITIES alter column MONITOR_ENTITY_ID bigint not null;
alter table AX_SYNC_ENTITIES_CHANGES alter column ENTITY_CHANGE_ID bigint not null;
alter table AX_SYNC_TRIGGER_CHANGES alter column TRIGGER_CHANGE_ID int not null;

 

Es necesario cambiarle la extencion a dos de los archivos de configuración de archive para evitar conflictos, los cuales se encuentran en pos-or\AnxoFARMAx\DEV_ArchiveConfiguration y los archivos en cuestión son ARCHIVE_PURGE_TILL.xml y ARCHIVE_PURGE_STORE.xml

 

Se debe colocar en el argumento de ejecución “console”

Se debe reemplazar el archivo pos-or\AnxoFARMAX\CentralServiceArchive\App.config por el archivo pos-or\AnxoFARMAX\CentralServiceArchive\App.local.config

Ejecutar el proyecto y en la esquina inferior izquierda, aparecerá un promt en el cual escribimos start esto hará que se inicie el proceso de archive.

 

 

Posibles errores y solución

Error (MSB3644 ) por mal referencia a .NETFramework 4.5

 

En caso de que se se presente el siguiente error: 

Microsoft.Common.CurrentVersion.targets(1241,5): Error MSB3644 : No se encuentran los ensamblados de referencia para .NETFramework,Version=v4.5. Para resolver este problema, instale el Paquete de desarrollador (SDK o Paquete de compatibilidad) de esta versión de .NET Framework o redestine la aplicación. Para descargar los paquetes de desarrollador de .NET Framework, vaya a https://aka.ms/msbuild/developerpacks 

Aplicar la siguiente solución:

  1. Ir a https://www.nuget.org/packages/microsoft.netframework.referenceassemblies.net45 y descargar el paquete

 

  1. renombrar el archivo descargado "microsoft.netframework.referenceassemblies.net45.1.0.3.nupkg" a "microsoft.netframework.referenceassemblies.net45.1.0.3.zip" y extraer

  2. Ir a build\.NETFramework, copiar la carpeta v4.5, pegar en el directorio C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework, reemplazar si es necesario

 

Instalación WCF

  1. Buscar y abrir el instalador de visual studio community




 

  1. Modificar para instalar el componente individual de WCF

  1.  Cambiar a la pestaña de componentes individuales

  2.  Buscar "wcf"

  3.  marcar casilla de "Windows Communication Foundation

  4.  Aqui el botón dice  "Modificar", en este caso dice "cerrar" porque WCF ya se encuentra instalado

 

Instalar Nuget

https://www.nuget.org/downloads

Descargar nuget.exe

Y colocarlo en el Path de la siguiente manera.

 

Agregar repositorio Nuget Farmacias del Ahorro GitLab

Correr los siguientes comandos en tu PS.

nuget source Add -Name "GitLabFAhorro" -Source "https://gitlab.com/api/v4/projects/40170153/packages/nuget/index.json" -UserName <your_username> -Password <your_token_Gitlab>


 

 


 

Categoría: Otros
Instalación de Caja FARMAX OR Zurück
Untergeordnete Artikel (3)
  • ddlSTGLocalhost.sql 14112023_FARMAX_CENTRAL.rar 20231114_FARMAX_Local.rar 20231114_FARMAX_Caja.rar FARMAX_CENTRAL_HNA_OR_210723.rar FARMAX_local_HNA_OR_210723.rar FARMAX_CAJA_HNA_OR_210723.rar...

  • OracleXE213_Win64.zip SW_DVD9_SQL_Svr_Standard_Edtn_2012_English_MLF_X1… PostSharp-4.1.10.exe      

  • Bin.zip hna_fda_farmax_posld.reg Program.cs