Estrategias para desarrollar la comunicación quintana aumente
OPTIMIZACIÓN DE PROCESOS EN EL ÁREA DE GERENCIA DE RIESGOS...
Transcript of OPTIMIZACIÓN DE PROCESOS EN EL ÁREA DE GERENCIA DE RIESGOS...
OPTIMIZACIÓN DE PROCESOS EN EL ÁREA DE GERENCIA DE RIESGOS DE
POSICIÓN PROPIA DE BANCOLOMBIA SA MEDIANTE EL DESARROLLO DE
APLICACIONES EN VISUAL BASIC Y SUITE SAS
JUAN DAVID CONTRERAS HERNANDEZ
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE INGENIERÍA
PROYECTO CURRICULAR INGENIERÍA DE SISTEMAS
BOGOTÁ D.C
2016
OPTIMIZACIÓN DE PROCESOS EN EL ÁREA DE GERENCIA DE RIESGOS DE
POSICIÓN PROPIA DE BANCOLOMBIA SA MEDIANTE EL DESARROLLO DE
APLICACIONES EN VISUAL BASIC Y SUITE SAS
JUAN DAVID CONTRERAS HERNANDEZ
TRABAJO DE GRADO MODALIDAD PASANTÍA PARA OPTAR AL TÍTULO DE
INGENIERO DE SISTEMAS
DIRECTOR: Msc. NANCY GELVEZ GARCIA
INGENIERA SISTEMAS
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE INGENIERÍA
PROYECTO CURRICULAR INGENIERÍA DE SISTEMAS
BOGOTÁ D.C
2016
3
TABLA DE CONTENIDO
INTRODUCCION ..................................................................................................... 8
1. FORMULACIÓN DEL PROBLEMA ............................................................... 9
2. OBJETIVOS................................................................................................. 10
2.1. Objetivo General ..................................................................................... 10
2.2. Objetivos específicos: ............................................................................ 10
3. JUSTIFICACIÓN .......................................................................................... 11
5. ALCANCES Y LIMITACIONES ................................................................... 12
5.1. Alcances .................................................................................................. 12
5.2. Limitaciones ............................................................................................ 12
6. INFORMACIÓN BÁSICA DEL PROYECTO................................................ 13
6.1. Dirección de riesgo de mercado y liquidez .......................................... 14
6.2. Estructura organizacional ...................................................................... 14
6.3. Comité de Riesgo de Posición Propia .................................................. 15
PRIMERA PARTE - MARCO REFERENCIAL ...................................................... 16
7. MARCO TEORICO ...................................................................................... 16
7.1. Optimización ........................................................................................... 16
7.2. Trade-Offs ................................................................................................ 18
7.3. Procesos .................................................................................................. 18
7.3.1. Capital estructural y capital humano [5]............................................ 21
7.4. VBA (Visual Basic for Applications) [6] ................................................ 22
7.4.1. Definición ............................................................................................. 22
7.4.2. ¿Por qué usar VBA en Excel? ............................................................ 23
7.4.3. Programación en VBA ......................................................................... 24
7.5. Advanced Analytics Software | SAS ..................................................... 26
7.5.1. ¿Qué es SAS? [7] ................................................................................ 26
7.5.2. SAS (Lenguaje de programación) [8] ................................................. 28
SEGUNDA PARTE - DISEÑO Y DESARROLLO .................................................. 30
8. METODOLOGIA .......................................................................................... 30
4
9. PLANEACIÓN Y DESARROLLO ................................................................ 33
9.1. Plan de trabajo ........................................................................................ 33
9.2. Identificación de problemas, oportunidades y objetivos .................... 38
9.2.1. Análisis de herramientas actuales ..................................................... 38
9.2.2. Análisis de tiempos de ejecución ...................................................... 39
9.2.3. Requerimientos del desarrollo ........................................................... 42
9.2.4. Cronograma ......................................................................................... 44
9.3. Determinación de los requerimientos de información ........................ 46
9.3.1. Rutas de acceso .................................................................................. 46
9.3.2. Estructura y formatos de archivos .................................................... 46
9.3.3. Tablas de homologación ..................................................................... 48
9.4. Diseño del sistema recomendado ......................................................... 48
9.4.1. Vistas de Usuario ................................................................................ 48
9.4.2. Estándar de formato de datos ............................................................ 50
9.4.3. Proceso de manejo de errores ........................................................... 50
9.4.4. Modelo de plantilla .............................................................................. 51
9.5. Desarrollo y documentación del software ............................................ 52
9.5.1. Métodos y funciones ........................................................................... 52
9.5.2. Distribución de clases ........................................................................ 62
9.5.3. Código Aplicación por función .......................................................... 63
9.5.4. Errores comunes relacionados a objetos ......................................... 66
9.6. Pruebas y mantenimiento del sistema .................................................. 67
9.6.1. Modelo de análisis de fallos ............................................................... 68
9.7. Implantación y evaluación del sistema ................................................. 70
9.8. Avance proyecto en Suite SAS .............................................................. 74
9.8.1. Funcionamiento de SAS ..................................................................... 74
9.8.2. Análisis de flujo de información de tesorería ................................... 76
9.8.3. Planteamiento del proyecto ................................................................ 77
9.8.4. Resultados obtenidos Proyecto SAS ................................................ 79
TERCERA PARTE – RESULTADOS Y EVALUACION ........................................ 80
10. DESCRIPCIÓN FINAL DEL APLICATIVO ............................................... 80
5
10.1. Interface................................................................................................ 80
10.2. Funciones ............................................................................................. 82
10.3. Resultados operacionales .................................................................. 82
10.4. Logros Alcanzados ............................................................................. 86
10.5. Resultados funcionales ...................................................................... 86
11. CONCLUSIONES Y RECOMENDACIONES ........................................... 88
11.1. Conclusiones ....................................................................................... 88
11.2. Recomendaciones ............................................................................... 89
12. BIBLIOGRAFÍA ........................................................................................ 91
6
LISTA DE TABLAS
Tabla 1 Plan de trabajo ........................................................................................ 33
Tabla 2 Duracion en minutos de elaboración manual de limites ..................... 40
Tabla 3 Cronograma de actividades por semanas ............................................ 44
Tabla 4 Ejemplo tabla de homologación ............................................................ 48
Tabla 5 Errores comunes .................................................................................... 51
Tabla 6 Comparación tiempo antes y después de la implementación de la
aplicación ............................................................................................................. 71
7
LISTA DE FIGURAS
Figura 1 Asociados Bancolombia ...................................................................... 13
Figura 2 Historia grupo Bancolombia ................................................................ 13
Figura 3 Estructura organizacional dirección de riesgo de mercado ............. 14
Figura 4 Integración entre componentes de procesos ..................................... 20
Figura 5 Descripción de capital estructural y humano en una organización . 21
Figura 6 Diseño parametrización de rutas y nombres de archivo en Excel ... 49
Figura 7 Diseño selección de fecha de ejecución ............................................. 49
Figura 8 Diseño selección de entidad y limite................................................... 49
Figura 9 Ejemplo plantilla para la elaboracion de informe. .............................. 52
Figura 10 Paso 1 de búsqueda de errores ......................................................... 68
Figura 11 Paso 2 de búsqueda de errores ......................................................... 69
Figura 12 Ventana principal de SAS ................................................................... 74
Figura 13 Árbol de proyecto ............................................................................... 75
Figura 14 Flujo de un proceso en SAS .............................................................. 76
Figura 15 Flujo de datos en SAS ........................................................................ 78
Figura 16 Interface final primera parte ............................................................... 80
Figura 17 Inteface final segunda parte ............................................................... 81
Figura 18 Cambios obtenidos en Banitsmo ...................................................... 83
Figura 19 Cambios obtenidos en Bancolombia ................................................ 84
Figura 20 Cambios obtenidos en Fiduciaria ...................................................... 84
Figura 21 Cambios obtenidos en Valores .......................................................... 85
Figura 22 Comparación tiempos de ejecución manuales y de la aplicación .. 87
8
INTRODUCCION
Todas las organizaciones en la actualidad manejan información, sin importar que no
sea en grandes cantidades, se requiere de la implementación de herramientas
tecnológicas para que les permita estar a la vanguardia, de igual manera se hace
necesaria la adquisición y correcta implementación de la mismas, que ayuden a
garantizar el desarrollo óptimo de las actividades tanto internas como externas. En
el sector financiero el uso de este tipo de herramientas es de sumo cuidado, puesto
que el más leve error puede acarrear cuantiosas pérdidas de dinero.
Dentro de este tipo de organizaciones existen áreas especializadas en la gestión de
riesgos, esto permite prevenir la aparición de los mismos, y si se presentan, ayudan
a mitigar el impacto dentro de la organización llevando a una rápida y eficiente
solución. De aquí que los procesos que existan dentro del área, han de ser eficientes
y estar en continua optimización, y que mejor manera que realizarla a través de
herramientas tecnológicas y de software.
A continuación, se pretende proponer el desarrollo de herramientas y soluciones de
software basadas en tecnologías de Visual Basic y SAS, para optimizar el manejo
de información dentro del área de gestión de riesgos de posición propia de la
organización Bancolombia, que permitirá una eficiencia en las labores cotidianas,
presentación de informes y manejo de flujos de información.
9
1. FORMULACIÓN DEL PROBLEMA
El manejo de información dentro del área de gerencia de riesgos tiende a ser
exhaustiva y de grandes cantidades. La adquisición de nuevas tecnologías o de
herramientas que permitan agilidad en el análisis de datos es sumamente costosa
para una organización tan grande como lo es una entidad financiera, en este caso
Bancolombia S.A.
Más que el costo de la implementación de estas tecnologías, la simple idea de
innovar se ejecuta con proyectos que tardan meses, incluso años en ser
desarrollados y adicionalmente se requiere de un tiempo considerable para ser
implementados y aceptados, la resistencia al cambio es inminente y lo que menos
se busca es no poder implementar de manera correcta un proyecto de tecnologías
que debió desarrollarse en todo este tiempo.
Las herramientas actuales generan informes con cantidades considerables de
información, pero no permiten análisis específicos dentro de las mismas. Todo
desarrollo que se implementa se basa en generación de recursos para la empresa,
de aquí que este debe ser regulado por entes auditoras externas.
Los tiempos de ejecución de tareas dependen en gran medida de la agilidad del
trabajador o analista que desarrolla el informe, y en ocasiones se generan errores
que muchas veces son indetectables hasta que se convierten en defectos. Se
necesitan optimizar los procesos que pueden ser ejecutados mediante una solución
de software para agilizar tiempos de ejecución y disminuir los errores y fallos.
La herramienta licenciada que más facilidad provee para el desarrollo de algoritmos
y sistemas que permita el análisis de datos es la suite de office, programas como
Excel y Access proveen interfaces y facilidades de desarrollo óptimas. Pese a que
no posean la robustez y tiempos de ejecución razonables son buenas herramientas
para este tipo de limitaciones que se presentan.
10
2. OBJETIVOS
2.1. Objetivo General
Optimizar, diseñar o rediseñar, procesos y flujos de información del área de
Gerencia de riesgos de posición propia y así permitir una mayor eficiencia en el
manejo de la información y procesos de ejecución para que de esta manera
aumente la eficacia en la generación y entrega de informes de gestión de riesgos,
mediante el uso de algoritmos en Visual Basic for Aplications y la implementación
del software SAS Enterprise Guide.
2.2. Objetivos específicos:
Evaluar el estado actual de los procesos y flujo de información dentro del área de
gerencia y Sección Middle Office
Analizar y realizar un diagnóstico de las herramientas desarrolladas en Visual Basic
que están implementadas.
Estudiar los procesos de validación de cupos y limites (Valores Bancolombia) que
aún no se han optimizado de la sección Middle Office y desarrollar la herramienta
en Visual Basic.
Aprender cómo usar la herramienta SAS Enterprise Guide, como medio de
optimización de flujos de información y generación de informes
Elaborar un análisis que permita determinar el manejo, flujo y utilización de la
información de tesorería de Bancolombia dentro del área de gestión de riesgos.
Desarrollar herramientas en SAS Enterprise Guide que permita el apoyo en los
procesos de manejo de información en tesorería Bancolombia en los temas de
posición, PyG y medidas de riesgo.
11
3. JUSTIFICACIÓN
La organización Grupo Bancolombia en su dirección de Gerencia de Posición
Propia, evaluó los tiempos ejecución en la elaboración de informes y análisis de
operaciones dentro del área de Middle Office, obteniendo como hallazgos demoras
en la entrega de los mismos y tiempos de operatividad elevados, teniendo
limitaciones para el uso de sus analistas en tareas de mayor carga analítica.
Como medida de contingencia se decide poner en marcha la ejecución de un plan
de optimización en los procesos operativos, mediante el desarrollo de una aplicación
que no represente gran complejidad en su uso y desarrollo, se determinó que esta
herramienta seria Microsoft Office Excel, usando el lenguaje Visual Basic for
Aplications. Esto con el fin de disminuir los tiempos de operación que en el área se
ejecutan.
Se requiere el desarrollo de la herramienta en el lenguaje propuesto por problemas
que se presentan con los costos excesivos en el licenciamiento de nuevas
tecnologías, ya que al ser Bancolombia una organización de gran tamaño, es muy
costosa la implementación, adquisición y uso de nuevo software.
12
5. ALCANCES Y LIMITACIONES
5.1. Alcances
Esta pasantía abarcará únicamente los procesos relacionados con el área de
Gerencia de Riesgos de Posición Propia, la cual comprende la sección de Middle
Office y Tesorería, pertenecientes al grupo Bancolombia en la sede Bogotá.
La propuesta se centra en desarrollar herramientas con tecnologías de información
que sean de fácil uso para todo tipo de usuarios, con interfaces simples, que
permitan la generación de informes en Office Excel.
5.2. Limitaciones
El desarrollo de las herramientas en VBA es limitado al lenguaje en si, además del
procesamiento y la memoria RAM de cada uno de los equipos donde se ejecute el
proyecto.
El almacenamiento de información depende de la disponibilidad de los servidores
locales para el caso de la generación de informes en Excel.
Los insumos de información están sujetos a diversos formatos generados por varios
programas por tal motivo existe una gran posibilidad de que en ocasiones los datos
pierdan integridad durante el proceso de extracción.
El desarrollo del proyecto para SAS depende del licenciamiento que se gestione
dentro de la compañía
13
6. INFORMACIÓN BÁSICA DEL PROYECTO
Empresa: Bancolombia S.A [1]
Grupo BANCOLOMBIA es un conglomerado de empresas financieras que ofrece un
amplio portafolio de productos y servicios financieros en 10 países (Colombia,
Panamá, El Salvador, Guatemala, Honduras, Perú, Costa Rica, Puerto Rico,
Nicaragua e Islas Caimán) a una diversa base de entidades e individuos de más de
10 millones de clientes.
Figura 1 Asociados Bancolombia
Fuente: Bancolombia. (2015). Grupos Bancolombia. [Imagen]. Recuperado de Manual Riesgos PP
Figura 2 Historia grupo Bancolombia
Fuente: Bancolombia. (2015). Historia Bancolombia. [Ilustración]. Recuperado de Manual Riesgos PP
14
Dirección: Carrera 7 # 31-10 piso octavo (8) Gerencia de Riesgos de Posición
Propia- Dirección de Riesgos de Mercado y Liquidez
Email: [email protected]
Teléfono: 4886000 ext. 15560
Periodo de realización pasantía: 6 meses
6.1. Dirección de riesgo de mercado y liquidez
MISIÓN: Liderar y coordinar la implementación de la gestión completa de riesgos
de la Unidad de Negocios de Mercado de Capitales, basándose en la normativa
aplicable, las mejores prácticas del mercado y los lineamientos de riesgo del Grupo.
Igualmente diseñar, proponer y gestionar políticas y herramientas idóneas para la
administración de riesgo de mercado y liquidez del Grupo BANCOLOMBIA, acordes
con la normatividad, las definiciones de Basilea, las regulaciones emanadas por los
organismos de control y vigilancia y los objetivos corporativos del Grupo.
6.2. Estructura organizacional
Figura 3 Estructura organizacional dirección de riesgo de mercado
Fuente: Bancolombia. (2015). Estructura Riesgos. [Organigrama]. Recuperado de Manual Riesgos PP
Dirección de Riesgos de Mercado y
Liquidez
Gerencia de Riesgos de
Posición Propia
Sección Middle Office
Gerencia de Metodologías de
Mercado y Liquidez
Gerencia de Riesgos de
Liquidez y Tasa de Interés
Gerencia de Riesgo Asset Management
Gerencia de Riesgos de
Distribución y Ventas
15
6.3. Comité de Riesgo de Posición Propia
El Comité de Riesgos de Posición Propia tiene a su cargo apoyar a las Juntas
Directivas, a la Administración y a los Comités de Riesgos de Bancolombia en el
cumplimiento de las funciones establecidas en la regulación vigente en materia de
administración de riesgos de mercado. En todo caso, este comité no sustituye a
aquéllas instancias en sus funciones de supervisión e implementación de los
diferentes sistemas de administración de riesgos de mercado.
Este Comité tendrá como función primordial apoyar la definición, seguimiento y
control de las políticas generales sobre la gestión del portafolio de inversiones, y la
asunción de los riesgos de mercado del mismo por parte de las posiciones propias
del Grupo Bancolombia.
El Comité estará conformado por el Vicepresidente de Estrategia y Finanzas, el
Vicepresidente de Riesgos, Vicepresidente Financiero y Vicepresidente de Posición
Propia.
16
PRIMERA PARTE - MARCO REFERENCIAL
7. MARCO TEORICO
7.1. Optimización
Enfoque de la Optimización en el campo de la Ingeniería. La optimización dentro de
la ingeniería se enfoca en utilizar de forma eficiente recursos limitados y que pueden
ser asignados a actividades alternativas, en otras palabras, la optimización tiene
como propósito analizar e identificar la mejor solución posible, entre todas las
soluciones potenciales.
La idea de aplicar los diferentes métodos de optimización es facilitar el
entendimiento y el manejo de los parámetros que componen un sistema o proceso.
[2]
La palabra "optimización", comparte la misma raíz que "óptimo", es raro que el
proceso de optimización produzca un sistema verdaderamente óptimo. El sistema
optimizado típicamente sólo será óptimo en una aplicación o para una audiencia.
Se podría reducir la cantidad de tiempo que un programa se toma para realizar
alguna tarea logrando que consuma más memoria. En una aplicación donde el
espacio de la memoria es un bien escaso, se podría elegir un algoritmo más lento
con el fin de utilizar menos memoria.
A menudo no existe una solución de diseño que funcione bien en todos los casos,
en estos casos los ingenieros de trades-offs para optimizar los atributos de mayor
interés. Además, el esfuerzo que se requiere para hacer una pieza de software
completamente óptima - incapaz de cualquier mejora adicional - es casi siempre
más de lo razonable que los beneficios que brinda, de modo que el proceso de
17
optimización puede ser detenido antes de que una solución óptima ha sido
completamente alcanzada.
Cabe resaltar que la toma de decisiones se va tornando difícil de acuerdo al tamaño
y complejidad de las empresas, sus problemas o por la cantidad de variables que
manejan.
En la ingeniería el objetivo es evitar las fallas, pero una maquina o un proceso
siempre puede fallar, variando los resultados constantemente. Con cada éxito
surgen más preguntas de cómo se podría optimizar eso que ya se ajustó, es decir,
que es un proceso de mejora constante. Muchas veces la complejidad de un
problema hace imposible que por simple intuición se pueda ver todas las alternativas
o posibilidades que se tiene enfrente.
La ingeniería tiene la necesidad de mejorar los procesos de las empresas
constantemente para que puedan ser competitivas en el mercado actual, ya sea de
producción o de servicio. Por esta razón se les ha dado mayor importancia a las
técnicas y herramientas que ayuden a lograr esos cambios favorables. No cabe
duda que los métodos de optimización como procesos y como herramientas se
crearon para el beneficio de las organizaciones y se ha popularizado en empresas
que buscan ser exitosas, no solo en términos de la competencia que presenta el
mercado, sino también a partir de los beneficios que la misma genera para la
administración en general.
Las empresas piensan "podemos hacerlo mejor" y buscan formas de conseguir
mayores niveles de rendimiento. La optimización de procesos de negocios es una
oportunidad nueva para liberar negocios de la rigidez y la fragilidad de sus
aplicaciones existentes usando un enfoque holístico para apalancar la tecnología.
18
Por otro lado, la programación lineal y no lineal han venido demostrando ser una
herramienta sumamente eficaz, tanto en la modelización de problemas de la vida
real como en la teoría matemática.
7.2. Trade-Offs
La optimización general se centra en la mejora de uno o dos aspectos del
rendimiento: el tiempo de ejecución, uso de memoria, espacio en disco, ancho de
banda, el consumo de energía o algún otro recurso. Para ello se requiere un trade-
off, donde uno de los factores se optimiza a expensas de los demás. Por ejemplo,
aumentar el tamaño de caché mejora el rendimiento del tiempo de ejecución,
aunque también aumenta el consumo de memoria. Otras ventajas y desventajas
comunes incluyen la claridad del código y la concisión.
Hay casos en que el programador que realiza la optimización debe decidir hacer
mejor el software para algunas operaciones, pero con esto, logrará hacer otras
operaciones menos eficientes. Estas compensaciones pueden ser a veces de
carácter no técnico - como cuando un competidor publica un resultado de referencia
que debe ser batido con el fin de mejorar el éxito comercial, pero esta característica
logra que el software sea menos eficiente. [3]
7.3. Procesos
Un proceso es un conjunto de actividades o secuencia de pasos planificados que
implican la participación de un número de personas y de recursos materiales
coordinados para conseguir un objetivo específico previamente identificado.
Los procesos son mecanismos de comportamiento que diseñan los hombres para
mejorar la productividad de algo, para establecer un orden o eliminar algún tipo de
problema.
19
Desde el punto de vista de una empresa, un proceso da cuenta de una serie de
acciones que se toman en el aspecto productivo para que la eficiencia sea mayor.
En efecto, las empresas buscan continuamente aumentar su rentabilidad
produciendo más y bajando sus costos. Para ello diseñan sistemas de actuación
que garantizan esta circunstancia luego de análisis pormenorizados. Un buen
ejemplo de esta situación puede ofrecerlo el quiebre que significó la producción en
serie con el fordismo considerando los tiempos inmediatamente anteriores; la misma
posibilitó sacar al mercado autos en gran escala, haciendo que éstos pudiesen ser
adquiridos por la población en general a un precio razonable. [4]
Los procesos marcan pautas de trabajo, pero se necesitan además agentes activos:
tecnología y/o personas para producir los resultados.
Un ejemplo de las diferencias entre distintos sistemas de producción es el montaje
de un mueble en kit. Es un trabajo que requiere personas y herramientas o
tecnología: destornillador (manual o eléctrico), tornillos, pasadores, cola de
montaje, etc. Si realizamos el trabajo sólo con estos dos componentes, sin un
proceso determinado (el manual con las instrucciones de cómo proceder) lo
haremos en un sistema propio de artesanos o artífices: personas + tecnología, que
no puede garantizar productividad y calidad homogéneas, porque dependen de las
personas, y hay quien es capaz de ensamblar el mueble en cuestión de minutos, y
quien necesita toda una tarde.
Habrá quien montará muebles robustos, y otros terminarán con peor fortuna,
afirmando que el montaje está bien hecho pero que las piezas venían mal cortadas
de fábrica, que quien lo diseñó era un perfecto inútil, o que los tornillos son de mala
calidad, o incluso sin percatarse de los fallos que ha cometido.
20
Figura 4 Integración entre componentes de procesos
Fuente: Navegapolis. (2014). Diferentes sistemas de producción. [Grafico]. Recuperado de http://navegapolis.com
"Personas + tecnología" es una combinación que produce resultados, y puede
resultar más o menos apropiada para un taller de carpintería, pero una empresa
de carpintería industrial necesita optar por una de estas estrategias para obtener
resultados de calidad:
Introducir un tercer elemento en el sistema de producción: los procesos.
Emplear sólo a buenos carpinteros, proporcionándoles las mejores
herramientas.
Parece lógico pensar en la primera: implementar un sistema de producción basado
en procesos, normalmente la estrategia empleada en la manufactura industrial,
aunque hay que tener en cuenta que esto no responde con la misma solvencia
en todos los trabajos, porque la gestión basada en procesos tiene su kryptonita: las
tareas que requieren un conocimiento aprehensible por las personas pero que
resulta difícil explicitar en procesos o tecnología.
21
7.3.1. Capital estructural y capital humano [5]
El capital estructural lo forman los bienes que quedan en la empresa cuando las
personas están en sus casas: patentes, licencias, cartera de clientes, equipos,
maquinaria, vehículos, etc.
El capital humano es el valor de la empresa, que resulta inseparable de las
personas. Todas las organizaciones emplean ambos, y la proporción en la que cada
uno condiciona la calidad del resultado es distinta en cada caso.
Normalmente el capital estructural es el factor más relevante en las empresas
industriales, pero el capital (estructural o humano) que tiene mayor peso en la
calidad de la producción no depende sólo del sector o tipo de industria.
Figura 5 Descripción de capital estructural y humano en una organización
Fuente: Navegapolis. (2014). Capital estructural y humano. [Grafico]. Recuperado de http://navegapolis.com
22
Optimizar el sistema de procesos, tecnología y personas no es fácil. El objetivo es
conseguir que cada factor aporte valor hasta el límite de la mejor relación eficiencia
/ calidad. La revisión permite mejorar de forma continua el sistema e ir consiguiendo
nuevos equilibrios con mejores parámetros de eficiencia y calidad en el sistema. En
esta línea es aconsejable comenzar analizando si por las características de los
proyectos de nuestra empresa resulta más aconsejable un modelo basado en
procesos, o en personas (ágil); pero es aconsejable ir más allá de la mera
implantación de los procesos o prácticas estándar.
Los modelos de procesos incluyen procedimientos de revisión y mejora continua,
de forma que una vez lograda su institucionalización, los resultados mejoran de
forma constante.
Si se trata de la incorporación de un marco ágil, no debe hacerse de forma
metodista, de forma que las prácticas estándar deben ir cuestionándose y revisando
para mejorar también de forma constante la fluidez de la organización.
7.4. VBA (Visual Basic for Applications) [6]
7.4.1. Definición
Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft
Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye
en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar
la funcionalidad de programas de Microsoft Office. Visual Basic para Aplicaciones
es un subconjunto casi completo de Visual Basic 5.0 y 6.0.
Microsoft VBA viene integrado en aplicaciones de Microsoft Office, como Word,
Excel y Access, Powerpoint. Prácticamente cualquier cosa que se pueda programar
en Visual Basic 5.0 o 6.0 se puede hacer también dentro de un documento de Office,
23
con la sola limitación que el producto final no se puede compilar separadamente del
documento, hoja o base de datos en que fue creado; es decir, se convierte en una
macro (o más bien súper macro). Esta macro puede instalarse o distribuirse con
sólo copiar el documento, presentación o base de datos.
7.4.2. ¿Por qué usar VBA en Excel?
Microsoft Excel es una herramienta muy eficaz que se puede usar para manipular,
analizar y presentar datos. A veces, no obstante, a pesar del amplio conjunto de
características que ofrece la interfaz de usuario (UI) estándar de Excel, es posible
que se desee encontrar una manera más fácil de realizar una tarea repetitiva y
común, o de realizar alguna tarea no incluida en la interfaz de usuario.
Afortunadamente, las aplicaciones de Office, como Excel, tienen Visual Basic para
Aplicaciones (VBA), un lenguaje de programación que brinda la posibilidad de
ampliar dichas aplicaciones.
VBA funciona mediante la ejecución de macros, procedimientos paso a paso
escritos en Visual Basic. Aprender a programar podría parecer intimidante, pero con
algo de paciencia y algunos ejemplos, muchos usuarios encuentran que conocer,
aunque sea una pequeña parte del código de VBA facilita su trabajo y les brinda la
posibilidad de ejecutar tareas en Office que antes creían imposibles de realizar. Si
se adquieren algunos conocimientos sobre VBA, resultará mucho más sencillo
seguir aprendiendo, por lo que aquí las posibilidades son ilimitadas.
Sin duda, la razón más frecuente por la cual se usa VBA en Excel es para
automatizar tareas repetitivas. Por ejemplo, suponga que tiene docenas de libros
con docenas de hojas de cálculo y necesita realizar cambios en cada uno de ellos.
Los cambios podrían ser tan simples como aplicar formato nuevo a algún rango fijo
de celdas, o bien tan complejos como buscar algunas características estadísticas
de los datos en cada hoja, elegir el mejor tipo de gráfico para mostrar datos con
24
esas características y, a continuación, crear y dar formato al gráfico en
consecuencia.
En ambos casos, es probable que prefiera no realizar estas tareas de forma manual,
al menos no más de unas pocas veces. En su lugar, las tareas pueden
automatizarse usando VBA para escribir las instrucciones explícitas que Excel debe
seguir.
No obstante, VBA no es útil solo para tareas repetitivas. También puede usar VBA
para crear nuevas funcionalidades en Excel (por ejemplo, puede desarrollar nuevos
algoritmos para analizar datos y, a continuación, usar las funcionalidades de gráficos
de Excel para mostrar los resultados) y realizar tareas que integren Excel con otras
aplicaciones de Office, como Microsoft Access. De hecho, de todas las aplicaciones
de Office, Excel es la más usada como algo similar a una plataforma de desarrollo
general. Además de todas las tareas obvias que implican listas y contabilidad, los
programadores usan Excel en una amplia variedad de tareas, desde visualización
de datos hasta prototipos de software.
A pesar de todas las buenas razones para usar VBA en Excel, es importante
recordar que la mejor solución de un problema posiblemente no se relacione con
VBA en absoluto. Excel tiene una gran variedad de características sin VBA y es
posible que hasta un usuario avanzado no esté familiarizado con todas ellas. Antes
de acudir a una solución de VBA, realice una búsqueda exhaustiva en Ayuda y
recursos en línea para asegurarse de que no existe una manera más simple
7.4.3. Programación en VBA
Quizá crea que escribir código es algo misterioso o complicado, pero sus principios
básicos usan la lógica diaria y son bastante accesibles. Las aplicaciones de Office
2010 están creadas de tal modo que exponen lo que se denomina objetos. Estos
25
objetos reciben instrucciones. Para interactuar con las aplicaciones, se envían
instrucciones a varios objetos de la aplicación. Los objetos, si bien son variados y
flexibles, tienen sus límites. Solo pueden hacer aquello para lo que fueron diseñados
y solo harán lo que se les indique que hagan.
Objetos
Los objetos de programación se relacionan entre sí sistemáticamente en una
jerarquía denominada modelo de objetos de la aplicación. El modelo de objetos
básicamente refleja lo que se ve en la interfaz de usuario. Por ejemplo, el modelo
de objetos de Excel contiene los objetos Application, Workbook, Sheet y Chart, entre
muchos otros. El modelo de objetos constituye el mapa conceptual de la aplicación
y sus funcionalidades.
Propiedades y métodos
Es posible manipular objetos al establecer sus Propiedades y llamar a sus métodos.
Si se establece una propiedad, se producen algunos cambios en la calidad del
objeto. Si se llama a un método, se logra que el objeto realice una determinada
acción. Por ejemplo, el objeto Workbook tiene un método Close que cierra el libro y
una propiedad ActiveSheet que representa la hoja activa del libro.
Colecciones
Varios objetos vienen en las versiones singular y plural; por ejemplo, libro y libros,
hoja de cálculo y hojas de cálculo. Las versiones en plural se denominan
colecciones. Los objetos de una colección se usan para realizar una acción en
varios elementos de esa colección.
26
7.5. Advanced Analytics Software | SAS
7.5.1. ¿Qué es SAS? [7]
El Sistema SAS (Statistical Analisys System) es un paquete de software que abarca
múltiples áreas de trabajo del campo científico, centrándose especialmente en todas
las ramas de la Estadística aplicada. Dado que esta disciplina es prácticamente
universal en la actualidad, la utilidad de este software puede extenderse a la
mayoría de las ciencias experimentales y sociales.
El sistema SAS consta de una serie de módulos, cada uno de ellos orientado a una
tarea específica. Entre los más importantes tenemos SAS/BASE, módulo
imprescindible sin el cual no funcionan los restantes y que permite el manejo de
ficheros y datos, la programación básica y los procedimientos más sencillos;
SAS/GRAPH, módulo para la realización de gráficos; SAS/STAT, módulo que
incluye procedimientos estadísticos complejos; SAS/ETS; módulo que implementa
todo tipo de procedimientos de econometría y series temporales; SAS/QC, módulo
de control de calidad; SAS/OR, módulo de investigación operativa; SAS/IML,
módulo de lenguaje matricial; SAS/AF y SAS/FSP, módulos orientados al desarrollo
de aplicaciones; SAS/ACCES, SAS/CONNECT y SAS/SHARE, módulos de acceso,
conexión y comunicación con bases de datos externas como DB2, ORACLE, SQL
SERVER, etc.; SAS/ASSIST, módulo que permite el aprendizaje guiado del sistema
SAS; SAS/GIS, módulo para el trabajo con sistemas geográficos; SAS/MINER,
módulo de data mining y otra serie de módulos que van creciendo según el
desarrollo de la investigación estadística y del software.
Las soluciones de SAS son utilizadas por cientos de empresas para administrar su
activo más valioso: sus datos. SAS les proporciona a las organizaciones la
capacidad de integrar, clasificar y analizar datos para generar conocimiento que les
permite resolver problemas complejos en las diferentes áreas del negocio. Con el
27
conjunto de soluciones de Analítica Empresarial de SAS, las empresas encuentran
mejores respuestas en menor tiempo. Con SAS, las empresas no sólo pueden
enfrentar los retos del presente, también pueden capitalizar las oportunidades del
futuro.
SAS ofrece un verdadero poder analítico a las empresas que manejan altos
volúmenes de datos y extrae la información esencial, para facilitar el proceso de
toma de decisiones utilizando modelos predictivos y descriptivos, pronósticos,
simulación y optimización. Con SAS es posible tener una visión estratégica del
negocio enfocada en la administración de relaciones con los clientes, la rentabilidad
de la empresa, la administración de los gastos, el desempeño financiero, el manejo
de los procesos internos, la administración de riesgo, entre otros.
Al implementar las soluciones de SAS las empresas pueden retener y fidelizar a sus
clientes, identificar oportunidades de negocio, disminuir costos y ser más rentables,
permitiendo así el incremento en la productividad y al mismo tiempo una reducción
en los costos, así como el aumento en los ingresos al poder tomar decisiones más
rápidas y eficaces.
Los ejecutivos de hoy se enfrentan ante enormes desafíos: una crisis económica
mundial de tremendo impacto, regulaciones cada vez más imponentes y mayor
competencia global. No obstante, con cada problema se presenta una oportunidad,
siempre y cuando las decisiones se tomen adecuada y rápidamente.
Para aprovechar las oportunidades y ganarle a la competencia, se necesitan
estrategias ágiles, decisiones proactivas y una capacidad para dirigir los pocos
recursos de todas las áreas de la organización hacia aquellas actividades que
seguramente son las que brindarán mayor éxito.
La tarea de SAS es ayudar a alcanzar el mejor nivel de rendimiento, ofreciendo
software de analítica empresarial y servicios de categoría mundial a través de un
28
marco único y flexible que permita navegar los retos actuales y aprovechar las
oportunidades del mañana.
Los analíticos empresariales de SAS brindan información y entendimiento
competitivo proveniente de una cantidad de datos que permite:
Resolver complejos problemas comerciales
Administrar el rendimiento para lograr objetivos de negocio que se puedan
medir
Fomentar el crecimiento sustentable a través de la innovación
Anticipar y manejar el cambio
7.5.2. SAS (Lenguaje de programación) [8]
SAS es un lenguaje de programación desarrollado por SAS Institute a finales de los
años sesenta. Existen dos intérpretes de dicho lenguaje: uno desarrollado por SAS
Institute y otro por la empresa World Programming.
Posee una sintaxis inspirada en la de PL/I, lenguaje en el que se implementó el
primer intérprete.
El lenguaje SAS opera principalmente sobre tablas de datos: puede leerlas,
transformarlas, combinarlas, resumirlas, crear informes a partir de ellas, etc. El
núcleo del lenguaje (conocido habitualmente como SAS Base) incluye:
Pasos data que permiten realizar operaciones sobre las filas de un conjunto de
datos. Procedimientos de manipulación de datos que permiten ordenar tablas,
enlazarlas, etc. Un intérprete de SQL. Un super lenguaje de macros.
Algunas de las características adicionales del lenguaje de programación SAS son
las siguientes:
29
Las palabras clave no están reservadas, esto implica que se puede usar
cualquier nombre para un identificador, por ejemplo. una variable se puede
llamar else, aunque esta palabra tiene un significado semántico.
El lenguaje se considera ambiguo, esto implica que la interpretación de las
instrucciones depende de instrucciones previas.
El lenguaje no se puede describir a través de una gramática de contexto libre
Gramática de contexto libre.
El análisis léxico del lenguaje depende del contexto. Analizador léxico
30
SEGUNDA PARTE - DISEÑO Y DESARROLLO
8. METODOLOGIA
Se toma como fundamento para el desarrollo de este proyecto el enfoque
metodológico desarrollado por Kendall & Kendall [9]
“El ciclo de vida de vida del desarrollo de sistemas (SDLC, Systems Development
life cycle) es un enfoque por fases para el análisis y el diseño cuya premisa principal
consiste en que los sistemas se desarrollan mejor utilizando un ciclo especifico de
actividades del analista y el usuario.”
Según esta metodología el ciclo de vida de un sistema consta de siete partes: siendo
la primera la identificación del problema, la segunda identificación de requisitos de
información, la tercera es el análisis de las necesidades del sistema, la cuarta es el
diseño del sistema recomendado, la quinta desarrollo y documentación del sistema,
la sexta prueba y mantenimiento y la última implementación y evaluación. Cada fase
se explica por separado, pero nunca se realizan como pasos aislados, más bien es
posible que algunas actividades se realicen de manera simultánea, y algunas de
ellas podrían repetirse.
Identificación de problemas, oportunidades y objetivos
Esta fase es crucial para el éxito del proyecto, requiere que se observe de forma
objetiva lo que ocurre en la organización, luego en conjunto con otros miembros de
la organización hacer notar los problemas. Las oportunidades son aquellas
situaciones que se considera que pueden mejorarse, perfeccionarse mediante el
uso de los sistemas de información. También es un componente importante de la
31
primera fase, en esta etapa se deberá descubrir lo que la organización intenta
realizar, luego determinar si el uso de los sistemas de información apoyaría a la
organización para alcanzar sus metas.
Determinación de los requerimientos de información
Se hará a partir de los usuarios particularmente involucrados, para determinar los
requerimientos de información dentro del proyecto, pueden utilizarse diversos
instrumentos, los cuales incluyen: muestreo, el estudio de los datos y formas usadas
para la organización, la entrevista, los cuestionarios; la observación de la conducta
de quien tomo las decisiones, así como de su ambiente. Se hace todo lo posible por
identificar qué información requiere el usuario para desempeñar sus tareas.
Diseño del sistema recomendado
Se usa la información recolectada con anterioridad y se elabora el diseño lógico de
sistemas de información, se diseña también procedimientos precisos de captura de
datos, con la finalidad de que los datos que se introducen en el sistema de
información, sean los correctos. Esta etapa también incluye el diseño de los archivos
o la base de datos que almacenará aquellos datos requeridos por quien toma las
decisiones en la organización.
Desarrollo y documentación del software
En esta etapa de desarrolla la solución de software determinada para la resolución
del sistema, en este caso se hará en la plataforma de Visual Basic y posteriormente
en la del programa SAS Enterprise Guide. Realizando la posterior documentación
del aplicativo que corresponda.
32
Pruebas y mantenimiento del sistema
Todo sistema de información debe probarse antes de ser utilizado, ya que el costo
es menor si se detectan los problemas antes de que entre en funcionamiento. En
un principio, se hace una serie de pruebas, con datos tipo, para identificar las
posibles fallas del sistema, más adelante, se utilizarán los datos del sistema real, la
integridad de los insumos es de suma importancia en el mantenimiento.
Implantación y evaluación del sistema
Esta es la última etapa del desarrollo del sistema, esto incluye el adiestramiento que
el usuario requerirá. Aunque la evaluación del sistema se plantea como parte
integrante de la última etapa del ciclo de desarrollo de los sistemas; realmente la
evaluación toma parte de cada una de las etapas. Uno de los criterios
fundamentales que debe satisfacerse, es que el futuro usuario utilice el sistema
desarrollado.
33
9. PLANEACIÓN Y DESARROLLO
9.1. Plan de trabajo
Tabla 1 Plan de trabajo
OBJETIVO META ACTIVIDADES
sem
an
as
Identificación de problemas, oportunidades y objetivos
Determinar los
tiempos de
ejecución de las
actividades
realizadas en el
área que se
desean optimizar.
Análisis de
tiempos de
ejecución
Determinar los procedimientos que
se realizan en el área.
Medir tiempo de ejecución y
elaboración de informes
1
Análisis de las
necesidades de la
herramienta a
desarrollar.
Documento de
requerimientos
Reunión con los encargados de la
ejecución de los procesos.
Recolección de funcionalidades y
requerimientos de la aplicación
1
Determinar
cronograma de
actividades.
Cronograma
Planear reuniones periódicas con los
usuarios
Pautar fechas de entrega y
evaluación de avances
1
Determinación de los requerimientos de información
Parametrización
de rutas de
acceso a los
insumos de
información.
Listado de
rutas
parametrizadas
Determinar rutas y servidores donde
se encuentre la información necesaria
para la ejecución de la aplicación
1
34
OBJETIVO META ACTIVIDADES
sem
an
as
Determinar
estructuras de
datos de
información y
formatos de
archivos.
Estructura y
formatos de
archivos
Analizar todos los formatos con los
que la información es extraída para su
análisis.
Identificar la estructura de datos que
manejan los archivos
Determinar el tipo de archivos que se
pueden utilizar dentro de la aplicación.
1
Creación de
tablas de
homologación de
Identificadores de
registros.
Tablas de
homologación
Determinar que procesos necesitan
de homologaciones de sus registros
Elaborar base de datos con los entes
que requieren de más de un registro
único
Elaborar tablas de homologación y
parametrizaciones necesarias
2
Análisis de las necesidades del sistema
Aprender el uso y
la estructura del
lenguaje a utilizar.
Conocimiento
básico del
lenguaje
Buscar documentación del lenguaje
Aprender las estructuras básicas y
métodos principales para el desarrollo
de la aplicación
2
Determinar
requerimientos de
interacción entre
el usuario y la
aplicación.
Requisitos de
diseño
Determinar las necesidades de
interacción que requiere el usuario
Modelar las vistas necesarias para la
interacción del usuario con la
aplicación
1
35
OBJETIVO META ACTIVIDADES
sem
an
as
Evaluación de
requerimientos.
Evaluación de
requerimientos
Realizar reunión con los implicados
del desarrollo y evaluar los
requerimientos
Determinar la aprobación y
modificaciones a los requerimientos
planteados
1
Diseño del sistema recomendado
Construir interface
de usuario.
Vistas de
Usuario
Determinar modelo de vistas para el
usuario
Construir las vistas de usuario
finales.
2
Determinar y
garantizar la
integridad de los
datos de captura e
información.
Estándar de
formato de
datos
Analizar las posibles entradas de
datos que debe manejar la aplicación
Determinar un modelo de ingreso de
información
Estandarizar la estructura de ingreso
de datos.
1
Diseñar control de
errores y
procedimientos de
modificación por
parte del usuario.
Proceso de
manejo de
errores
Determinar los posibles errores de
ejecución que puedan presentarse
Diseñar proceso de control de
errores
2
Elaboración de
plantillas donde
se estructuran los
datos de salida.
Modelo de
plantilla
Evaluar la estructura de salida de los
datos
Determinar como el usuario desea
ver los datos
1
36
OBJETIVO META ACTIVIDADES
sem
an
as
Determinar la estructura de los
informes y los posibles cambios que
puedan surgir
Elaborar las plantillas de salida de los
resultados de ejecución
Desarrollo y documentación del software
Construir métodos
que permitan la
captura de
información de
acuerdo a rutas y
estructuras de
archivos.
Métodos en el
lenguaje
utilizado
Determinar las necesidades del
desarrollo y la utilidad pertinente
Construir métodos de captura de
información
Construir métodos para elaboración
de informes a partir de plantilla
2
Desarrollar
estructuras de
datos y objetos
para manejar la
información
dentro del
sistema.
Desarrollo de
clases y
objetos
Abstraer lógicamente los objetos y
clases necesarias para la ejecución del
aplicativo
Codificar los objetos y clases
necesarios con las variables
específicas para cada objeto.
1
Codificación de la
aplicación.
Código
Aplicación
Determinar la lógica de negocio
suficiente para cada sección de
desarrollo
Codificar y desarrollar toda la
aplicación parcialmente hasta la fase
de pruebas.
3
37
OBJETIVO META ACTIVIDADES
sem
an
as
Elaboración de
manuales de
usuario y
documentación de
código.
Manual de
usuario y de
código
Documentar el desarrollo clara y
específicamente
Crear documento que explique el
funcionamiento del código para futuros
desarrolladores
1
Pruebas y mantenimiento del sistema
Realizar pruebas
de los avances de
desarrollo con
insumos base.
Pruebas
exitosas
Determinar insumos base para
realizar pruebas
Ejecutar por sectores el código y
determinar la integridad de los
resultados
1
Comparar
resultados
operativos con los
arrojados por la
aplicación.
Validaciones
aprobadas
Realizar una base de resultados
obtenidos operativamente
Realizar base de resultados
obtenidos mediante la aplicación
Comparación y validación de los
resultados obtenidos por ambos
medios
1
Determinar
modelo de
análisis de fallos.
Modelo de
análisis de
fallos
Detectar errores que se presentan
con mayor frecuencia en la ejecución
de la aplicación
Construir modelo que indique como
encontrar los sectores de código o de
insumos que presentan los fallos
1
Implantación y evaluación del sistema
38
OBJETIVO META ACTIVIDADES
sem
an
as
Capacitación del
uso de la
aplicación a los
usuarios.
Usuarios
capacitados
Realizar presentación de
capacitación para los usuarios que
interactuaran con el sistema
Reunión y capacitación
1
Comparación de
tiempo de
ejecución
operativos y de la
aplicación.
Evaluación y
validación de
tiempos de
ejecución
Retomar el registro de tiempos de
ejecución de las labores operativas
Determinar los nuevos tiempos de
ejecución con la aplicación y validar
que sean menores
1
Fuente: Contreras, J. (2016). Plan de trabajo. [Grafico]. Elaboración propia
9.2. Identificación de problemas, oportunidades y objetivos
En el área de Riesgos de Posición Propia de Bancolombia S.A se generan
periódicamente informes en formato Excel que se presentan ante entes reguladores
y ante analistas de otras áreas del banco para el análisis de los movimientos
realizados en la posición propia de la organización.
9.2.1. Análisis de herramientas actuales
Actualmente el área cuenta con diferentes macros desarrolladas en Excel, que no
estas entrelazadas entre sí, para desarrollar cierto tipo de consultas y cálculos de
información requerida por el área.
Existen hojas de cálculo de Excel con fórmulas establecidas, donde se procede a
copiar el insumo del día y reemplazarlo en las celdas indicadas, “arrastrar” las
formulas hasta donde se necesita la información y se genera cierto tipo de datos los
cuales no son finales, y dependen específicamente de las modificaciones de estas
39
columnas calculadas. Esta información obtenida se procede a llevar a nuevas hojas
de cálculo que contienen formulas totalmente diferentes y se realiza el mismo
procedimiento de forma continua hasta obtener el resultado esperado.
Lamentablemente este proceso depende de que el analista copie y pegue los
registros solicitados por medio de filtros, causando fallos al momento de copiar y
pegar la información que desemboca en errores en los informes finales.
De la misma manera existen macros que en cierta medida optimizan determinados
procesos, al analizar las macros se encuentra que el código desarrollado en Visual
Basic For Aplications, es un código carente de estructura, con repetidas líneas de
código que hacen la misma acción repetidamente, con largos tiempos de ejecución
y lleno de errores. Cuando se presenta una modificación dentro de este código es
prácticamente imposible para un analista que tiene muy poca experiencia con la
programación encontrar el sector de código que debe ser modificado, puesto que
tampoco se encuentro en lo más mínimo documentado.
Por otro lado, estas macros producen formatos de salida completamente
independientes, que cuando se procede a analizar la información y cruzarla con otro
tipo de tablas, presenta inconsistencia al no tener los mismos formatos de origen
dando como resultado información errónea.
9.2.2. Análisis de tiempos de ejecución
Se procede a identificar cuáles son los informes que se deben optimizar, y se
identifican 4 categorías dependiendo de los solicitantes de la información,
dividiéndose en:
Banitsmo
Bancolombia y filiales en el exterior
Fiduciaria
Valores
40
A continuación, se presenta una relación de los informes (Limites), con su respectiva
periodicidad y el tiempo de elaboración en minutos.
Tabla 2 Duracion en minutos de elaboración manual de limites
Limite Periodicidad Duración en
minutos
BANISTMO
Control Límite Cupos Diario 13
Control Límite Atribuciones por trader Diario 10
Control Límite Contrato Isda Diario 40
Control Límite Contraparte Plazo Diario 13
BANCOLOMBIA Y FILIALES DEL EXT
Control de Vencidos LME Diario 13
Control Límite Contrato Marco Mensual 40
Histórico de Incumplimientos Semanal 25
Control de Incumplimientos y Ley 1116 Diario 9
Insumos Contingencia Diario 10
Padres e hijos Diario 10
Control Límite Plazo Producto Banco Diario 13
Control Sector Banco Diario 13
Contrato Marco histórico (actualiza Base) Diario 9
Control MEC Bancolombia Diario 13
Control Atribuciones por Tiempo Diario 20
Neteo Banco Diario 100
Control Sobrepasos Banco Diario 18
FIDUCIARIA
Control Cargue Vl Mdo Porfin Diario 8
Control Cargue Masivo Vl mdo RV Diario 8
Control Límite Negociación Mensual 20
Control Atribuciones Diario 13
41
Limite Periodicidad Duración en
minutos
Control Límite Emisor Renta Fija Diario 13
Control Límite Emisor Renta Variable Diario 13
Control MEC Fiduciaria Recursos De
Terceros Diario 13
Control Cupos Límite Crédito Emisor
Mensual Mensual 25
Control Cupos Límite Emisión RF Diario 13
Control Cupos Límite Depósitos Diario 13
Control Límites Diarios Pensionales Diario 13
Control Límite Grupo Económico Mensual 25
Control Límite Plazo Producto Fiduciaria Mensual 20
Control Límite Duración Vencimiento Mensual 60
VALORES
Cargue Masivo Vl Mdo APTs Diario 9
Cupos RF Todos APTs (Tesorería) Diario 13
Control Cupos RF Todos Terceros
(Negociación) Diario 13
Control Cupos Rv Todos APTs Diario 13
Control Cupos Emisión Todos APTs Diario 13
Control Cupos RF y RV por cada APT Diario 13
Control Atribuciones Valores Diario 9
Control Calificaciones APTs Diario 9
Informe Cupos FICs Valores Diario 10
Control Apalancamiento Valores Diario 9
Nuevas Operaciones APTs Diario 5
Informe FO APTs Diario 10
Control limite renta fija pp valores Diario 13
42
Limite Periodicidad Duración en
minutos
Control limite renta variable pp valores Diario 13
Control Intraday RF Medio dia 8
Control Concentración Diario 8
Control Cupo Mutual Fund Mensual 20
Informe Cupos Posicion Propia Valores Diario 13
Control Decreto 2878 Validacion OYD Semanal 15
Control Decreto 2878 Validacion MLC Semanal 15
Control Decreto 2878 Validacion Clientes y
grupos Semanal 15
Control Cupos MEC Mensual 20
Control Cupos SET FX Mensual 30
Resctricciones Mec Back Office Diario 8
Fuente: Contreras, J. (2016). Duración de límites. [Tabla]. Elaboración propia
9.2.3. Requerimientos del desarrollo
El programa debe permitir según reglas de negocio realizar informes teniendo
como base registros de varias fuentes de información y presentar los
informes en formato .xlsx (Excel).
Debe ser desarrollado en VBA (Visual Basic For Aplications)
Los insumos vienen de diferentes formatos, puesto que vienen de diversas
fuentes de información y programas diversos, estos se encuentran en
formatos txt, xlsx, xls y csv. El sistema deberá poder analizar la información
contenida en estos formatos.
La herramienta debe permitir la parametrización tanto de las rutas, como de
los nombres de los archivos, incluyendo el nombre de las hojas de los
archivos tipo Excel y la celda origen de donde se debe tomar la información.
43
Los informes deben tener un formato específico listo para la presentación a
quienes lo requieran. De igual manera se deben generar informes históricos
en carpetas igualmente parametrizadas dentro de los sitios de red
correspondientes.
La herramienta debe permitir la ejecución de diversas macros que se usan
para la extracción de información de algunos tipos de archivos.
Debe tener un entorno de fácil comprensión para tipos de usuarios con
conocimientos medios en programación, puesto que la lógica de las
operaciones podría ser cambiada y de la misma manera debería ser de fácil
modificación dentro del código
Debe permitirse la ejecución individual y colectiva de los límites de manera
sencilla, de igual manera la fecha de ejecución debe poder ser modificada.
Existirá la opción de añadir comentarios a registros específicos dentro de los
informes.
44
9.2.4. Cronograma
Tabla 3 Cronograma de actividades por semanas
Actividades
Semanas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Identificación de problemas, oportunidades y objetivos
Determinar los tiempos de ejecución de las actividades realizadas en el área que se desean optimizar.
Análisis de las necesidades de la herramienta a desarrollar.
Determinar cronograma de actividades.
Determinación de los requerimientos de información
Parametrización de rutas de acceso a los insumos de información.
Determinar estructuras de datos de información y formatos de archivos.
Creación de tablas de homologación de Identificadores de registros.
Análisis de las necesidades del sistema
Aprender el uso y la estructura del lenguaje a utilizar.
Determinar requerimientos de interacción entre el usuario y la aplicación.
Evaluación de requerimientos.
Diseño del sistema recomendado
Construir interface de usuario.
Determinar y garantizar la integridad de los datos de captura e información.
45
Actividades
Semanas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Diseñar control de errores y procedimientos de modificación por parte del usuario.
Elaboración de plantillas donde se estructuran los datos de salida.
Desarrollo y documentación del software
Construir métodos que permitan la captura de información de acuerdo a rutas y estructuras de archivos.
Desarrollar estructuras de datos y objetos para manejar la información dentro del sistema.
Codificación de la aplicación.
Elaboración de manuales de usuario y documentación de código.
Pruebas y mantenimiento del sistema
Realizar pruebas de los avances de desarrollo con insumos base.
Comparar resultados operativos con los arrojados por la aplicación.
Determinar modelo de análisis de fallos.
Implantación y evaluación del sistema
Capacitación del uso de la aplicación a los usuarios.
Comparación de tiempo de ejecución operativos y de la aplicación.
Fuente: Contreras, J. (2016). Cronograma de actividades. [Tabla]. Elaboración propia
46
9.3. Determinación de los requerimientos de información
9.3.1. Rutas de acceso
La información requerida para el funcionamiento de la aplicación se encuentra
dispersa en los diversos directorios de los servidores de la organización, puesto que
los insumos son generados por diversos programas diferentes que a su vez tienen
rutas específicas.
Se procedió a analizar los formatos de las rutas y a listar los accesos más utilizados.
Es importante considerar que los computadores en donde se vaya a ejecutar el
proyecto, deben tener acceso a la ruta que se especifica en la parametrización.
Al ser el sistema operativo Windows, las rutas deben tener el siguiente formato:
G:\GBCRiesgos\Riesgo Grupo Bancolombia\
1. Debe iniciar con el símbolo de la unidad de red correspondiente, en el caso
anterior corresponde al servidor asociado con la letra G:
2. La ruta ha de ser relativa, puesto que cada subíndice será precedido del
caracter “\”
3. Deberá finalizar con el caracter correspondiente para que no haya valores
perdidos
9.3.2. Estructura y formatos de archivos
Al ser los generadores de información de tan diversos orígenes, los archivos están
en diferentes formatos, y la información tiene diferente estructura. Se determinó que
los insumos serán obtenidos de 4 tipos de archivos diferentes:
47
TXT
Estos archivos están compuestos de bytes que representan caracteres ordinarios
como letras, números y signos de puntuación (incluyendo espacios en blanco),
también incluye algunos caracteres de control como tabulaciones, saltos de línea y
retornos de carro. Estos caracteres se pueden codificar de distintos modos
dependiendo de la lengua usada.
En este tipo de archivos las columnas vienen separados por un carácter específico
(tabulación, coma, punto, punto y coma), y los registros vienen separados por un
salto de línea
CSV
Comma-separated values, son un tipo de documento en formato abierto sencillo
para representar datos en forma de tabla, en las que las columnas se separan por
comas (o punto y coma en donde la coma es el Separador decimal) y las filas por
saltos de línea. Los campos que contengan una coma, un salto de línea o una
comilla doble deben ser encerrados entre comillas dobles.
El formato CSV es muy sencillo y no indica un juego de caracteres concreto, ni cómo
van situados los bytes, ni el formato para el salto de línea. Estos puntos deben
indicarse muchas veces al abrir el archivo.
XLS – XLSX
Son archivos generados por Microsoft Office Excel, la única diferencia es que a
partir de Microsoft Excel 2007, la extensión de archivo predeterminada para las
hojas de cálculo es .xlsx en lugar de la antigua .xls. La "x" al final hace referencia a
"XML", que significa "Extensible Markup Language" (Lenguaje de marcas
extensible), un método de codificación de documentos.
48
9.3.3. Tablas de homologación
En los registros e informes que proporcionan los sistemas actuales para la
recolección de información, se pudo observar que cada sistema maneja
identificadores de tipos diferentes para los clientes, las contrapartes, la organización
y las transacciones.
Como los informes que se pretenden generar es la reunión de la información de
todas las fuentes, es imposible con la información proporcionada encontrar los
Identificadores únicos y elaborar las operaciones correspondientes, de allí se ve la
necesidad de crear tablas de homologación donde los identificadores
correspondientes de cada usuario sean relacionados a un solo tipo de identificador,
por ejemplo:
Tabla 4 Ejemplo tabla de homologación
Nombre NIT OYD ISIN
Bancolombia 15654897 123412 123fg65468
GRUPO ARGOS 890900266 216409 653ok69869
Fuente: Contreras, J. (2016). Tabla homologación. [Tabla]. Elaboración propia
9.4. Diseño del sistema recomendado
9.4.1. Vistas de Usuario
Para que la parametrización de las rutas y de los archivos sea implementada de la
mejor forma, se decide diseñar la vista de usuario en una hoja de Excel, puesto que
es la interface más sencilla para el usuario. Se tuvo en cuenta para el diseño de la
interface los siguientes puntos:
49
Que el usuario pueda parametrizar las rutas, nombres de los archivos, nombre
de las hojas y celdas de origen de información desde la hoja de Excel que será
la vista de usuario.
Figura 6 Diseño parametrización de rutas y nombres de archivo en Excel
Fuente: Contreras, J. (2016). Tabla de parametrización. [Figura]. Elaboración propia
El usuario puede seleccionar la fecha de ejecución para los informes necesarios
Figura 7 Diseño selección de fecha de ejecución
Fuente: Contreras, J. (2016). Diseño fecha. [Imagen]. Elaboración propia
El usuario ha de definir la entidad a la que hace parte el límite que desea
ejecutar, además, el usuario puede determinar el limite o informe que desea que
se ejecute únicamente.
Figura 8 Diseño selección de entidad y limite
Fuente: Contreras, J. (2016). Diseño selección de parametros. [Figura]. Elaboración propia
50
9.4.2. Estándar de formato de datos
Para el correcto funcionamiento de la aplicación se deben implementar una serie de
normas en la introducción de datos para que el programa los pueda interpretar para
su ejecución.
1. Los nombres de los archivos no deben contener caracteres especiales que
no puedan ser interpretados, y siempre deben estar finalizados con el nombre
de su extensión (.txt, .xls, .csv ).
2. Al ingresar las celdas base, siempre estas deben ir en mayúscula, primero
con el nombre de la columna que es identificada con un letra del abecedario,
y seguido del número de la fila (A1, B123, H56)
3. Para los nombres de archivos y rutas que deben ser específicos con la fecha
del día, esta se añadirá como una fórmula de Excel que identificara la fecha
a la cual se desea correr los archivos, el formato ha de ser de la siguiente
manera:
=+"nombre del archivo" & TEXTO( $B$3;" yyyymmdd"(formato de fecha)) &
".xls"
4. Las fechas para los archivos de salida de preferencia serán en formato
dd/mm/aaaa, el formato de fechas de insumos depende específicamente del
formato que el insumo tenga
9.4.3. Proceso de manejo de errores
A continuación, se listarán los errores más comunes que pueden aparecer en la
ejecución del aplicativo junto con su solución
51
Tabla 5 Errores comunes
Error Descripción
El archivo no existe
o no se tiene el
permiso
Se dispara cuando no se puede encontrar la ruta o el
nombre del archivo dentro de la ruta especifica.
Insumo Vacío
Se dispara si el insumo está vacío o se le dio una celda
base errónea lo cual provoco que tomara miles de
columnas vacías.
La Hoja no existe Se dispara cuando la hoja parametrizada no existe o su
nombre este errado.
El Archivo es muy
pesado
Se dispara cuando el archivo que se intenta copiar pesa
más de 15 Mb y se advierte que puede tardar unos minutos
Error al Abrir Se dispara cuando el archivo que se intenta abrir, tiene la
ruta o el nombre del insumo errados
Error Al Guardar Se dispara cuando el archivo que se intenta guardar, tiene
la ruta o el nombre del insumo errados
No Existe la Hoja Se dispara cuando las hojas donde se desea guardar la
información no existen.
La tabla está vacía Se dispara cuando la matriz que se intenta imprimir se
encuentra vacía.
El archivo Se
Encuentra Abierto
Se dispara cuando el archivo que se intenta guardar se
encuentra abierto por el usuario u otra persona y no se
puede sobrescribir.
Fuente: Contreras, J. (2016). Errores comunes. [Tabla]. Elaboración propia
9.4.4. Modelo de plantilla
Para la presentación de los informes generados dependerá de la solicitud del
usuario, por este motivo se determina que el usuario es quien modificará la plantilla
a su necesidad y el programa imprimirá la matriz resultado desde la celda indicada
52
por el usuario, de igual manera la plantilla debe tener un formato especifico. En la
siguiente imagen se puede observar un ejemplo de una plantilla para la presentación
de un informe.
Figura 9 Ejemplo plantilla para la elaboracion de informe.
Fuente: Contreras, J. (2016). Ejemplo plantilla. [Figura]. Elaboración propia
Como se puede observar, esta plantilla tiene como resultado 2 matrices, la primera
iniciando en la celda C8 y la segunda iniciando en la celda B15, además que este
límite retornara información diferente en 4 hojas, las cuales han de ser indicadas en
la interface inicial de la ejecución de la aplicación.
9.5. Desarrollo y documentación del software
9.5.1. Métodos y funciones
Funciones para extraer rangos de Excel a matrices en VB (Visual Basic)
53
GETQUICKRANGEN
Descripción:
Esta función es esencial para el uso de la macro, dado que se usa en todos los
limites su función principal dados unos parámetros es: toma un archivo de Excel en
una ruta específica y lo transforma en una variable tipo Variante, de dos
dimensiones, Toma un rango de Excel de manera automática o dependiendo de los
parámetros y lo iguala a una variable de tipo matriz.
Parámetros:
WorkBookDir As String – Es la ruta completa donde se encuentra el archive que
se quiere importar a una matriz de Excel.
Ejemplo: “G:\GBCRiesgos\Riesgo Grupo Bancolombia\Bancolombia\Riesgo de
Mercado\03 Seccion Middle\Proyecto Limites Middle”
WorkBookName As String – Es el nombre del archivo que se quiere importar a
una matriz de Excel.
Ejemplo: Proyecto Límites.xlsm
CeldaBase As String – Es la celda base del Rango que se requiere tomar la
información del insumo
Nota: Si no se parametriza el Rango (Opcional), la función creara automáticamente
el Rango de la siguiente manera: Siempre tomando como base “La CeldaBase”,
Contara hacia abajo (hasta que exista un espacio en blanco) y hacia la derecha
(hasta que exista un espacio en blanco), formando un Rango determinado el cual
se guardara en la matriz.
Opcional ByVal NColumnas As Integer = 0, - Número de columnas del rango a
Importar, si no se parametriza, la función lo realizara automáticamente.
54
Optional ByVal ExcelSheetName As String – Nombre de la Hoja en la cual se
importara la información, si no se parametriza, tomara siempre la última.
Optional ByVal protected As String = 0 – Se usa en caso de que el archivo este
protegido como solo lectura, Se digita cualquier carácter en los parámetros de la
función.
Optional ByVal nRows As Double - Numero de filas que del rango a importar,
si no se parametriza, la función lo realizara automáticamente.
Retorno:
Una matriz en Excel de dos dimensiones, con la información del insumo según los
parámetros dados.
Pasos del Código:
1. Se crean dos variables: Filas y Columnas, las cuales nos ayudan a crear el
rango deseado para importar el archivo
2. Se crea la dirección completa del insumo, concatenando la dirección y el
nombre del archivo
3. Se verifica si el Libro está abierto
4. Verifica si el libro está protegido, si lo está abre el libro como “ReadOnly”
5. Si no lo esta se crea un objeto Excel, y lo abre internamente en Excel con la
dirección completa como parámetro.
6. Luego se ubica en la hoja dada por el parámetro
7. Crea el rango automáticamente, si tiene algún parámetro para cambiarlo
(Numero de filas o columnas), se reajusta.
8. Cierra el libro, limpia las variables de la memoria y retorna la tabla con la
información.
55
COPYTEXTFILES
Descripción:
Copia todos los archivos de texto de una Ruta Origen a una Ruta Destino
Parámetros:
Ruta Origen as String – Ruta Origen de los archivos txt que se quieren copiar
RutaDestino as String – Ruta destino donde los archivos van a ser copiados
Pasos del código:
1. Se Usa la función GetFileList, Para obtener una lista de todos los insumos de
extensión .txt en la ruta origen dada y se guardan en un arreglo.
2. Si la carpeta Destino no existe se usa la función Crear Carpeta Para crearla
3. Realiza un ciclo tomando cada uno de los nombres de los insumos guardados
en el arreglo copiándolos de la ruta de origen a la ruta destino (File Copy)
4. Si existe el insumo – Lo borra (DeleteFile) y lo actualiza, si el insumo no existe
procede a copiarlo,
CREAR CARPETA
Descripción:
Crea un directorio carpeta en una ruta determinada
Parámetros:
DDestino as String – Carpeta que se quiere crear.
Pasos del código:
Si la carpeta no existe (DirExist), se crea el directorio dado (MkDir)
56
GETFILELIST
Descripción:
Existen insumos que se generan con un nombre que es difícil determinar, ejemplo:
un insumo que se genere con la fecha y hora; dado que existen gran variedad de
posibilidades de hora no se puede saber con exactitud; con esta función damos
como parámetro una ruta y un nombre parcial (muy semejante al nombre del insumo
que queremos obtener) y busca el insumo con su nombre exacto
Insumo: Insumo X 01-10-2015-12-43-54.xlsx -
Nombre Parcial: Insumo X 01-10-2015*
También nos ayuda a traer un arreglo de archivos con nombres similares
Nombre Parcial: .txt*
Insumos: Insumo X.txt, Insumo Y.txt, Insumo Z.txt
Parámetros:
FileSpec As String – Nombre parcial del archivo con * al final
DirSpec As String – Ruta Origen del archivo
Pasos del código:
1. Se crea una variable para guardar el o los archivos encontrados,
2. Busca los insumos con nombres semejantes y los guarda en una variable,
mediante un ciclo y la función (Dir)
57
APPLICATIONSTATUS
Descripción:
Se encarga de mejorar el rendimiento de las macros desactivando algunas
funciones y configuraciones de Excel; FALSE, desactiva; TRUE, activa
Parámetros:
Status as Boolean – Estado de configuración
Pasos del código:
1. Según el estado dado activa / desactiva las siguientes configuraciones
a. .ScreenUpdating - Desactiva Parpadeos de pantalla
b. .DisplayAlerts - Desactiva Alertas
c. .AskToUpdateLinks - Desactiva Preguntar para actualizar
d. .EnableEvents = status – Desactiva los eventos al abrir un archivo
STRING CONVERT
Descripción:
Convierte una columna dada como parámetro en string y la ordena de forma
ascendente con el quicksort, generalmente esta función se usa para ordenar a
convertir a texto las columnas donde se encuentra los (NITS)
Parámetros:
Tabla as variant – Tabla que se quiere ordenar y convertir a txt todas las filas de
la columna dada.
Columna as long – Numero de columna en la cual se realizara el procesos de
ordenamiento y conversión a txt.
58
Código:
1. Se realiza un ciclo donde la columna dada se convierte a texto (CSrt),
2. Ordena la tabla teniendo como referencia la columna dada (QuickSort2)
CONVERTIRTXT
Descripción:
Convierte un archive de extensión txt en un archivo tipo Excel
Parámetros:
DOrigen As String – Ruta Destino archivo txt
AOrigen As String – Ruta Origen archivo txt
Optional ByVal Tipo As Integer = 0 - Opcional, se usa para determinar la
forma en que debe abrir el archivo de texto determinado.
Optional ByVal DDestino As String = "" – Opcional, Archivo donde se quiere
guardar el archivo txt transformado a xlsx
Pasos del código:
1. Si no parametrizo un Archivo destino, el archivo destino se iguala al archivo
origen. Si el archivo destino no existe se crea un directorio (Mkdir),
2. Si el archivo el archivo convertido ya se encuentra en la ruta destino, sale de
la función.
3. Si no lo está, se busca el tipo dado, los tipos son dados dependiendo de las
necesidades que se necesitan a la hora de convertir un archivo de texto, se
explica más detalladamente dentro del código (WorkBooks.OpenText)
4. Guarda el archivo con formato xlsx
59
QUICKPRINTINSIDE
Descripción:
Abre un archivo con una ruta determinada, Limpia la información de una hoja y
celdas determinadas e imprime/ copia la información de una matriz de datos, y
guarda el archivo con el mismo nombre, generalmente esta función se utiliza para
imprimir la información de las matrices en las herramientas de cargue usadas por
los analistas.
Parámetros:
DireccionWB As String – Ruta completa del archivo Ruta + Nombre + Extensión
Reporte As Variant – Tabla (matriz) que se quiere imprimir.
ByVal ExcelSheetName As String, - Nombre de la hoja donde se quiere imprimir
ByVal WorkbookBaseCell As String – Celda Base donde se imprimirá la Matriz
dada.
ByVal ncolumn As Integer – Numero de columnas en sentido (derecha –
izquierda) que NO quiere imprimir.
Optional ByVal QTipo As Double = 0 – Tipo de rango que se desee limpiar para
imprimir la información en una plantilla limpia, se pueden crear los rangos que
quiera dado que se usa un Select... Case.
Pasos del código:
1. Selecciona el caso que se desee imprimir, dependiendo del tipo,
2. Se abre el archivo (WorkBooks.Open. Direccion WB)
3. Se activa la celda dada (Sheet (ExcelSheetName).activate))
4. Se limpia el contenido de un rango parametrizado manualmente
5. Se copia la información de la Matriz dada, se cierra y se guarda.
60
QUICKPRINTINSIDESAVEAS
Descripción:
Abre un archivo de tipo Excel (Generalmente un formato o plantilla) e imprime la
información y guarda el archivo con un nombre diferente o igual.
Parámetros:
FormatoWB As String – Ruta completa Origen del archivo formato donde se
encuentra la plantilla para copiar la información ( Archivo Origen)
DestinoWB As String – Ruta completa de destino, donde se desea guardar
el archivo (Puede ser otra ruta y/o Nombre)
reporte As Variant – Matriz que se quiera copiar en formatowb
ByVal ExcelSheetName As String – Hoja del insumo formatowb donde se
quiera copiar la matriz
ByVal WorkbookBaseCell As String = CeldaBase del archivo donde se quiera
copiar la información de la matriz
Optional ByVal ncolumn As Integer = 0 – Opcional número de columnas que
NO se quieran pegar en el formato.
Pasos del código:
1. Abre el archivo formatoWB
2. Selecciona la hoja
3. Copia la información de la matriz en la hoja determinada
4. Guarda el archivo en el DestinoWB
61
BORRAR COLUMNAS
Descripción:
Se usa solamente en el límite BANCOLOMBIA – incumplimientos diarios, para
ordenar un insumo que esta erróneo.
Parámetros:
spath As String, - Ruta del archive
sname As String – Nombre Archivo Origen
dname As String – Nombre Archivo Destino
Pasos del código:
1. Selecciona la Hoja número 1 del insumo
2. Borra las columnas A y B EntireColumn.Delete
3. Y Guarda el archivo con el nombre archivo destino
DELETE FILE
Descripción:
Borra un archivo de una dirección determinada
Parámetros:
FiletoDelete as string– Ruta completa del archivo que se desea borrar.
Pasos del código:
1. Si el archivo dado existe (DirExist)
2. Borra el archivo (Kill)
62
CONVERTIR XML
Descripción:
Dada una ruta y un nombre de archivo de extensión .XML, lo abre y lo guarda con
la extensión .XLSX, convirtiéndolo en legible para la función getquickrangen
Parámetros:
DOrigen as string – Directorio Origen del archivo .XML
AOrigne as string – Nombre del archivo Origen
Pasos del código:
1. Abre el archivo .XML (Workbooks.Open)
2. Lo guarda como tipo .XLSX
9.5.2. Distribución de clases
Se determina que existen 4 clasificaciones que tienen atributos únicos y diferentes
de las demás, se organizan en 3 módulos de clases
CBanco (Bancolombia y Banitsmo)1
CFiduciaria
CValores
Clase “Ejecución”: Es donde se determina que limite debe ser ejecutado
dependiendo de la selección que se realiza en la interface de usuario.
Clase “Funciones”: Esta clase alberga todas las funciones necesarias para la
ejecución de la aplicación, son las funciones anteriormente mencionadas y
explicadas que permiten tanto como la lectura, como la escritura de los archivos.
1 Aunque son entidades diferentes, se pueden categorizar dentro de un mismo módulo de clase.
63
Clase “Sorting”: Esta clase contiene un algoritmo de ordenamiento, para ordenar
una matriz bidimensional ya sea por fila o por columna, utilizando el algoritmo Quick
Sort, y retorna la matriz bidimensional ya ordenada.
Clase “ParametrosLimites”: Esta clase contiene cada una de las funciones para
cada uno de los límites o informes que se desean generar o agregar.
9.5.3. Código Aplicación por función
Para cada limite que se genera, se desarrolla una lógica específica, de aquí que el
aplicativo puede ser modificado, además de podérsele agregar nuevos límites con
tan solo insertar una nueva línea a la interface y una nueva función a la clase
“ParametrosLimites”.
Las funciones de esta clase tienen una estructura característica para su desarrollo
y elaboración de la siguiente manera.
1. Declaración de variables locales
Las variables locales se usan exclusivamente para la ejecución de la función en
específico, los valores que estas almacenan no pueden ser utilizados por otras
funciones, dependiendo del tipo de variables que se usen localmente pueden
almacenar diferente tipo de datos, los más comunes son:
Int: Guarda valores numéricos enteros.
String: Guarda cadenas de texto.
Double: Guarda valores numéricos con decimales
Boolean: Guarda el valor de falso o verdadero.
64
2. Cargar tablas
Se procede a cargar las tablas mediante la función getQuickRangen, la cual las
guarda en un tipo de variable, Variant, para manejarla como una matriz. La matriz
está representada por (filas, columnas).
3. Recorrer la tabla y guardar los datos en objetos.
Se usan diversos tipos de objetos para guardar la información que contienen las
tablas, esto permite mayor claridad sobre los datos que se están trabajando, los
tipos de objetos más comunes son Dictionary y Collection. Los datos se guardan
dependiendo de la declaración de variables dentro de estos objetos.
Declaración: Dim contraparte As CContraparte (Declara un objeto llamado
contraparte cuyo tipo es CContraparte que es el objeto anteriormente creado y
modelado)
Creación: Set contraparte = New CContraparte (Crea el objeto contraparte para
poder utilizarlo y asignarle valores)
Asignación: contraparte.Padre = Origen1table(i, 10) (Al objeto contraparte se le
asigna el valor de la tabla en la fila i y la columna 10, este valor se le asigna al
atributo padre que dependiendo del tipo de variable que almacene debe guardarse
como tal. La variable almacenada debe corresponder al tipo definido (string o
numérica).
Guardado: PadresUDF.Add contraparte (Cuando se le asigna todos los valores a
los atributos que necesitamos se procede a guardar el objeto en una lista, en este
caso PadresUDF es la lista que puede ser de tipo colection o dictionary. La
diferencia es que cuando es tipo dictionary se debe, además del objeto, agregar una
llave única para identificarlo).
65
4. Consolidación y análisis de datos
Una vez están los datos almacenados en las listas se procede a realizar los cálculos
necesarios y los cruces entre tablas, esto se realiza mediante el uso de los ciclos
“For”, que recorren la lista objeto por objeto y dependiendo de los cálculos
realizados, se asignan nuevos valores a los atributos del objeto.
5. Convertir la lista en tabla
Luego de realizar los cálculos y cruces necesarios, la lista de objetos debe
transformarse en un arreglo bidimensional y ser llevada a una tabla, mediante el uso
de un ciclo “for” de la siguiente manera:
For Each contraparte In validacion (ciclo for que recorre la lista validación)
With contraparte (Objeto del cual se extraen los datos)
temptabla(j, 1) = .NIT (Asigna a la nueva tabla el nit del objeto)
temptabla(j, 2) = .Nombre
temptabla(j, 3) = .moneda
temptabla(j, 4) = .CupoNegociacion
End With
Next contraparte
6. Guardar un nuevo archivo con la tabla final
Finalmente, cuando se tiene tabla final con los datos consolidados se procede a
usar la función QuickPrintInsideSaveAs para guardar la matriz en la plantilla, el
archivo y directorio que se especifiquen dentro de la función.
66
9.5.4. Errores comunes relacionados a objetos
No coinciden los tipos
Este error se produce básicamente porque se intenta guardar en un objeto un tipo
de dato que no le corresponde, o se realiza una comparación entre objetos
diferentes, por ejemplo:
Se declara un objeto llamado Operación con el siguiente atributo
Dim Cupo as Double
Cuando se rrecorre una tabla y se intenta guardar en este objeto un argumento seria
de la siguiente manera
Operación.Cupo = tabla(1,1)
Si el valor que se encuentra en tabla(1,1) en la fila 1 y columna 1 no es un argumento
de tipo double (numérico), el programa en tiempo de ejecución lanzara este error.
Esta clave ya está asociada con un elemento de esta colección
Este error se produce con el manejo de diccionarios, y sucede cuando en la llave
primaria se intenta guardar un objeto con el mismo ID, por ejemplo:
Se va a guardar el objeto Operación, en el diccionario listaFinal
listaFinal.add (clave primaria, objeto) (Estructura para guardar en un diccionario)
listaFinal.add (Operación.ID, Operación) (en este caso se guardará el objeto
operación y como llave primaria su ID)
67
Cuando este error aparece es porque en la listaFinal ya existe un objeto con este
id, esto se debe a que en la tabla de los insumos probablemente hay un registro
repetido cuyo id debería ser único
9.6. Pruebas y mantenimiento del sistema
Las pruebas del sistema se llevaron a cabo a la finalización del desarrollo de cada
limite, donde el encargado de realizar manualmente el informe se reunía con el
desarrollador utilizando la siguiente metodología.
1. Al encargado de la revisión se le detallaba paso a paso el procedimiento que
efectuaba el código y este debía evaluar que cumpliera con las necesidades
de la función específica.
2. Se procedía a ejecutar la función para las 4 últimas fechas en las que el limite
fue elaborado manualmente y este debía generar los 4 informes
correspondientes
3. El evaluador analizaba los resultados, que estos fueran consistentes antes
de empezar una exhaustiva comparación con el informe manual
4. El evaluador hacia una comparación entre el informe realizado manualmente
y el generado por la aplicación.
5. Si la comparación es exitosa se pasa a ejecución al área determinada y se
realiza un monitoreo de una semana donde antes de estar seguro de la
veracidad del informe aún se hacía manual y lo generaba el sistema
simultáneamente. Si la comparación falla, se procede a evaluar e identificar
el error.
68
9.6.1. Modelo de análisis de fallos
Si existe un error de VBA, diferente de los mensajes de error que son generados
por la macro y ya están identificados, se debe realizar el siguiente procedimiento
para encontrar el punto exacto del error.
Los errores más comunes son los generados por las funciones parametrizadas en
“Funciones”, muchos de esos errores ya están identificados por los cual ya se tiene
conocimiento del procedimiento a realizar.
1. Abrir el código (Alt + F11) e ir al Módulos Clase – Parámetros Limites buscar
mediante la lista desplegable localizada en la esquina superior derecha el nombre
de función del límite donde se encuentra el error:
Figura 10 Paso 1 de búsqueda de errores
Fuente: Contreras, J. (2016). screenshot. [Imagen]. Elaboración propia
69
Dado que no es un error común, se debe buscar exactamente donde se está
presentando, para ello se pausa el código en diversas partes y se ejecuta el límite
correspondiente, para reducir el margen y encontrar el punto donde no está
funcionando la macro.
Figura 11 Paso 2 de búsqueda de errores
Fuente: Fuente: Contreras, J. (2016). Screenshot. [Imagen]. Elaboración propia
Si se descubre que el error se encuentra en un ciclo, se debe pausarlo al comenzar
el ciclo y recorrerlo una vez paso por paso, si el error no se encuentra en la primera
iteración del ciclo se debe crear una variable contador o utilizar la misma del ciclo e
imprimirla con Debug.Print (Variable contador), para determinar en qué iteración
exactamente está fallando. Luego se puede crear un IF dentro del ciclo afectado
pausando el programa cuando alcance la iteración del error encontrada con
anterioridad.
Cuando se esta en la iteración errónea se corre paso por paso identificando si existe
algo inusual, los errores más comunes encontrados en ciclos son:
70
9 – el variable contador, supera el número de la variable variante dimensionada en
una de las líneas del código.
13 – el atributo de la matriz, no corresponde al atributo de la clase (Ejemplo: en una
variable de tipo número se intente igualar una variable tipo texto)
9.7. Implantación y evaluación del sistema
La implantación del sistema se presenta exitosamente en cuanto a la interacción
con el usuario, este se desarrolló de la manera más óptima y el usuario final lo uso
con facilidad, pero se presentaron obstáculos como fueron:
El aplicativo fue desarrollado para plataformas de office Excel 2013 o superiores,
por este motivo no funcionó en uno de los cinco equipos de quienes lo iban a
ejecutar, puesto que las funciones nativas del VBA que se usaron no están
implementadas en versiones anteriores, se procedió a cambiar la versión y
actualizar el equipo.
La aplicación al ser dependiente del hardware donde está instalada presentaba
variaciones en los tiempos de ejecución dependiendo de la maquina donde se
ejecutaba.
Se presentaron continuos problemas con la integridad de los datos donde los
insumos eran modificados o extraídos de los servidores con nuevos formatos no
planeados con anterioridad.
Los tiempos de ejecución se vieron considerablemente disminuidos, a continuación
se relaciona las funciones con los tiempos de ejecución promedio nuevos.
71
Tabla 6 Comparación tiempo antes y después de la implementación de la aplicación
Limite Duración en
minutos antes
Duración en
minutos
después
BANISTMO
Control Límite Cupos 13 2,7
Control Límite Atribuciones por trader 10 2,16
Control Límite Contrato Isda 40 9
Control Límite Contraparte Plazo 13 2,72
BANCOLOMBIA Y FILIALES DEL EXT
Control de Vencidos LME 13 2,82
Control Límite Contrato Marco 40 8,4
Historico de Incumplimientos 25 5,3
Control de Incumplimientos y Ley 1116 9 1,5
Insumos Contingencia 10 2,3
Padres e hijos 10 2,25
Control Límite Plazo Producto Banco 13 2,65
Control Sector Banco 13 2,78
Contrato Marco histotico (actualiza Base) 9 1,6
Control MEC Bancolombia 13 2,67
Control Atribuciones por Tiempo 20 4,26
Neteo Banco 100 21
Control Sobrepasos Banco 18 3,78
FIDUCIARIA
Control Cargue Vl Mdo Porfin 8 1,69
Control Cargue Masivo Vl mdo RV 8 1,56
Control Límite Negociación 20 4,28
Control Atribuciones 13 2,6
72
Limite Duración en
minutos antes
Duración en
minutos
después
Control Límite Emisor Renta Fija 13 2,45
Control Límite Emisor Renta Variable 13 2,76
Control MEC Fiduciaria Recursos De
Terceros 13 2,79
Control Cupos Límite Credito Emisor
Mensual 25 5,43
Control Cupos Límite Emisión RF 13 2,23
Control Cupos Límite Depositos 13 2,32
Control Límites Diarios Pensionales 13 2,34
Control Límite Grupo Económico 25 5,25
Control Límite Plazo Producto Fiduciaria 20 4,24
Control Límite Duración Vencimiento 60 12,6
VALORES
Cargue Masivo Vl Mdo APTs 9 1,54
Cupos RF Todos APTs (Tesorería) 13 2,54
Control Cupos RF Todos Terceros
(Negociación) 13 2,56
Control Cupos Rv Todos APTs 13 2,76
Control Cupos Emisión Todos APTs 13 2,77
Control Cupos RF y RV por cada APT 13 2,87
Control Atribuciones Valores 9 1,78
Control Calificaciones APTs 9 1,87
Informe Cupos FICs Valores 10 2,18
Control Apalancamiento Valores 9 1,89
Nuevas Operaciones APTs 5 1,05
73
Limite Duración en
minutos antes
Duración en
minutos
después
Informe FO APTs 10 2,1
Control limite renta fija pp valores 13 2,98
Control limite renta variable pp valores 13 2,89
Control Intraday RF 8 1,67
Control Concentración 8 1,65
Control Cupo Mutual Fund 20 4,27
Informe Cupos Posición Propia Valores 13 2,73
Control Decreto 2878 Validación OYD 15 3,18
Control Decreto 2878 Validación MLC 15 3,23
Control Decreto 2878 Validación Clientes y
grupos 15 3,15
Control Cupos MEC 20 4,2
Control Cupos SET FX 30 6,3
Restricciones Mec Back Office 8 1,68
Fuente: Contreras, J. (2016). Tabla comparativa de tiempos. [Tabla]. Elaboración propia
74
9.8. Avance proyecto en Suite SAS
9.8.1. Funcionamiento de SAS
Las ventanas aparecen dispuestas según el diseño predeterminado de la aplicación.
Este diseño se compone del árbol del proyecto, la ventana Lista de servidores y el
espacio de trabajo. El área de espacio de trabajo es el área principal de la aplicación
SAS Enterprise Guide y se utiliza para mostrar los datos, los códigos, los registros,
los resultados de las tareas y los flujos de procesos. Al principio, el flujo de procesos
es la única ventana que aparece abierta en el espacio de trabajo. Cuando se
generen informes o se abran datos, se abrirán más ventanas en el espacio de
trabajo con una interfaz de fichas. También puede utilizar el menú de los elementos
vistos recientemente, situado en la esquina superior izquierda del espacio de
trabajo, para desplazarse de unas ventanas a otras.
Figura 12 Ventana principal de SAS
Fuente: SAS. (2017). Estructura de ventana principal de SAS EG. [Imagen]. http://support.sas.com
75
El árbol del proyecto
En SAS Enterprise Guide, todas las tareas realizadas se guardan en proyectos. Un
proyecto es un conjunto de datos, tareas, programas y resultados relacionados entre
sí. La ventana del árbol del proyecto muestra una vista jerárquica del proyecto con
los datos, programas, notas y resultados que lo componen.
Se puede utilizar la ventana del árbol del proyecto para organizar los objetos del
proyecto. Los elementos del proyecto se pueden eliminar, cambiar de nombre y
volver a organizar. También se puede ejecutar un proyecto, o programar su
ejecución para un determinado momento.
Figura 13 Árbol de proyecto
Fuente: SAS. (2017). Estructura de árbol de proyecto de SAS EG. [Imagen]. http://support.sas.com
Las ventanas Espacio de trabajo y Flujo del proceso
En el proyecto puede haber uno o más flujos de proceso. Al crear un proyecto nuevo
se abrirá una ventana de flujo del proceso vacía. Al ir añadiendo datos, ejecutando
tareas y generando resultados, irá apareciendo un icono para cada objeto y se
añadirá al flujo del proceso. El flujo del proceso muestra los objetos del proyecto,
las relaciones que existan entre ellos y el orden en que se ejecutarán los objetos
cuando se ejecute el flujo del proceso.
76
En la ventana Flujo del proceso que se muestra a continuación, el conjunto de datos
SAS Products es la entrada para la tarea Diagrama de barra, y el objeto Informe
SAS es un resultado de dicha tarea.
Se pueden tener varios flujos del proceso para un proyecto y se pueden copiar o
mover objetos entre flujos del proceso. Se puede ejecutar una parte del flujo del
proceso o todo el flujo del proceso.
Figura 14 Flujo de un proceso en SAS
Fuente: SAS. (2017). Flujo de un proceso de SAS EG. [Imagen]. http://support.sas.com
9.8.2. Análisis de flujo de información de tesorería
La tesorería es el área de la empresa que tiene por objetivo el conjunto de
operaciones relacionadas con las operaciones de flujo monetario o flujo de caja
(“cash flow”), es decir todas esas operaciones que incluyen el cobro por las ventas
o los servicios ofrecidos por la empresa, el pago por todos los gastos ocasionados,
así como la gestión de la caja y de todas las gestiones relacionadas con las
instituciones financieras. La tesorería es la que se encarga más directamente de los
77
movimientos reales del dinero que entra y sale de la empresa, y aglutina todas esas
gestiones necesarias para conseguir dinero, fuentes de financiación como los
descuentos comerciales, factoring, préstamos bancarios, etc. Además, se encarga
de almacenar todos los soportes de las transacciones, incluyendo la emisión diaria
de la información sobre los fondos de la empresa, y es el área encargada de aplicar
todo ese conjunto de medidas y los procesos administrativos que permiten prevenir
los errores en cuanto al manejo de efectivo, la caja y bancos. [10]
Diariamente se descargan del aplicativo MLC vistas de las operaciones de la fecha
hábil anterior a la actual, esta información se descarga en formato .csv y formato.txt
para su posterior análisis, comparación, y creación de informes en su gran mayoría
gráficas, tablas y consolidados que serán entregados y publicados a diferentes
entes reguladores y posiciones de alto rango dentro de la organización.
Se evidencio que las diferentes vistas que produce el aplicativo en muchas
ocasiones contiene la misma información, exceptuando por uno o dos registros, y
son vistas que son descargadas por diferentes analistas, y ese campo especifico
que buscan hace que deban replantear la vista que necesitan. Cada vista tarda en
promedio de 30 minutos en ser descargada, siendo alrededor de 25 vistas entre 6
analistas, cada analista tarda únicamente en la obtención de la información 2 horas
cada uno sin contar su posterior análisis y elaboración de informe especifico.
9.8.3. Planteamiento del proyecto
El proyecto que se pretende desarrollar en SAS Visual Analitycs es con el fin de
presentar informes dinámicos que tienen como insumo una misma información.
En el área periódicamente se generan y presentan informes a diferentes entes
reguladores para su análisis. Estos informes son generados a partir de consultas
dependiendo de la fecha de comparación.
78
Con la implementación de este proyecto, se busca generar un gran insumo con toda
la información requerida para un gran número de informes diferentes.
La herramienta Visual Analitycs de SAS permite generar informes dinámicos y con
un solo insumo desplegar toda la información y cálculos necesarios, esto disminuiría
la generación de informes diferentes en base al mismo insumo.
Como primera medida se debe construir la gran base en forma de tabla, que
contenga la información necesaria de operaciones realizadas en un periodo
determinado de tiempo en la herramienta de SAS Enterprise Guide.
La herramienta funciona creando flujos de información mediante filtros, uniones de
tablas, búsqueda de índices, organización de información y otros tipos de
tratamientos de información, dando como resultado una sola tabla con el contenido
requerido.
Figura 15 Flujo de datos en SAS
Fuente: Contreras, J. (2016). Flujo de datos SAS. [Imagen]. Elaboración propia
79
Este fue el flujo resultante del trabajo realizado, lamentablemente el tiempo y la
disposición de los analistas fue limitado y no se logró alcanzar el objetivo, y como
otro factor decisivo fue la falta de la herramienta licenciada de SAS Visual Analitycs
9.8.4. Resultados obtenidos Proyecto SAS
Como resultado de obtuvo un flujo que permite la creación de un historial por fechas
de las operaciones realizadas en un día especifico, de la siguiente manera:
Se descarga un insumo del aplicativo principal con las operaciones
realizadas en un periodo de tiempo específico, como primera medida SAS
analiza los datos y crea columnas calculadas dependiendo de la lógica
implementada.
Se cargan tablas de homologación que contienen información necesaria para
los análisis próximos.
Se realizan cruces de información buscando en las tablas de homologación,
para asignar con claves primarias información
Se calculan las nuevas columnas necesarias con el uso de la información
relacionada
Se realizan filtros y comparaciones para a la final llegar a la adición de los
nuevos registros a la “Súper tabla”
80
TERCERA PARTE – RESULTADOS Y EVALUACION
10. DESCRIPCIÓN FINAL DEL APLICATIVO
10.1. Interface
Cuenta con una interface sencilla, donde se pueden parametrizar fácilmente las
rutas y nombres de archivos según el límite o informe que se desea ejecutar,
permitiendo la adición de nuevos límites en el futuro dependiendo de las
necesidades de la organización.
Figura 16 Interface final primera parte
Fuente: Contreras, J. (2016). Interface. [Imagen]. Elaboración propia
1. Contiene la fecha del corte de ejecución para los informes, las flechas de
desplazamiento agregan o disminuyen un día, y el botón ir a hoy indica la
fecha del día.
81
2. Valores para ajustar la fecha de corte de los días, cuando es lunes se pone
2, cuando el lunes es festivo se pone 3, esto puesto que hay insumos que se
deben tomar del día hábil anterior a la fecha de ejecución de la aplicación
3. Permite seleccionar entidad y limite específico para que sea ejecutado por la
aplicación a través de listas desplegables de selección.
4. Un valor calculado y extraído de una tabla específica, configura la TRM de la
fecha solicitada
5. El nombre del límite y el grupo al cual corresponde
6. La matriz para poner los nombres de archivos y las rutas donde se encuentra
la información
Figura 17 Inteface final segunda parte
Fuente: Contreras, J. (2016). Interface. [Imagen]. Elaboración propia
7. Nombre de las hojas y las celdas base cuando los archivos se encuentran en
formato xls o xlsx
8. La ruta y el nombre del archivo donde será exportado el informe final
9. Nombre que recibe la función dentro del código
10. Nombre de la plantilla correspondiente al limite
82
10.2. Funciones
El aplicativo permite leer y guardar en matrices bidimensionales la información
de los insumos para su análisis.
Muestra mensajes cuando las tablas de homologación necesiten una
actualización, o cuando se necesite añadir un nuevo registro para el buen
funcionamiento de la aplicación e integridad de los informes.
Muestra el tiempo de ejecución al finalizar cada informe.
Tiene integrado un sistema de comentarios que según un id único puede
adicionarse automáticamente a los registros de los informes finales, estos
comentarios deben ser ingresados en una hoja de la plantilla correspondiente al
informe que se desea.
El aplicativo sobrescribe automáticamente los informes finales si ya existe un
informe para esa fecha.
Permite la comparación y filtrado de las matrices para el cálculo de la información
solicitada por cada límite.
Permite la ejecución en segundo plano de macros y aplicaciones ya creadas que
sean necesarias para la extracción de información de determinadas fuentes
Transforma los archivos txt en xlsx para extraer la información en el formato
solicitado
10.3. Resultados operacionales
Controles Antiguos
La generación de los informes era manual, con pocas validaciones.
Las plantillas que enviaban, presentaban información inconsistente.
No se realizaba la revisión de MLC2 había información desactualizada e
incorrecta.
2 Sistema transaccional que genera reportes de información
83
Procesos aislados que no se relacionaban.
Para Banistmo, no se generaban informes para todos los límites y los cupos
informados eran inconsistentes.
Para la organización y más específicamente el área donde se implementó la
aplicación, existieron grandes cambios dentro de sus sub organizaciones,
detallados a continuación
BANISTMO
Figura 18 Cambios obtenidos en Banitsmo
Fuente: Contreras, J. (2016). Cambios Banistmo. [Grafica]. Elaboración propia
Se cuenta con las validaciones diarias para mitigar errores en el sistema.
La atención en los diferentes requerimientos diarios es ágil y oportuna.
Se crearon incidentes sobre errores de los reportes, que hoy ya están
solucionados
84
BANCOLOMBIA
Figura 19 Cambios obtenidos en Bancolombia
Fuente: Contreras, J. (2016). Cambios Bancolombia. [Grafica]. Elaboración propia
Se cuenta con las validaciones que mitigan el riesgo operacional.
Se redujo el tiempo de respuesta al FO.
Se tiene herramientas de consulta completa y eficiente.
En MLC se depuro información errónea.
FIDUCIARIA
Figura 20 Cambios obtenidos en Fiduciaria
Fuente: Contreras, J. (2016). Cambios Fiduciaria. [Grafica]. Elaboración propia
85
Se cuenta con un informe para el control de decreto 1861.
Todos los límites se validan directamente de las matrices de riesgo de
crédito.
MLC contiene los cupos correctos y al día.
Se genera los históricos diarios de los diferentes límites.
Las excepciones tienen trazabilidad con los procesos y cuentan con los
debidos soportes.
Se corrige en MLC las familias de emisiones.
VALORES
Figura 21 Cambios obtenidos en Valores
Fuente: Contreras, J. (2016). Cambios Valores. [Grafica]. Elaboración propia
Hoy se cuenta con los informes de control para los límites de APTs y FICs
(cupos en línea)
Se corrige en el sistema los cupos según la estrategia de cada APT.
Se creó un informe completo sobre el estado de los límites en APTs para
envío diario al FO.
Se tiene los cupos para las operaciones vigentes, fueron solicitados a RC.
Se controla la homologación del árbol de calificaciones.
86
10.4. Logros Alcanzados
Los informes de control de límites son integrales.
En MLC diariamente se carga datos veraces y confiables.
Se valida los cupos directamente con los diferentes aplicativos que son
fuente de información.
Se cuenta con procesos eficientes, validados en doble vía.
Finalizo el proyecto con una herramienta que permite generar todos los
límites y controles, siendo muy dinámica y eficiente.
Se realizó la entrega de todos los controles y límites para Bancolombia,
Banistmo, Fiduciaria y Valores.
Se cuenta con los reportes e históricos que solicita auditoria.
Se redujo en un 70% el envío de correos por inconsistencias en los cupos y
límites de MLC.
Se establecieron validaciones diarias, mitigando el riesgo operacional.
Mayor eficiencia en los tiempos de respuesta con argumentos sólidos y
claros, que brindan soluciones oportunas.
Se generaron alertas tempranas frente a inconsistencias que se presentan,
siendo muy críticos con la información recibida.
Se tiene procesos integrales, con trazabilidad de los diferentes aplicativos.
Se generaron los manuales de cada proceso con el detalle de su
funcionalidad.
Se cuenta con un manual detallado del código desarrollado en visual para el
funcionamiento de la herramienta Proyecto Limites.xlsm.
10.5. Resultados funcionales
Los resultados finales luego de calcular los tiempos de ejecución de la realización
de los informes de manera manual y ahora con el uso de la aplicación se pueden
observar en la siguiente grafica
87
Figura 22 Comparación tiempos de ejecución manuales y de la aplicación
Fuente: Contreras, J. (2016). Comparación de tiempos. [Grafica]. Elaboración propia
Duración promedio antes: 930 minutos/ 15,5 horas
Duración promedio después: 189,76 minutos/3,16 horas
Reducción promedio: 79,59%
Se puede observar que en promedio se obtuvo una reducción del 79,6% en el
tiempo de la elaboración de los informes en el área, cumpliendo a cabalidad con el
objetivo del proyecto, además que el sistema implementado puede ser extendido
para futuros nuevos controles dentro del área, de igual manera los fallos humanos
por elaboración fueron reducidos al mínimo, puesto que la automatización de los
procesos asegura la veracidad de la información final.
76
293
257
304
16,58
58,49 50,8563,84
0
50
100
150
200
250
300
350
BANISTMO BANCOLOMBIA Y FILIALESDEL EXT
FIDUCIARIA VALORES
Antes Despues
88
11. CONCLUSIONES Y RECOMENDACIONES
11.1. Conclusiones
El área de gerencia de riesgos de posición propia de Bancolombia, presentaba
retrasos en la entrega de los informes diarios, además de inconsistencias en la
producción de los mismos por errores humanos, era de suma importancia el
sistematizar el proceso de producción de informes para cara uno de los límites que
se estaban ejecutando dentro del área y así mitigar el riesgo de error.
La implementación de un aplicativo en este tipo de organizaciones es de suma
complejidad, la elección de desarrollar el proyecto en VBA fue una decisión
acertada, fue de fácil adaptabilidad para el usuario y la herramienta estaba lista para
usarse en todos los equipos de quienes la solicitaron.
El diseño del aplicativo permite de una forma muy práctica determinar la ubicación
de los insumos que se necesitan para cada uno de los informes. De igual manera al
momento de necesitarse un cambio, la fácil parametrización de las rutas permite
que se haga de manera sencilla.
Implementar un aplicativo para optimizar la generación de informes permite a una
organización disminuir en gran medida la inversión en tiempo de elaboración de los
mismos, además de reducir la probabilidad de existencia de errores, ya que al
ejecutar manualmente estos procesos se incrementa la posibilidad de un fallo
humano.
Para el área de gerencia de riesgos de posición propia de Bancolombia la
implementación del aplicativo brindó mayor control en la generación de informes del
área, además de la disminución mayor al 75% del tiempo invertido, permitiendo que
89
sus analistas desarrollen nuevas actividades que generen mayor valor a la
organización, además de disminuir considerablemente los procedimientos de
control de errores que se venían presentando por demoras y fallos en los informes
El proyecto en SAS no pudo ser completado debido a varios factores como lo fueron:
La falta de tiempo para su ejecución, no estaba un implementada la extensión Visual
Analitycs, el tiempo de los analistas que conocían la lógica de negocio era limitado
y la aplicación en VBA demoro más tiempo que el contemplado inicialmente.
Por políticas de confidencialidad de información de la empresa, fue imposible
adjuntar el código elaborado, puesto que la lógica de negocio se encontraba
implementada en varias funciones. Esto hacia parte del convenio de pasantía que
se planteó en un principio.
11.2. Recomendaciones
Evaluar la posibilidad de diseñar una herramienta a la medida para la generación
de informes en una plataforma independiente, con manejo de bases de datos,
puesto que el generar historiales en sitios de red compartidos, producen el
agotamiento de la capacidad de almacenaje.
Evitar en la elaboración de futuros proyectos dentro del área la dependencia de
información generada por otros sectores del banco, puesto que, al presentarse
cambios en la estructura de los datos, las aplicaciones se ven afectadas y los
resultados son alterados.
Incrementar la fuerza de trabajo e inversión en tiempo para el desarrollo de la
herramienta en SAS, puesto que la potencia que presenta la misma disminuiría
considerablemente los tiempos de elaboración de informes en el área de tesorería.
90
Implementar capacitaciones para los analistas en programación básica, puesto que
al ser los errores por integridad de información los más comunes, tiende a ser un
poco exhaustivo el método para encontrarlos, debiendo modificar directamente el
código en ciertas funciones.
91
12. BIBLIOGRAFÍA
[1] Bancolombia S.A, Informacion Empresarial, Bogota, 2016.
[2] «/www.finanzaspersonales.com.co,» Marzo 2016. [En línea]. Available:
http://www.finanzaspersonales.com.co/trabajo-y-educacion.
[3] Wikipedia, «Wikipedia,» [En línea]. Available:
https://es.wikipedia.org/wiki/Trade-off.
[4] NA, «definicion.mx,» [En línea]. Available: http://definicion.mx/proceso/.
[5] navegapolis, «navegapolis.com,» [En línea]. Available:
http://navegapolis.com/index.php/116-procesos-para-la-gestion-en-
empresas-de-software#.V5DYGvl97ct.
[6] Micorsoft, «msdn.microsoft.com,» [En línea]. Available:
https://msdn.microsoft.com/es-
es/library/office/ee814737(v=office.14).aspx.
[7] SAS, «www.sas.com,» [En línea]. Available:
http://www.sas.com/es_co/company-information.html.
[8] Wikipedia, «wikipedia.org,» [En línea]. Available:
https://es.wikipedia.org/wiki/SAS_(lenguaje_de_programaci%C3%B3n.
[9] K. E. Kendall y J. E. Kendall, Analisis y diseño de sistemas, Mexico:
Pearson Educacion, 2005.
[10] V. T. Rodríguez, «expansion.com,» 2015. [En línea]. Available:
http://www.expansion.com/diccionario-economico/tesoreria.html.