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_ReportLine con 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_ReportSource vinculá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 Contable C_Element_ID El catálogo de cuentas (Chart of Accounts) de donde se leerá la estructura jerárquica. Cuenta Raíz C_ElementValue_ID El nodo de cuenta a partir del cual se elijo iniciar la travesía DFS (por ejemplo, la cuenta de Activo, Pasivo o Ingresos). Filtrar Solo Cuentas de Resumen IsSummary Filtro opcional. Si es Y , el generador solo creará líneas para las cuentas marcadas como de resumen (isSummary = 'Y') en el catálogo. Si es vacío o N , procesará todas las cuentas del subárbol.