Folders

De Wiki

Desarrollo

Contenido

Folders

¿Qué son las carpetas?

Las carpetas de Doors son una de las principales partes visibles de la aplicación, donde existe una jerarquía de Carpetas, en donde las mismas son organizadas a través de una estructura de árbol, en las que quedarán separadas las carpetas donde se guardarán los datos de configuración y las de operación en lugares accesibles.


Es importante elegir iconos representativos para las carpetas mas importantes de la aplicación.


Las carpetas se crean de modo que puedan ser definidas de distintos tipos, como se describe a posteriori.


Tipos de Carpetas

Carpeta de documentos

Una carpeta de tipo documento es aquella que tiene asociado un formulario, previamente creado en la carpeta de Forms. Esta carpeta sirve para almacenar documentos basados en el form elegido. Un ejemplo de carpeta de documento es la carpeta de casos, en donde se pueden ver, crear, modificar, eliminar documentos de la estructura que mantiene el form caseshya.


Carpetas vínculo

Una carpeta de tipo link es aquella que tiene asociada una url en la que se puede definir si esta se mostrará en una nueva ventana o en la misma de Gestar. Un ejemplo de carpeta de tipo vínculo sería, asociar la carpeta a: http://www.harriague.com.ar, de esta forma obtendremos al hacer click sobre la carpeta correspondiente el sitio web asignado.


Carpeta virtual

Una carpeta de tipo virtual es aquella que tiene asociada otra carpeta que pertenezca a Gestar. Un ejemplo de carpeta virtual sería crear una carpeta en nuestra aplicación que esté asociada a una carpeta de otra aplicación, donde los documentos se replicarán y se podrán manipular desde cualquiera de las dos carpetas.


image:folder_virtual.jpg


Creando Carpetas

Las carpetas son creadas dentro de otras carpetas mediante el método Folder.FoldersNew el cual crea la carpeta dentro de la carpeta actual y retorna una referencia a la carpeta creada.


No se pueden crear carpetas dentro de las carpetas del sistema y solo el administrador puede crear una carpeta a un nivel de root.

Ver políticas de permisos.


La nueva carpeta tiene los permisos heredados de la carpeta padre.

Las fechas de creación y última modificación son establecidas a la fecha y hora actuales al igual que el Owner de la carpeta, ID de la carpeta y el Parent.


Copiando Carpetas

Las carpetas son copiadas dentro de otras carpetas mediante el método Folder.Copy el cual copia la carpeta dentro de la carpeta que se le indica mediante el parámetro del método. Este copia todas sus propiedades y eventos síncronos y asíncronos pero no sus vistas ni documentos. Como parámetro opcional de este método se puede poner el nombre que la carpeta tendrá en el destino.


No se pueden copiar carpetas dentro de las carpetas del sistema y solo el administrador puede copiar una carpeta a un nivel de root.

Ver políticas de permisos.


La nueva carpeta tiene los permisos heredados de la carpeta padre y pierde todos los permisos originales.

Las fechas de creación y última modificación son actualizadas al igual que el Owner de la carpeta y ID de la carpeta.


Eliminando Carpetas

Las carpetas son eliminadas mediante el método Folder.Delete.


Para realizar esta acción es necesario tener permisos de administración de la carpeta. Y la carpeta debe estar vacía, es decir, no debe tener vistas, carpetas hijas ni documentos.


No se pueden eliminar carpetas del sistema y solo el administrador puede eliminar una carpeta de un nivel de root.

Ver políticas de permisos.


Al eliminar una carpeta internamente se realizan las siguientes operaciones:


• Se eliminan las entradas correspondientes a los permisos sobre la carpeta en la tabla SYS_ACC_FLD. Esto mediante la sentencia SQL (Ejemplo para SQL Server):delete from SYS_ACC_FLD where FLD_ID = [Folder.ID]


• Se eliminan las entradas correspondientes a los padres de la carpeta registradas en la tabla SYS_FLD_ANCESTORS. Esto mediante la sentencia SQL (Ejemplo para SQL Server): delete from SYS_FLD_ANCESTORS where FLD_ID = [Folder.ID]


• Se eliminan los eventos síncronos correspondientes a la carpeta ubicados en la tabla SYS_SEV_FLD. Esto mediante la sentencia SQL (Ejemplo para SQL Server):delete from SYS_SEV_FLD where FLD_ID = [Folder.ID]


• Se elimina el registro de la carpeta de la tabla SYS_FOLDERS. Esto mediante la sentencia SQL (Ejemplo para SQL Server):delete from SYS_FOLDERS where FLD_ID = [Folder.ID]


• Se eliminan los registros de los eventos asíncronos encolados en la tabla SYS_EVN_QUEUE de la base de datos maestra. Esto mediante la sentencia SQL (Ejemplo para SQL Server): delete from SYS_EVN_QUEUE where EVN_ID in select EVN_ID from SYS_EVENTS with(nolock) where INS_ID = session.InstanceID] and FLD_ID = [Folder.ID])


• Se eliminan los eventos asíncronos registrados para la carpeta en la tabla SYS_EVENTS de la base de datos maestra. Esto mediante la sentencia SQL (Ejemplo para SQL Server):delete from SYS_EVENTS where INS_ID = [Session.InstanceID] and FLD_ID = [Folder.ID])


Moviendo Carpetas

Las carpetas son movidas mediante el método Folder.Move el cual mueve la carpeta dentro de la carpeta que se le indica mediante el parámetro del método.


Internamente la operación de Folder.mover una carpeta consiste en cambiar la propiedad parent de la carpeta por una nueva carpeta.


Para realizar esta acción es necesario tener permisos de administración de la carpeta como así también permisos para crear nuevas carpetas hijas en la carpeta destino.


Los valores de las propiedades AclOwn y AclInherits permanecen inalterados pero si AclInherits es True, heredará los permisos de la nueva carpeta padre con lo que el resultado de la propiedad AclInherited , y por lo tanto, Acl no serán los mismos de antes de mover la carpeta.


No se pueden mover carpetas dentro de las carpetas del sistema y solo el administrador puede copiar una carpeta a un nivel de root.

Ver políticas de permisos.


La fecha de última modificación se actualiza al igual que el Owner de la carpeta.


Eventos de Carpetas

Los eventos son acciones que se desencadenan cuando se realizan determinadas acciones sobre los documentos. Los eventos se encuentran en dos lugares: Forms y Folders.

En ambos sitios se pueden especificar los mismos eventos pero tienen prioridad los tratados en los Forms. Para esto veamos las figuras 1 (pestaña en forms) y 2 (pestañas en folder).

En este caso nos ocupamos de los eventos de las Carpetas.


Para obtener una explicación más detallada vea: eventos de los formularios


Carpetas del Sistema

Doors contiene un número de carpetas de sistema para la administración de distintos aspectos de la aplicación. Estas carpetas se encuentran jerárquicamente debajo de la carpeta SystemFolders o Carpetas del sistema (ID=1).


ID Nombre de la Carpeta Descripción
7 LicenseManager Administrador de licencias
3 UserManager Administrador de usuarios
4 ChangePassword Cambiar contraseña
2 Logoff Cerrar sesión
8 Documentation Documentación
5 Forms Formularios
11 CodeLib Bibliotecas de código


Estas carpetas no pueden ser modificadas ni eliminadas del sistema por ningún usuario.


Vea También

Políticas de Permisos

Especificación de la Lógica de Negocios

Folder.Copy

Folder.Move


Desarrollo

Herramientas personales
Crear un libro