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]] | ||