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

Setup IGGLOBAL CLOUD SERVICE

Servicio de tareas programadas de IGGLOBAL On-line.

Este servicio se encarga de disparar las tareas programadas de IGGLOBAL

Requerimientos:

  • Windows Server 2003 en adelante (Windows Xp, Windows 7, Windows Server 2012)
  • Windows Installer 4.5
  • Microsoft .NET Framework 4

Instalación inicial “IGGlobal CloudServices Service Setup.msi”

1

 

Configurar acceso al servidor SQL Server y a la base de Configuración.

3

2

 

Una vez instalado el servicio se procederá a “Iniciar” dicho servicio en la sección de servicios de Windows.

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”

4

 

Desinstalación/reinstalación del servicio.

Para poder realizar la desinstalación primero se debe detener el servicio desde servicios de Windows. Luego de esto se podrá proceder a reinstalar, siguiendo los pasos mencionados en el punto anterior.


Quitar validación de datos inseguros en MVC

sc4

Este error es consecuencia de que ciertas veces necesitamos mandar texto no seguro (HTML, XML) al server y MVC 4 lo bloque por defecto.

Yo en particular implemente 2 soluciones para este problema:

  • El hecho es que si el nombre del campo del formulario comienza por dos caracteres de subrayado, por ejemplo, “__Texto”, no se efectúan sobre él las comprobaciones de validación.
  • Para deshabilitar la validación de la solicitud de un método de acción, marcar el método con el atributo ValidateInput (False), como se muestra en el siguiente ejemplo:

Captura

 


Setup IGGLOBAL – Generación de Scripts SQL 2012

Conectado a:  BG-SRV07

User: Sa

PWD: base321+

 

  • A partir de las Bases INFORMAC_TESTING y DATOS_TESTING generar con Management Studio los scripts llamados “SQL” y “DatosEstructura.SQL” destino final en “IG_Global_Setup\Global\Sistema” con sql Server 2008.

Exportar solo Tablas

Seleccionar en Opciones de Secuencia de Comandos las opciones:

“If Not Exists” (Comprobar la Existencia de Objeto) =  TRUE

“USE DATABASE” = FALSE

“Incluir índices de Texto Completo en el Script” = TRUE

“Incluir índices en el Script” = TRUE

 

  • A partir de las Bases INFORMAC_TESTING y DATOS_TESTING generar con Management Studio los scripts llamados “SQL” y “DatosProcedimientosAlmacenados.SQL” con destino final en “IG_Global_Setup\Global\Sistema” sql Server 2008.

Exportar, Procedimientos Almacenados, Funciones definidas por el usuario y Vistas.

Seleccionar en Opciones de Secuencia de Comandos las opciones:

“Generar Script Drop” (Incluir DROP y CREATE en el script) = TRUE

“If Not Exists” (Comprobar la Existencia de Objeto) = TRUE

 “USE DATABASE” = FALSE

En la generación del Script de DatosProcedimientosAlmacenados.SQL

Destildar de la lista el Store “ig_compactarBase”

En la generación del Script InformacProcedimientosAlmacenados.sql

Destildar de la lista los Stores

-codigos_seg_instalador

-info_empresas_brwPorUsuario

-Info_Seg_Grupos_Acciones_Sistema_checkUserPermissionOnAction

Info_Seg_Grupos_Vistas_Sistema_checkUserPermissionOnAction

-Info_Seg_loguin_KickUser

-info_usuarios_authenticate

-info_usuarios_login

-Info_Usuarios_Logout

 

                              

  • Entrar a GlobalCN (Configuración) –a base test- (\\MAINSERVER\DESARROLLO\GLOBAL7) como instalador y generar el script “SQL” haciendo botón derecho en alguna de las bases y seleccionar la opción “Generar script de registros para informac” con destino final es “IG_Global_Setup\Global\Sistema”.

En la generación de Script de InformacRegistros.SQL destildar el de la lista el registro

– codigos_seg_formularios_sistema NO HACER ESTO

 

  • Entrar a GlobalCN (Configuración) –a base test- (\\MAINSERVER\DESARROLLO\GLOBAL7) como instalador y generar el script “DatosRegistros.SQL” haciendo botón derecho en la base TEST y seleccionar la opción “Generar script de registros” con destino final en “Global_Setup\Global\Sistema”.

 

Nota: Tanto “DatosEstructura.SQL” como “InformacEstructura.SQL” tienen en su primera linea la fecha y hora de creacion que pone automaticamente el Sql Server Management Studio y se usan luego para comparar las fechas y horas en las bases del Cliente en las tablas Qy_VersionCambios y Codigos_VersionCambios del Informac

 

  • Copiar de:

\\Desarrollo03\Desarrollo03_D\_mvc_pub_TEST_20140305\__BIN__ a

\\Mainserver\IG_GLOBAL_SETUP\Global\Web

 

Todo el sitio, lo resaltado hace referencia a la publicación del momento que se condice con esos .sql


Setup IGGLOBAL – Generación de Scripts SQL 2008

Conectado a:  BG-SRV07

User: Sa

PWD: base321+

 

  • A partir de las Bases INFORMAC_DESARROLLO y DATOS_DESA generar con Management Studio los scripts llamados “SQL” y “DatosEstructura.SQL” destino final en “IG_Global_Setup\Global\Sistema” con sql Server 2008.

Seleccionar en Opciones de Secuencia de Comandos las opciones:

“If Not Exists” =  TRUE

“USE DATABASE” = FALSE

“Incluir índices de Texto Completo en el Script” = TRUE

“Incluir índices en el Script” = TRUE

Exportar solo Tablas

 

  • A partir de las Bases INFORMAC_DESARROLLO y DATOS_DESA  generar con Management Studio los scripts llamados “SQL” y “DatosProcedimientosAlmacenados.SQL” con destino final en “IG_Global_Setup\Global\Sistema” sql Server 2008.

Exportar, Procedimientos Almacenados, Funciones definidas por el usuario, tablas definidas por el usuario y Vistas.

Seleccionar en Opciones de Secuencia de Comandos las opciones:

“Generar Script Drop” = TRUE

“If Not Exists” = TRUE

 “USE DATABASE” = FALSE

En la generación del Script de DatosProcedimientosAlmacenados.SQL

Destildar de la lista el Store “ig_compactarBase

En la generación del Script InformacProcedimientosAlmacenados.sql

Destildar de la lista los Stores

-codigos_seg_instalador

-info_empresas_brwPorUsuario

-Info_Seg_Grupos_Acciones_Sistema_checkUserPermissionOnAction

Info_Seg_Grupos_Vistas_Sistema_checkUserPermissionOnAction

-Info_Seg_loguin_KickUser

-info_usuarios_authenticate

-info_usuarios_login

-Info_Usuarios_Logout

 

                              

  • Entrar a GlobalCN (Configuración) –a Base Global I+D- (\\MAINSERVER\DESARROLLO\GLOBAL7) como instalador y generar el script “SQL” haciendo botón derecho en alguna de las bases y seleccionar la opción “Generar script de registros para informac” con destino final es “IG_Global_Setup\Global\Sistema”.

En la generación de Script de InformacRegistros.SQL destildar el de la lista el registro

– codigos_seg_formularios_sistema NO HACER ESTO

 

  • Entrar a GlobalCN (Configuración) –a base test- (\\MAINSERVER\DESARROLLO\GLOBAL7) como instalador y generar el script “DatosRegistros.SQL” haciendo botón derecho en la base TEST y seleccionar la opción “Generar script de registros” con destino final en “Global_Setup\Global\Sistema”.

 

Nota: Tanto “DatosEstructura.SQL” como “InformacEstructura.SQL” tienen en su primera linea la fecha y hora de creacion que pone automaticamente el Sql Server Management Studio y se usan luego para comparar las fechas y horas en las bases del Cliente en las tablas Qy_VersionCambios y Codigos_VersionCambios del Informac

 

  • Copiar de:

\\Desarrollo03\Desarrollo03_D\_mvc_pub_TEST_20140305\__BIN__ a

\\Mainserver\IG_GLOBAL_SETUP\Global\Web

 

Todo el sitio, lo resaltado hace referencia a la publicación del momento que se condice con esos .sql

 


Agregar columnas a un grilla

–Debo agregar una columna a la grilla.
— verifico que exista el campo en :
USE INFORMAC_DESARROLLO

SELECT * FROM Codigos_Seg_Columnas_Sistema
–si no existe lo agrego
INSERT INTO Codigos_Seg_Columnas_Sistema
([datafield],[text],[type],[width],[cellsalign],[cellsformat]) VALUES (‘TipoPublicacion’,’TipoPublicacion’,’number’,’80px’,’right’,’NULL’)

–verifico si la vista trae el campo
SELECT * FROM Codigos_Seg_Vistas_Columnas_Def
WHERE ViewId=’MELI-1′

–si no existe lo agrego
INSERT INTO Codigos_Seg_Vistas_Columnas_Def
([ViewId], [datafield], [editable], [hidden],[order]) VALUES (‘MELI-1′,’TipoPublicacion’,0,0,11)

–actualizo un campo para hacerlo editable en la grilla
update Codigos_Seg_Vistas_Columnas_Def
set editable =1
where [ViewId] =’MELI-1′ and datafield =’PrecioPublicado’
–actualizo un campo para hacerlo editable en la grilla


Remover CSS sin utilizar en HTML

Hay varias formas de detectar que estilos no se están utilizando en un HTML. Las mas recomendables son:

1)Utilizar Audits en el inspector de chrome:

imagen1

 

2) Descargar del GooglePlay la  app CSS Remove and Combine, que te permite descargar un block de notas solo con los CSS que están siendo utilizados, discriminando a los que no:

image2


Configuración – Rango Por Intervalos

1- Se crea rango en Codigos_DefinicionesRangos_Net de acuerdo a los siguientes campos
CLAVE INTERVAL_VENDEDORES
TITULO Intervalo de Vendedores
TITULOETIQUETADD Incluir
TITULOETIQUETAHH Incluir
TIPO_DATO 8
VALORDD
VALORHH
TABLA null
VISTA GR-7
CODIGO CoDescriptivo
DESCRIPCION Descripcion
DDFORMULACRYSTAL INT_Vendedores
HHFORMULACRYSTAL INT_Vendedores
MAXLEN 6
SELECTDATA NULL

2-Se altera el store procedure de acuerdo al siguiente ejemplo, agregando lo que esta en negrita
 —
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Co_VT_SP_Vt_Facturas_Cabezal]
 —
@DDCoCliente int = 0,
@HHCoCliente int = 999999,
@DDFecha datetime = null,
@HHFecha datetime = null,
@DDNoComprobante INT = 0,
@HHNoComprobante INT = 999999,
@DDCoVendedor int = 0,
@HHCoVendedor int = 999999,
@INT_Vendedores IntInterval readonly as
 —
 if (@DDFecha is null) select @DDFecha = convert(datetime,’01/01/’ + convert(varchar(4),year(getdate())))
if (@HHFecha is null) select @HHFecha = getdate()
if (select count(*) from @INT_Vendedores) > 0    
 —
Begin
 —
SELECT NoComprobante,
FechaComprobante,
CoCliente,
Cliente,
CoVendedor,
Vendedor,
CotizacionDolar,
CoComprobante,
LetraLugarNumero,
GeneradoHide,
_tags,
_state
FROM dbo.Co_VT_FX_Vt_Facturas_Cabezal(@DDCoCliente, @HHCoCliente, @DDFecha, @HHFecha, @DDNoComprobante, @HHNoComprobante, @DDCoVendedor, @HHCoVendedor) fVTFC
where fVTFC.CoVendedor in (select * from @INT_Vendedores)  
ORDER BY fVTFC.NoComprobante desc
Return
End
 —
SELECT NoComprobante,
FechaComprobante,
CoCliente,
Cliente,
CoVendedor,
Vendedor,
CotizacionDolar,
CoComprobante,
LetraLugarNumero,
GeneradoHide,
_tags,
_state
FROM dbo.Co_VT_FX_Vt_Facturas_Cabezal(@DDCoCliente, @HHCoCliente, @DDFecha, @HHFecha, @DDNoComprobante, @HHNoComprobante, @DDCoVendedor, @HHCoVendedor) fVTFC
ORDER BY fVTFC.NoComprobante desc
 —

3-Se carga el rango relacionado a la vista en Codigos_Seg_Vistas_Rangos
Modulo COMP
Id 20
ClaveRango INTERVAL_VENDEDORES
Orden 90

 


 

4- Como final de este tema se puede configurar la seguridad del Usuario (por medio del grupo) cargándole predefinido los valores a saber en la siguiente tabla, Info_DefinicionesRangosNetGruposDefault:

RANGO VISTA_ID CLAVERANGO GRUPO_USUARIO VALORDD VALORHH VISIBLE READONLY
1 GR-68 CLIENTES ASISTENCIA 1 99999 True False
1 COMP-20 LIKE_VENDEDORES PAT 18 18 True True
1 COMP-20 LIKE_VENDEDORES CUYO 12 12 True True
1 52100 LIKE_VENDEDORES PAT 18 18 True True
1 52100 LIKE_VENDEDORES CUYO 12 12 True True
1 COMP-20 INTERVAL_VENDEDORES CBA [17,37,38,39,49,53] [17,37,38,39,49,53] False True
1 52100 INTERVAL_VENDEDORES CBA [17,37,38,39,49,53] [17,37,38,39,49,53] True True
1 DD-99 LIKE_VENDEDORES PAT 18 18 True True
1 DD-99 LIKE_VENDEDORES CUYO 12 12 True True
1 DD-99 INTERVAL_VENDEDORES CBA [17,37,38,39,49,53] [17,37,38,39,49,53] True True

Configuración – Editar acciones de la toolbar de las grillas

La tabla de configuración para la toolbar de las grillas es “Info_Seg_Grupos_Toolbar_Grillas_Acciones_Denegadas”. También hay acciones custom para las toolbar, estas acciones ya están cargadas en la tabla “Codigos_Seg_Grupos_Toolbar_Grillas_Acciones_Custom” y también se inhiben agregándolas en la columna Acciones de la tabla “info”

Info_Seg_Grupos_Toolbar_Grillas_Acciones_Denegadas

  • Url (Dirección/Ubicación de la grilla)
  • Grupo (Grupo de usuarios)
  • Accion (Acciones que se va a ocultar de la toolbar)

Tabla de Acciones posibles a ocultar de grillas que son fijas

  • SAVE (Nuevo)
  • STATE (Estados)
  • FILTER (Filtros)
  • EDIT (Edición)
  • DELETE (borrar)
  • QUICK_INSERT (Alta rápida)
  • QUICK_EDIT (Edición rápida)
  • EXPORT (Exportación)
  • IMPORT (Importación)

Ejemplo

GridTool

La toolbar de la grilla de Facturas, no llevara la acción “Nuevo”


 

Las toolbar que son dinámicas como ya mencione esta cargadas las acciones en la tabla “Codigos_Seg_Grupos_Toolbar_Grillas_Acciones_Custom” estas son cargadas por desarrollo. La lista de acciones que se pueden inhibir de estas Toolbar son las siguientes.

ToolbarCustom

Por Ejemplo si quisiéramos quitar la acciones de imprimir factura de la grilla de facturas debemos cargar la acción “PRINTFACT” en la tabla “Info_Seg_Grupos_Toolbar_Grillas_Acciones_Denegadas”

Ejemplo:

GridToolCustom

El resultado quedaría así, con la acción nuevo e imprimir factura ocultas

grid


Configuracion – Notificaciones de IGGlobal Classic

Para notificar procesos desde IgGlobal Classic se deben asignar primero en la sección de auditoria para que aparezcan en IgGlobal Online.

Auditoria Operativa

Una vez hecho esto la opción seleccionada aparecerá en las Notificaciones de IgGlobal Online, y aqui se debera asignar que es una accion de Notificacion.

Notificacion

Por ultimo se deberá chequear que en la ruta del sistema de IGGlobal Classic el campo “URL” tenga la dirección de IGGlobal Online.

Ruta

El formato de este campo es: http://direccion.com.ar o IP:Puerto/Noti/GetNotificaciones.

Por el momento se agregara la ultima parte de la dirección que se encuentra sobresaltado.