Configuración Integración Vtex

Integración de VTEX

Tecnico

Revisar que esté instalado y funcionando la última versión de IGGlobal Cloud Service. 
1) descargar EXE de la siguiente pagina: https://www.rabbitmq.com/install-windows.html
001

2) al momento de Instalar sale el siguiente cartel.
002

pone si y descargar Erlang/OTP https://www.erlang.org/downloads

003

Instalar Erlang para continuar con la instalación de RabbitMQ


3) para probar que esté instalado correctamente RabbitMQ y Erlang/OTP entrar a la siguiente url:
http://localhost:15672/
Username: guest

Password: guest

004

o por services.msc buscar el servicio RabbitMQ. al finalizar la instalación, reiniciar el servicio de IGGlobal Cloud Service para que pueda operar con el servicio de RabbitMQ.

Si el servicio de monitor de rabbitmq no corre.
ejecutar el siguiente comando en la consola:

rabbitmq-plugins enable rabbitmq_management

y si aun no funciona, reinstalar el rabbitmq de vuelta y ejecutar el mismo comando

https://www.c-sharpcorner.com/article/using-net-core-with-rabbitmq-for-async-operations/
4) En el archivo “IGGlobalMasterInformac.db” hay que agregar el nombre de CuentaVTEX al dominio que corresponda, es un nuevo valor.
5) en la bases de INFORMAC, hay que agregar 2 registros en la siguiente tabla “Info_Componentes_Web”

– VTEX_CID = Nombre a la base que se va a conectar

– VTEX_STATUS_ORDERS = Nombre de estado que espera para pasar una orden de VTEX a un pedido del IGGLOBAL

Ejemplo:

Componente Clave
VTEX_CID DATOS_DESA
VTEX_STATUS_ORDERS ready-for-handling

6) en la instalación del IGGlobalCloudServices, buscar el siguiente archivo “Scheduling.Service.exe.config”,y agregar el mail donde van a llegar los posible errores , desde el ecommerce al erp. agregar el siguiente valor

<appSettings>

<add key=”igglobalMailLogTo” value=”mail@mail.com” />

</appSettings>
7) Habilitar la FU 50008

Funcional

VTEX:

  • Generalidades:
    • Cada artículo a sincronizar deberá tener en el campo CoArticuloAdicional el valor ‘VTEX-‘ + id de SKU de VTEX o agregar el atributo de VTEX y seleccionar el SKU que corresponda.
    • Cada plataforma posee un registro de parametrización que indica: la lista de precios, canal de distribución que maneja, tasa de iva (0 equivale a exento) y depósito.
  • Sincronización de precios:
    • Al guardar un precio de un artículo o al ejecutar el asistente de actualización de precios los precios de aquellos artículos que pertenezcan a la lista/canal configurados en la parametrización de la plataforma y que además tengan la marca VTEX en el campo CoArticuloAdicional o el atributo VTEX con el SKU que corresponda serán actualizados (sincronizados) hacia la plataforma VTEX.
    • Si existe algún error al sincronizar se registrará en el log el motivo del mismo, Las operaciones de sincronización exitosas también quedarán registradas en el log
  • Sincronización de stock:
    • Al guardar un movimiento de stock manual (entrada o salida) las cantidades de aquellos artículos que pertenezcan al depósito configurado en la parametrización de la plataforma y que además tengan la marca VTEX en el campo CoArticuloAdicional o el atributo VTEX con el SKU que corresponda serán actualizados (sincronizados) hacia la plataforma VTEX.
    • Al guardar un comprobante de ventas/compras  las cantidades de aquellos artículos que pertenezcan al depósito configurado en la parametrización de la plataforma y que además tengan la marca VTEX en el campo CoArticuloAdicional o el atributo VTEX con el SKU que corresponda serán actualizados (sincronizados) hacia la plataforma VTEX en función de la parametrización del cálculo de stock disponible asociado al usuario configurado en la parametrización de la plataforma. El cálculo se realiza con el datatable Stock disponible de un Artículo (30099)
  • Cargar Clave de VTEX
    • Entrar en el formulario de “eCommerce / B2C / Claves”

005 006

      • Origen: Lista de los eCommerce queres configurar
      • Nombre: Cuenta provista por el eCommerce
      • App Key: Clave provista por el eCommerce
      • App token: Token provista por el eCommerce
      • Usuario: Este usuario es para usar los valores por defecto del mismo. (Se puede cargar en “Configuración / Usuarios” )
      • Co. Cuenta Modelo: Este cliente es modelo para la carga de un nuevo cliente. (Se puede cargar en “Configuración / Tablas / Ventas / Clientes” )
      • IVA: Interés que se va a usar. 
      • No. Lista de Precios: se usa para sincronizar precio o órdenes. (Se puede cargar en “Configuración / Tablas / Inventarios / Lista de Precios” )
      • Co. Canal Distribución: se usa para sincronizar precio o órdenes. (Se puede cargar en “Configuración / Tablas / Ventas / Canales de Distribución” )
      • Co. Depósito: se usa para sincronizar stock. (Se puede cargar en “Configuración / Tablas / General / Depósitos” )
      • Co. Vendedor:  se usa para sincronizar órdenes. (Se puede cargar en “Configuración / Tablas / Ventas / Vendedores” )
      • No. Parámetro SKU: es la clave de atributo que se va a usar para identificar qué artículo tiene que ser sincronizado. (Se puede cargar en “Configuración / Tablas / Inventarios / Estructura de Codigo de Articulo” )
      • Co. Articulo Envio: esto es el artículo que se va a usar para agregar si la orden tiene envío. (Se puede cargar en “Configuración / Tablas / Inventarios / Artículos” )
      • Co. Artículo Intereses: este es el artículo que se va a usar para agregar si la orden tiene intereses. (Se puede cargar en “Configuración / Tablas / Inventarios / Artículos” )
      • Co. Cta. Ig/Eg: Número de banco en moneda base. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Ingreso y Egreso” )
      • Co. Cuenta: Número de cuenta en moneda base. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Caja y Bancos”  y tiene relación con Co. Cta. Ig/Eg)
      • Co. Cta. Ig/Eg  Divisa: Número de banco en divisa. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Ingreso y Egreso” )
      • Co. Cuenta Divisa: Número de cuenta en divisa. (Se puede cargar en “Configuración / Tablas / Financiera / Cuentas de Caja y Bancos” y tiene relación con Co. Cta. Ig/Eg  Divisa)

 


Habilitar una entidad con Workflow para que tenga Autorizaciones

Para lograr que una entidad pueda empezar a utilizar las autorizaciones del Workflow se deben crear una serie de tablas y procedures para que esto pueda funcionar sin problemas, ademas de su configuracion pertinente en la parametrizacion del Workflow.

  • Crear la tabla “nombre_de_entidad_Autorizaciones” esta tabla servirá para guardar las autorizaciones de cada estado y su informacion la estructura es la siguiente:
    • Primary_Key’s de la tabla
    • Secuencia
    • Grupo_Usuario
    • FechaAutorizacion
    • EstadoDesde
    • EstadoHasta
    • EstadoIntermedio
    • AutorizacionFinalizada
  • Crear el procedure “Nombre_de_entidad_Autorizaciones_Insert. Este procedure hace el insert en la tabla “nombre_de_entidad_Autorizaciones”
  • Crear el procedure “Nombre_de_entidad_Autorizaciones_Get_Usuarios_Pendientes_Autorizar. Este procedure se encarga de notificar a los usuarios faltantes. Basarse en la estructura de “Cp_Requerimientos_Cabezal_Autorizaciones_Get_Usuarios_Pendientes_Autorizar”

Cambio de diseño para Workflow

Para hacer que el workflow funciones con las respectivas tablas de propiedades dejo este query como guia de lo que se debe hacer

[embeddoc url=”https://kb.baseglobal.com.ar/wp-content/uploads/2018/09/Estados-Cambio-de-diseño.txt” download=”all”]

  • Crear tabla de propiedades para esa entidad.
  • modificar procedure de insert de esta entidad agregando un Insert a la tabla de propiedades y otro a la tabla Gr_Estados_Entidades para que funcione el historico de estados
  • Crear procedure para recuperar el estado Actual
  • Crear o modificar la vista que recupera los registros de esa entidad para que muestre el estado actual y lo muestre con su color, nombre
  • Crear procedure que altere el estado actual de una entidad en la tabla Propiedades
  • Crear procedure que inserte un nuevo registro a la tabla Propiedades con el estado nuevo de la entidad
  • Modificar el procedure “gr_estados_entidades_insert” que guarda cada uno de los estados nuevos o que son cambiados en el historico de estados. Este procedure tiene un “Case When” por tabla de propiedades que se a agregar o modificar un estado.
  • Modificar el procedure “Gr_Codigos_Estado_Actual” para que el Workflow y las autorizaciones de estado pueda recuperar el estado actual. Esto es interno en el cambio de estado y autorizacion

Modificar propiedades de un articulo

En caso de ser necesaria la modificiación de una o varias propiedades en un articulo, estas pueden modificarse desde el sistema de la siguiente forma:

  • Logearse como instalador e ingresar a e-commerce
  • Ingresar a parametrización
  • Desde allí elegir que propiedad desea modificar y click en editar.
  • Modificar según la necesidad y guardar.

Seguridad en botones u otros controles (instructivo)

Como ejemplo, aplicamos seguridad por usuario y empresa para ocultar – mostrar un botón

Ocultaremos un botón en:

/Crm/Cuenta

Vista:

en “Helpers.vbhtml” agregamos un helper.

@helper button_new_contact(ByVal baseWebPage As IGGlobal.Mvc.CustomMvcViewPageBase, ByVal field As String)

@<button @baseWebPage.GetNgHideAttr(field) ng-click=“nuevoContacto()” style=float: right; class=“btn btn-outline btn-primary btn-sm” type=“button”>

Nuevo

</button>

End Helper

En “cuenta.vbhtml”

Reemplazamos :

<button ng-click=”nuevoContacto()” style=”float: right;” class=”btn btn-outline btn-primary btn-sm” type=”button”>

Nuevo

</button>

por:

@Helpers.button_new_contact(Me, “button_new_contact”)

Controlador JS:

Nada nuevo, obviamente existe la función “nuevoContacto()”

Controlador MVC (VB.net):

Nada nuevo.

Base de datos:

insertar dos registros:

Definimos: Base de datos, Usuario, URL, IdNombre, el “1” representa “Invisible”

insert into Info_Seg_Formularios_Sistema_Defaults

values (‘BARRIOS_PRIVADOS’,‘SUPERBP’,‘/Crm/Cuenta’,‘button_new_contact’,,0,1,,)

Definimos:  URL, IdNombre,Descripción

insert into Codigos_Seg_Formularios_Sistema_Campos

values(‘/Crm/Cuenta’,‘button_new_contact’,‘button_new_contact’)

—-Fin—-


Generación Setup IGGLOBAL Cloud Services

La Generación del Setup para instalar el servicio IGGLOBAL Cloud Service esta compuesta de los siguientes proyectos.

  • IGGlobal.CloudServices.Jobs (Dll que ejecuta las tareas de QUARTZ.Net)
  • IGGlobal.CloudServices.Service (Es el servicio en si mismo, se inicia y queda corriendo disparando las tareas)
  • IGGlobal CloudServices Service Setup (Instala el servicio y sus dependencias)

 

Consideraciones a tener en cuenta.

  • Se deben Generar los 3 proyectos si se modifican y siempre generar el Setup
  • En el proyecto del servicio se encuentra la inicializacion de la tarea de notificaciones de IGGLOBAL Classic, también lo integra una clase que hará de las veces de formulario de configuración de la base de datos que aparece en el asistente del setup. Esta compuesto ademas por un archivo xml App.Config que guarda la configuración del servidor.
  • El proyecto del Setup tiene una particularidad que si se compila en la versión de VB2013 solo funciona en equipos con Windows 7 en adelante, para que funcione en Win xp o server 2003 se debe pegar la siguiente DLL “dpca.dll” de vb2010 en esta ruta “C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\VSI\bin”. La dll se encuentra en “\\baseglobal.ar\fileserver\Groups\Desarrollo\__Dll VB2010 dpca”

 


Desarrollo de Tareas Programadas

En este tutorial se detallan que pasos seguir para desarrollar nuevas tareas en el Framework QUARTZ.NET e implementarlas en el servicio de IGGLOBAL CLOUD SERVICES

En el controller “SchedulingController.vb” se deben desarrollar que tareas disparara y en que momentos lo hara el ya mencionado Framework.

Del lado cliente el controller principal sera “JobCtrl.js” este tiene comunicacion mediante un servicio de Angular con “SchedulingController.vb”

Las tareas agregadas tendran su logica de negocios en el proyecto/dll de la solucion “IGGlobal.CloudServices.Jobs”. Aqui es donde QUARTZ.NET ejecuta las tareas que se hayan programando dependiendo del momento en que este previsto que se ejecuten.

Para poder hacer debug de este proyecto debemos ir al menu “Depurar > Asociar al proceso” y seleccionar “IGGlobal.CloudServices.Service.exe”, esto probablemente obligue a reiniciar el Visual Studio.

Los errores del servicio se grabaran en el visor de eventos de windows en la sección  de “Aplicación” con la clave “IGGlobal CloudServices Service”

1

El desarrollo de las Notificaciones de IGGLOBAL CLASSIC esta diagramado de la siguiente manera.

3

Puntos a tener en cuenta sobre esta ultima tarea.

  • Recordar configurar la URL de IGGLOBAL Online en la ruta de IGGLOBAL Classic. Formato “http://web.com”

2

  • Verificar que el servicio este corriendo
  • IGGlobalOnlineSendNotificationFromVB6.vb Ejecuta la tarea dentro del Proyecto JOBS.
  • Antes se deben configurar en “Classic” en Auditoria Operativa lo que se quiera enviar a IGGLOBAL Online y luego en Notificaciones de “Online”
  • Classic solo notifica como supervisor