Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ada:howto:sicoferp:pb:implements:setupmulti-company [2021/05/19 12:06] 192.168.177.29 |
ada:howto:sicoferp:pb:implements:setupmulti-company [2021/05/19 13:40] (actual) 192.168.177.29 |
||
---|---|---|---|
Línea 13: | Línea 13: | ||
===== Modelos de Contexto de Empresa SICOF ERP ===== | ===== Modelos de Contexto de Empresa SICOF ERP ===== | ||
Existe 2 modelos de empresa soportados en SICOF ERP los cuales estan definidos en el siguiente repositorio [[http://adacsc.co:1443/svn/repository/ADA/SICOF/Documentos/Desarrollos/PowerBuilder/ScriptsDB/Tags/App/Financiero/25%20ENTORNO%20MULTIEMPRESA | Existe 2 modelos de empresa soportados en SICOF ERP los cuales estan definidos en el siguiente repositorio [[http://adacsc.co:1443/svn/repository/ADA/SICOF/Documentos/Desarrollos/PowerBuilder/ScriptsDB/Tags/App/Financiero/25%20ENTORNO%20MULTIEMPRESA | ||
- | SVN]] | + | |SVN]] |
==== Modelo Uni-Empresa ==== | ==== Modelo Uni-Empresa ==== | ||
Línea 99: | Línea 99: | ||
- | ===== Ejemplo de uso de la Consola de Procesos ===== | + | ===== Modo de Implementación Multiempresa en las Aplicaciones Powerbuilder ===== |
- | Se toma como ejemplo la implementación en la funcionalidad [[ada:sicoferp:financiero:presupuesto:cuentasporpagar:cxpprecierre#Consola de Procesos|Cuentas por Pagar (Pre-cierre)]]. | + | Para implementar el soporte multiempresa en las aplicaciones Powerbuilder debe seguir los siguientes pasos: |
+ | |||
+ | ==== Setear contexto de empresa por transacción - Modo separado ==== | ||
+ | Toda sentencia SQL embebida en el código Powerbuilder debe estar precedida por una instrucción de seteo de contexto la cuál se invoca por medio de la clase **n_cst_context** ubicada en la librería **sf00util.pbl** de Objetos SICOF de la siguiente manera: | ||
+ | |||
+ | <code pl/sql> | ||
+ | //Ejemplo de Referencia: | ||
+ | n_cst_context iuo_context | ||
+ | iuo_context = Create n_cst_context | ||
+ | iuo_context.of_sql_embedded_context(ts_transaccion, gd_cempresa) | ||
+ | SELECT FORMATO | ||
+ | INTO :ls_datawindow | ||
+ | FROM DET_FORMATOS_DOCUMENTO | ||
+ | WHERE CODIGO_DOCUMENTO = 14 | ||
+ | AND ACTIVO = 'S' | ||
+ | Using ts_transaccion; | ||
+ | </code> | ||
+ | |||
+ | El modo de implementación anterior puede ser sustituido por un modo centralizado gracias al objeto **guo_app** instancia de la clase **n_cst_app** ubicada en la librería **sf00util.pbl** de Objetos SICOF la cuál está disponible desde el inicio de sesión: | ||
+ | |||
+ | <code pl/sql> | ||
+ | //Ejemplo de Referencia: | ||
+ | guo_app.of_sql_embedded_context(ats_db) | ||
+ | SELECT CONCEPTO_CONTABLE, TIPO_CONTABLE | ||
+ | INTO :ldb_concepto_contable, :ldb_tipo_contable | ||
+ | FROM PRESUP01.MAE_CUENTAS_POR_COBRAR | ||
+ | WHERE CODIGO_CPCOBRAR = :adb_cpcobrar | ||
+ | USING ats_db; | ||
+ | </code> | ||
+ | |||
+ | Este modo de seteo de contexto es el utilizado por los productos: | ||
+ | |||
+ | * Contabilidad | ||
+ | * Presupuesto | ||
+ | * Tesorería | ||
+ | * Nómina | ||
+ | * Talento (Pendiente por implementar) | ||
+ | |||
+ | ==== Setear contexto de empresa por transacción - Modo integrado ==== | ||
+ | Toda sentencia SQL embebida en el código Powerbuilder debe incluir la columna **CODIGO_MEMPRESA** en su definición de la siguiente manera: | ||
+ | |||
+ | <code pl/sql> | ||
+ | //Ejemplo de Referencia: | ||
+ | SELECT MAX(PERIODO) | ||
+ | INTO :ls_periodo_cerrado | ||
+ | FROM COMPRAS01.MAE_CIERRE_KARDEX | ||
+ | WHERE codigo_mempresa in(to_char(:gd_cempresa),'9999999999') | ||
+ | AND CERRADO = 'S' | ||
+ | Using ts_transaccion; | ||
+ | </code> | ||
+ | |||
+ | Este modo de seteo de contexto es el utilizado por los productos: | ||
+ | |||
+ | * Compras | ||
+ | |||
+ | ==== Instrucciones que aplican para el Seteo de contexto de empresa por transacción ==== | ||
+ | |||
+ | * SELECT | ||
+ | * INSERT | ||
+ | * UPDATE | ||
+ | * DELETE | ||
+ | * DECLARE | ||
+ | |||
+ | El seteo aplica para todas las tablas de configuración/almacenamiento específico por empresa. Ejemplos: | ||
+ | |||
+ | * Asientos Contables | ||
+ | * Cuentas por Cobrar | ||
+ | * Comprobantes de Egreso | ||
+ | * Comprobantes de Ingreso | ||
+ | * Kardex | ||
+ | * Empleados | ||
+ | |||
+ | ==== Utilizar API Core de Objetos de acceso a Datos ==== | ||
+ | Todos los objetos de acceso a datos deben heredar de las clases core de Objetos SICOF las cuales son: | ||
+ | |||
+ | * uo_datastore | ||
+ | * uo_datawindow | ||
+ | * uo_datawindow_dddw | ||
+ | * uo_datawindow_free | ||
+ | * uo_datawindow_lista | ||
+ | |||
+ | Estas clases implementan el seteo de contexto automático. | ||
+ | |||
+ | ===== Consideraciones ===== | ||
+ | * REQUERIDO: Toda sentencia embebida SQL debe implementar seteo de contexto para las tablas especificas. | ||
+ | * REQUERIDO: Todo objeto de acceso a datos debe heredar del API Core de Acceso a Datos de Objetos SICOF. | ||
+ | * RECOMENDADO: En cualquier mantenimiento de código se debe hacer revisión del soporte multiempresa. | ||
+ | * No es necesario implementar seteo de contexto en las tablas generales. | ||
+ | |||
+ | [[ada:howto:sicoferp:pb:implements|←Volver atrás]] |