Subido por Alex Casaus Carmona

Documentación WS

Anuncio
Webservices – Aitana
1. Contexto inicial
Se observa que el rendimiento de la plataforma es excesivamente lento porque en ciertos
puntos, el sistema queda esperando una respuesta del servidor, llegando a producir una
mala experiencia de usuario. Se llegan a realizar cargas de hasta 1,5-2 minutos de espera.
Tras analizar el flujo web, se observa que esta bajada de rendimiento viene relacionada con
llamadas a Webservices de Aitana (Navision) porque o no están bien hechos o son
demasiado lentos.El ejemplo se realiza con el usuario [email protected] le tarda,
llegando a marcar tiempos de hasta 1,5 minutos en dar respuesta el WS de Aitana.
Se debe analizar cada una de las llamadas a WS que se produzca desde el código para ver
donde se puede enfocar el sistema desde otro punto de vista que no sea utilizando los WS.
2. Análisis
Se parte de la llamada al WS de Aitana que encontraremos en los MAGENTO STANDARD
CONFIGS
http://195.77.153.162:7050/DynamicsNAV_ECOM/WS/Bunzl%20Distribution%20Spain,%20S
.A./Codeunit/WS_EcommerceMgt
Esta configuración es la que encontraremos en el BackOffice de Magento (PRO) que se
alimenta de la información ubicada en docker/env/production-separated/system.php.
A modo de anotación, para los casos de PRE y local, se apunta al WS de Aitana de TEST,
siendo el archivo: docker/system.php.
Por lo tanto, las URLs de los WS de Aitana varían acorde al entorno indicado.
3. Código Web
En el archivo app/code/Etailers/NavWS/Model/ConfigProvider.php tenemos toda la
configuración de los WS y será el modelo al que los diferentes scripts que requieran de
respuesta por parte de alguno de los WS de Aitana, deberán llamar y obtener la
información requerida.
La implementación de los métodos comentados en el párrafo anterior se encuentran dentro
de la siguiente ruta: app/code/Etailers/NavWS/Model/Processor. Y estos métodos son
los siguientes:

Customer.php
La función que realiza la conexión al WS dentro del script de Customer.php se llama desde
app/code/Bunzl/Customer/Model/Customer/CustomerValidator/CifValidators/AeatValidato
r.php donde se valida el usuario contra la AEAT (Hacienda) en el momento de crear una
cuenta en el sistema.

CustomerBloqueo.php
La función que realiza la conexión al WS dentro del script de CustomerBloqueo.php, se
llama desde
app/code/Bunzl/Usuario/Model/Domain/UsuarioCliente/TipoBloqueo/Validators/ValidatorB
loqueoWebService.php donde se consulta si el cliente está bloqueado o no, cuando se va a
crear el usuario.
Existe otra función que se llama desde
app/code/Bunzl/Oferta/Controller/Oferta/ChangeCliente.php al intentar cambiar de cliente
y que necesita conocer si el cliente está bloqueado o no.

FacturaPagada.php
La función que realiza la conexión al WS dentro del script de FacturaPagada.php, se llama
desde app/code/Bunzl/Factura/Model/Factura.php donde se consulta el estado de una
factura para saber si está Pagada/No Pagada. Se realiza tanto para obtener el label del
Estado así como su CSS para poder mostrarlo en el listado de facturas dependiendo de su
estado.

FechaEntrega.php
Pese a que no se ha encontrado ninguna función que requiera del uso de este WS, la
función existe como tal. Es posible que ya haya sido refactorizada o se haya desarrollado la
obtención de Fechas de Entrega posibles sin necesidad de usar un WS. No obstante, para
obtener un rango de fechas, sí que se está usando, tal y como veremos en el punto
siguiente.

FechaEntregaRango.php
La función que realiza la conexión al WS dentro del script de FechaEntregaRango.php, se
llama desde
app/code/Bunzl/Shipping/Model/Carrier/DeliveryDateValidators/EnvioNormasYPrioritarios.
php donde se debe buscar un rango de fechas ideales para la entrega.

ProductosHabituales.php
La función que realiza la conexión al WS dentro del script de ProductosHabituales.php, se
llama desde app/code/Bunzl/Usuario/Block/Product/ListProduct.php donde se obtienen los
productos comprados según cliente y dirección.

Semaforo.php
La función que realiza la conexión al WS dentro del script de Semaforo.php, se llama desde
app/code/Bunzl/Stock/Model/StockValidator/ValidatorWebService.php donde existe un
semáforo que recupera tanto el color de este así como el Plazo de días para poder validar
el stock en almacen.

Stock.php
La función que realiza la conexión al WS dentro del script de Stock.php, se llama desde
app/code/Bunzl/Stock/Model/StockValidator/ValidatorWebService.php donde se obtendrá
el código de producto y el stock que tiene. De esta manera, tras validarlo puede añadirlo.
Existe otra función que se llama desde app/code/Etailers/NavWS/Console/Command que
se utiliza para lanzar por consola la obtención del stockInfo que funciona como el párrafo
anterior.
Descargar