Generador Jerárquico de Líneas (DFS)
Descripción General
El proceso Generador Jerárquico de Líneas (DFS) (DFSGenerateLines) automatiza la creación de la estructura de líneas de reporte (PA_ReportLine) y sus correspondientes orígenes (PA_ReportSource) en iDempiere/Lirion. Para lograr esto, realiza un recorrido en profundidad (Depth-First Search - DFS) sobre el árbol del catálogo de cuentas, partiendo de un nodo raíz seleccionado.
Propósito del Generador DFS: Evitar la configuración manual de docenas o cientos de líneas contables al estructurar reportes financieros. Al leer jerarquías existentes del catálogo de cuentas, recrea la estructura exacta de manera jerárquica con sus sumatorias automáticas.
Flujo de Ejecución Técnico
Cuando el proceso se ejecuta, realiza los siguientes pasos en la base de datos y el servidor de aplicaciones:
- Secuenciación Inicial: Identifica el último número de secuencia (
SeqNo) registrado en el conjunto de líneas activo (PA_ReportLineSet_ID) para continuar la numeración incremental desde allí (con saltos de 10 en 10). - Carga del Árbol de Cuentas: Carga la definición del elemento contable (
C_Element_ID) y recupera la estructura del árbol jerárquico asociado. - Búsqueda del Nodo Raíz: Localiza el nodo inicial (
C_ElementValue_ID) con parent_id = 0 en el árbol configurado para iniciar el recorrido desde esa posición específica del catálogo. - Recorrido Recursivo DFS: Recorre recursivamente cada nodo del subárbol:
- Filtro de Resumen (IsSummary): Valida si el nodo actual debe ser procesado de acuerdo al parámetro configurado.
- Creación de Línea: Si corresponde procesarlo, crea un registro en la tabla
PA_ReportLinecon el nombre y descripción del elemento. - Asignación de Origen (Leaf Nodes): Si el nodo es una hoja (no tiene hijos), crea un registro en
PA_ReportSourcevinculándolo directamente al elemento contable (cuenta de detalle). - Generación de Totales: Si el nodo es un nodo de resumen (tiene hijos), tras procesar recursivamente a todos sus descendientes, genera automáticamente una línea de totalización con la descripción "Total [Código Cuenta]" y vincula su origen.
Tablas de iDempiere Utilizadas
El proceso interactúa y modifica las siguientes tablas del diccionario de datos de iDempiere:
AD_TreeNode: Define la relación jerárquica (Padre/Hijo) entre los elementos del árbol contable.C_ElementValue: Almacena las cuentas contables individuales, su código, nombre y tipo (detalle o resumen).PA_ReportLineSet: Cabecera del conjunto de líneas activo sobre el cual se ejecuta el proceso (el ID del registro actual de la ventana).PA_ReportLine: Registros de líneas de reporte que se insertan de forma secuencial durante el recorrido DFS.PA_ReportSource: Orígenes de datos que asocian cada línea de reporte con su cuenta correspondiente del catálogo.
Importante: Este proceso realiza inserciones directas sobre la estructura activa de PA_ReportLineSet. Se recomienda realizar una copia de seguridad o ejecutar en un conjunto de prueba, ya que no elimina líneas existentes antes de la inserción y podría duplicar secuencias si se ejecuta múltiples veces en el mismo registro.
Parámetros
Al ejecutar el proceso Generador Jerárquico de Líneas (DFS) en Lirion o iDempiere, se presentan los siguientes parámetros de configuración:
| Parámetro | Nombre en BD | Descripción / Uso |
|---|---|---|
| Elemento | C_Element_ID |
Elemento de Cuenta El elemento cuenta identifica únicamente una cuenta. El conjunto es conocido comúnmente como catálogo de cuentas |
| Elemento Contable | C_ElementValue_ID |
Elemento Contable Elemento Contable puede ser cuentas naturales or valores definidos por el usuario. |
| Solo Entidades Acumuladas | IsSummary |
Solo Entidades Acumuladas |