https://documentacion.siu.edu.ar/wiki/api.php?action=feedcontributions&user=Jmarino&feedformat=atomSIU - Contribuciones del usuario [es]2024-03-29T05:45:11ZContribuciones del usuarioMediaWiki 1.30.0https://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/interfaces/gestion-arai&diff=69507SIU-Guarani/version3.18.0/interfaces/gestion-arai2020-11-19T15:42:36Z<p>Jmarino: /* Vinculando SIU-Guaraní Gestión con SIU-Araí */</p>
<hr />
<div>__NOTOC__<br />
= SIU-Araí =<br />
SIU-Araí es la plataforma integradora de servicios del SIU. Cada uno de los sistemas SIU son módulos dentro de la plataforma que interactúan entre sí, consumiendo y ofreciendo servicios.<br />
Esté apartado está enfocado en la integración de SIU-Guaraní en la plataforma SIU-Araí, se asume que los sistemas ya están instalados y funcionando. Para ver documentación específica de Araí hágalo desde [http://documentacion.siu.edu.ar/wiki/SIU-Arai aquí].<br />
<br />
= Vinculando SIU-Guaraní Gestión con SIU-Araí =<br />
<br />
Antes de registrar la aplicación en Araí debemos verificar que en el archivo <code><path_gestion>/instalacion/i__desarrollo/instancia.ini</code> dentro de la sección <code>[guarani]</code> contenga el entrada <code>full_url</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
[guarani]<br />
path = "<path_gestion>" # Ej: "/usr/local/proyecto"<br />
url = "<url_gestion>" # Ej: "/gestion/0318"<br />
url_pers = "<url_gestion_pers>" # Ej: "/gestion/0318_pers/"<br />
full_url = "<full_url_gestion>" # Ej: "http://localhost/gestion/0318"<br />
<br />
</syntaxhighlight><br />
<br />
''Nota:'' Si tiene una versión de araí usuario 3.x debe configurar y registrar el proyecto como indica la documentación de [https://documentacion.siu.edu.ar/usuarios/docs/cache/guia-registrando-aplicacion-sp/ Araí-Usuarios]<br />
<br />
=== Generar las claves para encriptar ===<br />
Llegado a este punto, durante la instalación del proyecto y por única vez, será necesario como '''pre-requisito''' generar y configurar la clave ''para encriptar la sincronización de api REST con Araí'' . Para hacerlo, se debe correr el siguiente comando parados en <path_gestion>:<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
bin/arai-cli arai:generar-key --backend sodium_compat --destino=/ruta/donde/guardar/arai-sync.key<br />
</syntaxhighlight>También será necesario configurar en el archivo <code><path_gestion>/instalacion/instalacion.ini</code> del proyecto, la entrada <code>arai_sync_key_file</code> con la ruta donde se aloja la clave previamente creada.<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
...<br />
arai_sync_key_file=/ruta/donde/guardar/arai-sync.key<br />
<br />
</syntaxhighlight><br />
<br />
=== Variables de Entorno ===<br />
<br />
Araí-Cli utiliza variables de entorno para acceder a archivos y otras tareas, hay que asegurarse de que las siguientes variables estén instanciadas correctamente de acuerdo al entorno de instalación de la aplicación (archivo <code><path_gestion>/entorno_toba.env</code>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
export TOBA_INSTANCIA=desarrollo<br />
export TOBA_PROYECTO=guarani<br />
export TOBA_PROYECTO_DIR=<path_gestion><br />
export TOBA_INSTALACION_DIR=<path_gestion>/instalacion<br />
export ARAI_REGISTRY_USER=<arai_registry_user><br />
export ARAI_REGISTRY_PASS=<arai_registry_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><arai_registry_user></code> y <code><arai_registry_pass></code> se obtienen de la instalación de Registry de SIU-Araí.<br />
<br />
=== Registrar el proyecto ===<br />
<br />
Si todo está en orden, por única vez, el proceso de registración a la plataforma SIU-Araí de la aplicación se concreta haciendo uso de la librería previamente con el siguiente comando (ejecutarlo parados en <path_gestion>):<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
source ./entorno_toba.env # Carga la variables de entorno<br />
bin/arai-cli registry:add --backend sodium_compat --maintainer <nombre_encargado_admin> --maintainer-email <email_encargado_admin> <url_arai_registry><br />
</syntaxhighlight><br />
<br />
'''Nota:''' Se debe proporcionar la url válida del servicio SIU-Araí Registry, junto con los datos del administrador.<br />
<br />
=== Sincronizar el proyecto ===<br />
Siempre que registremos alguna aplicación a Araí-Registry, es necesario realizar un <code>registr:sync</code> para que nuestra aplicación localmente tenga los datos más actualizados acerca de los diferentes servicios, aplicaciones y/o apis que querramos consumir. Además, si nuestra aplicación localmente agregó una nueva característica (ej. una http://toba.siu.edu.ar/trac/toba/wiki/Referencia/Rest api REST]), este comando informará a Araí-Registry las novedades (ejecutarlo parados en <path_gestion>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/arai-cli registry:sync<br />
</syntaxhighlight><br />
<br />
<blockquote><br />
Este paso es necesario realizarlo también en Araí-Usuarios, para que este sistema se entere de la presencia de una nueva aplicación.<br />
</blockquote><br />
<br />
A partir de este momento, al ingresar al proyecto, este debiera de redirigirnos a la página de login centralizado de la plataforma SIU-Araí. Una vez el usuario ha ingresado, nos redirige nuevamente hacia la aplicación. La misma debiera de contar además con el menú de aplicaciones integrado, con las aplicaciones SIU o de terceros que tengamos registrados.<br />
<br />
[[Archivo:GUA_Launcher.png]]<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Como el login a partir de este momento solo se hará através de SIU-Araí y no desde la base de negocio deberíamos indicarle a Guaraní donde está la API de SIU-Araí Usuarios para que pueda traernos los usuarios que queremos vincular a la persona existente.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
[conexion]<br />
to = <url_arai_usuarios>/rest/<br />
auth_tipo = basic<br />
auth_usuario = <arai_usuarios_user><br />
auth_password = <arai_usuarios_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
A partir de ahora cuando queramos asignar un usuario a una persona, aparecerá un combo editable donde podremos buscar los usuarios existentes en SIU-Araí. <br />
<br />
Entonces de está forma necesitamos editar la persona en SIU-Guaraní Gestión (operación '''Administrar Personas''' solapa '''Acceso al sistema'''), y vincularla con el usuario de SIU-Araí.<br />
<br />
[[Archivo:Campo_Usuario_Araí.png]]<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Gestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
= Vinculando SIU-Guaraní Autogestión con SIU-Araí =<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Se debería modificar el siguiente archivo <code><path_3w>/instalacion/servicios_web_config.php</code>, agregando lo siguiente dentro del array de <code>consumidos</code>:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
'consumidos' => [<br />
<br />
............<br />
<br />
'arai_usuarios' => [<br />
'tipo' => 'rest',<br />
'parametros' => [<br />
'base_uri' => '<url_arai_usuarios>/rest/',<br />
'auth' => ['<arai_usuarios_user>', '<arai_usuarios_pass>', 'basic'],<br />
'verify' => false<br />
]<br />
],<br />
<br />
............<br />
<br />
]<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Autogestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_3w>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
== Configurando autenticación vía SAML entre SIU-Guaraní Autogestión y SIU-Araí ==<br />
<br />
Ir a la aplicación de Araí Usuarios y en la operación Aplicaciones dar de alta una nueva aplicación para 3w, para luego poder vincular los usuarios de tipos de docente con el autogestión y huarpe.<br />
Se debe ingresar la url de 3w y también el appUniqueId que luego se utilizará para los siguientes pasos.<br />
Un ejemplo podría ser como el siguiente:<br />
<br />
<br />
<br />
En la instalación de Araí Usuarios, que puede ser un docker o una instalación local, pararse sobre la carpeta del mismo y correr el siguiente comando:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/toba proyecto configurar_sp -p arai_usuarios --endpoint <url_3w>/acceso --acs <url_3w>/acceso?auth=saml --login <url_3w>/acceso?auth=saml --logout <url_3w>/acceso/logout --app <appUniqueId3w><br />
</syntaxhighlight><br />
<br />
'''Donde:'''<br />
<br />
<code><url_3w></code> es la url de autogestión a la cual queremos darle un acceso por el proveedor de indentidad SIU-Araí.<br />
<br />
<code><url_arai_idp></code> es la url del IDP de SIU-Araí.<br />
<br />
<code><appUniqueId3w></code> es el identificador que hemos utilizado en el paso anterior cuando dimos de alta la aplicación en el SIU-Araí Usuarios.<br />
<br />
<code><fingerprint></code> se genera ejecutando: <code>openssl x509 -noout -fingerprint -in "/path/to/idp.crt"</code>.<br />
<br />
Ir a <path_3w>/instalacion/saml y correr el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
cp settings_example.php settings.php<br />
</syntaxhighlight><br />
<br />
Abrir el archivo settings.php y dejar el siguiente contenido.<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<?php<br />
//settings y advanced_settings de la libreria de saml.<br />
$url_autogestion = '<url_3w>';<br />
$url_idp = '<url_arai_idp>';<br />
return $settings = array (<br />
// If 'strict' is True, then the PHP Toolkit will reject unsigned<br />
// or unencrypted messages if it expects them signed or encrypted<br />
// Also will reject the messages if not strictly follow the SAML<br />
// standard: Destination, NameId, Conditions ... are validated too.<br />
'strict' => false,<br />
<br />
// Enable debug mode (to print errors)<br />
'debug' => true,<br />
<br />
// Service Provider Data that we are deploying<br />
'sp' => array (<br />
// Identifier of the SP entity (must be a URI)<br />
'entityId' => $url_autogestion.'/acceso',<br />
// Specifies info about where and how the <AuthnResponse> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'assertionConsumerService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso?auth=saml',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',<br />
),<br />
// Specifies info about where and how the <Logout Response> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'singleLogoutService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso/logout',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Specifies constraints on the name identifier to be used to<br />
// represent the requested subject.<br />
// Take a look on lib/Saml2/Constants.php to see the NameIdFormat supported<br />
'nameIdFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',<br />
<br />
// Usually x509cert and privateKey of the SP are provided by files placed at<br />
// the certs folder. But we can also provide them with the following parameters<br />
// 'x509cert' => file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt'),<br />
// 'privateKey' > file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.pem'),<br />
),<br />
<br />
// Identity Provider Data that we want connect with our SP<br />
'idp' => array (<br />
// Identifier of the IdP entity (must be a URI)<br />
'entityId' => $url_idp.'/saml2/idp/metadata.php',<br />
// SSO endpoint info of the IdP. (Authentication Request protocol)<br />
'singleSignOnService' => array (<br />
// URL Target of the IdP where the SP will send the Authentication Request Message<br />
'url' => $url_idp.'/saml2/idp/SSOService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-POST binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// SLO endpoint info of the IdP.<br />
'singleLogoutService' => array (<br />
// URL Location of the IdP where the SP will send the SLO Request<br />
'url' => $url_idp.'/saml2/idp/SingleLogoutService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Public x509 certificate of the IdP<br />
// 'x509cert' => \siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt',<br />
/*<br />
*Instead of use the whole x509cert you can use a fingerprint<br />
*(openssl x509 -noout -fingerprint -in "idp.crt" to generate it)<br />
*/<br />
'certFingerprint' => '<fingerprint>',<br />
),<br />
<br />
//Advanced settings<br />
// Security settings<br />
'security' => array (<br />
<br />
/** signatures and encryptions offered */<br />
<br />
// Indicates that the nameID of the <samlp:logoutRequest> sent by this SP<br />
// will be encrypted.<br />
'nameIdEncrypted' => false,<br />
<br />
// Indicates whether the <samlp:AuthnRequest> messages sent by this SP<br />
// will be signed. [The Metadata of the SP will offer this info]<br />
'authnRequestsSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutRequest> messages sent by this SP<br />
// will be signed.<br />
'logoutRequestSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutResponse> messages sent by this SP<br />
// will be signed.<br />
'logoutResponseSigned' => false,<br />
<br />
/* Sign the Metadata<br />
False || True (use sp certs) || array (<br />
keyFileName => 'metadata.key',<br />
certFileName => 'metadata.crt'<br />
)<br />
*/<br />
'signMetadata' => false,<br />
<br />
<br />
/** signatures and encryptions required **/<br />
<br />
// Indicates a requirement for the <samlp:Response>, <samlp:LogoutRequest> and<br />
// <samlp:LogoutResponse> elements received by this SP to be signed.<br />
'wantMessagesSigned' => false,<br />
<br />
// Indicates a requirement for the <saml:Assertion> elements received by<br />
// this SP to be signed. [The Metadata of the SP will offer this info]<br />
'wantAssertionsSigned' => false,<br />
<br />
// Indicates a requirement for the NameID received by<br />
// this SP to be encrypted.<br />
'wantNameIdEncrypted' => false,<br />
),<br />
<br />
// Contact information template, it is recommended to suply a technical and support contacts<br />
'contactPerson' => array (<br />
'technical' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
'support' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
),<br />
<br />
// Organization information template, the info in en_US lang is recomended, add more if required<br />
'organization' => array (<br />
'en-US' => array(<br />
'name' => 'CAMBIAR',<br />
'displayname' => 'CAMBIAR',<br />
'url' => 'CAMBIAR.com'<br />
),<br />
),<br />
);<br />
<br />
</syntaxhighlight><br />
<br />
Una vez terminado esto ir al archivo <path_3w>/instalacion/login.php y configurar lo siguiente:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
'saml' => array(<br />
'activo' => true,<br />
'clase' => 'modelo\\autenticacion\\auth_saml',<br />
'parametros' => array(<br />
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings.php',<br />
'saml_uid' => 'userAccounts',// 'urn:oid:0.9.2342.19200300.100.1.1', //se matchea con local_uid<br />
'local_uid' => 'usuario', //puede ser 'persona'<br />
),<br />
),<br />
</syntaxhighlight><br />
<br />
Agregar en <code><path_gestion>/instalacion/instalacion.ini</code> de gestión estas variables según lo que se tiene en araí usuarios para cada aplicación, ej:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
appUniqueIdGestion = "<app_unique_id_gestion>"<br />
appUniqueId3w = "<app_unique_id_3w>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><app_unique_id_gestion></code> y <code><app_unique_id_3w></code> son los '''appUniqueId''' de SIU-Guaraní Gestión y 3W respectivamente, se obtienen de SIU-Araí Usuarios menú de Aplicaciones.<br />
<br />
= Migrando usuarios de SIU-Guaraní a SIU-Araí =<br />
<br />
=== Exportación de usuarios ===<br />
Los usuarios actuales que poseemos en gestión los deberíamos tener disponibles en una cuenta de Araí.<br />
Para exportarlos deberíamos realizar lo siguiente:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani exportar_usuarios_arai<br />
</syntaxhighlight><br />
<br />
Este comando posee las siguiente opciones:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
-d => Path donde se guarda el archivo, por defecto -> $this->get_instalacion()->get_dir()/usersExportFiles/,<br />
-f => Nombre del archivo donde se exportaran los usuarios, por defecto -> usuarios_ . date('YmdHis'),<br />
-m => Nombre del responsable, por defecto -> toba,<br />
-e => Mails del responsable, por defecto -> toba<br />
</syntaxhighlight><br />
<br />
=== Importando usuarios a Araí ===<br />
<br />
Para importar las cuentas, el módulo '''SIU-Araí: Usuarios''' proporciona un comando de consola, que nos permite cargar la información de un conjunto de usuarios y/o cuentas, todo a partir de un archivo en formato '''json'''. Para ejecutar el comando primero será necesario cargar el entorno, para lo cual podemos ejecutar:<syntaxhighlight lang="bash" enclose="div"><br />
cd /ruta/siu-arai/usuarios<br />
. ./entorno_toba.env<br />
</syntaxhighlight><br />
<br />
Una vez cargado el entorno, es posible ejecutar la exportación de la siguiente forma:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
toba proyecto importar_usuarios_arai -f <path_completo_archivo.json> -m <comparador> [-t cuentas|personas] -p arai_usuarios<br />
</syntaxhighlight><br />
Este comando procesará un archivo en la ruta <code>/ruta/modulo/siu/instalacion/usersExportFiles/cuentas-xxx-arai.json</code> importando las definiciones de personas y/o cuentas, teniendo en cuenta las opciones de comparación. <br />
<br />
Al momento de importar, es necesario elegir como se comparan los datos de usuarios/personas a importar con los que pueden existir, mediante el argumento <code><comparador></code>. Este puede ser uno de los siguientes: <br />
* <code>0</code>: Género, tipo y número de documento<br />
* <code>1</code>: Tipo y número de documento<br />
* <code>2</code>: Email<br />
* <code>3</code>: atributo UniqueIdentifier<br />
* <code>4</code>: No intenta matchear, sólo agrega cuentas nuevas para las personas<br />
De forma opcional, se puede indicar con el argumento <code>-t</code> si se desea importar la información de <code>cuentas</code> o solamente la información de <code>personas</code>.<br />
<br />
Una vez realizada la importación, el proceso nos mostrará un resumen de las acciones realizadas, así como los posibles inconvenientes que pueden haber surgido al momento de importar y comparar los datos existentes.<br />
<br />
Para más información puede consultar la documentación de [[SIU-Arai/Administrar#Importar_cuentas_desde_una_aplicaci.C3.B3n_vinculada | Araí]]<br />
<br />
= Creando documentos de forma asincrónica en SIU-Araí (Novedad a partir de SIU-Guaraní 3.18.1) =<br />
<br />
A partir de SIU-Guaraní 3.18.1, todas las operaciones de cierre de actas almacenan las mismas en SIU-Araí, pero dicha comunicación entre sistemas es llevada a cabo se forma asincrónica. La ventaja se este mecanismo es que si SIU-Araí no se encuentra operativo o presenta alguna falla, SIU-Guaraní igualmente puede llevar a cabo el cierre de actas.<br />
<br />
Esto conlleva lo siguiente:<br />
<br />
=== Creando tabla donde se encolarán los documentos a crear en SIU-Araí ===<br />
<br />
Ejecutar el siguiente comando (por única vez) parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani crear_cola_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando creará la tabla '''arai_documentos_cola''' en la base de datos de SIU-Guaraní, la misma es utilizada para encolar los documentos que luego serán creados en SIU-Araí de forma asincrónica.<br />
<br />
=== Ejecutando worker para procesar los documentos encolados ===<br />
<br />
Ejecutar el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani sincronizar_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando ejecutará un worker (proceso demonio) que desencola documentos de la tabla '''arai_documentos_cola''' e intentará crearlos en SIU-Araí. Debemos asegurarnos que dicho worker siempre se encuentre ejecutándose.<br />
<br />
=== Resincronizando documentos fallidos ===<br />
<br />
En SIU-Guaraní Gestión disponemos de la operación '''Sincronizar Masivamente Documentos con Araí'''. Todos los documentos que fallen al intentar crearse con el worker del punto anterior podrán ser resincronizados en esta operación. También posee información con las causas por las cuales falla la creación del documento en SIU-Araí.<br />
<br />
=== Notificando a los administradores ===<br />
<br />
En el caso de que haya fallado la creación de algún documento en SIU-Araí, se puede notificar a los administradores de SIU-Guaraní via email ejecutando el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani notificar_administradores<br />
</syntaxhighlight><br />
<br />
Dicho comando le envía un email a todos los administradores de SIU-Guaraní, avisándoles que deben ingresar a la operación '''Sincronizar Masivamente Documentos con Araí''' para resincronizar los documentos fallidos.<br />
<br />
'''NOTA:''' Los administradores deben tener algún email asociado en la operación '''Administrar Personas''' para poder recibir dicha notificación.<br />
<br />
<br />
[[SIU-Guarani/version3.18.0/interfaces | < Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.19.0/interfaces/gestion-arai&diff=72461SIU-Guarani/version3.19.0/interfaces/gestion-arai2020-11-19T15:42:36Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
= SIU-Araí =<br />
SIU-Araí es la plataforma integradora de servicios del SIU. Cada uno de los sistemas SIU son módulos dentro de la plataforma que interactúan entre sí, consumiendo y ofreciendo servicios.<br />
Esté apartado está enfocado en la integración de SIU-Guaraní en la plataforma SIU-Araí, se asume que los sistemas ya están instalados y funcionando. Para ver documentación específica de Araí hágalo desde [http://documentacion.siu.edu.ar/wiki/SIU-Arai aquí].<br />
<br />
= Vinculando SIU-Guaraní Gestión con SIU-Araí =<br />
<br />
Antes de registrar la aplicación en Araí debemos verificar que en el archivo <code><path_gestion>/instalacion/i__desarrollo/instancia.ini</code> dentro de la sección <code>[guarani]</code> contenga el entrada <code>full_url</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
[guarani]<br />
path = "<path_gestion>" # Ej: "/usr/local/proyecto"<br />
url = "<url_gestion>" # Ej: "/gestion/0318"<br />
url_pers = "<url_gestion_pers>" # Ej: "/gestion/0318_pers/"<br />
full_url = "<full_url_gestion>" # Ej: "http://localhost/gestion/0318"<br />
<br />
</syntaxhighlight><br />
<br />
''Nota:'' Si tiene una versión de araí usuario 3.x debe configurar y registrar el proyecto como indica la documentación de [https://documentacion.siu.edu.ar/usuarios/docs/cache/guia-registrando-aplicacion-sp/ Araí-Usuarios]<br />
<br />
=== Generar las claves para encriptar ===<br />
Llegado a este punto, durante la instalación del proyecto y por única vez, será necesario como '''pre-requisito''' generar y configurar la clave ''para encriptar la sincronización de api REST con Araí'' . Para hacerlo, se debe correr el siguiente comando parados en <path_gestion>:<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
bin/arai-cli arai:generar-key --backend sodium_compat --destino=/ruta/donde/guardar/arai-sync.key<br />
</syntaxhighlight>También será necesario configurar en el archivo <code><path_gestion>/instalacion/instalacion.ini</code> del proyecto, la entrada <code>arai_sync_key_file</code> con la ruta donde se aloja la clave previamente creada.<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
...<br />
arai_sync_key_file=/ruta/donde/guardar/arai-sync.key<br />
<br />
</syntaxhighlight><br />
<br />
=== Variables de Entorno ===<br />
<br />
Araí-Cli utiliza variables de entorno para acceder a archivos y otras tareas, hay que asegurarse de que las siguientes variables estén instanciadas correctamente de acuerdo al entorno de instalación de la aplicación (archivo <code><path_gestion>/entorno_toba.env</code>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
export TOBA_INSTANCIA=desarrollo<br />
export TOBA_PROYECTO=guarani<br />
export TOBA_PROYECTO_DIR=<path_gestion><br />
export TOBA_INSTALACION_DIR=<path_gestion>/instalacion<br />
export ARAI_REGISTRY_USER=<arai_registry_user><br />
export ARAI_REGISTRY_PASS=<arai_registry_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><arai_registry_user></code> y <code><arai_registry_pass></code> se obtienen de la instalación de Registry de SIU-Araí.<br />
<br />
=== Registrar el proyecto ===<br />
<br />
Si todo está en orden, por única vez, el proceso de registración a la plataforma SIU-Araí de la aplicación se concreta haciendo uso de la librería previamente con el siguiente comando (ejecutarlo parados en <path_gestion>):<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
source ./entorno_toba.env # Carga la variables de entorno<br />
bin/arai-cli registry:add --backend sodium_compat --maintainer <nombre_encargado_admin> --maintainer-email <email_encargado_admin> <url_arai_registry><br />
</syntaxhighlight><br />
<br />
'''Nota:''' Se debe proporcionar la url válida del servicio SIU-Araí Registry, junto con los datos del administrador.<br />
<br />
=== Sincronizar el proyecto ===<br />
Siempre que registremos alguna aplicación a Araí-Registry, es necesario realizar un <code>registr:sync</code> para que nuestra aplicación localmente tenga los datos más actualizados acerca de los diferentes servicios, aplicaciones y/o apis que querramos consumir. Además, si nuestra aplicación localmente agregó una nueva característica (ej. una http://toba.siu.edu.ar/trac/toba/wiki/Referencia/Rest api REST]), este comando informará a Araí-Registry las novedades (ejecutarlo parados en <path_gestion>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/arai-cli registry:sync<br />
</syntaxhighlight><br />
<br />
<blockquote><br />
Este paso es necesario realizarlo también en Araí-Usuarios, para que este sistema se entere de la presencia de una nueva aplicación.<br />
</blockquote><br />
<br />
A partir de este momento, al ingresar al proyecto, este debiera de redirigirnos a la página de login centralizado de la plataforma SIU-Araí. Una vez el usuario ha ingresado, nos redirige nuevamente hacia la aplicación. La misma debiera de contar además con el menú de aplicaciones integrado, con las aplicaciones SIU o de terceros que tengamos registrados.<br />
<br />
[[Archivo:GUA_Launcher.png]]<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Como el login a partir de este momento solo se hará através de SIU-Araí y no desde la base de negocio deberíamos indicarle a Guaraní donde está la API de SIU-Araí Usuarios para que pueda traernos los usuarios que queremos vincular a la persona existente.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
[conexion]<br />
to = <url_arai_usuarios>/rest/<br />
auth_tipo = basic<br />
auth_usuario = <arai_usuarios_user><br />
auth_password = <arai_usuarios_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
A partir de ahora cuando queramos asignar un usuario a una persona, aparecerá un combo editable donde podremos buscar los usuarios existentes en SIU-Araí. <br />
<br />
Entonces de está forma necesitamos editar la persona en SIU-Guaraní Gestión (operación '''Administrar Personas''' solapa '''Acceso al sistema'''), y vincularla con el usuario de SIU-Araí.<br />
<br />
[[Archivo:Campo_Usuario_Araí.png]]<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Gestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
= Vinculando SIU-Guaraní Autogestión con SIU-Araí =<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Se debería modificar el siguiente archivo <code><path_3w>/instalacion/servicios_web_config.php</code>, agregando lo siguiente dentro del array de <code>consumidos</code>:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
'consumidos' => [<br />
<br />
............<br />
<br />
'arai_usuarios' => [<br />
'tipo' => 'rest',<br />
'parametros' => [<br />
'base_uri' => '<url_arai_usuarios>/rest/',<br />
'auth' => ['<arai_usuarios_user>', '<arai_usuarios_pass>', 'basic'],<br />
'verify' => false<br />
]<br />
],<br />
<br />
............<br />
<br />
]<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Autogestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_3w>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
== Configurando autenticación vía SAML entre SIU-Guaraní Autogestión y SIU-Araí ==<br />
<br />
Ir a la aplicación de Araí Usuarios y en la operación Aplicaciones dar de alta una nueva aplicación para 3w, para luego poder vincular los usuarios de tipos de docente con el autogestión y huarpe.<br />
Se debe ingresar la url de 3w y también el appUniqueId que luego se utilizará para los siguientes pasos.<br />
Un ejemplo podría ser como el siguiente:<br />
<br />
<br />
<br />
En la instalación de Araí Usuarios, que puede ser un docker o una instalación local, pararse sobre la carpeta del mismo y correr el siguiente comando:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/toba proyecto configurar_sp -p arai_usuarios --endpoint <url_3w>/acceso --acs <url_3w>/acceso?auth=saml --login <url_3w>/acceso?auth=saml --logout <url_3w>/acceso/logout --app <appUniqueId3w><br />
</syntaxhighlight><br />
<br />
'''Donde:'''<br />
<br />
<code><url_3w></code> es la url de autogestión a la cual queremos darle un acceso por el proveedor de indentidad SIU-Araí.<br />
<br />
<code><url_arai_idp></code> es la url del IDP de SIU-Araí.<br />
<br />
<code><appUniqueId3w></code> es el identificador que hemos utilizado en el paso anterior cuando dimos de alta la aplicación en el SIU-Araí Usuarios.<br />
<br />
<code><fingerprint></code> se genera ejecutando: <code>openssl x509 -noout -fingerprint -in "/path/to/idp.crt"</code>.<br />
<br />
Ir a <path_3w>/instalacion/saml y correr el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
cp settings_example.php settings.php<br />
</syntaxhighlight><br />
<br />
Abrir el archivo settings.php y dejar el siguiente contenido.<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<?php<br />
//settings y advanced_settings de la libreria de saml.<br />
$url_autogestion = '<url_3w>';<br />
$url_idp = '<url_arai_idp>';<br />
return $settings = array (<br />
// If 'strict' is True, then the PHP Toolkit will reject unsigned<br />
// or unencrypted messages if it expects them signed or encrypted<br />
// Also will reject the messages if not strictly follow the SAML<br />
// standard: Destination, NameId, Conditions ... are validated too.<br />
'strict' => false,<br />
<br />
// Enable debug mode (to print errors)<br />
'debug' => true,<br />
<br />
// Service Provider Data that we are deploying<br />
'sp' => array (<br />
// Identifier of the SP entity (must be a URI)<br />
'entityId' => $url_autogestion.'/acceso',<br />
// Specifies info about where and how the <AuthnResponse> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'assertionConsumerService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso?auth=saml',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',<br />
),<br />
// Specifies info about where and how the <Logout Response> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'singleLogoutService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso/logout',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Specifies constraints on the name identifier to be used to<br />
// represent the requested subject.<br />
// Take a look on lib/Saml2/Constants.php to see the NameIdFormat supported<br />
'nameIdFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',<br />
<br />
// Usually x509cert and privateKey of the SP are provided by files placed at<br />
// the certs folder. But we can also provide them with the following parameters<br />
// 'x509cert' => file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt'),<br />
// 'privateKey' > file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.pem'),<br />
),<br />
<br />
// Identity Provider Data that we want connect with our SP<br />
'idp' => array (<br />
// Identifier of the IdP entity (must be a URI)<br />
'entityId' => $url_idp.'/saml2/idp/metadata.php',<br />
// SSO endpoint info of the IdP. (Authentication Request protocol)<br />
'singleSignOnService' => array (<br />
// URL Target of the IdP where the SP will send the Authentication Request Message<br />
'url' => $url_idp.'/saml2/idp/SSOService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-POST binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// SLO endpoint info of the IdP.<br />
'singleLogoutService' => array (<br />
// URL Location of the IdP where the SP will send the SLO Request<br />
'url' => $url_idp.'/saml2/idp/SingleLogoutService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Public x509 certificate of the IdP<br />
// 'x509cert' => \siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt',<br />
/*<br />
*Instead of use the whole x509cert you can use a fingerprint<br />
*(openssl x509 -noout -fingerprint -in "idp.crt" to generate it)<br />
*/<br />
'certFingerprint' => '<fingerprint>',<br />
),<br />
<br />
//Advanced settings<br />
// Security settings<br />
'security' => array (<br />
<br />
/** signatures and encryptions offered */<br />
<br />
// Indicates that the nameID of the <samlp:logoutRequest> sent by this SP<br />
// will be encrypted.<br />
'nameIdEncrypted' => false,<br />
<br />
// Indicates whether the <samlp:AuthnRequest> messages sent by this SP<br />
// will be signed. [The Metadata of the SP will offer this info]<br />
'authnRequestsSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutRequest> messages sent by this SP<br />
// will be signed.<br />
'logoutRequestSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutResponse> messages sent by this SP<br />
// will be signed.<br />
'logoutResponseSigned' => false,<br />
<br />
/* Sign the Metadata<br />
False || True (use sp certs) || array (<br />
keyFileName => 'metadata.key',<br />
certFileName => 'metadata.crt'<br />
)<br />
*/<br />
'signMetadata' => false,<br />
<br />
<br />
/** signatures and encryptions required **/<br />
<br />
// Indicates a requirement for the <samlp:Response>, <samlp:LogoutRequest> and<br />
// <samlp:LogoutResponse> elements received by this SP to be signed.<br />
'wantMessagesSigned' => false,<br />
<br />
// Indicates a requirement for the <saml:Assertion> elements received by<br />
// this SP to be signed. [The Metadata of the SP will offer this info]<br />
'wantAssertionsSigned' => false,<br />
<br />
// Indicates a requirement for the NameID received by<br />
// this SP to be encrypted.<br />
'wantNameIdEncrypted' => false,<br />
),<br />
<br />
// Contact information template, it is recommended to suply a technical and support contacts<br />
'contactPerson' => array (<br />
'technical' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
'support' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
),<br />
<br />
// Organization information template, the info in en_US lang is recomended, add more if required<br />
'organization' => array (<br />
'en-US' => array(<br />
'name' => 'CAMBIAR',<br />
'displayname' => 'CAMBIAR',<br />
'url' => 'CAMBIAR.com'<br />
),<br />
),<br />
);<br />
<br />
</syntaxhighlight><br />
<br />
Una vez terminado esto ir al archivo <path_3w>/instalacion/login.php y configurar lo siguiente:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
'saml' => array(<br />
'activo' => true,<br />
'clase' => 'modelo\\autenticacion\\auth_saml',<br />
'parametros' => array(<br />
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings.php',<br />
'saml_uid' => 'userAccounts',// 'urn:oid:0.9.2342.19200300.100.1.1', //se matchea con local_uid<br />
'local_uid' => 'usuario', //puede ser 'persona'<br />
),<br />
),<br />
</syntaxhighlight><br />
<br />
Agregar en <code><path_gestion>/instalacion/instalacion.ini</code> de gestión estas variables según lo que se tiene en araí usuarios para cada aplicación, ej:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
appUniqueIdGestion = "<app_unique_id_gestion>"<br />
appUniqueId3w = "<app_unique_id_3w>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><app_unique_id_gestion></code> y <code><app_unique_id_3w></code> son los '''appUniqueId''' de SIU-Guaraní Gestión y 3W respectivamente, se obtienen de SIU-Araí Usuarios menú de Aplicaciones.<br />
<br />
= Migrando usuarios de SIU-Guaraní a SIU-Araí =<br />
<br />
=== Exportación de usuarios ===<br />
Los usuarios actuales que poseemos en gestión los deberíamos tener disponibles en una cuenta de Araí.<br />
Para exportarlos deberíamos realizar lo siguiente:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani exportar_usuarios_arai<br />
</syntaxhighlight><br />
<br />
Este comando posee las siguiente opciones:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
-d => Path donde se guarda el archivo, por defecto -> $this->get_instalacion()->get_dir()/usersExportFiles/,<br />
-f => Nombre del archivo donde se exportaran los usuarios, por defecto -> usuarios_ . date('YmdHis'),<br />
-m => Nombre del responsable, por defecto -> toba,<br />
-e => Mails del responsable, por defecto -> toba<br />
</syntaxhighlight><br />
<br />
=== Importando usuarios a Araí ===<br />
<br />
Para importar las cuentas, el módulo '''SIU-Araí: Usuarios''' proporciona un comando de consola, que nos permite cargar la información de un conjunto de usuarios y/o cuentas, todo a partir de un archivo en formato '''json'''. Para ejecutar el comando primero será necesario cargar el entorno, para lo cual podemos ejecutar:<syntaxhighlight lang="bash" enclose="div"><br />
cd /ruta/siu-arai/usuarios<br />
. ./entorno_toba.env<br />
</syntaxhighlight><br />
<br />
Una vez cargado el entorno, es posible ejecutar la exportación de la siguiente forma:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
toba proyecto importar_usuarios_arai -f <path_completo_archivo.json> -m <comparador> [-t cuentas|personas] -p arai_usuarios<br />
</syntaxhighlight><br />
Este comando procesará un archivo en la ruta <code>/ruta/modulo/siu/instalacion/usersExportFiles/cuentas-xxx-arai.json</code> importando las definiciones de personas y/o cuentas, teniendo en cuenta las opciones de comparación. <br />
<br />
Al momento de importar, es necesario elegir como se comparan los datos de usuarios/personas a importar con los que pueden existir, mediante el argumento <code><comparador></code>. Este puede ser uno de los siguientes: <br />
* <code>0</code>: Género, tipo y número de documento<br />
* <code>1</code>: Tipo y número de documento<br />
* <code>2</code>: Email<br />
* <code>3</code>: atributo UniqueIdentifier<br />
* <code>4</code>: No intenta matchear, sólo agrega cuentas nuevas para las personas<br />
De forma opcional, se puede indicar con el argumento <code>-t</code> si se desea importar la información de <code>cuentas</code> o solamente la información de <code>personas</code>.<br />
<br />
Una vez realizada la importación, el proceso nos mostrará un resumen de las acciones realizadas, así como los posibles inconvenientes que pueden haber surgido al momento de importar y comparar los datos existentes.<br />
<br />
Para más información puede consultar la documentación de [[SIU-Arai/Administrar#Importar_cuentas_desde_una_aplicaci.C3.B3n_vinculada | Araí]]<br />
<br />
= Creando documentos de forma asincrónica en SIU-Araí (Novedad a partir de SIU-Guaraní 3.19.1) =<br />
<br />
A partir de SIU-Guaraní 3.19.1, todas las operaciones de cierre de actas almacenan las mismas en SIU-Araí, pero dicha comunicación entre sistemas es llevada a cabo se forma asincrónica. La ventaja se este mecanismo es que si SIU-Araí no se encuentra operativo o presenta alguna falla, SIU-Guaraní igualmente puede llevar a cabo el cierre de actas.<br />
<br />
Esto conlleva lo siguiente:<br />
<br />
=== Creando tabla donde se encolarán los documentos a crear en SIU-Araí ===<br />
<br />
Ejecutar el siguiente comando (por única vez) parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani crear_cola_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando creará la tabla '''arai_documentos_cola''' en la base de datos de SIU-Guaraní, la misma es utilizada para encolar los documentos que luego serán creados en SIU-Araí de forma asincrónica.<br />
<br />
=== Ejecutando worker para procesar los documentos encolados ===<br />
<br />
Ejecutar el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani sincronizar_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando ejecutará un worker (proceso demonio) que desencola documentos de la tabla '''arai_documentos_cola''' e intentará crearlos en SIU-Araí. Debemos asegurarnos que dicho worker siempre se encuentre ejecutándose.<br />
<br />
=== Resincronizando documentos fallidos ===<br />
<br />
En SIU-Guaraní Gestión disponemos de la operación '''Sincronizar Masivamente Documentos con Araí'''. Todos los documentos que fallen al intentar crearse con el worker del punto anterior podrán ser resincronizados en esta operación. También posee información con las causas por las cuales falla la creación del documento en SIU-Araí.<br />
<br />
=== Notificando a los administradores ===<br />
<br />
En el caso de que haya fallado la creación de algún documento en SIU-Araí, se puede notificar a los administradores de SIU-Guaraní via email ejecutando el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani notificar_administradores<br />
</syntaxhighlight><br />
<br />
Dicho comando le envía un email a todos los administradores de SIU-Guaraní, avisándoles que deben ingresar a la operación '''Sincronizar Masivamente Documentos con Araí''' para resincronizar los documentos fallidos.<br />
<br />
'''NOTA:''' Los administradores deben tener algún email asociado en la operación '''Administrar Personas''' para poder recibir dicha notificación.<br />
<br />
<br />
[[SIU-Guarani/version3.19.0/interfaces | < Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.20.0/interfaces/gestion-arai&diff=76689SIU-Guarani/version3.20.0/interfaces/gestion-arai2020-11-19T15:42:36Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
= SIU-Araí =<br />
SIU-Araí es la plataforma integradora de servicios del SIU. Cada uno de los sistemas SIU son módulos dentro de la plataforma que interactúan entre sí, consumiendo y ofreciendo servicios.<br />
Esté apartado está enfocado en la integración de SIU-Guaraní en la plataforma SIU-Araí, se asume que los sistemas ya están instalados y funcionando. Para ver documentación específica de Araí hágalo desde [http://documentacion.siu.edu.ar/wiki/SIU-Arai aquí].<br />
<br />
= Vinculando SIU-Guaraní Gestión con SIU-Araí =<br />
<br />
Antes de registrar la aplicación en Araí debemos verificar que en el archivo <code><path_gestion>/instalacion/i__desarrollo/instancia.ini</code> dentro de la sección <code>[guarani]</code> contenga el entrada <code>full_url</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
[guarani]<br />
path = "<path_gestion>" # Ej: "/usr/local/proyecto"<br />
url = "<url_gestion>" # Ej: "/gestion/0318"<br />
url_pers = "<url_gestion_pers>" # Ej: "/gestion/0318_pers/"<br />
full_url = "<full_url_gestion>" # Ej: "http://localhost/gestion/0318"<br />
<br />
</syntaxhighlight><br />
<br />
''Nota:'' Si tiene una versión de araí usuario 3.x debe configurar y registrar el proyecto como indica la documentación de [https://documentacion.siu.edu.ar/usuarios/docs/cache/guia-registrando-aplicacion-sp/ Araí-Usuarios]<br />
<br />
=== Generar las claves para encriptar ===<br />
Llegado a este punto, durante la instalación del proyecto y por única vez, será necesario como '''pre-requisito''' generar y configurar la clave ''para encriptar la sincronización de api REST con Araí'' . Para hacerlo, se debe correr el siguiente comando parados en <path_gestion>:<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
bin/arai-cli arai:generar-key --backend sodium_compat --destino=/ruta/donde/guardar/arai-sync.key<br />
</syntaxhighlight>También será necesario configurar en el archivo <code><path_gestion>/instalacion/instalacion.ini</code> del proyecto, la entrada <code>arai_sync_key_file</code> con la ruta donde se aloja la clave previamente creada.<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
...<br />
arai_sync_key_file=/ruta/donde/guardar/arai-sync.key<br />
<br />
</syntaxhighlight><br />
<br />
=== Variables de Entorno ===<br />
<br />
Araí-Cli utiliza variables de entorno para acceder a archivos y otras tareas, hay que asegurarse de que las siguientes variables estén instanciadas correctamente de acuerdo al entorno de instalación de la aplicación (archivo <code><path_gestion>/entorno_toba.env</code>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
export TOBA_INSTANCIA=desarrollo<br />
export TOBA_PROYECTO=guarani<br />
export TOBA_PROYECTO_DIR=<path_gestion><br />
export TOBA_INSTALACION_DIR=<path_gestion>/instalacion<br />
export ARAI_REGISTRY_USER=<arai_registry_user><br />
export ARAI_REGISTRY_PASS=<arai_registry_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><arai_registry_user></code> y <code><arai_registry_pass></code> se obtienen de la instalación de Registry de SIU-Araí.<br />
<br />
=== Registrar el proyecto ===<br />
<br />
Si todo está en orden, por única vez, el proceso de registración a la plataforma SIU-Araí de la aplicación se concreta haciendo uso de la librería previamente con el siguiente comando (ejecutarlo parados en <path_gestion>):<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
source ./entorno_toba.env # Carga la variables de entorno<br />
bin/arai-cli registry:add --backend sodium_compat --maintainer <nombre_encargado_admin> --maintainer-email <email_encargado_admin> <url_arai_registry><br />
</syntaxhighlight><br />
<br />
'''Nota:''' Se debe proporcionar la url válida del servicio SIU-Araí Registry, junto con los datos del administrador.<br />
<br />
=== Sincronizar el proyecto ===<br />
Siempre que registremos alguna aplicación a Araí-Registry, es necesario realizar un <code>registr:sync</code> para que nuestra aplicación localmente tenga los datos más actualizados acerca de los diferentes servicios, aplicaciones y/o apis que querramos consumir. Además, si nuestra aplicación localmente agregó una nueva característica (ej. una http://toba.siu.edu.ar/trac/toba/wiki/Referencia/Rest api REST]), este comando informará a Araí-Registry las novedades (ejecutarlo parados en <path_gestion>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/arai-cli registry:sync<br />
</syntaxhighlight><br />
<br />
<blockquote><br />
Este paso es necesario realizarlo también en Araí-Usuarios, para que este sistema se entere de la presencia de una nueva aplicación.<br />
</blockquote><br />
<br />
A partir de este momento, al ingresar al proyecto, este debiera de redirigirnos a la página de login centralizado de la plataforma SIU-Araí. Una vez el usuario ha ingresado, nos redirige nuevamente hacia la aplicación. La misma debiera de contar además con el menú de aplicaciones integrado, con las aplicaciones SIU o de terceros que tengamos registrados.<br />
<br />
[[Archivo:GUA_Launcher.png]]<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Como el login a partir de este momento solo se hará através de SIU-Araí y no desde la base de negocio deberíamos indicarle a Guaraní donde está la API de SIU-Araí Usuarios para que pueda traernos los usuarios que queremos vincular a la persona existente.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
[conexion]<br />
to = <url_arai_usuarios>/rest/<br />
auth_tipo = basic<br />
auth_usuario = <arai_usuarios_user><br />
auth_password = <arai_usuarios_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
A partir de ahora cuando queramos asignar un usuario a una persona, aparecerá un combo editable donde podremos buscar los usuarios existentes en SIU-Araí. <br />
<br />
Entonces de está forma necesitamos editar la persona en SIU-Guaraní Gestión (operación '''Administrar Personas''' solapa '''Acceso al sistema'''), y vincularla con el usuario de SIU-Araí.<br />
<br />
[[Archivo:Campo_Usuario_Araí.png]]<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Gestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
= Vinculando SIU-Guaraní Autogestión con SIU-Araí =<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Se debería modificar el siguiente archivo <code><path_3w>/instalacion/servicios_web_config.php</code>, agregando lo siguiente dentro del array de <code>consumidos</code>:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
'consumidos' => [<br />
<br />
............<br />
<br />
'arai_usuarios' => [<br />
'tipo' => 'rest',<br />
'parametros' => [<br />
'base_uri' => '<url_arai_usuarios>/rest/',<br />
'auth' => ['<arai_usuarios_user>', '<arai_usuarios_pass>', 'basic'],<br />
'verify' => false<br />
]<br />
],<br />
<br />
............<br />
<br />
]<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Autogestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_3w>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
== Configurando autenticación vía SAML entre SIU-Guaraní Autogestión y SIU-Araí ==<br />
<br />
Ir a la aplicación de Araí Usuarios y en la operación Aplicaciones dar de alta una nueva aplicación para 3w, para luego poder vincular los usuarios de tipos de docente con el autogestión y huarpe.<br />
Se debe ingresar la url de 3w y también el appUniqueId que luego se utilizará para los siguientes pasos.<br />
Un ejemplo podría ser como el siguiente:<br />
<br />
<br />
<br />
En la instalación de Araí Usuarios, que puede ser un docker o una instalación local, pararse sobre la carpeta del mismo y correr el siguiente comando:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/toba proyecto configurar_sp -p arai_usuarios --endpoint <url_3w>/acceso --acs <url_3w>/acceso?auth=saml --login <url_3w>/acceso?auth=saml --logout <url_3w>/acceso/logout --app <appUniqueId3w><br />
</syntaxhighlight><br />
<br />
'''Donde:'''<br />
<br />
<code><url_3w></code> es la url de autogestión a la cual queremos darle un acceso por el proveedor de indentidad SIU-Araí.<br />
<br />
<code><url_arai_idp></code> es la url del IDP de SIU-Araí.<br />
<br />
<code><appUniqueId3w></code> es el identificador que hemos utilizado en el paso anterior cuando dimos de alta la aplicación en el SIU-Araí Usuarios.<br />
<br />
<code><fingerprint></code> se genera ejecutando: <code>openssl x509 -noout -fingerprint -in "/path/to/idp.crt"</code>.<br />
<br />
Ir a <path_3w>/instalacion/saml y correr el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
cp settings_example.php settings.php<br />
</syntaxhighlight><br />
<br />
Abrir el archivo settings.php y dejar el siguiente contenido.<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<?php<br />
//settings y advanced_settings de la libreria de saml.<br />
$url_autogestion = '<url_3w>';<br />
$url_idp = '<url_arai_idp>';<br />
return $settings = array (<br />
// If 'strict' is True, then the PHP Toolkit will reject unsigned<br />
// or unencrypted messages if it expects them signed or encrypted<br />
// Also will reject the messages if not strictly follow the SAML<br />
// standard: Destination, NameId, Conditions ... are validated too.<br />
'strict' => false,<br />
<br />
// Enable debug mode (to print errors)<br />
'debug' => true,<br />
<br />
// Service Provider Data that we are deploying<br />
'sp' => array (<br />
// Identifier of the SP entity (must be a URI)<br />
'entityId' => $url_autogestion.'/acceso',<br />
// Specifies info about where and how the <AuthnResponse> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'assertionConsumerService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso?auth=saml',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',<br />
),<br />
// Specifies info about where and how the <Logout Response> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'singleLogoutService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso/logout',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Specifies constraints on the name identifier to be used to<br />
// represent the requested subject.<br />
// Take a look on lib/Saml2/Constants.php to see the NameIdFormat supported<br />
'nameIdFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',<br />
<br />
// Usually x509cert and privateKey of the SP are provided by files placed at<br />
// the certs folder. But we can also provide them with the following parameters<br />
// 'x509cert' => file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt'),<br />
// 'privateKey' > file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.pem'),<br />
),<br />
<br />
// Identity Provider Data that we want connect with our SP<br />
'idp' => array (<br />
// Identifier of the IdP entity (must be a URI)<br />
'entityId' => $url_idp.'/saml2/idp/metadata.php',<br />
// SSO endpoint info of the IdP. (Authentication Request protocol)<br />
'singleSignOnService' => array (<br />
// URL Target of the IdP where the SP will send the Authentication Request Message<br />
'url' => $url_idp.'/saml2/idp/SSOService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-POST binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// SLO endpoint info of the IdP.<br />
'singleLogoutService' => array (<br />
// URL Location of the IdP where the SP will send the SLO Request<br />
'url' => $url_idp.'/saml2/idp/SingleLogoutService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Public x509 certificate of the IdP<br />
// 'x509cert' => \siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt',<br />
/*<br />
*Instead of use the whole x509cert you can use a fingerprint<br />
*(openssl x509 -noout -fingerprint -in "idp.crt" to generate it)<br />
*/<br />
'certFingerprint' => '<fingerprint>',<br />
),<br />
<br />
//Advanced settings<br />
// Security settings<br />
'security' => array (<br />
<br />
/** signatures and encryptions offered */<br />
<br />
// Indicates that the nameID of the <samlp:logoutRequest> sent by this SP<br />
// will be encrypted.<br />
'nameIdEncrypted' => false,<br />
<br />
// Indicates whether the <samlp:AuthnRequest> messages sent by this SP<br />
// will be signed. [The Metadata of the SP will offer this info]<br />
'authnRequestsSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutRequest> messages sent by this SP<br />
// will be signed.<br />
'logoutRequestSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutResponse> messages sent by this SP<br />
// will be signed.<br />
'logoutResponseSigned' => false,<br />
<br />
/* Sign the Metadata<br />
False || True (use sp certs) || array (<br />
keyFileName => 'metadata.key',<br />
certFileName => 'metadata.crt'<br />
)<br />
*/<br />
'signMetadata' => false,<br />
<br />
<br />
/** signatures and encryptions required **/<br />
<br />
// Indicates a requirement for the <samlp:Response>, <samlp:LogoutRequest> and<br />
// <samlp:LogoutResponse> elements received by this SP to be signed.<br />
'wantMessagesSigned' => false,<br />
<br />
// Indicates a requirement for the <saml:Assertion> elements received by<br />
// this SP to be signed. [The Metadata of the SP will offer this info]<br />
'wantAssertionsSigned' => false,<br />
<br />
// Indicates a requirement for the NameID received by<br />
// this SP to be encrypted.<br />
'wantNameIdEncrypted' => false,<br />
),<br />
<br />
// Contact information template, it is recommended to suply a technical and support contacts<br />
'contactPerson' => array (<br />
'technical' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
'support' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
),<br />
<br />
// Organization information template, the info in en_US lang is recomended, add more if required<br />
'organization' => array (<br />
'en-US' => array(<br />
'name' => 'CAMBIAR',<br />
'displayname' => 'CAMBIAR',<br />
'url' => 'CAMBIAR.com'<br />
),<br />
),<br />
);<br />
<br />
</syntaxhighlight><br />
<br />
Una vez terminado esto ir al archivo <path_3w>/instalacion/login.php y configurar lo siguiente:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
'saml' => array(<br />
'activo' => true,<br />
'clase' => 'modelo\\autenticacion\\auth_saml',<br />
'parametros' => array(<br />
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings.php',<br />
'saml_uid' => 'userAccounts',// 'urn:oid:0.9.2342.19200300.100.1.1', //se matchea con local_uid<br />
'local_uid' => 'usuario', //puede ser 'persona'<br />
),<br />
),<br />
</syntaxhighlight><br />
<br />
Agregar en <code><path_gestion>/instalacion/instalacion.ini</code> de gestión estas variables según lo que se tiene en araí usuarios para cada aplicación, ej:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
appUniqueIdGestion = "<app_unique_id_gestion>"<br />
appUniqueId3w = "<app_unique_id_3w>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><app_unique_id_gestion></code> y <code><app_unique_id_3w></code> son los '''appUniqueId''' de SIU-Guaraní Gestión y 3W respectivamente, se obtienen de SIU-Araí Usuarios menú de Aplicaciones.<br />
<br />
= Migrando usuarios de SIU-Guaraní a SIU-Araí =<br />
<br />
=== Exportación de usuarios ===<br />
Los usuarios actuales que poseemos en gestión los deberíamos tener disponibles en una cuenta de Araí.<br />
Para exportarlos deberíamos realizar lo siguiente:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani exportar_usuarios_arai<br />
</syntaxhighlight><br />
<br />
Este comando posee las siguiente opciones:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
-d => Path donde se guarda el archivo, por defecto -> $this->get_instalacion()->get_dir()/usersExportFiles/,<br />
-f => Nombre del archivo donde se exportaran los usuarios, por defecto -> usuarios_ . date('YmdHis'),<br />
-m => Nombre del responsable, por defecto -> toba,<br />
-e => Mails del responsable, por defecto -> toba<br />
</syntaxhighlight><br />
<br />
=== Importando usuarios a Araí ===<br />
<br />
Para importar las cuentas, el módulo '''SIU-Araí: Usuarios''' proporciona un comando de consola, que nos permite cargar la información de un conjunto de usuarios y/o cuentas, todo a partir de un archivo en formato '''json'''. Para ejecutar el comando primero será necesario cargar el entorno, para lo cual podemos ejecutar:<syntaxhighlight lang="bash" enclose="div"><br />
cd /ruta/siu-arai/usuarios<br />
. ./entorno_toba.env<br />
</syntaxhighlight><br />
<br />
Una vez cargado el entorno, es posible ejecutar la exportación de la siguiente forma:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
toba proyecto importar_usuarios_arai -f <path_completo_archivo.json> -m <comparador> [-t cuentas|personas] -p arai_usuarios<br />
</syntaxhighlight><br />
Este comando procesará un archivo en la ruta <code>/ruta/modulo/siu/instalacion/usersExportFiles/cuentas-xxx-arai.json</code> importando las definiciones de personas y/o cuentas, teniendo en cuenta las opciones de comparación. <br />
<br />
Al momento de importar, es necesario elegir como se comparan los datos de usuarios/personas a importar con los que pueden existir, mediante el argumento <code><comparador></code>. Este puede ser uno de los siguientes: <br />
* <code>0</code>: Género, tipo y número de documento<br />
* <code>1</code>: Tipo y número de documento<br />
* <code>2</code>: Email<br />
* <code>3</code>: atributo UniqueIdentifier<br />
* <code>4</code>: No intenta matchear, sólo agrega cuentas nuevas para las personas<br />
De forma opcional, se puede indicar con el argumento <code>-t</code> si se desea importar la información de <code>cuentas</code> o solamente la información de <code>personas</code>.<br />
<br />
Una vez realizada la importación, el proceso nos mostrará un resumen de las acciones realizadas, así como los posibles inconvenientes que pueden haber surgido al momento de importar y comparar los datos existentes.<br />
<br />
Para más información puede consultar la documentación de [[SIU-Arai/Administrar#Importar_cuentas_desde_una_aplicaci.C3.B3n_vinculada | Araí]]<br />
<br />
= Creando documentos de forma asincrónica en SIU-Araí (Novedad a partir de SIU-Guaraní 3.20.1) =<br />
<br />
A partir de SIU-Guaraní 3.20.1, todas las operaciones de cierre de actas almacenan las mismas en SIU-Araí, pero dicha comunicación entre sistemas es llevada a cabo se forma asincrónica. La ventaja se este mecanismo es que si SIU-Araí no se encuentra operativo o presenta alguna falla, SIU-Guaraní igualmente puede llevar a cabo el cierre de actas.<br />
<br />
Esto conlleva lo siguiente:<br />
<br />
=== Creando tabla donde se encolarán los documentos a crear en SIU-Araí ===<br />
<br />
Ejecutar el siguiente comando (por única vez) parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani crear_cola_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando creará la tabla '''arai_documentos_cola''' en la base de datos de SIU-Guaraní, la misma es utilizada para encolar los documentos que luego serán creados en SIU-Araí de forma asincrónica.<br />
<br />
=== Ejecutando worker para procesar los documentos encolados ===<br />
<br />
Ejecutar el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani sincronizar_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando ejecutará un worker (proceso demonio) que desencola documentos de la tabla '''arai_documentos_cola''' e intentará crearlos en SIU-Araí. Debemos asegurarnos que dicho worker siempre se encuentre ejecutándose.<br />
<br />
=== Resincronizando documentos fallidos ===<br />
<br />
En SIU-Guaraní Gestión disponemos de la operación '''Sincronizar Masivamente Documentos con Araí'''. Todos los documentos que fallen al intentar crearse con el worker del punto anterior podrán ser resincronizados en esta operación. También posee información con las causas por las cuales falla la creación del documento en SIU-Araí.<br />
<br />
=== Notificando a los administradores ===<br />
<br />
En el caso de que haya fallado la creación de algún documento en SIU-Araí, se puede notificar a los administradores de SIU-Guaraní via email ejecutando el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani notificar_administradores<br />
</syntaxhighlight><br />
<br />
Dicho comando le envía un email a todos los administradores de SIU-Guaraní, avisándoles que deben ingresar a la operación '''Sincronizar Masivamente Documentos con Araí''' para resincronizar los documentos fallidos.<br />
<br />
'''NOTA:''' Los administradores deben tener algún email asociado en la operación '''Administrar Personas''' para poder recibir dicha notificación.<br />
<br />
<br />
[[SIU-Guarani/version3.20.0/interfaces | < Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.21.0/interfaces/gestion-arai&diff=87015SIU-Guarani/version3.21.0/interfaces/gestion-arai2020-11-19T15:42:36Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
= SIU-Araí =<br />
SIU-Araí es la plataforma integradora de servicios del SIU. Cada uno de los sistemas SIU son módulos dentro de la plataforma que interactúan entre sí, consumiendo y ofreciendo servicios.<br />
Esté apartado está enfocado en la integración de SIU-Guaraní en la plataforma SIU-Araí, se asume que los sistemas ya están instalados y funcionando. Para ver documentación específica de Araí hágalo desde [http://documentacion.siu.edu.ar/wiki/SIU-Arai aquí].<br />
<br />
= Vinculando SIU-Guaraní Gestión con SIU-Araí =<br />
<br />
Antes de registrar la aplicación en Araí debemos verificar que en el archivo <code><path_gestion>/instalacion/i__desarrollo/instancia.ini</code> dentro de la sección <code>[guarani]</code> contenga el entrada <code>full_url</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
[guarani]<br />
path = "<path_gestion>" # Ej: "/usr/local/proyecto"<br />
url = "<url_gestion>" # Ej: "/gestion/0318"<br />
url_pers = "<url_gestion_pers>" # Ej: "/gestion/0318_pers/"<br />
full_url = "<full_url_gestion>" # Ej: "http://localhost/gestion/0318"<br />
<br />
</syntaxhighlight><br />
<br />
''Nota:'' Si tiene una versión de araí usuario 3.x debe configurar y registrar el proyecto como indica la documentación de [https://documentacion.siu.edu.ar/usuarios/docs/cache/guia-registrando-aplicacion-sp/ Araí-Usuarios]<br />
<br />
=== Generar las claves para encriptar ===<br />
Llegado a este punto, durante la instalación del proyecto y por única vez, será necesario como '''pre-requisito''' generar y configurar la clave ''para encriptar la sincronización de api REST con Araí'' . Para hacerlo, se debe correr el siguiente comando parados en <path_gestion>:<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
bin/arai-cli arai:generar-key --backend sodium_compat --destino=/ruta/donde/guardar/arai-sync.key<br />
</syntaxhighlight>También será necesario configurar en el archivo <code><path_gestion>/instalacion/instalacion.ini</code> del proyecto, la entrada <code>arai_sync_key_file</code> con la ruta donde se aloja la clave previamente creada.<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
...<br />
arai_sync_key_file=/ruta/donde/guardar/arai-sync.key<br />
<br />
</syntaxhighlight><br />
<br />
=== Variables de Entorno ===<br />
<br />
Araí-Cli utiliza variables de entorno para acceder a archivos y otras tareas, hay que asegurarse de que las siguientes variables estén instanciadas correctamente de acuerdo al entorno de instalación de la aplicación (archivo <code><path_gestion>/entorno_toba.env</code>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
export TOBA_INSTANCIA=desarrollo<br />
export TOBA_PROYECTO=guarani<br />
export TOBA_PROYECTO_DIR=<path_gestion><br />
export TOBA_INSTALACION_DIR=<path_gestion>/instalacion<br />
export ARAI_REGISTRY_USER=<arai_registry_user><br />
export ARAI_REGISTRY_PASS=<arai_registry_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><arai_registry_user></code> y <code><arai_registry_pass></code> se obtienen de la instalación de Registry de SIU-Araí.<br />
<br />
=== Registrar el proyecto ===<br />
<br />
Si todo está en orden, por única vez, el proceso de registración a la plataforma SIU-Araí de la aplicación se concreta haciendo uso de la librería previamente con el siguiente comando (ejecutarlo parados en <path_gestion>):<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
source ./entorno_toba.env # Carga la variables de entorno<br />
bin/arai-cli registry:add --backend sodium_compat --maintainer <nombre_encargado_admin> --maintainer-email <email_encargado_admin> <url_arai_registry><br />
</syntaxhighlight><br />
<br />
'''Nota:''' Se debe proporcionar la url válida del servicio SIU-Araí Registry, junto con los datos del administrador.<br />
<br />
=== Sincronizar el proyecto ===<br />
Siempre que registremos alguna aplicación a Araí-Registry, es necesario realizar un <code>registr:sync</code> para que nuestra aplicación localmente tenga los datos más actualizados acerca de los diferentes servicios, aplicaciones y/o apis que querramos consumir. Además, si nuestra aplicación localmente agregó una nueva característica (ej. una http://toba.siu.edu.ar/trac/toba/wiki/Referencia/Rest api REST]), este comando informará a Araí-Registry las novedades (ejecutarlo parados en <path_gestion>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/arai-cli registry:sync<br />
</syntaxhighlight><br />
<br />
<blockquote><br />
Este paso es necesario realizarlo también en Araí-Usuarios, para que este sistema se entere de la presencia de una nueva aplicación.<br />
</blockquote><br />
<br />
A partir de este momento, al ingresar al proyecto, este debiera de redirigirnos a la página de login centralizado de la plataforma SIU-Araí. Una vez el usuario ha ingresado, nos redirige nuevamente hacia la aplicación. La misma debiera de contar además con el menú de aplicaciones integrado, con las aplicaciones SIU o de terceros que tengamos registrados.<br />
<br />
[[Archivo:GUA_Launcher.png]]<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Como el login a partir de este momento solo se hará através de SIU-Araí y no desde la base de negocio deberíamos indicarle a Guaraní donde está la API de SIU-Araí Usuarios para que pueda traernos los usuarios que queremos vincular a la persona existente.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
[conexion]<br />
to = <url_arai_usuarios>/rest/<br />
auth_tipo = basic<br />
auth_usuario = <arai_usuarios_user><br />
auth_password = <arai_usuarios_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
A partir de ahora cuando queramos asignar un usuario a una persona, aparecerá un combo editable donde podremos buscar los usuarios existentes en SIU-Araí. <br />
<br />
Entonces de está forma necesitamos editar la persona en SIU-Guaraní Gestión (operación '''Administrar Personas''' solapa '''Acceso al sistema'''), y vincularla con el usuario de SIU-Araí.<br />
<br />
[[Archivo:Campo_Usuario_Araí.png]]<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Gestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
= Vinculando SIU-Guaraní Autogestión con SIU-Araí =<br />
<br />
== Conectando con SIU-Araí Usuarios ==<br />
Se debería modificar el siguiente archivo <code><path_3w>/instalacion/servicios_web_config.php</code>, agregando lo siguiente dentro del array de <code>consumidos</code>:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
'consumidos' => [<br />
<br />
............<br />
<br />
'arai_usuarios' => [<br />
'tipo' => 'rest',<br />
'parametros' => [<br />
'base_uri' => '<url_arai_usuarios>/rest/',<br />
'auth' => ['<arai_usuarios_user>', '<arai_usuarios_pass>', 'basic'],<br />
'verify' => false<br />
]<br />
],<br />
<br />
............<br />
<br />
]<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><arai_usuarios_user></code> y <code><arai_usuarios_pass></code> son las credenciales de la API REST de SIU-Araí Usuarios.<br />
<br />
== Conectando con SIU-Araí Documentos ==<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Autogestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_3w>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_pass>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
<code><arai_documentos_user></code> y <code><arai_documentos_pass></code> son las credenciales de la API REST de SIU-Araí Documentos.<br />
<br />
== Configurando autenticación vía SAML entre SIU-Guaraní Autogestión y SIU-Araí ==<br />
<br />
Ir a la aplicación de Araí Usuarios y en la operación Aplicaciones dar de alta una nueva aplicación para 3w, para luego poder vincular los usuarios de tipos de docente con el autogestión y huarpe.<br />
Se debe ingresar la url de 3w y también el appUniqueId que luego se utilizará para los siguientes pasos.<br />
Un ejemplo podría ser como el siguiente:<br />
<br />
<br />
<br />
En la instalación de Araí Usuarios, que puede ser un docker o una instalación local, pararse sobre la carpeta del mismo y correr el siguiente comando:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/toba proyecto configurar_sp -p arai_usuarios --endpoint <url_3w>/acceso --acs <url_3w>/acceso?auth=saml --login <url_3w>/acceso?auth=saml --logout <url_3w>/acceso/logout --app <appUniqueId3w><br />
</syntaxhighlight><br />
<br />
'''Donde:'''<br />
<br />
<code><url_3w></code> es la url de autogestión a la cual queremos darle un acceso por el proveedor de indentidad SIU-Araí.<br />
<br />
<code><url_arai_idp></code> es la url del IDP de SIU-Araí.<br />
<br />
<code><appUniqueId3w></code> es el identificador que hemos utilizado en el paso anterior cuando dimos de alta la aplicación en el SIU-Araí Usuarios.<br />
<br />
<code><fingerprint></code> se genera ejecutando: <code>openssl x509 -noout -fingerprint -in "/path/to/idp.crt"</code>.<br />
<br />
Ir a <path_3w>/instalacion/saml y correr el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
cp settings_example.php settings.php<br />
</syntaxhighlight><br />
<br />
Abrir el archivo settings.php y dejar el siguiente contenido.<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<?php<br />
//settings y advanced_settings de la libreria de saml.<br />
$url_autogestion = '<url_3w>';<br />
$url_idp = '<url_arai_idp>';<br />
return $settings = array (<br />
// If 'strict' is True, then the PHP Toolkit will reject unsigned<br />
// or unencrypted messages if it expects them signed or encrypted<br />
// Also will reject the messages if not strictly follow the SAML<br />
// standard: Destination, NameId, Conditions ... are validated too.<br />
'strict' => false,<br />
<br />
// Enable debug mode (to print errors)<br />
'debug' => true,<br />
<br />
// Service Provider Data that we are deploying<br />
'sp' => array (<br />
// Identifier of the SP entity (must be a URI)<br />
'entityId' => $url_autogestion.'/acceso',<br />
// Specifies info about where and how the <AuthnResponse> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'assertionConsumerService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso?auth=saml',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',<br />
),<br />
// Specifies info about where and how the <Logout Response> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'singleLogoutService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso/logout',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Specifies constraints on the name identifier to be used to<br />
// represent the requested subject.<br />
// Take a look on lib/Saml2/Constants.php to see the NameIdFormat supported<br />
'nameIdFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',<br />
<br />
// Usually x509cert and privateKey of the SP are provided by files placed at<br />
// the certs folder. But we can also provide them with the following parameters<br />
// 'x509cert' => file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt'),<br />
// 'privateKey' > file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.pem'),<br />
),<br />
<br />
// Identity Provider Data that we want connect with our SP<br />
'idp' => array (<br />
// Identifier of the IdP entity (must be a URI)<br />
'entityId' => $url_idp.'/saml2/idp/metadata.php',<br />
// SSO endpoint info of the IdP. (Authentication Request protocol)<br />
'singleSignOnService' => array (<br />
// URL Target of the IdP where the SP will send the Authentication Request Message<br />
'url' => $url_idp.'/saml2/idp/SSOService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-POST binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// SLO endpoint info of the IdP.<br />
'singleLogoutService' => array (<br />
// URL Location of the IdP where the SP will send the SLO Request<br />
'url' => $url_idp.'/saml2/idp/SingleLogoutService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Public x509 certificate of the IdP<br />
// 'x509cert' => \siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt',<br />
/*<br />
*Instead of use the whole x509cert you can use a fingerprint<br />
*(openssl x509 -noout -fingerprint -in "idp.crt" to generate it)<br />
*/<br />
'certFingerprint' => '<fingerprint>',<br />
),<br />
<br />
//Advanced settings<br />
// Security settings<br />
'security' => array (<br />
<br />
/** signatures and encryptions offered */<br />
<br />
// Indicates that the nameID of the <samlp:logoutRequest> sent by this SP<br />
// will be encrypted.<br />
'nameIdEncrypted' => false,<br />
<br />
// Indicates whether the <samlp:AuthnRequest> messages sent by this SP<br />
// will be signed. [The Metadata of the SP will offer this info]<br />
'authnRequestsSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutRequest> messages sent by this SP<br />
// will be signed.<br />
'logoutRequestSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutResponse> messages sent by this SP<br />
// will be signed.<br />
'logoutResponseSigned' => false,<br />
<br />
/* Sign the Metadata<br />
False || True (use sp certs) || array (<br />
keyFileName => 'metadata.key',<br />
certFileName => 'metadata.crt'<br />
)<br />
*/<br />
'signMetadata' => false,<br />
<br />
<br />
/** signatures and encryptions required **/<br />
<br />
// Indicates a requirement for the <samlp:Response>, <samlp:LogoutRequest> and<br />
// <samlp:LogoutResponse> elements received by this SP to be signed.<br />
'wantMessagesSigned' => false,<br />
<br />
// Indicates a requirement for the <saml:Assertion> elements received by<br />
// this SP to be signed. [The Metadata of the SP will offer this info]<br />
'wantAssertionsSigned' => false,<br />
<br />
// Indicates a requirement for the NameID received by<br />
// this SP to be encrypted.<br />
'wantNameIdEncrypted' => false,<br />
),<br />
<br />
// Contact information template, it is recommended to suply a technical and support contacts<br />
'contactPerson' => array (<br />
'technical' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
'support' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
),<br />
<br />
// Organization information template, the info in en_US lang is recomended, add more if required<br />
'organization' => array (<br />
'en-US' => array(<br />
'name' => 'CAMBIAR',<br />
'displayname' => 'CAMBIAR',<br />
'url' => 'CAMBIAR.com'<br />
),<br />
),<br />
);<br />
<br />
</syntaxhighlight><br />
<br />
Una vez terminado esto ir al archivo <path_3w>/instalacion/login.php y configurar lo siguiente:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
'saml' => array(<br />
'activo' => true,<br />
'clase' => 'modelo\\autenticacion\\auth_saml',<br />
'parametros' => array(<br />
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings.php',<br />
'saml_uid' => 'userAccounts',// 'urn:oid:0.9.2342.19200300.100.1.1', //se matchea con local_uid<br />
'local_uid' => 'usuario', //puede ser 'persona'<br />
),<br />
),<br />
</syntaxhighlight><br />
<br />
Agregar en <code><path_gestion>/instalacion/instalacion.ini</code> de gestión estas variables según lo que se tiene en araí usuarios para cada aplicación, ej:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
appUniqueIdGestion = "<app_unique_id_gestion>"<br />
appUniqueId3w = "<app_unique_id_3w>"<br />
</syntaxhighlight><br />
<br />
'''Nota:'''<br />
<br />
<code><app_unique_id_gestion></code> y <code><app_unique_id_3w></code> son los '''appUniqueId''' de SIU-Guaraní Gestión y 3W respectivamente, se obtienen de SIU-Araí Usuarios menú de Aplicaciones.<br />
<br />
= Migrando usuarios de SIU-Guaraní a SIU-Araí =<br />
<br />
=== Exportación de usuarios ===<br />
Los usuarios actuales que poseemos en gestión los deberíamos tener disponibles en una cuenta de Araí.<br />
Para exportarlos deberíamos realizar lo siguiente:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani exportar_usuarios_arai<br />
</syntaxhighlight><br />
<br />
Este comando posee las siguiente opciones:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
-d => Path donde se guarda el archivo, por defecto -> $this->get_instalacion()->get_dir()/usersExportFiles/,<br />
-f => Nombre del archivo donde se exportaran los usuarios, por defecto -> usuarios_ . date('YmdHis'),<br />
-m => Nombre del responsable, por defecto -> toba,<br />
-e => Mails del responsable, por defecto -> toba<br />
</syntaxhighlight><br />
<br />
=== Importando usuarios a Araí ===<br />
<br />
Para importar las cuentas, el módulo '''SIU-Araí: Usuarios''' proporciona un comando de consola, que nos permite cargar la información de un conjunto de usuarios y/o cuentas, todo a partir de un archivo en formato '''json'''. Para ejecutar el comando primero será necesario cargar el entorno, para lo cual podemos ejecutar:<syntaxhighlight lang="bash" enclose="div"><br />
cd /ruta/siu-arai/usuarios<br />
. ./entorno_toba.env<br />
</syntaxhighlight><br />
<br />
Una vez cargado el entorno, es posible ejecutar la exportación de la siguiente forma:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
toba proyecto importar_usuarios_arai -f <path_completo_archivo.json> -m <comparador> [-t cuentas|personas] -p arai_usuarios<br />
</syntaxhighlight><br />
Este comando procesará un archivo en la ruta <code>/ruta/modulo/siu/instalacion/usersExportFiles/cuentas-xxx-arai.json</code> importando las definiciones de personas y/o cuentas, teniendo en cuenta las opciones de comparación. <br />
<br />
Al momento de importar, es necesario elegir como se comparan los datos de usuarios/personas a importar con los que pueden existir, mediante el argumento <code><comparador></code>. Este puede ser uno de los siguientes: <br />
* <code>0</code>: Género, tipo y número de documento<br />
* <code>1</code>: Tipo y número de documento<br />
* <code>2</code>: Email<br />
* <code>3</code>: atributo UniqueIdentifier<br />
* <code>4</code>: No intenta matchear, sólo agrega cuentas nuevas para las personas<br />
De forma opcional, se puede indicar con el argumento <code>-t</code> si se desea importar la información de <code>cuentas</code> o solamente la información de <code>personas</code>.<br />
<br />
Una vez realizada la importación, el proceso nos mostrará un resumen de las acciones realizadas, así como los posibles inconvenientes que pueden haber surgido al momento de importar y comparar los datos existentes.<br />
<br />
Para más información puede consultar la documentación de [[SIU-Arai/Administrar#Importar_cuentas_desde_una_aplicaci.C3.B3n_vinculada | Araí]]<br />
<br />
= Creando documentos de forma asincrónica en SIU-Araí (Novedad a partir de SIU-Guaraní 3.21.1) =<br />
<br />
A partir de SIU-Guaraní 3.21.1, todas las operaciones de cierre de actas almacenan las mismas en SIU-Araí, pero dicha comunicación entre sistemas es llevada a cabo se forma asincrónica. La ventaja se este mecanismo es que si SIU-Araí no se encuentra operativo o presenta alguna falla, SIU-Guaraní igualmente puede llevar a cabo el cierre de actas.<br />
<br />
Esto conlleva lo siguiente:<br />
<br />
=== Creando tabla donde se encolarán los documentos a crear en SIU-Araí ===<br />
<br />
Ejecutar el siguiente comando (por única vez) parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani crear_cola_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando creará la tabla '''arai_documentos_cola''' en la base de datos de SIU-Guaraní, la misma es utilizada para encolar los documentos que luego serán creados en SIU-Araí de forma asincrónica.<br />
<br />
=== Ejecutando worker para procesar los documentos encolados ===<br />
<br />
Ejecutar el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani sincronizar_documentos_arai<br />
</syntaxhighlight><br />
<br />
Dicho comando ejecutará un worker (proceso demonio) que desencola documentos de la tabla '''arai_documentos_cola''' e intentará crearlos en SIU-Araí. Debemos asegurarnos que dicho worker siempre se encuentre ejecutándose.<br />
<br />
=== Resincronizando documentos fallidos ===<br />
<br />
En SIU-Guaraní Gestión disponemos de la operación '''Sincronizar Masivamente Documentos con Araí'''. Todos los documentos que fallen al intentar crearse con el worker del punto anterior podrán ser resincronizados en esta operación. También posee información con las causas por las cuales falla la creación del documento en SIU-Araí.<br />
<br />
=== Notificando a los administradores ===<br />
<br />
En el caso de que haya fallado la creación de algún documento en SIU-Araí, se puede notificar a los administradores de SIU-Guaraní via email ejecutando el siguiente comando parados en el directorio raíz de SIU-Guaraní Gestión:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani notificar_administradores<br />
</syntaxhighlight><br />
<br />
Dicho comando le envía un email a todos los administradores de SIU-Guaraní, avisándoles que deben ingresar a la operación '''Sincronizar Masivamente Documentos con Araí''' para resincronizar los documentos fallidos.<br />
<br />
'''NOTA:''' Los administradores deben tener algún email asociado en la operación '''Administrar Personas''' para poder recibir dicha notificación.<br />
<br />
<br />
[[SIU-Guarani/version3.21.0/interfaces | < Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion_con_personalizaciones/gestion&diff=69430SIU-Guarani/version3.18.0/actualizacion con personalizaciones/gestion2020-11-05T14:16:40Z<p>Jmarino: </p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
* Se deben quitar las directivas '''echo''' dentro del archivo '''<path proyecto Guaraní>/entorno_toba.env'''.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.18.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''yarn''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
yarn --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#:Nota: Si ha modificado algún archivo de la carpeta vendor y obtiene algún mensaje como este: <br />
#:Updating siu-arai/documentos-cli (v1.0.2 => v1.0.3): <br />
#:The package has modified files: M tests/src/SIU/Queue/QueueTest.php Discard changes [y,n,v,d,s,?]? y <br />
#:Contestar y para descartar los cambios que se hayan realizado.<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##:Luego compilar los metadatos de Toba Usuarios:<br />
##:<source lang="bash" enclose="div"><br />
./toba proyecto compilar -i desarrollo -p toba_usuarios<br />
</source><br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
##Configurar la API REST<br />
##:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.18.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.18.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''yarn''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
yarn --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.19.0/actualizacion_con_personalizaciones/gestion&diff=71794SIU-Guarani/version3.19.0/actualizacion con personalizaciones/gestion2020-11-05T14:16:40Z<p>Jmarino: </p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.19.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.19.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
* Se deben quitar las directivas '''echo''' dentro del archivo '''<path proyecto Guaraní>/entorno_toba.env'''.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.19.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.19.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.19.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.19.0/Gestion/Refactorizacion|mas info]]<br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.19.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.19.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''yarn''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
yarn --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#:Nota: Si ha modificado algún archivo de la carpeta vendor y obtiene algún mensaje como este: <br />
#:Updating siu-arai/documentos-cli (v1.0.2 => v1.0.3): <br />
#:The package has modified files: M tests/src/SIU/Queue/QueueTest.php Discard changes [y,n,v,d,s,?]? y <br />
#:Contestar y para descartar los cambios que se hayan realizado.<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##:Luego compilar los metadatos de Toba Usuarios:<br />
##:<source lang="bash" enclose="div"><br />
./toba proyecto compilar -i desarrollo -p toba_usuarios<br />
</source><br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.19.0/personalizaciones/formas_de_menu| menu.ini]]<br />
##Configurar la API REST<br />
##:[[SIU-Guarani/version3.19.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.19.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.19.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.19.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.19.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.19.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.19.0/Gestion/Refactorizacion|mas info]]<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.19.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.19.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''yarn''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
yarn --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.19.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.19.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion/gestion&diff=69429SIU-Guarani/version3.18.0/actualizacion/gestion2020-11-05T13:52:59Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización del SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo sin personalizaciones ==<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Se deben quitar las directivas '''echo''' dentro del archivo '''<path proyecto Guaraní>/entorno_toba.env'''.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes a la institución que realiza la instalación<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
'''Los pasos a realizar son:'''<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Cambiar la versión del código a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
#:y verificar que no existan archivos con estado 'S'.<br />
#:'''Importante''': en versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en ese caso, ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''yarn''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
yarn --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#:Nota: Si ha modificado algún archivo de la carpeta vendor y obtiene algún mensaje como este: <br />
#:Updating siu-arai/documentos-cli (v1.0.2 => v1.0.3): <br />
#:The package has modified files: M tests/src/SIU/Queue/QueueTest.php Discard changes [y,n,v,d,s,?]? y <br />
#:Contestar y para descartar los cambios que se hayan realizado.<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso'''.<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#:Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#:Luego compilar los metadatos de Toba Usuarios:<br />
#:<source lang="bash" enclose="div"><br />
./toba proyecto compilar -i desarrollo -p toba_usuarios<br />
</source><br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Desde '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
#Configurar la API REST<br />
#:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.19.0/actualizacion/gestion&diff=71791SIU-Guarani/version3.19.0/actualizacion/gestion2020-11-05T13:52:59Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización del SIU-Guaraní Gestión a la versión 3.19.x en entorno de desarrollo sin personalizaciones ==<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.19.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Se deben quitar las directivas '''echo''' dentro del archivo '''<path proyecto Guaraní>/entorno_toba.env'''.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes a la institución que realiza la instalación<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.19.x''': por la versión a la que se quiere actualizar<br />
<br />
'''Los pasos a realizar son:'''<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.19.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.19.0/Gestion/Refactorizacion|mas info]]<br />
#Cambiar la versión del código a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.19.x<br />
</source><br />
#:Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
#:y verificar que no existan archivos con estado 'S'.<br />
#:'''Importante''': en versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en ese caso, ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.19.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''yarn''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
yarn --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#:Nota: Si ha modificado algún archivo de la carpeta vendor y obtiene algún mensaje como este: <br />
#:Updating siu-arai/documentos-cli (v1.0.2 => v1.0.3): <br />
#:The package has modified files: M tests/src/SIU/Queue/QueueTest.php Discard changes [y,n,v,d,s,?]? y <br />
#:Contestar y para descartar los cambios que se hayan realizado.<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso'''.<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#:Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#:Luego compilar los metadatos de Toba Usuarios:<br />
#:<source lang="bash" enclose="div"><br />
./toba proyecto compilar -i desarrollo -p toba_usuarios<br />
</source><br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Desde '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.19.0/personalizaciones/formas_de_menu| menu.ini]]<br />
#Configurar la API REST<br />
#:[[SIU-Guarani/version3.19.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
<br />
[[SIU-Guarani/Version3.19.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion/gestion&diff=69428SIU-Guarani/version3.18.0/actualizacion/gestion2020-11-05T13:50:17Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización del SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo sin personalizaciones ==<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Se deben quitar las directivas '''echo''' dentro del archivo '''<path proyecto Guaraní>/entorno_toba.env'''.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes a la institución que realiza la instalación<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
'''Los pasos a realizar son:'''<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Cambiar la versión del código a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
#:y verificar que no existan archivos con estado 'S'.<br />
#:'''Importante''': en versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en ese caso, ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''yarn''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
yarn --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#:Nota: Si ha modificado algún archivo de la carpeta vendor y obtiene algún mensaje como este: Updating siu-arai/documentos-cli (v1.0.2 => v1.0.3): The package has modified files: M tests/src/SIU/Queue/QueueTest.php Discard changes [y,n,v,d,s,?]? y Contestar y para descartar los cambios que se hayan realizado.<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso'''.<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#:Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#:Luego compilar los metadatos de Toba Usuarios:<br />
#:<source lang="bash" enclose="div"><br />
./toba proyecto compilar -i desarrollo -p toba_usuarios<br />
</source><br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Desde '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
#Configurar la API REST<br />
#:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/instalacion_desde_cero/instalacion/gestion/linux&diff=69427SIU-Guarani/version3.18.0/instalacion desde cero/instalacion/gestion/linux2020-11-05T13:46:19Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
<br />
= Instalación desde cero de SIU-Guaraní Gestión 3.18 en entorno de Desarrollo =<br />
<br />
{| class="simple" border="1"<br />
! Solicitar en forma previa, mediante una solicitud en el Gestor de Solicitudes (GdS), una carpeta en el repositorio Colab para la institución.<br />
|}<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación<br />
** 3.18.x: por la versión que se va a instalar<br />
<br />
== Pasos para la instalación ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]]<br />
#Crear la carpeta del proyecto en la ubicación deseada, por ejemplo: <br />
#:<source lang="bash" enclose="div">mkdir /usr/local/proyectos/guarani</source><br />
#:'''Nota''': en lo sucesivo denominaremos esta carpeta como '''<path proyecto Guaraní>'''.<br />
#Bajar el proyecto del SVN desde la URL correspondiente en Colab:<br />
#:<source lang="bash" enclose="div"><br />
svn checkout https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x <path proyecto Guaraní><br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Nota''': Si ha modificado algún archivo de la carpeta vendor y obtiene algún mensaje como este:<br />
#:Updating siu-arai/documentos-cli (v1.0.2 => v1.0.3): <br />
#:The package has modified files:<br />
#:M tests/src/SIU/Queue/QueueTest.php<br />
#:Discard changes [y,n,v,d,s,?]? y<br />
#:Contestar y para descartar los cambios que se hayan realizado.<br />
<br />
#Instalar el framework SIU-Toba, para ello, posicionados en '''<path proyecto Guaraní>/bin''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
export TOBA_INSTANCIA=desarrollo<br />
export TOBA_INSTALACION_DIR=<path proyecto Guaraní>/instalacion<br />
./toba instalacion instalar<br />
</source><br />
#:y completar:<br />
#:<source lang="bash" enclose="div"><br />
Nombre del Alias (por defecto "toba"): <alias de los recursos navegables de Toba. Sugerencia: toba_guarani3><br />
Por favor, ingrese su número de desarrollador (ENTER utilizará 0): <ID personal enviado por correo electrónico><br />
Se trata de una instalacion de producción? (Si o No) (s/n): n<br />
Nombre de la instalación (ej: Andromeda): <ej: guarani3><br />
PostgreSQL - Ubicación (ENTER utilizará localhost): <ip servidor Postgres><br />
PostgreSQL - Puerto (ENTER utilizará: 5432): <puerto servidor Postgres><br />
PostgreSQL - Usuario (ENTER utilizará postgres): <usuario servidor Postgres><br />
PostgreSQL - Clave (ENTER para usar sin clave): <clave servidor Postgres><br />
PostgreSQL - Base de datos (ENTER utilizará toba_2_7): <nombre de la base, sugerencia: guarani3><br />
Nombre del schema a usar (ENTER utilizará desarrollo): <usar el por defecto (desarrollo)><br />
Toba - Clave (usuario "toba"): <clave del superusuario toba. No usar un password débil en producción><br />
</source><br />
#:Luego compilar los metadatos de Toba Usuarios:<br />
#:<source lang="bash" enclose="div"><br />
<path proyecto Guaraní>bin/toba proyecto compilar -i desarrollo -p toba_usuarios<br />
</source><br />
#Darle permisos a las siguientes carpetas '''de manera recursiva''' para que el usuario con el que se ejecuta Apache pueda escribir:<br />
#*<path proyecto Guaraní>/www<br />
#*<path proyecto Guaraní>/temp<br />
#*<path proyecto Guaraní>/instalacion<br />
#*<path proyecto Guaraní>/vendor/siu-toba/framework/www<br />
#*<path proyecto Guaraní>/vendor/siu-toba/framework/temp<br />
#:Por ejemplo, en ambientes Debian, donde el usuario y grupo Apache es ''www-data'', debería ejecutarse:<br />
#:<source lang="bash" enclose="div"><br />
chown -R $(whoami):www-data www temp instalacion vendor/siu-toba/framework/www vendor/siu-toba/framework/temp<br />
chmod 775 -R www temp instalacion vendor/siu-toba/framework/www vendor/siu-toba/framework/temp<br />
</source><br />
#Crear un link simbólico a toba.conf, e indicarle Apache que recargue los archivos de configuración. En lugar de hacerlo como indica la consola de instalación, sugerimos:<br />
#:<source lang="bash" enclose="div"><br />
ln -s <path proyecto Guaraní>/instalacion/toba.conf /etc/apache2/sites-available/gestion.conf<br />
a2ensite gestion.conf<br />
service apache2 reload<br />
</source><br />
#Agregar los parámetros de localización de '''fop''' al final del archivo de inicialización de la instalación Toba ('''<path proyecto Guaraní>/instalacion/instalacion.ini'''):<br />
#:<source lang="ini" enclose="div"><br />
[xslfo]<br />
fop=<path proyecto Guaraní>/php/3ros/fop/fop</source><br />
#:'''Nota:''' verificar que la ruta al archivo 'fop' sea la correcta de acuerdo al path de la instalación.<br />
#Configurar de qué manera se desea ver el menú de la aplicación. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní)''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
#Para cargar el proyecto, dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani cargar -d <path proyecto Guaraní><br />
</source><br />
#:'''Nota:''' ante la pregunta "¿Desea agregar el alias de apache al archivo toba.conf? (Si o No)" responder '''s'''.<br />
#Reiniciar Apache:<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Configurar la API REST<br />
#:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Para crear la base de datos de negocio, dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div">./guarani instalar</source><br />
#:'''Nota''': en caso de que se quieran cargar los datos de prueba se deberá agregar el modificador '''-j''' a la sentencia anterior.<br />
#Para activar el esquema de auditoría, dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div">./guarani crear_auditoria -f guarani</source><br />
#Programar una tarea que levante la utilidad PHP-Java Bridge, necesaria para el motor de reportes Jasper Reports. El comando para activarlo es:<br />
#:<source lang="bash" enclose="div">java -jar <path proyecto Guaraní>/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081</source><br />
#:Por ejemplo, en un ambiente Debian, se puede editar como superusuario el archivo /etc/rc.local, y agregar la sentencia anterior.<br />
#Para ejecutar el proyecto navegar hacia la URL definida en ''toba.conf'', por defecto:<br />
#:<source lang="php" enclose="div">http://localhost/guarani/3.18</source><br />
#:El usuario-clave para el primer acceso es: '''toba''', '''toba'''. Se recomienda luego del primer acceso modificar la clave.<br />
#Para editar el proyecto, navegar hacia la URL definida en ''toba.conf'', por defecto:<br />
#:<source lang="php" enclose="div">http://localhost/toba_editor/3.0</source><br />
#:El usuario-clave para el primer acceso es: toba-<clave ingresada durante la ejecución del comando instalar>.<br />
<br />
== Configuración de cron o tarea programada para el envío de emails ==<br />
Un cron o tarea programada es un programa que permite ejecutar automáticamente comandos o scripts (grupos de comandos) a una hora o fecha específica. Es usado normalmente para comandos de tareas administrativas, como respaldos, pero puede ser usado para ejecutar cualquier cosa. Es un demonio que ejecuta programas agendados.<br />
*:Con un sistema '''GNU/Linux''':<br />
#En una consola ejecutar el comando:<source lang="php" enclose="div">crontab -e </source><br />
#Agregar la siguiente linea:<source lang="php" enclose="div">*/10 * * * * <path proyecto Guaraní>/bin/guarani enviar_emails_notificador</source>(ejecutará el comando cada 10 minutos) Para otros ejemplos consultar https://geekytheory.com/programar-tareas-en-linux-usando-crontab/<br />
#Guardar y salir del editor<br />
<br><br />
*:Con un sistema '''Windows''':<br />
#Crear un archivo .bat (ej: C:\guarani_enviar_emails_bat.bat) con el siguiente contenido:<source lang="php" enclose="div"><br />
@echo off<br />
<path proyecto Guaraní>\bin\guarani enviar_emails_notificador<br />
exit<br />
</source><br />
#Ir a Inicio, buscar y ejecutar el programa "Programador de tareas".<br />
#Ir a Acciones -> Crear tarea, en la solapa "General" poner un Nombre a la tarea (ej: guarani_cron_enviar_emails), una descripción (opcional) y tildar la opción "Oculta".<br />
#En la solapa "Acciones" crear una nueva acción, donde dice "Programa o Script" seleccionar el path hasta el .bat (ej: C:\guarani_enviar_emails_bat.bat).<br />
#En la solapa "Desencadenadores" crear un nuevo desencadenador, en inicio poner una hora posterior a la actual (ej: 10 minutos mas tarde) en Configuración avanzada poner Repetir cada 10 minutos repetir indefinidamente.<br />
#Aceptar para crear la tarea.<br />
<br />
(Para más detalles del '''envío de emails''' consulte la documentación del [[SIU-Guarani/Version3.18.0/notificador|notificador]])<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/personalizaciones/reporte&diff=66253SIU-Guarani/Version3.18.0/personalizaciones/reporte2020-07-06T15:38:09Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">{{TOClimit|4}}</span><br />
== Personalizar un reporte ==<br />
<br />
=== Crear un nuevo reporte ===<br />
Si lo que se desea es generar un nuevo reporte en el sistema, se recomienda "''clonar''" uno existente, ya generado por el SIU que contenga la misma estructura que el que se desea desarrollar. Básicamente, que sea lo mas parecido posible al reporte deseado. Entonces:<br><br />
<br />
==== Generar el ítem ====<br />
Crear el nuevo ítem con el nombre del reporte en la carpeta deseada (correspondiente a la ubicación en el menú del sistema).<br><br />
<br />
'''RECOMENDACIONES:'''<br><br />
<br />
Para las propiedades del item creado, considerar lo siguiente:<br />
*'''Nombre:''' Anexar " - ''XXX''" (donde '''''XXX''''' es el '''nodo''' que le otorgó el SIU a la institución. Si quisieran diferenciar las personalizaciones entre las unidades académicas les podrían agregar -YYY donde YYY sería el código de unidad académica , EJ: uba-fcen). Si bien se fija como estándar que los objetos hijos del ítem generados para este reporte y los archivos asociados a los mismos, contengan el sufijo "_''XXX''" se recomienda anexar el sufijo explicitado para identificarlo fácilmente o tener alguna referencia mas ante algún pedido de soporte. Aunque desde ya, no es obligatorio realizar esto (Si para los estándares mencionados previamente).<br />
*'''Carpeta''': Ubicarlo en alguna carpeta relacionada a los conceptos involucrados directamente en el reporte. Recordar que esta ubicación, es la que luego se otorgara en el Menú del sistema.<br />
*'''Punto de Montaje''': '''OBLIGATORIO''' fijar como punto de montaje para el item "''personalizacion''"<br />
*'''Modelo Página''': Página SIU-Guarani. La página estandar del proyecto que contiene los recursos basicos del mismo. Ésto facilita la implementación de futuras personalizaciones (si se desea, claro está) a todas las operaciones del sistema.<br />
*'''Imagen''': ''Proyecto - Reporte.png'' . El icono estándar que identifica de los reportes en el sistema.<br />
<br />
==== Clonar los componentes ====<br />
Ubicar el ''CI'' (Controlador de negocio) de la operación de la cual se quiera clonar el reporte. Normalmente, tiene el mismo nombre que el Item padre, y es el que contiene todas las pantallas y objetos (cuadros, filtros, etc...) que componen la operación. Una vez seleccionado para edicion: [[File:G3_editar.png]], se debe proceder con el clonado del mismo (seleccionando [[File:G3_clonar.png]] en la esquina superior derecha) marcando:<br />
*'''Anexo nombre''': '''OBLIGATORIO''' "''XXX''_" (donde ''XXX'' corresponde al nodo de la Institución como fue indicado previamente). De esta forma los componentes se crearan con ese prefijo y podrán ser fácilmente identificables. De todas formas, luego habrá que renombrarlos para ponerlo como sufijo en lugar de prefijo como indica el estándar. <br />
*'''Clonar Dependencias''': SI. De esta forma, se clonan todos los subcomponentes del mismo evitando tener que clonar uno a uno mas tarde. En caso que no se desee utilizar en la operación alguno de los componentes hijos, se elimina posteriormente.<br />
*'''Clonar Subclases''': NO. Es preferible generar solo las clases que se utilizaran. Ademas, estas clases contienen metodos que seran heredados por las nuevas generadas por lo que no es necesario copiar los mismos en este paso.<br />
*'''Asignar a un componente''': '''OBLIGATORIO''' SI. Asignárselo al ítem generado en el paso anterior.<br />
<br />
==== Modificaciones post-clonado ====<br />
Luego de clonados los componentes de la operación, se deben editar uno a uno cambiando las propiedades de los mismos según lo deseado (Titulo, ancho de los componentes, pantallas etiquetas, etc...).<br><br />
Es imprescindible, teniendo en cuenta los pasos realizados anteriormente, acomodar los nombres de los componentes siguiendo los estándares: Especificar como '''sufijo''' "'''_XXX'''"y no como prefijo de los mismos, dado que Toba nomencla de esa forma los objetos al clonarlos.<br />
<br />
==== Agregando clases propias ====<br />
Al clonar los componentes de la operación, el comportamiento de los mismos queda definido por las mismas clases (''archivos PHP'') que las del componente origen clonado. Es normal, querer definir clases propias para modificar el comportamiento original o agregar nuevos comportamientos para el nuevo reporte generado. Ésto también es necesario, en caso que el reporte difiera del original al agregar o eliminar una columna del mismo o simplemente porque se desea mostrar otros datos diferentes al original.<br />
<br />
Para generar clases propias que definan el nuevo comportamiento de la operación realizar lo siguiente:<br />
<br />
# Generar la estructura de directorios en <tt><path proyecto Guaraní>/personalizacion/php/operaciones/...</tt>, concordante con el orden del menú del sistema o siguiendo módulo-submódulo. Se recomienda mantener el estándar de nombres fijado por el ''SIU'' y no generar cualquier estructura o nombre de directorio. Ésto es primordial para mantener el orden de las personalizaciones generadas y poder encontrar fácilmente los nuevos archivos creados. <br />
# En el '''Editor Toba''' seleccionar para el componente:<br />
#*'''Punto de Montaje''': ''personalizacion'', que indica que la carpeta base donde ubicar los archivos del componente será <tt><path proyecto Guaraní>/personalizacion</tt> y que constituye efectivamente un componente personalizado.<br />
#*'''Subclase - Archivo''': Dentro de la estructura de carpetas creada en el punto anterior, generar el archivo cuyo nombre tenga la forma: "'''<Tipo_Componente>_<Nombre_Representativo>_<Anexo_institucion>.php'''". <br><br />
#**'''<Tipo_Componente>''' representa el tipo del componente actual. Ej '''ci''','''form''','''cuadro''','''filtro''', etc...<br><br />
#**'''<Nombre_Representativo>''' especifica un nombre acorde a la operacion/comportamiento en cuestión. Ej '''reporte_actas''','''reporte_alumnos_aprobados''','''alta_tramites''', etc...<br><br />
#**'''<Anexo_institucion>''' = ''XXX'', que representa el nodo de la institución otorgado por el SIU como lo especificado previamente.<br><br />
#*:De esta forma, el nombre final del componente quedará del tipo: '''ci_reporte_inscripcion_uba-fcen.php''', '''formulario_datos_uba-fcen.php''', '''cuadro_reporte_inscripcion_uba-fcen.php'''....<br />
#*'''Subclase''': Nombre de la clase. El mismo que el nombre del archivo.<br />
#Una vez realizados los pasos anteriores, llega el momento de generar código para definir el comportamiento de la nueva operación. Dado que el código de Guaraní es abierto, por lo que se puede (y de hecho se recomienda) mirar el código de las operaciones ya desarrolladas por el SIU, se deja a criterio de la institución la implementación del mismo teniendo en cuenta las siguientes recomendaciones: <br />
#*La nueva clase generada, dependiendo del tipo de componente en cuestión, debe heredar de una de las clases vacías incluidas en <tt><path proyecto Guaraní>/personalizacion/php/extension_toba/componentes/</tt>. Estas clases definen el comportamiento estándar de los objetos. Observar que cada una de ellas heredan de las clases definidas por Guaraní para definir el comportamiento de objetos, que a la vez heredan de las clases estándares proporcionadas por el framework Toba.<br />
#*:Se pide esto por dos motivos:<br />
#**Para que el objeto obtenga un comportamiento por defecto, permitiendo redefinir el método deseado para generar un comportamiento particular. <br />
#**Permite que si a futuro se desea definir un nuevo comportamiento para todos los objetos de este tipo, el mismo sea definido en la clase "''guarani_pers_...''" especifica.<br />
#*Observar los métodos heredados de la misma y redefinir '''solamente''' los que se desee cambiar el comportamiento. Por ejemplo, los métodos que buscan y asignan datos a un cuadro, los que definen comportamiento de eventos, etc...<br />
#:Por ejemplo, una clase propia llamada "''ci_reporte_gastos_unca''" que redefine el comportamiento de un ''ci'' seria la siguiente:<br />
#:<source lang="php" enclose="div"><br />
<?php<br />
class ci_reporte_gastos_U802 extends ci_reporte<br />
{<br />
<br />
protected $s__datos;<br />
<br />
function get_datos()<br />
{<br />
return $this->s__datos;<br />
}<br />
<br />
}<br />
?><br />
</source><br />
Se recomienda leer también la sección siguiente para ver un ejemplo concreto y tener un mayor conocimiento de que código incluir en cada archivo, dónde generar los mismos, etc...<br />
<br />
=== Modificar un reporte existente ===<br />
<br />
Veamos ahora un ejemplo sencillo de modificación de un reporte existente. La idea es tomar un reporte simple y agregar una nueva columna, para demostrar prácticamente todos los cambios que involucra.<br />
<br />
El reporte elegido es el ''"Reporte de Certificados"'' ubicado en: ''Propuestas Formativas -> Reportes -> Certificados''. Supongamos que se quiere agregar la columna "''duracion_en_meses''" de la tabla "''sga_certificados''" que representa la validez en meses del certificado en cuestión. Veamos entonces, los pasos a seguir:<br />
<br />
==== Identificar en el editor Toba la operación a personalizar ====<br />
<br />
Abriendo el '''Editor Toba''' para el proyecto "''guarani''", ubicamos la operación existente a extender. En este caso, expandir la carpeta "Propuestas Fromativas" -> "Reportes" -> "Certificados". Al expandir el ítem de la operación vemos que la misma esta compuesta por un ''CI'' (Controlador de Interfaz) y 2 objetos: un filtro y un cuadro. <br />
Llega el momento entonces, de analizar los cambios que se quieren implementar, para saber cual de los objetos de la operación hay que redefinir.<br />
<br />
==== Aplicar cambios en objetos correspondientes ====<br />
<br />
La forma tradicional de realizar cambios en los objetos del sistema es: ubicar el objeto a editar, cambiar el "Punto de Montaje" a personalización, editar las propiedades adecuadas del objeto y crear la clase que contendrá el comportamiento deseado dentro de una estructura de directorios similar a la original en la carpeta <tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt> que extienda de la clase original que utilizaba el objeto (opcional, en caso de que no se utilice el comportamiento estándar de los objetos de este tipo).<br />
<br />
En este caso, tenemos que hacer 3 cambios:<br />
# Modificar el cuadro para agregarle la columna extra.<br />
# Modificar el controlador para utilizar una clase propia donde se modifique la consulta a utilizar para usar una nueva que incluya la columna a agregar.<br />
# Modificar la clase de consulta PHP para personalizarla y agregar una nueva que extienda de la existente con la consulta propia que devuelva además de los valores que traía el nuevo valor de la columna a agregar que luego sera invocada desde el controlador.<br />
<br />
Entonces, se debe:<br />
<br />
===== Modificar el cuadro para agregar la nueva columna =====<br />
Editar el objeto ''cuadro'' de esta operación presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. '''Esto debe realizarse siempre para todos los objetos que se personalicen, dado que permite la exportación de los cambios realizados a la carpeta propia "''personalizacion''".''' En este caso, esto ya estaba configurado dado que extendía de la clase genérica "''guarani_pers_ei_cuadro''" que contiene el comportamiento genérico para todos los cuadros del sistema.<br />
*'''Subclase archivo''': En este caso, no se va a personalizar el cuadro, dado que solo se agregara la columna en el objeto y luego se cambiara la consulta desde el CI, por lo que quedara apuntando a la clase previamente mencionada. Sin embargo, tener en cuenta que si se necesita modificar el comportamiento del mismo, se debera crear una nueva clase que extienda de la original en una estructura de directorios similar dentro de <tt><path proyecto Guaraní>/personalizacion</tt>.<br />
<br />
En la solapa "Columnas", agregar la nueva columna "''duracion_en_meses''" con los siguientes datos:<br />
*'''Columna:''' "duracion_en_meses"<br />
*'''Titulo:''' Validez <br />
<br />
Ninguna propiedad mas se necesita para este ejemplo, por lo que al final la edición de las propiedades del cuadro, presionar el botón "Guardar".<br />
<br />
===== Modificar el CI =====<br />
Editar el objeto CI, llamado normalmente igual que la operación, en este caso: ''Certificados'' presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Subclase archivo''': La idea es crear una clase dentro de la misma estructura de carpetas que la original pero en otro path (<tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt>), que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''operaciones/propuestas/certificados/ci_rep_certificados_XXX.php'' (donde ''XXX'' es el nodo de la institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
*'''Subclase''': El mismo nombre que el archivo: "''ci_rep_certificados_XXX''"<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
#php<br />
<?php<br />
class ci_rep_certificados_XXX extends ci_rep_certificados<br />
{<br />
<br />
// Se redefine la funcion que obtiene los datos a traves de una consulta propia<br />
function get_datos($filtro)<br />
{<br />
return toba::consulta_php('co_certificados')->get_listado_validez($filtro);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
<br />
===== <div id="modificar_la_clase_de_consulta">Modificar la clase de consulta</div> ===== <br />
Para consultar a la BD de negocios del sistema, SIU-Guarani cuenta con un conjunto de clases (aproximadamente una por modulo-submodulo) definidas en la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba'''. Las clases de consultas definidas allí, son accesibles a través del framework desde cualquier clase a partir del llamado:<br />
<source lang="php" enclose="div"><br />
toba::consulta_php('co_XXXXXXXX')<br />
</source><br />
<br />
En este caso, se debe redefinir la clase de consulta "''co_certificados''" de la siguiente forma:<br />
<br />
Ir a la la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba''' y seleccionar para editar la clase de Consulta "''co_certificados''" presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Clase''': "''co_certificados_XXX''"<br />
*'''Archivo''': La idea es crear una clase dentro del path (<tt><path proyecto Guaraní>/personalizacion/php/nucleo</tt>) que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''nucleo/propuestas/certificados/co_certificados_XXX.php'' (donde ''XXX'' es el nodo de institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
<?php<br />
class co_certificados_XXX extends co_certificados<br />
{<br />
<br />
// Se agrega el siguiente metodo como una nueva consulta a la BD para traer ademas de los datos basicos, el campo 'duracion_en_meses'<br />
function get_listado_validez($where)<br />
{<br />
if ($where) {<br />
$where = 'AND ' . $where;<br />
}<br />
<br />
$sql = "SELECT sga_certificados.certificado, <br />
sga_certificados.nombre, <br />
sga_certificados.nombre_femenino, <br />
sga_certificados_tipos.certificado_tipo as certificado_tipo_codigo,<br />
sga_certificados_tipos.descripcion as certificado_tipo,<br />
sga_titulos_niveles.descripcion as titulo_nivel,<br />
sga_certificados.disciplina,<br />
sga_certificados.titulo_araucano,<br />
".guarani_sql::get_case('sga_certificados','estado').",<br />
sga_certificados.codigo,<br />
sga_g3entidades.entidad,<br />
sga_certificados.duracion_en_meses<br />
FROM sga_certificados<br />
LEFT JOIN sga_titulos_niveles ON sga_certificados.titulo_nivel = sga_titulos_niveles.titulo_nivel<br />
LEFT JOIN sga_g3entidades ON sga_certificados.entidad = sga_g3entidades.entidad,<br />
sga_certificados_tipos<br />
WHERE sga_certificados.certificado_tipo = sga_certificados_tipos.certificado_tipo<br />
$where<br />
ORDER BY codigo,<br />
certificado_tipo,<br />
titulo_nivel<br />
"; <br />
return guarani_db::consultar($sql);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
==== Regenerar el autoload ====<br />
Se deben incorporar las clases recientemente generadas en el archivo <tt><path proyecto Guaraní>/personalizacion/php/guarani_autoload_clases_nuevas.php</tt> para que se puedan acceder desde otras clases si fuera necesario. Para esto, ejecutar el comando: <br />
<source lang="php" enclose="div"><br />
guarani pers_autoload<br />
</source></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.19.0/personalizaciones/reporte&diff=71991SIU-Guarani/Version3.19.0/personalizaciones/reporte2020-07-06T15:38:09Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">{{TOClimit|4}}</span><br />
== Personalizar un reporte ==<br />
<br />
=== Crear un nuevo reporte ===<br />
Si lo que se desea es generar un nuevo reporte en el sistema, se recomienda "''clonar''" uno existente, ya generado por el SIU que contenga la misma estructura que el que se desea desarrollar. Básicamente, que sea lo mas parecido posible al reporte deseado. Entonces:<br><br />
<br />
==== Generar el ítem ====<br />
Crear el nuevo ítem con el nombre del reporte en la carpeta deseada (correspondiente a la ubicación en el menú del sistema).<br><br />
<br />
'''RECOMENDACIONES:'''<br><br />
<br />
Para las propiedades del item creado, considerar lo siguiente:<br />
*'''Nombre:''' Anexar " - ''XXX''" (donde '''''XXX''''' es el '''nodo''' que le otorgó el SIU a la institución. Si quisieran diferenciar las personalizaciones entre las unidades académicas les podrían agregar -YYY donde YYY sería el código de unidad académica , EJ: uba-fcen). Si bien se fija como estándar que los objetos hijos del ítem generados para este reporte y los archivos asociados a los mismos, contengan el sufijo "_''XXX''" se recomienda anexar el sufijo explicitado para identificarlo fácilmente o tener alguna referencia mas ante algún pedido de soporte. Aunque desde ya, no es obligatorio realizar esto (Si para los estándares mencionados previamente).<br />
*'''Carpeta''': Ubicarlo en alguna carpeta relacionada a los conceptos involucrados directamente en el reporte. Recordar que esta ubicación, es la que luego se otorgara en el Menú del sistema.<br />
*'''Punto de Montaje''': '''OBLIGATORIO''' fijar como punto de montaje para el item "''personalizacion''"<br />
*'''Modelo Página''': Página SIU-Guarani. La página estandar del proyecto que contiene los recursos basicos del mismo. Ésto facilita la implementación de futuras personalizaciones (si se desea, claro está) a todas las operaciones del sistema.<br />
*'''Imagen''': ''Proyecto - Reporte.png'' . El icono estándar que identifica de los reportes en el sistema.<br />
<br />
==== Clonar los componentes ====<br />
Ubicar el ''CI'' (Controlador de negocio) de la operación de la cual se quiera clonar el reporte. Normalmente, tiene el mismo nombre que el Item padre, y es el que contiene todas las pantallas y objetos (cuadros, filtros, etc...) que componen la operación. Una vez seleccionado para edicion: [[File:G3_editar.png]], se debe proceder con el clonado del mismo (seleccionando [[File:G3_clonar.png]] en la esquina superior derecha) marcando:<br />
*'''Anexo nombre''': '''OBLIGATORIO''' "''XXX''_" (donde ''XXX'' corresponde al nodo de la Institución como fue indicado previamente). De esta forma los componentes se crearan con ese prefijo y podrán ser fácilmente identificables. De todas formas, luego habrá que renombrarlos para ponerlo como sufijo en lugar de prefijo como indica el estándar. <br />
*'''Clonar Dependencias''': SI. De esta forma, se clonan todos los subcomponentes del mismo evitando tener que clonar uno a uno mas tarde. En caso que no se desee utilizar en la operación alguno de los componentes hijos, se elimina posteriormente.<br />
*'''Clonar Subclases''': NO. Es preferible generar solo las clases que se utilizaran. Ademas, estas clases contienen metodos que seran heredados por las nuevas generadas por lo que no es necesario copiar los mismos en este paso.<br />
*'''Asignar a un componente''': '''OBLIGATORIO''' SI. Asignárselo al ítem generado en el paso anterior.<br />
<br />
==== Modificaciones post-clonado ====<br />
Luego de clonados los componentes de la operación, se deben editar uno a uno cambiando las propiedades de los mismos según lo deseado (Titulo, ancho de los componentes, pantallas etiquetas, etc...).<br><br />
Es imprescindible, teniendo en cuenta los pasos realizados anteriormente, acomodar los nombres de los componentes siguiendo los estándares: Especificar como '''sufijo''' "'''_XXX'''"y no como prefijo de los mismos, dado que Toba nomencla de esa forma los objetos al clonarlos.<br />
<br />
==== Agregando clases propias ====<br />
Al clonar los componentes de la operación, el comportamiento de los mismos queda definido por las mismas clases (''archivos PHP'') que las del componente origen clonado. Es normal, querer definir clases propias para modificar el comportamiento original o agregar nuevos comportamientos para el nuevo reporte generado. Ésto también es necesario, en caso que el reporte difiera del original al agregar o eliminar una columna del mismo o simplemente porque se desea mostrar otros datos diferentes al original.<br />
<br />
Para generar clases propias que definan el nuevo comportamiento de la operación realizar lo siguiente:<br />
<br />
# Generar la estructura de directorios en <tt><path proyecto Guaraní>/personalizacion/php/operaciones/...</tt>, concordante con el orden del menú del sistema o siguiendo módulo-submódulo. Se recomienda mantener el estándar de nombres fijado por el ''SIU'' y no generar cualquier estructura o nombre de directorio. Ésto es primordial para mantener el orden de las personalizaciones generadas y poder encontrar fácilmente los nuevos archivos creados. <br />
# En el '''Editor Toba''' seleccionar para el componente:<br />
#*'''Punto de Montaje''': ''personalizacion'', que indica que la carpeta base donde ubicar los archivos del componente será <tt><path proyecto Guaraní>/personalizacion</tt> y que constituye efectivamente un componente personalizado.<br />
#*'''Subclase - Archivo''': Dentro de la estructura de carpetas creada en el punto anterior, generar el archivo cuyo nombre tenga la forma: "'''<Tipo_Componente>_<Nombre_Representativo>_<Anexo_institucion>.php'''". <br><br />
#**'''<Tipo_Componente>''' representa el tipo del componente actual. Ej '''ci''','''form''','''cuadro''','''filtro''', etc...<br><br />
#**'''<Nombre_Representativo>''' especifica un nombre acorde a la operacion/comportamiento en cuestión. Ej '''reporte_actas''','''reporte_alumnos_aprobados''','''alta_tramites''', etc...<br><br />
#**'''<Anexo_institucion>''' = ''XXX'', que representa el nodo de la institución otorgado por el SIU como lo especificado previamente.<br><br />
#*:De esta forma, el nombre final del componente quedará del tipo: '''ci_reporte_inscripcion_uba-fcen.php''', '''formulario_datos_uba-fcen.php''', '''cuadro_reporte_inscripcion_uba-fcen.php'''....<br />
#*'''Subclase''': Nombre de la clase. El mismo que el nombre del archivo.<br />
#Una vez realizados los pasos anteriores, llega el momento de generar código para definir el comportamiento de la nueva operación. Dado que el código de Guaraní es abierto, por lo que se puede (y de hecho se recomienda) mirar el código de las operaciones ya desarrolladas por el SIU, se deja a criterio de la institución la implementación del mismo teniendo en cuenta las siguientes recomendaciones: <br />
#*La nueva clase generada, dependiendo del tipo de componente en cuestión, debe heredar de una de las clases vacías incluidas en <tt><path proyecto Guaraní>/personalizacion/php/extension_toba/componentes/</tt>. Estas clases definen el comportamiento estándar de los objetos. Observar que cada una de ellas heredan de las clases definidas por Guaraní para definir el comportamiento de objetos, que a la vez heredan de las clases estándares proporcionadas por el framework Toba.<br />
#*:Se pide esto por dos motivos:<br />
#**Para que el objeto obtenga un comportamiento por defecto, permitiendo redefinir el método deseado para generar un comportamiento particular. <br />
#**Permite que si a futuro se desea definir un nuevo comportamiento para todos los objetos de este tipo, el mismo sea definido en la clase "''guarani_pers_...''" especifica.<br />
#*Observar los métodos heredados de la misma y redefinir '''solamente''' los que se desee cambiar el comportamiento. Por ejemplo, los métodos que buscan y asignan datos a un cuadro, los que definen comportamiento de eventos, etc...<br />
#:Por ejemplo, una clase propia llamada "''ci_reporte_gastos_unca''" que redefine el comportamiento de un ''ci'' seria la siguiente:<br />
#:<source lang="php" enclose="div"><br />
<?php<br />
class ci_reporte_gastos_U802 extends ci_reporte<br />
{<br />
<br />
protected $s__datos;<br />
<br />
function get_datos()<br />
{<br />
return $this->s__datos;<br />
}<br />
<br />
}<br />
?><br />
</source><br />
Se recomienda leer también la sección siguiente para ver un ejemplo concreto y tener un mayor conocimiento de que código incluir en cada archivo, dónde generar los mismos, etc...<br />
<br />
=== Modificar un reporte existente ===<br />
<br />
Veamos ahora un ejemplo sencillo de modificación de un reporte existente. La idea es tomar un reporte simple y agregar una nueva columna, para demostrar prácticamente todos los cambios que involucra.<br />
<br />
El reporte elegido es el ''"Reporte de Certificados"'' ubicado en: ''Propuestas Formativas -> Reportes -> Certificados''. Supongamos que se quiere agregar la columna "''duracion_en_meses''" de la tabla "''sga_certificados''" que representa la validez en meses del certificado en cuestión. Veamos entonces, los pasos a seguir:<br />
<br />
==== Identificar en el editor Toba la operación a personalizar ====<br />
<br />
Abriendo el '''Editor Toba''' para el proyecto "''guarani''", ubicamos la operación existente a extender. En este caso, expandir la carpeta "Propuestas Fromativas" -> "Reportes" -> "Certificados". Al expandir el ítem de la operación vemos que la misma esta compuesta por un ''CI'' (Controlador de Interfaz) y 2 objetos: un filtro y un cuadro. <br />
Llega el momento entonces, de analizar los cambios que se quieren implementar, para saber cual de los objetos de la operación hay que redefinir.<br />
<br />
==== Aplicar cambios en objetos correspondientes ====<br />
<br />
La forma tradicional de realizar cambios en los objetos del sistema es: ubicar el objeto a editar, cambiar el "Punto de Montaje" a personalización, editar las propiedades adecuadas del objeto y crear la clase que contendrá el comportamiento deseado dentro de una estructura de directorios similar a la original en la carpeta <tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt> que extienda de la clase original que utilizaba el objeto (opcional, en caso de que no se utilice el comportamiento estándar de los objetos de este tipo).<br />
<br />
En este caso, tenemos que hacer 3 cambios:<br />
# Modificar el cuadro para agregarle la columna extra.<br />
# Modificar el controlador para utilizar una clase propia donde se modifique la consulta a utilizar para usar una nueva que incluya la columna a agregar.<br />
# Modificar la clase de consulta PHP para personalizarla y agregar una nueva que extienda de la existente con la consulta propia que devuelva además de los valores que traía el nuevo valor de la columna a agregar que luego sera invocada desde el controlador.<br />
<br />
Entonces, se debe:<br />
<br />
===== Modificar el cuadro para agregar la nueva columna =====<br />
Editar el objeto ''cuadro'' de esta operación presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. '''Esto debe realizarse siempre para todos los objetos que se personalicen, dado que permite la exportación de los cambios realizados a la carpeta propia "''personalizacion''".''' En este caso, esto ya estaba configurado dado que extendía de la clase genérica "''guarani_pers_ei_cuadro''" que contiene el comportamiento genérico para todos los cuadros del sistema.<br />
*'''Subclase archivo''': En este caso, no se va a personalizar el cuadro, dado que solo se agregara la columna en el objeto y luego se cambiara la consulta desde el CI, por lo que quedara apuntando a la clase previamente mencionada. Sin embargo, tener en cuenta que si se necesita modificar el comportamiento del mismo, se debera crear una nueva clase que extienda de la original en una estructura de directorios similar dentro de <tt><path proyecto Guaraní>/personalizacion</tt>.<br />
<br />
En la solapa "Columnas", agregar la nueva columna "''duracion_en_meses''" con los siguientes datos:<br />
*'''Columna:''' "duracion_en_meses"<br />
*'''Titulo:''' Validez <br />
<br />
Ninguna propiedad mas se necesita para este ejemplo, por lo que al final la edición de las propiedades del cuadro, presionar el botón "Guardar".<br />
<br />
===== Modificar el CI =====<br />
Editar el objeto CI, llamado normalmente igual que la operación, en este caso: ''Certificados'' presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Subclase archivo''': La idea es crear una clase dentro de la misma estructura de carpetas que la original pero en otro path (<tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt>), que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''operaciones/propuestas/certificados/ci_rep_certificados_XXX.php'' (donde ''XXX'' es el nodo de la institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
*'''Subclase''': El mismo nombre que el archivo: "''ci_rep_certificados_XXX''"<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
#php<br />
<?php<br />
class ci_rep_certificados_XXX extends ci_rep_certificados<br />
{<br />
<br />
// Se redefine la funcion que obtiene los datos a traves de una consulta propia<br />
function get_datos($filtro)<br />
{<br />
return toba::consulta_php('co_certificados')->get_listado_validez($filtro);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
<br />
===== <div id="modificar_la_clase_de_consulta">Modificar la clase de consulta</div> ===== <br />
Para consultar a la BD de negocios del sistema, SIU-Guarani cuenta con un conjunto de clases (aproximadamente una por modulo-submodulo) definidas en la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba'''. Las clases de consultas definidas allí, son accesibles a través del framework desde cualquier clase a partir del llamado:<br />
<source lang="php" enclose="div"><br />
toba::consulta_php('co_XXXXXXXX')<br />
</source><br />
<br />
En este caso, se debe redefinir la clase de consulta "''co_certificados''" de la siguiente forma:<br />
<br />
Ir a la la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba''' y seleccionar para editar la clase de Consulta "''co_certificados''" presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Clase''': "''co_certificados_XXX''"<br />
*'''Archivo''': La idea es crear una clase dentro del path (<tt><path proyecto Guaraní>/personalizacion/php/nucleo</tt>) que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''nucleo/propuestas/certificados/co_certificados_XXX.php'' (donde ''XXX'' es el nodo de institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
<?php<br />
class co_certificados_XXX extends co_certificados<br />
{<br />
<br />
// Se agrega el siguiente metodo como una nueva consulta a la BD para traer ademas de los datos basicos, el campo 'duracion_en_meses'<br />
function get_listado_validez($where)<br />
{<br />
if ($where) {<br />
$where = 'AND ' . $where;<br />
}<br />
<br />
$sql = "SELECT sga_certificados.certificado, <br />
sga_certificados.nombre, <br />
sga_certificados.nombre_femenino, <br />
sga_certificados_tipos.certificado_tipo as certificado_tipo_codigo,<br />
sga_certificados_tipos.descripcion as certificado_tipo,<br />
sga_titulos_niveles.descripcion as titulo_nivel,<br />
sga_certificados.disciplina,<br />
sga_certificados.titulo_araucano,<br />
".guarani_sql::get_case('sga_certificados','estado').",<br />
sga_certificados.codigo,<br />
sga_g3entidades.entidad,<br />
sga_certificados.duracion_en_meses<br />
FROM sga_certificados<br />
LEFT JOIN sga_titulos_niveles ON sga_certificados.titulo_nivel = sga_titulos_niveles.titulo_nivel<br />
LEFT JOIN sga_g3entidades ON sga_certificados.entidad = sga_g3entidades.entidad,<br />
sga_certificados_tipos<br />
WHERE sga_certificados.certificado_tipo = sga_certificados_tipos.certificado_tipo<br />
$where<br />
ORDER BY codigo,<br />
certificado_tipo,<br />
titulo_nivel<br />
"; <br />
return guarani_db::consultar($sql);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
==== Regenerar el autoload ====<br />
Se deben incorporar las clases recientemente generadas en el archivo <tt><path proyecto Guaraní>/personalizacion/php/guarani_autoload_clases_nuevas.php</tt> para que se puedan acceder desde otras clases si fuera necesario. Para esto, ejecutar el comando: <br />
<source lang="php" enclose="div"><br />
guarani pers_autoload<br />
</source></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.20.0/personalizaciones/reporte&diff=76220SIU-Guarani/Version3.20.0/personalizaciones/reporte2020-07-06T15:38:09Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">{{TOClimit|4}}</span><br />
== Personalizar un reporte ==<br />
<br />
=== Crear un nuevo reporte ===<br />
Si lo que se desea es generar un nuevo reporte en el sistema, se recomienda "''clonar''" uno existente, ya generado por el SIU que contenga la misma estructura que el que se desea desarrollar. Básicamente, que sea lo mas parecido posible al reporte deseado. Entonces:<br><br />
<br />
==== Generar el ítem ====<br />
Crear el nuevo ítem con el nombre del reporte en la carpeta deseada (correspondiente a la ubicación en el menú del sistema).<br><br />
<br />
'''RECOMENDACIONES:'''<br><br />
<br />
Para las propiedades del item creado, considerar lo siguiente:<br />
*'''Nombre:''' Anexar " - ''XXX''" (donde '''''XXX''''' es el '''nodo''' que le otorgó el SIU a la institución. Si quisieran diferenciar las personalizaciones entre las unidades académicas les podrían agregar -YYY donde YYY sería el código de unidad académica , EJ: uba-fcen). Si bien se fija como estándar que los objetos hijos del ítem generados para este reporte y los archivos asociados a los mismos, contengan el sufijo "_''XXX''" se recomienda anexar el sufijo explicitado para identificarlo fácilmente o tener alguna referencia mas ante algún pedido de soporte. Aunque desde ya, no es obligatorio realizar esto (Si para los estándares mencionados previamente).<br />
*'''Carpeta''': Ubicarlo en alguna carpeta relacionada a los conceptos involucrados directamente en el reporte. Recordar que esta ubicación, es la que luego se otorgara en el Menú del sistema.<br />
*'''Punto de Montaje''': '''OBLIGATORIO''' fijar como punto de montaje para el item "''personalizacion''"<br />
*'''Modelo Página''': Página SIU-Guarani. La página estandar del proyecto que contiene los recursos basicos del mismo. Ésto facilita la implementación de futuras personalizaciones (si se desea, claro está) a todas las operaciones del sistema.<br />
*'''Imagen''': ''Proyecto - Reporte.png'' . El icono estándar que identifica de los reportes en el sistema.<br />
<br />
==== Clonar los componentes ====<br />
Ubicar el ''CI'' (Controlador de negocio) de la operación de la cual se quiera clonar el reporte. Normalmente, tiene el mismo nombre que el Item padre, y es el que contiene todas las pantallas y objetos (cuadros, filtros, etc...) que componen la operación. Una vez seleccionado para edicion: [[File:G3_editar.png]], se debe proceder con el clonado del mismo (seleccionando [[File:G3_clonar.png]] en la esquina superior derecha) marcando:<br />
*'''Anexo nombre''': '''OBLIGATORIO''' "''XXX''_" (donde ''XXX'' corresponde al nodo de la Institución como fue indicado previamente). De esta forma los componentes se crearan con ese prefijo y podrán ser fácilmente identificables. De todas formas, luego habrá que renombrarlos para ponerlo como sufijo en lugar de prefijo como indica el estándar. <br />
*'''Clonar Dependencias''': SI. De esta forma, se clonan todos los subcomponentes del mismo evitando tener que clonar uno a uno mas tarde. En caso que no se desee utilizar en la operación alguno de los componentes hijos, se elimina posteriormente.<br />
*'''Clonar Subclases''': NO. Es preferible generar solo las clases que se utilizaran. Ademas, estas clases contienen metodos que seran heredados por las nuevas generadas por lo que no es necesario copiar los mismos en este paso.<br />
*'''Asignar a un componente''': '''OBLIGATORIO''' SI. Asignárselo al ítem generado en el paso anterior.<br />
<br />
==== Modificaciones post-clonado ====<br />
Luego de clonados los componentes de la operación, se deben editar uno a uno cambiando las propiedades de los mismos según lo deseado (Titulo, ancho de los componentes, pantallas etiquetas, etc...).<br><br />
Es imprescindible, teniendo en cuenta los pasos realizados anteriormente, acomodar los nombres de los componentes siguiendo los estándares: Especificar como '''sufijo''' "'''_XXX'''"y no como prefijo de los mismos, dado que Toba nomencla de esa forma los objetos al clonarlos.<br />
<br />
==== Agregando clases propias ====<br />
Al clonar los componentes de la operación, el comportamiento de los mismos queda definido por las mismas clases (''archivos PHP'') que las del componente origen clonado. Es normal, querer definir clases propias para modificar el comportamiento original o agregar nuevos comportamientos para el nuevo reporte generado. Ésto también es necesario, en caso que el reporte difiera del original al agregar o eliminar una columna del mismo o simplemente porque se desea mostrar otros datos diferentes al original.<br />
<br />
Para generar clases propias que definan el nuevo comportamiento de la operación realizar lo siguiente:<br />
<br />
# Generar la estructura de directorios en <tt><path proyecto Guaraní>/personalizacion/php/operaciones/...</tt>, concordante con el orden del menú del sistema o siguiendo módulo-submódulo. Se recomienda mantener el estándar de nombres fijado por el ''SIU'' y no generar cualquier estructura o nombre de directorio. Ésto es primordial para mantener el orden de las personalizaciones generadas y poder encontrar fácilmente los nuevos archivos creados. <br />
# En el '''Editor Toba''' seleccionar para el componente:<br />
#*'''Punto de Montaje''': ''personalizacion'', que indica que la carpeta base donde ubicar los archivos del componente será <tt><path proyecto Guaraní>/personalizacion</tt> y que constituye efectivamente un componente personalizado.<br />
#*'''Subclase - Archivo''': Dentro de la estructura de carpetas creada en el punto anterior, generar el archivo cuyo nombre tenga la forma: "'''<Tipo_Componente>_<Nombre_Representativo>_<Anexo_institucion>.php'''". <br><br />
#**'''<Tipo_Componente>''' representa el tipo del componente actual. Ej '''ci''','''form''','''cuadro''','''filtro''', etc...<br><br />
#**'''<Nombre_Representativo>''' especifica un nombre acorde a la operacion/comportamiento en cuestión. Ej '''reporte_actas''','''reporte_alumnos_aprobados''','''alta_tramites''', etc...<br><br />
#**'''<Anexo_institucion>''' = ''XXX'', que representa el nodo de la institución otorgado por el SIU como lo especificado previamente.<br><br />
#*:De esta forma, el nombre final del componente quedará del tipo: '''ci_reporte_inscripcion_uba-fcen.php''', '''formulario_datos_uba-fcen.php''', '''cuadro_reporte_inscripcion_uba-fcen.php'''....<br />
#*'''Subclase''': Nombre de la clase. El mismo que el nombre del archivo.<br />
#Una vez realizados los pasos anteriores, llega el momento de generar código para definir el comportamiento de la nueva operación. Dado que el código de Guaraní es abierto, por lo que se puede (y de hecho se recomienda) mirar el código de las operaciones ya desarrolladas por el SIU, se deja a criterio de la institución la implementación del mismo teniendo en cuenta las siguientes recomendaciones: <br />
#*La nueva clase generada, dependiendo del tipo de componente en cuestión, debe heredar de una de las clases vacías incluidas en <tt><path proyecto Guaraní>/personalizacion/php/extension_toba/componentes/</tt>. Estas clases definen el comportamiento estándar de los objetos. Observar que cada una de ellas heredan de las clases definidas por Guaraní para definir el comportamiento de objetos, que a la vez heredan de las clases estándares proporcionadas por el framework Toba.<br />
#*:Se pide esto por dos motivos:<br />
#**Para que el objeto obtenga un comportamiento por defecto, permitiendo redefinir el método deseado para generar un comportamiento particular. <br />
#**Permite que si a futuro se desea definir un nuevo comportamiento para todos los objetos de este tipo, el mismo sea definido en la clase "''guarani_pers_...''" especifica.<br />
#*Observar los métodos heredados de la misma y redefinir '''solamente''' los que se desee cambiar el comportamiento. Por ejemplo, los métodos que buscan y asignan datos a un cuadro, los que definen comportamiento de eventos, etc...<br />
#:Por ejemplo, una clase propia llamada "''ci_reporte_gastos_unca''" que redefine el comportamiento de un ''ci'' seria la siguiente:<br />
#:<source lang="php" enclose="div"><br />
<?php<br />
class ci_reporte_gastos_U802 extends ci_reporte<br />
{<br />
<br />
protected $s__datos;<br />
<br />
function get_datos()<br />
{<br />
return $this->s__datos;<br />
}<br />
<br />
}<br />
?><br />
</source><br />
Se recomienda leer también la sección siguiente para ver un ejemplo concreto y tener un mayor conocimiento de que código incluir en cada archivo, dónde generar los mismos, etc...<br />
<br />
=== Modificar un reporte existente ===<br />
<br />
Veamos ahora un ejemplo sencillo de modificación de un reporte existente. La idea es tomar un reporte simple y agregar una nueva columna, para demostrar prácticamente todos los cambios que involucra.<br />
<br />
El reporte elegido es el ''"Reporte de Certificados"'' ubicado en: ''Propuestas Formativas -> Reportes -> Certificados''. Supongamos que se quiere agregar la columna "''duracion_en_meses''" de la tabla "''sga_certificados''" que representa la validez en meses del certificado en cuestión. Veamos entonces, los pasos a seguir:<br />
<br />
==== Identificar en el editor Toba la operación a personalizar ====<br />
<br />
Abriendo el '''Editor Toba''' para el proyecto "''guarani''", ubicamos la operación existente a extender. En este caso, expandir la carpeta "Propuestas Fromativas" -> "Reportes" -> "Certificados". Al expandir el ítem de la operación vemos que la misma esta compuesta por un ''CI'' (Controlador de Interfaz) y 2 objetos: un filtro y un cuadro. <br />
Llega el momento entonces, de analizar los cambios que se quieren implementar, para saber cual de los objetos de la operación hay que redefinir.<br />
<br />
==== Aplicar cambios en objetos correspondientes ====<br />
<br />
La forma tradicional de realizar cambios en los objetos del sistema es: ubicar el objeto a editar, cambiar el "Punto de Montaje" a personalización, editar las propiedades adecuadas del objeto y crear la clase que contendrá el comportamiento deseado dentro de una estructura de directorios similar a la original en la carpeta <tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt> que extienda de la clase original que utilizaba el objeto (opcional, en caso de que no se utilice el comportamiento estándar de los objetos de este tipo).<br />
<br />
En este caso, tenemos que hacer 3 cambios:<br />
# Modificar el cuadro para agregarle la columna extra.<br />
# Modificar el controlador para utilizar una clase propia donde se modifique la consulta a utilizar para usar una nueva que incluya la columna a agregar.<br />
# Modificar la clase de consulta PHP para personalizarla y agregar una nueva que extienda de la existente con la consulta propia que devuelva además de los valores que traía el nuevo valor de la columna a agregar que luego sera invocada desde el controlador.<br />
<br />
Entonces, se debe:<br />
<br />
===== Modificar el cuadro para agregar la nueva columna =====<br />
Editar el objeto ''cuadro'' de esta operación presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. '''Esto debe realizarse siempre para todos los objetos que se personalicen, dado que permite la exportación de los cambios realizados a la carpeta propia "''personalizacion''".''' En este caso, esto ya estaba configurado dado que extendía de la clase genérica "''guarani_pers_ei_cuadro''" que contiene el comportamiento genérico para todos los cuadros del sistema.<br />
*'''Subclase archivo''': En este caso, no se va a personalizar el cuadro, dado que solo se agregara la columna en el objeto y luego se cambiara la consulta desde el CI, por lo que quedara apuntando a la clase previamente mencionada. Sin embargo, tener en cuenta que si se necesita modificar el comportamiento del mismo, se debera crear una nueva clase que extienda de la original en una estructura de directorios similar dentro de <tt><path proyecto Guaraní>/personalizacion</tt>.<br />
<br />
En la solapa "Columnas", agregar la nueva columna "''duracion_en_meses''" con los siguientes datos:<br />
*'''Columna:''' "duracion_en_meses"<br />
*'''Titulo:''' Validez <br />
<br />
Ninguna propiedad mas se necesita para este ejemplo, por lo que al final la edición de las propiedades del cuadro, presionar el botón "Guardar".<br />
<br />
===== Modificar el CI =====<br />
Editar el objeto CI, llamado normalmente igual que la operación, en este caso: ''Certificados'' presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Subclase archivo''': La idea es crear una clase dentro de la misma estructura de carpetas que la original pero en otro path (<tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt>), que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''operaciones/propuestas/certificados/ci_rep_certificados_XXX.php'' (donde ''XXX'' es el nodo de la institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
*'''Subclase''': El mismo nombre que el archivo: "''ci_rep_certificados_XXX''"<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
#php<br />
<?php<br />
class ci_rep_certificados_XXX extends ci_rep_certificados<br />
{<br />
<br />
// Se redefine la funcion que obtiene los datos a traves de una consulta propia<br />
function get_datos($filtro)<br />
{<br />
return toba::consulta_php('co_certificados')->get_listado_validez($filtro);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
<br />
===== <div id="modificar_la_clase_de_consulta">Modificar la clase de consulta</div> ===== <br />
Para consultar a la BD de negocios del sistema, SIU-Guarani cuenta con un conjunto de clases (aproximadamente una por modulo-submodulo) definidas en la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba'''. Las clases de consultas definidas allí, son accesibles a través del framework desde cualquier clase a partir del llamado:<br />
<source lang="php" enclose="div"><br />
toba::consulta_php('co_XXXXXXXX')<br />
</source><br />
<br />
En este caso, se debe redefinir la clase de consulta "''co_certificados''" de la siguiente forma:<br />
<br />
Ir a la la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba''' y seleccionar para editar la clase de Consulta "''co_certificados''" presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Clase''': "''co_certificados_XXX''"<br />
*'''Archivo''': La idea es crear una clase dentro del path (<tt><path proyecto Guaraní>/personalizacion/php/nucleo</tt>) que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''nucleo/propuestas/certificados/co_certificados_XXX.php'' (donde ''XXX'' es el nodo de institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
<?php<br />
class co_certificados_XXX extends co_certificados<br />
{<br />
<br />
// Se agrega el siguiente metodo como una nueva consulta a la BD para traer ademas de los datos basicos, el campo 'duracion_en_meses'<br />
function get_listado_validez($where)<br />
{<br />
if ($where) {<br />
$where = 'AND ' . $where;<br />
}<br />
<br />
$sql = "SELECT sga_certificados.certificado, <br />
sga_certificados.nombre, <br />
sga_certificados.nombre_femenino, <br />
sga_certificados_tipos.certificado_tipo as certificado_tipo_codigo,<br />
sga_certificados_tipos.descripcion as certificado_tipo,<br />
sga_titulos_niveles.descripcion as titulo_nivel,<br />
sga_certificados.disciplina,<br />
sga_certificados.titulo_araucano,<br />
".guarani_sql::get_case('sga_certificados','estado').",<br />
sga_certificados.codigo,<br />
sga_g3entidades.entidad,<br />
sga_certificados.duracion_en_meses<br />
FROM sga_certificados<br />
LEFT JOIN sga_titulos_niveles ON sga_certificados.titulo_nivel = sga_titulos_niveles.titulo_nivel<br />
LEFT JOIN sga_g3entidades ON sga_certificados.entidad = sga_g3entidades.entidad,<br />
sga_certificados_tipos<br />
WHERE sga_certificados.certificado_tipo = sga_certificados_tipos.certificado_tipo<br />
$where<br />
ORDER BY codigo,<br />
certificado_tipo,<br />
titulo_nivel<br />
"; <br />
return guarani_db::consultar($sql);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
==== Regenerar el autoload ====<br />
Se deben incorporar las clases recientemente generadas en el archivo <tt><path proyecto Guaraní>/personalizacion/php/guarani_autoload_clases_nuevas.php</tt> para que se puedan acceder desde otras clases si fuera necesario. Para esto, ejecutar el comando: <br />
<source lang="php" enclose="div"><br />
guarani pers_autoload<br />
</source></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.21.0/personalizaciones/reporte&diff=86546SIU-Guarani/Version3.21.0/personalizaciones/reporte2020-07-06T15:38:09Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">{{TOClimit|4}}</span><br />
== Personalizar un reporte ==<br />
<br />
=== Crear un nuevo reporte ===<br />
Si lo que se desea es generar un nuevo reporte en el sistema, se recomienda "''clonar''" uno existente, ya generado por el SIU que contenga la misma estructura que el que se desea desarrollar. Básicamente, que sea lo mas parecido posible al reporte deseado. Entonces:<br><br />
<br />
==== Generar el ítem ====<br />
Crear el nuevo ítem con el nombre del reporte en la carpeta deseada (correspondiente a la ubicación en el menú del sistema).<br><br />
<br />
'''RECOMENDACIONES:'''<br><br />
<br />
Para las propiedades del item creado, considerar lo siguiente:<br />
*'''Nombre:''' Anexar " - ''XXX''" (donde '''''XXX''''' es el '''nodo''' que le otorgó el SIU a la institución. Si quisieran diferenciar las personalizaciones entre las unidades académicas les podrían agregar -YYY donde YYY sería el código de unidad académica , EJ: uba-fcen). Si bien se fija como estándar que los objetos hijos del ítem generados para este reporte y los archivos asociados a los mismos, contengan el sufijo "_''XXX''" se recomienda anexar el sufijo explicitado para identificarlo fácilmente o tener alguna referencia mas ante algún pedido de soporte. Aunque desde ya, no es obligatorio realizar esto (Si para los estándares mencionados previamente).<br />
*'''Carpeta''': Ubicarlo en alguna carpeta relacionada a los conceptos involucrados directamente en el reporte. Recordar que esta ubicación, es la que luego se otorgara en el Menú del sistema.<br />
*'''Punto de Montaje''': '''OBLIGATORIO''' fijar como punto de montaje para el item "''personalizacion''"<br />
*'''Modelo Página''': Página SIU-Guarani. La página estandar del proyecto que contiene los recursos basicos del mismo. Ésto facilita la implementación de futuras personalizaciones (si se desea, claro está) a todas las operaciones del sistema.<br />
*'''Imagen''': ''Proyecto - Reporte.png'' . El icono estándar que identifica de los reportes en el sistema.<br />
<br />
==== Clonar los componentes ====<br />
Ubicar el ''CI'' (Controlador de negocio) de la operación de la cual se quiera clonar el reporte. Normalmente, tiene el mismo nombre que el Item padre, y es el que contiene todas las pantallas y objetos (cuadros, filtros, etc...) que componen la operación. Una vez seleccionado para edicion: [[File:G3_editar.png]], se debe proceder con el clonado del mismo (seleccionando [[File:G3_clonar.png]] en la esquina superior derecha) marcando:<br />
*'''Anexo nombre''': '''OBLIGATORIO''' "''XXX''_" (donde ''XXX'' corresponde al nodo de la Institución como fue indicado previamente). De esta forma los componentes se crearan con ese prefijo y podrán ser fácilmente identificables. De todas formas, luego habrá que renombrarlos para ponerlo como sufijo en lugar de prefijo como indica el estándar. <br />
*'''Clonar Dependencias''': SI. De esta forma, se clonan todos los subcomponentes del mismo evitando tener que clonar uno a uno mas tarde. En caso que no se desee utilizar en la operación alguno de los componentes hijos, se elimina posteriormente.<br />
*'''Clonar Subclases''': NO. Es preferible generar solo las clases que se utilizaran. Ademas, estas clases contienen metodos que seran heredados por las nuevas generadas por lo que no es necesario copiar los mismos en este paso.<br />
*'''Asignar a un componente''': '''OBLIGATORIO''' SI. Asignárselo al ítem generado en el paso anterior.<br />
<br />
==== Modificaciones post-clonado ====<br />
Luego de clonados los componentes de la operación, se deben editar uno a uno cambiando las propiedades de los mismos según lo deseado (Titulo, ancho de los componentes, pantallas etiquetas, etc...).<br><br />
Es imprescindible, teniendo en cuenta los pasos realizados anteriormente, acomodar los nombres de los componentes siguiendo los estándares: Especificar como '''sufijo''' "'''_XXX'''"y no como prefijo de los mismos, dado que Toba nomencla de esa forma los objetos al clonarlos.<br />
<br />
==== Agregando clases propias ====<br />
Al clonar los componentes de la operación, el comportamiento de los mismos queda definido por las mismas clases (''archivos PHP'') que las del componente origen clonado. Es normal, querer definir clases propias para modificar el comportamiento original o agregar nuevos comportamientos para el nuevo reporte generado. Ésto también es necesario, en caso que el reporte difiera del original al agregar o eliminar una columna del mismo o simplemente porque se desea mostrar otros datos diferentes al original.<br />
<br />
Para generar clases propias que definan el nuevo comportamiento de la operación realizar lo siguiente:<br />
<br />
# Generar la estructura de directorios en <tt><path proyecto Guaraní>/personalizacion/php/operaciones/...</tt>, concordante con el orden del menú del sistema o siguiendo módulo-submódulo. Se recomienda mantener el estándar de nombres fijado por el ''SIU'' y no generar cualquier estructura o nombre de directorio. Ésto es primordial para mantener el orden de las personalizaciones generadas y poder encontrar fácilmente los nuevos archivos creados. <br />
# En el '''Editor Toba''' seleccionar para el componente:<br />
#*'''Punto de Montaje''': ''personalizacion'', que indica que la carpeta base donde ubicar los archivos del componente será <tt><path proyecto Guaraní>/personalizacion</tt> y que constituye efectivamente un componente personalizado.<br />
#*'''Subclase - Archivo''': Dentro de la estructura de carpetas creada en el punto anterior, generar el archivo cuyo nombre tenga la forma: "'''<Tipo_Componente>_<Nombre_Representativo>_<Anexo_institucion>.php'''". <br><br />
#**'''<Tipo_Componente>''' representa el tipo del componente actual. Ej '''ci''','''form''','''cuadro''','''filtro''', etc...<br><br />
#**'''<Nombre_Representativo>''' especifica un nombre acorde a la operacion/comportamiento en cuestión. Ej '''reporte_actas''','''reporte_alumnos_aprobados''','''alta_tramites''', etc...<br><br />
#**'''<Anexo_institucion>''' = ''XXX'', que representa el nodo de la institución otorgado por el SIU como lo especificado previamente.<br><br />
#*:De esta forma, el nombre final del componente quedará del tipo: '''ci_reporte_inscripcion_uba-fcen.php''', '''formulario_datos_uba-fcen.php''', '''cuadro_reporte_inscripcion_uba-fcen.php'''....<br />
#*'''Subclase''': Nombre de la clase. El mismo que el nombre del archivo.<br />
#Una vez realizados los pasos anteriores, llega el momento de generar código para definir el comportamiento de la nueva operación. Dado que el código de Guaraní es abierto, por lo que se puede (y de hecho se recomienda) mirar el código de las operaciones ya desarrolladas por el SIU, se deja a criterio de la institución la implementación del mismo teniendo en cuenta las siguientes recomendaciones: <br />
#*La nueva clase generada, dependiendo del tipo de componente en cuestión, debe heredar de una de las clases vacías incluidas en <tt><path proyecto Guaraní>/personalizacion/php/extension_toba/componentes/</tt>. Estas clases definen el comportamiento estándar de los objetos. Observar que cada una de ellas heredan de las clases definidas por Guaraní para definir el comportamiento de objetos, que a la vez heredan de las clases estándares proporcionadas por el framework Toba.<br />
#*:Se pide esto por dos motivos:<br />
#**Para que el objeto obtenga un comportamiento por defecto, permitiendo redefinir el método deseado para generar un comportamiento particular. <br />
#**Permite que si a futuro se desea definir un nuevo comportamiento para todos los objetos de este tipo, el mismo sea definido en la clase "''guarani_pers_...''" especifica.<br />
#*Observar los métodos heredados de la misma y redefinir '''solamente''' los que se desee cambiar el comportamiento. Por ejemplo, los métodos que buscan y asignan datos a un cuadro, los que definen comportamiento de eventos, etc...<br />
#:Por ejemplo, una clase propia llamada "''ci_reporte_gastos_unca''" que redefine el comportamiento de un ''ci'' seria la siguiente:<br />
#:<source lang="php" enclose="div"><br />
<?php<br />
class ci_reporte_gastos_U802 extends ci_reporte<br />
{<br />
<br />
protected $s__datos;<br />
<br />
function get_datos()<br />
{<br />
return $this->s__datos;<br />
}<br />
<br />
}<br />
?><br />
</source><br />
Se recomienda leer también la sección siguiente para ver un ejemplo concreto y tener un mayor conocimiento de que código incluir en cada archivo, dónde generar los mismos, etc...<br />
<br />
=== Modificar un reporte existente ===<br />
<br />
Veamos ahora un ejemplo sencillo de modificación de un reporte existente. La idea es tomar un reporte simple y agregar una nueva columna, para demostrar prácticamente todos los cambios que involucra.<br />
<br />
El reporte elegido es el ''"Reporte de Certificados"'' ubicado en: ''Propuestas Formativas -> Reportes -> Certificados''. Supongamos que se quiere agregar la columna "''duracion_en_meses''" de la tabla "''sga_certificados''" que representa la validez en meses del certificado en cuestión. Veamos entonces, los pasos a seguir:<br />
<br />
==== Identificar en el editor Toba la operación a personalizar ====<br />
<br />
Abriendo el '''Editor Toba''' para el proyecto "''guarani''", ubicamos la operación existente a extender. En este caso, expandir la carpeta "Propuestas Fromativas" -> "Reportes" -> "Certificados". Al expandir el ítem de la operación vemos que la misma esta compuesta por un ''CI'' (Controlador de Interfaz) y 2 objetos: un filtro y un cuadro. <br />
Llega el momento entonces, de analizar los cambios que se quieren implementar, para saber cual de los objetos de la operación hay que redefinir.<br />
<br />
==== Aplicar cambios en objetos correspondientes ====<br />
<br />
La forma tradicional de realizar cambios en los objetos del sistema es: ubicar el objeto a editar, cambiar el "Punto de Montaje" a personalización, editar las propiedades adecuadas del objeto y crear la clase que contendrá el comportamiento deseado dentro de una estructura de directorios similar a la original en la carpeta <tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt> que extienda de la clase original que utilizaba el objeto (opcional, en caso de que no se utilice el comportamiento estándar de los objetos de este tipo).<br />
<br />
En este caso, tenemos que hacer 3 cambios:<br />
# Modificar el cuadro para agregarle la columna extra.<br />
# Modificar el controlador para utilizar una clase propia donde se modifique la consulta a utilizar para usar una nueva que incluya la columna a agregar.<br />
# Modificar la clase de consulta PHP para personalizarla y agregar una nueva que extienda de la existente con la consulta propia que devuelva además de los valores que traía el nuevo valor de la columna a agregar que luego sera invocada desde el controlador.<br />
<br />
Entonces, se debe:<br />
<br />
===== Modificar el cuadro para agregar la nueva columna =====<br />
Editar el objeto ''cuadro'' de esta operación presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. '''Esto debe realizarse siempre para todos los objetos que se personalicen, dado que permite la exportación de los cambios realizados a la carpeta propia "''personalizacion''".''' En este caso, esto ya estaba configurado dado que extendía de la clase genérica "''guarani_pers_ei_cuadro''" que contiene el comportamiento genérico para todos los cuadros del sistema.<br />
*'''Subclase archivo''': En este caso, no se va a personalizar el cuadro, dado que solo se agregara la columna en el objeto y luego se cambiara la consulta desde el CI, por lo que quedara apuntando a la clase previamente mencionada. Sin embargo, tener en cuenta que si se necesita modificar el comportamiento del mismo, se debera crear una nueva clase que extienda de la original en una estructura de directorios similar dentro de <tt><path proyecto Guaraní>/personalizacion</tt>.<br />
<br />
En la solapa "Columnas", agregar la nueva columna "''duracion_en_meses''" con los siguientes datos:<br />
*'''Columna:''' "duracion_en_meses"<br />
*'''Titulo:''' Validez <br />
<br />
Ninguna propiedad mas se necesita para este ejemplo, por lo que al final la edición de las propiedades del cuadro, presionar el botón "Guardar".<br />
<br />
===== Modificar el CI =====<br />
Editar el objeto CI, llamado normalmente igual que la operación, en este caso: ''Certificados'' presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Subclase archivo''': La idea es crear una clase dentro de la misma estructura de carpetas que la original pero en otro path (<tt><path proyecto Guaraní>/personalizacion/php/operaciones</tt>), que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''operaciones/propuestas/certificados/ci_rep_certificados_XXX.php'' (donde ''XXX'' es el nodo de la institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
*'''Subclase''': El mismo nombre que el archivo: "''ci_rep_certificados_XXX''"<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
#php<br />
<?php<br />
class ci_rep_certificados_XXX extends ci_rep_certificados<br />
{<br />
<br />
// Se redefine la funcion que obtiene los datos a traves de una consulta propia<br />
function get_datos($filtro)<br />
{<br />
return toba::consulta_php('co_certificados')->get_listado_validez($filtro);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
<br />
===== <div id="modificar_la_clase_de_consulta">Modificar la clase de consulta</div> ===== <br />
Para consultar a la BD de negocios del sistema, SIU-Guarani cuenta con un conjunto de clases (aproximadamente una por modulo-submodulo) definidas en la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba'''. Las clases de consultas definidas allí, son accesibles a través del framework desde cualquier clase a partir del llamado:<br />
<source lang="php" enclose="div"><br />
toba::consulta_php('co_XXXXXXXX')<br />
</source><br />
<br />
En este caso, se debe redefinir la clase de consulta "''co_certificados''" de la siguiente forma:<br />
<br />
Ir a la la solapa "''Datos''" -> "''Consultas PHP''" del '''Editor Toba''' y seleccionar para editar la clase de Consulta "''co_certificados''" presionando [[File:G3_editar.png]]. Realizar los siguientes cambios:<br><br />
*'''Punto de Montaje''' : ''"personalizacion"''. <br />
*'''Clase''': "''co_certificados_XXX''"<br />
*'''Archivo''': La idea es crear una clase dentro del path (<tt><path proyecto Guaraní>/personalizacion/php/nucleo</tt>) que extienda de la original. En este caso entonces, a traves del editor crear la estructura de carpetas y el archivo: ''nucleo/propuestas/certificados/co_certificados_XXX.php'' (donde ''XXX'' es el nodo de institución otorgado por el SIU). Esta estructura de directorios se creara dentro de <tt><path proyecto Guaraní>/personalizacion/php</tt> ya que previamente indicamos el punto de montaje "personalizacion".<br />
<br />
Una vez realizado esto, presionar el botón "Guardar" para almacenar los cambios realizados y luego abrir el archivo recién creado y dejarlo de la siguiente forma:<br />
<source lang="php" enclose="div"><br />
<?php<br />
class co_certificados_XXX extends co_certificados<br />
{<br />
<br />
// Se agrega el siguiente metodo como una nueva consulta a la BD para traer ademas de los datos basicos, el campo 'duracion_en_meses'<br />
function get_listado_validez($where)<br />
{<br />
if ($where) {<br />
$where = 'AND ' . $where;<br />
}<br />
<br />
$sql = "SELECT sga_certificados.certificado, <br />
sga_certificados.nombre, <br />
sga_certificados.nombre_femenino, <br />
sga_certificados_tipos.certificado_tipo as certificado_tipo_codigo,<br />
sga_certificados_tipos.descripcion as certificado_tipo,<br />
sga_titulos_niveles.descripcion as titulo_nivel,<br />
sga_certificados.disciplina,<br />
sga_certificados.titulo_araucano,<br />
".guarani_sql::get_case('sga_certificados','estado').",<br />
sga_certificados.codigo,<br />
sga_g3entidades.entidad,<br />
sga_certificados.duracion_en_meses<br />
FROM sga_certificados<br />
LEFT JOIN sga_titulos_niveles ON sga_certificados.titulo_nivel = sga_titulos_niveles.titulo_nivel<br />
LEFT JOIN sga_g3entidades ON sga_certificados.entidad = sga_g3entidades.entidad,<br />
sga_certificados_tipos<br />
WHERE sga_certificados.certificado_tipo = sga_certificados_tipos.certificado_tipo<br />
$where<br />
ORDER BY codigo,<br />
certificado_tipo,<br />
titulo_nivel<br />
"; <br />
return guarani_db::consultar($sql);<br />
}<br />
<br />
}<br />
?><br />
</source><br />
De esta forma, se redefine solamente el método que traía los datos del cuadro sustituyéndolo por el que obtiene los datos de la nueva consulta que generaremos en el paso siguiente.<br />
<br />
==== Regenerar el autoload ====<br />
Se deben incorporar las clases recientemente generadas en el archivo <tt><path proyecto Guaraní>/personalizacion/php/guarani_autoload_clases_nuevas.php</tt> para que se puedan acceder desde otras clases si fuera necesario. Para esto, ejecutar el comando: <br />
<source lang="php" enclose="div"><br />
guarani pers_autoload<br />
</source></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion_con_personalizaciones/gestion&diff=66047SIU-Guarani/version3.18.0/actualizacion con personalizaciones/gestion2020-06-25T18:20:31Z<p>Jmarino: /* Pasos a realizar por el Concentrador */</p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.18.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
##:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
##Configurar la API REST<br />
##:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.18.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.18.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion/gestion&diff=66046SIU-Guarani/version3.18.0/actualizacion/gestion2020-06-25T18:19:55Z<p>Jmarino: </p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización del SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo sin personalizaciones ==<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes a la institución que realiza la instalación<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
'''Los pasos a realizar son:'''<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Cambiar la versión del código a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
#:y verificar que no existan archivos con estado 'S'.<br />
#:'''Importante''': en versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en ese caso, ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso'''.<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#:Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Desde '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
#Configurar la API REST<br />
#:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/interfaces/sidcer&diff=66021SIU-Guarani/Version3.18.0/interfaces/sidcer2020-06-24T19:37:52Z<p>Jmarino: Página creada con «== Interfaz SIU-Guaraní - SIDCER == Configurar la api rest como se especifica en el siguiente link...»</p>
<hr />
<div>== Interfaz SIU-Guaraní - SIDCER ==<br />
<br />
<br />
Configurar la api rest como se especifica en el siguiente [[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional |link]].<br />
Tenes un usuario para sidcer y habilitar los siguiente servicios para este usuario por ejemplo:<br />
<br />
//que coincidan con los configurados en el archivo servidor_usuarios.ini<br />
<source lang="php" enclose="div"><br />
$usuarios_sidcer = array('guarani');<br />
</source><br />
<br />
//Habilitar para este usuario los siguientes recursos:<br />
<br />
<source lang="php" enclose="div"><br />
//personas<br />
'personas' => array(<br />
'GET' => array('usuarios' => array_merge($usuarios_sidcer))<br />
),<br />
'personas/id/datosanalitico' => array(<br />
'GET' => array('usuarios' => array_merge($usuarios_sidcer))<br />
),<br />
'personas/id/datospersonales' => array(<br />
'GET' => array('usuarios' => array_merge($usuarios_sidcer))<br />
),<br />
<br />
</source><br />
<br />
Esto hace que para el usuario $usuarios_sidcer estén habilitado los recursos de personas.<br />
<br />
Si ya disponía de una comunicación con sidcer, se debere informar al siu las nuevas urls, usuario y password para la comunicación con Sidcer.<br />
las urls a informar quedarían de la siguiente forma:<br />
<br />
<source lang="php" enclose="div"><br />
<url_gestion>/rest<br />
</source></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/Novedades_tecnicas&diff=66020SIU-Guarani/Version3.18.0/Novedades tecnicas2020-06-24T19:12:35Z<p>Jmarino: /* Gestión */</p>
<hr />
<div>__NOTOC__<br />
__NOTOC__<br />
= Principales novedades técnicas =<br />
<br />
<p style="clear: both;"></p><br />
<br />
<div style="clear: both; display: block; float: left; border-left: 3px solid #3399ff; padding: 10px; background-color: #eee; width: 565px;font-size: 13px;"><br />
<p style="margin: 0; padding: 0;">[[SIU-Guarani/Version3.18.0 | Volver]]</p><br />
<p style="margin: 0; padding: 0;">Número de versión: <strong>3.18.0</strong></p><br />
<p style="margin: 0; padding: 0;">Fecha de publicación: '''26/06/2020'''</p><br />
</div><br />
<p style="clear: both;"></p><br />
== Base de Datos ==<br />
=== Diferencias con versiones anteriores ===<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.2&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.2]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.14.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.14.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.15.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.15.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.15.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.15.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.2&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.2]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.18.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.17.0]<br />
<div class="mw-collapsible" style="width:100%"><div class="mw-collapsible-content"><br />
== Notas de versión ==<br />
<dd></dd><br />
<br />
<div class="mw-collapsible-content"><br />
== Gestión ==<br />
<br />
* '''Se agrega el comando vincular_usuarios_moodle:'''<br />
<br />
<dd>Se agrega el comando de consola '''bin/guarani vincular_usuarios_moodle''' para vincular los usuarios de una instalación de '''Moodle''' preexistente con personas de '''SIU-Guaraní'''.</dd><br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/moodle Ver documentación aquí].</dd><br />
<br />
* '''Se agrega configuración por perfil funcional de la API REST de SIU-Guaraní:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional Ver documentación aquí].</dd><br />
<br />
* '''Se agrega comunicación con SIU-Araí:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/gestion-arai Ver documentación aquí].</dd><br />
<br />
* '''Se deben quitar las directivas echo dentro del archivo entorno_toba.env:'''<br />
<br />
<dd>Se deben quitar las directivas '''echo''' dentro del archivo '''entorno_toba.env''' por problemas de compatibilidad con SIU-Toba 3.3.4.</dd><br />
<br />
* '''Se pasan los logs de los procesos background a la carpeta instalación:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/Gestion/Refactorizacion Ver documentación aquí].</dd><br />
<br />
* '''Se agrega en la api rest de gestión los ws para comunicación con Sidcer:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/interfaces/sidcer Ver documentación aquí].</dd><br />
<br />
== 3W ==<br />
<br />
* '''Se modifica el archivo de configuración''': <br />
<dd>Se agregan nuevas directivas en el archivo '''instalacion/config.php''', se debe recrear a partir de su template (archivo '''instalacion/config_template.php'''):<br />
<br />
Se agregan las directivas '''ptoacc_ra''' y '''metodos_autenticacion_habilitados''' dentro de la configuración de '''accesos''', para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/3w/configuracion Ver documentación aquí].<br />
</dd><br />
<br />
* '''Se agrega comunicación con SIU-Araí:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/gestion-arai Ver documentación aquí].</dd><br />
<br />
</div></div></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/Novedades_tecnicas&diff=66019SIU-Guarani/Version3.18.0/Novedades tecnicas2020-06-24T19:11:56Z<p>Jmarino: /* Gestión */</p>
<hr />
<div>__NOTOC__<br />
__NOTOC__<br />
= Principales novedades técnicas =<br />
<br />
<p style="clear: both;"></p><br />
<br />
<div style="clear: both; display: block; float: left; border-left: 3px solid #3399ff; padding: 10px; background-color: #eee; width: 565px;font-size: 13px;"><br />
<p style="margin: 0; padding: 0;">[[SIU-Guarani/Version3.18.0 | Volver]]</p><br />
<p style="margin: 0; padding: 0;">Número de versión: <strong>3.18.0</strong></p><br />
<p style="margin: 0; padding: 0;">Fecha de publicación: '''26/06/2020'''</p><br />
</div><br />
<p style="clear: both;"></p><br />
== Base de Datos ==<br />
=== Diferencias con versiones anteriores ===<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.2&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.2]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.14.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.14.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.15.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.15.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.15.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.15.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.2&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.2]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.18.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.17.0]<br />
<div class="mw-collapsible" style="width:100%"><div class="mw-collapsible-content"><br />
== Notas de versión ==<br />
<dd></dd><br />
<br />
<div class="mw-collapsible-content"><br />
== Gestión ==<br />
<br />
* '''Se agrega el comando vincular_usuarios_moodle:'''<br />
<br />
<dd>Se agrega el comando de consola '''bin/guarani vincular_usuarios_moodle''' para vincular los usuarios de una instalación de '''Moodle''' preexistente con personas de '''SIU-Guaraní'''.</dd><br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/moodle Ver documentación aquí].</dd><br />
<br />
* '''Se agrega configuración por perfil funcional de la API REST de SIU-Guaraní:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional Ver documentación aquí].</dd><br />
<br />
* '''Se agrega comunicación con SIU-Araí:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/gestion-arai Ver documentación aquí].</dd><br />
<br />
* '''Se deben quitar las directivas echo dentro del archivo entorno_toba.env:'''<br />
<br />
<dd>Se deben quitar las directivas '''echo''' dentro del archivo '''entorno_toba.env''' por problemas de compatibilidad con SIU-Toba 3.3.4.</dd><br />
<br />
* '''Se pasan los logs de los procesos background a la carpeta instalación:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/Gestion/Refactorizacion Ver documentación aquí].</dd><br />
<br />
* '''Se agrega en la api rest de gestión la api sidcer:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/interfaces/sidcer Ver documentación aquí].</dd><br />
<br />
== 3W ==<br />
<br />
* '''Se modifica el archivo de configuración''': <br />
<dd>Se agregan nuevas directivas en el archivo '''instalacion/config.php''', se debe recrear a partir de su template (archivo '''instalacion/config_template.php'''):<br />
<br />
Se agregan las directivas '''ptoacc_ra''' y '''metodos_autenticacion_habilitados''' dentro de la configuración de '''accesos''', para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/3w/configuracion Ver documentación aquí].<br />
</dd><br />
<br />
* '''Se agrega comunicación con SIU-Araí:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/gestion-arai Ver documentación aquí].</dd><br />
<br />
</div></div></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/interfaces&diff=66018SIU-Guarani/version3.18.0/interfaces2020-06-24T19:10:47Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
==Interfaces con otros módulos==<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/kolla|Interfaz SIU-Guaraní - SIU-Kolla]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/sanaviron|Interfaz SIU-Guaraní - SIU-Sanaviron/Quilmes]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/tehuelche|Interfaz SIU-Guaraní - SIU-Tehuelche]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/moodle|Interfaz SIU-Guaraní - Moodle]] ===<br />
<br />
=== [[SIU-Guarani/version3.18.0/interfaces/moodle sso|Single Sign-On (SSO) con Moodle]] ===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/gestion-3w-rest|Interfaz SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/app-3w-jwt|Interfaz SIU-Guaraní App y 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/preinscripcion|Conexión con Preinscripción]]===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/saml|Configuración SAML para vincular SIU-Guaraní Gestión con 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/3w|Interconexión entre SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[https://colab.siu.edu.ar/documentacion_guarani/sw/index.html?url=https://colab.siu.edu.ar/documentacion_guarani/031800/api_rest/rest-guarani.json API Guaraní] (Se accede con credenciales de Colab) ===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/rest-hooks|Rest-Hooks]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/gestion-arai|Interfaz SIU-Guaraní y SIU-Araí]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/configuracion-ldap|Configuración LDAP]] ===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/sidcer|Interfaz SIU-Guaraní - SIDCER]]===<br />
<br />
[[SIU-Guarani/Version3.18.0|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/actualizacion_de_produccion/gestion&diff=66007SIU-Guarani/Version3.18.0/actualizacion de produccion/gestion2020-06-24T13:54:32Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
== Actualización del SIU-Guaraní Gestión a la versión 3.18.x.y en entorno de producción ==<br />
=== Requisitos previos a la actualización ===<br />
* Haber creado la [[SIU-Guarani/version3.18.0/crear_version_propia/gestion|versión propia de SIU-Guaraní Gestión]]<br />
<br />
=== Configuraciones del servidor de producción ===<br />
Chequear que el servidor de producción esté configurado como se indica en esta [[SIU-Guarani/version3.18.0/instalacion_desde_cero/configuracion_produccion_gestion|documentación]].<br />
<br />
=== Actualización de la versión ===<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes a la institución que realiza la instalación<br />
* '''3.18.x.y''': por la versión propia a la que se quiere actualizar<br />
<br />
'''Los pasos a realizar son:'''<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Realizar un backup integral de la base de datos.<br />
#Exportar datos locales. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Apuntar el servidor de producción a la nueva versión 3.18.x.y<br />
#:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/versiones/3.18.x.y<br />
</source><br />
#:'''Importante''': en versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en ese caso, ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/versiones/3.18.x.y --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="bash" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install --prefer-dist --no-dev --optimize-autoloader<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#'''Si se está actualizando a 3.18.0 desde 3.17.1, omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#:Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Importante:''': si se contara con personalizaciones de base de datos, y como parte de las mismas se diera el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden aparecer errores en la migración. En ese caso, la recomendación es borrarlas, ejecutar el comando, y luego volver a crearlas.<br />
#Compilar metadatos. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani compilar<br />
</source><br />
#:Al compilar los metadatos se generará la carpeta '''<path proyecto Guaraní>/metadatos_compilados''', que no debe versionarse (''svn commit'') ya que se regenerará cada vez que se actualice la versión de producción.<br />
#Editar el archivo '''aplicacion.php''' ('''<path proyecto Guaraní>/www/aplicacion.php'''):<br />
##Descomentar la siguiente línea para indicar que se trabajará con metadatos compilados:<br />
##:<source lang="php" enclose="div"><br />
define('apex_pa_metadatos_compilados', 1);<br />
</source><br />
##Establecer el nivel de log en un nivel razonable para producción (notice o error), descomentando y editando la siguiente línea:<br />
##:<source lang="php" enclose="div"><br />
define("apex_pa_log_archivo_nivel", 3); // 3: error | 5: notice<br />
</source><br />
#Configurar la API REST, (si es que no lo hizo antes) <br />
#:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion_con_personalizaciones/gestion&diff=66006SIU-Guarani/version3.18.0/actualizacion con personalizaciones/gestion2020-06-24T13:53:16Z<p>Jmarino: /* Pasos a realizar por el resto del equipo */</p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.18.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:(*) '''Si está actualizando desde la versión 3.15.0:''' Eliminar el archivo composer.lock de la raíz de la aplicación antes de ejecutar el comando. <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
##:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
##Configurar la API REST<br />
##:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.18.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.18.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion_con_personalizaciones/gestion&diff=66005SIU-Guarani/version3.18.0/actualizacion con personalizaciones/gestion2020-06-24T13:50:09Z<p>Jmarino: /* Pasos a realizar por el Concentrador */</p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.18.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:(*) '''Si está actualizando desde la versión 3.15.0:''' Eliminar el archivo composer.lock de la raíz de la aplicación antes de ejecutar el comando. <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
##:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
##Configurar la API REST<br />
##:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.18.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.18.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion/gestion&diff=66004SIU-Guarani/version3.18.0/actualizacion/gestion2020-06-24T13:45:41Z<p>Jmarino: /* Actualización del SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo sin personalizaciones */</p>
<hr />
<div><span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización del SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo sin personalizaciones ==<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes a la institución que realiza la instalación<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
'''Los pasos a realizar son:'''<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Mover la carpeta de procesos background de <path_guarani>/temp a <path_guarani>/instalacion/i__desarrollo/p__guarani/logs/ [[SIU-Guarani/Version3.18.0/Gestion/Refactorizacion|mas info]]<br />
#Cambiar la versión del código a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:(*) '''Si está actualizando desde la versión 3.15.0:''' Eliminar el archivo composer.lock de la raíz de la aplicación antes de ejecutar el comando.<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
#:y verificar que no existan archivos con estado 'S'.<br />
#:'''Importante''': en versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en ese caso, ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso'''.<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#:Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Desde '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
#Configurar la API REST<br />
#:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/Gestion/Refactorizacion&diff=66003SIU-Guarani/Version3.18.0/Gestion/Refactorizacion2020-06-24T13:44:23Z<p>Jmarino: /* Esquema de procesos background */</p>
<hr />
<div>== Esquema de procesos background ==<br />
<br />
<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/instalacion/desarrollo/i__desarrollo/p__guarani/logs/procesos_bk/pro_<nombre_proceso><br />
<br /><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Principal Novedad desde 3.18 ===<br />
Si proviene de una instalación anterior a esta versión, debería mover la carpeta que posee en <br />
<path_Guarani>/temp/procesos_bk <br /><br />
A la carpeta descripta en el paso anterior.<br />
<br /><br><br />
'''''Este cambio es necesario si desean revisar resultados anteriores de algún proceso, si esto no se hace, no podrán visualizarse los mismos.'''''<br />
<br /><br />
<br /><br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.18.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.19.0/Gestion/Refactorizacion&diff=72107SIU-Guarani/Version3.19.0/Gestion/Refactorizacion2020-06-24T13:44:23Z<p>Jmarino: </p>
<hr />
<div>== Esquema de procesos background ==<br />
<br />
<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/instalacion/desarrollo/i__desarrollo/p__guarani/logs/procesos_bk/pro_<nombre_proceso><br />
<br /><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Principal Novedad desde 3.19 ===<br />
Si proviene de una instalación anterior a esta versión, debería mover la carpeta que posee en <br />
<path_Guarani>/temp/procesos_bk <br /><br />
A la carpeta descripta en el paso anterior.<br />
<br /><br><br />
'''''Este cambio es necesario si desean revisar resultados anteriores de algún proceso, si esto no se hace, no podrán visualizarse los mismos.'''''<br />
<br /><br />
<br /><br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.19.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.20.0/Gestion/Refactorizacion&diff=76336SIU-Guarani/Version3.20.0/Gestion/Refactorizacion2020-06-24T13:44:23Z<p>Jmarino: </p>
<hr />
<div>== Esquema de procesos background ==<br />
<br />
<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/instalacion/desarrollo/i__desarrollo/p__guarani/logs/procesos_bk/pro_<nombre_proceso><br />
<br /><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Principal Novedad desde 3.20 ===<br />
Si proviene de una instalación anterior a esta versión, debería mover la carpeta que posee en <br />
<path_Guarani>/temp/procesos_bk <br /><br />
A la carpeta descripta en el paso anterior.<br />
<br /><br><br />
'''''Este cambio es necesario si desean revisar resultados anteriores de algún proceso, si esto no se hace, no podrán visualizarse los mismos.'''''<br />
<br /><br />
<br /><br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.20.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/Gestion/Refactorizacion&diff=66002SIU-Guarani/Version3.18.0/Gestion/Refactorizacion2020-06-24T12:35:30Z<p>Jmarino: /* Esquema de procesos background */</p>
<hr />
<div>== Esquema de procesos background ==<br />
<br />
<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/instalacion/desarrollo/i__guarani/logs/procesos_bk/pro_<nombre_proceso><br />
<br /><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Principal Novedad desde 3.18 ===<br />
Si proviene de una instalación anterior a esta versión, debería mover la carpeta que posee en <br />
<path_Guarani>/temp/procesos_bk <br /><br />
A la carpeta descripta en el paso anterior.<br />
<br /><br><br />
'''''Este cambio es necesario si desean revisar resultados anteriores de algún proceso, si esto no se hace, no podrán visualizarse los mismos.'''''<br />
<br /><br />
<br /><br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.18.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/Gestion/Refactorizacion&diff=66001SIU-Guarani/Version3.18.0/Gestion/Refactorizacion2020-06-24T12:34:31Z<p>Jmarino: /* Esquema de procesos background */</p>
<hr />
<div>== Esquema de procesos background ==<br />
<br />
<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/instalacion/desarrollo/i__guarani/logs/procesos_bk/pro_<nombre_proceso><br />
<br><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Principal Novedad desde 3.18 ===<br />
Si proviene de una instalación anterior a esta versión, debería mover la carpeta que posee en <br />
<path_Guarani>/temp/procesos_bk<br />
A la carpeta descripta en el paso anterior.<br />
<br /><br><br />
'''''Este cambio es necesario si desean revisar resultados anteriores de algún proceso, si esto no se hace, no podrán visualizarse los mismos.'''''<br />
<br /><br />
<br /><br />
<br />
<br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.18.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/Gestion/Refactorizacion&diff=66000SIU-Guarani/Version3.18.0/Gestion/Refactorizacion2020-06-24T12:34:00Z<p>Jmarino: /* Esquema de procesos background */</p>
<hr />
<div>== Esquema de procesos background ==<br />
<br />
<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/instalacion/desarrollo/i__guarani/logs/procesos_bk/pro_<nombre_proceso><br />
<br />
<br />
=== Principal Novedad desde 3.18 ===<br />
Si proviene de una instalación anterior a esta versión, debería mover la carpeta que posee en <br />
<path_Guarani>/temp/procesos_bk<br />
A la carpeta descripta en el paso anterior.<br />
<br /><br />
'''Este cambio es necesario si desean revisar resultados anteriores de algún proceso, si esto no se hace, no podrán visualizarse los mismos.'''<br />
<br /><br />
<br /><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.18.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.17.0/Gestion/Refactorizacion&diff=65999SIU-Guarani/Version3.17.0/Gestion/Refactorizacion2020-06-24T12:33:15Z<p>Jmarino: /* Esquema de procesos background */</p>
<hr />
<div>== Esquema de procesos background ==<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/temp/procesos_bk/pro_<nombre_proceso><br />
<br /><br />
<br /><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.17.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.17.0/Gestion/Refactorizacion&diff=65998SIU-Guarani/Version3.17.0/Gestion/Refactorizacion2020-06-24T12:31:55Z<p>Jmarino: /* Esquema de procesos background */</p>
<hr />
<div>== Esquema de procesos background ==<br />
<br />
=== Unificación de logs ===<br />
Se unifican los logs en una única carpeta, la misma puede ser hallada dentro de: <br /><br />
<path_Guarani>/instalacion/desarrollo/i__guarani/logs/procesos_bk/pro_<nombre_proceso><br />
<br />
<br />
=== Principal Novedad desde 3.18 ===<br />
Si proviene de una instalación anterior a esta versión, debería mover la carpeta que posee en <br />
<path_Guarani>/temp/procesos_bk<br />
A la carpeta descripta en el paso anterior.<br />
<br />
Este cambio es necesario si desean revisar resultados anteriores de algún proceso, si esto no se hace, no podrán visualizarse los mismos.<br />
<br /><br />
<br /><br />
Dentro de la misma podemos encontrar varios archivos, que sirven para los resultados, los estados, un log de ejecución y un archivo donde están los datos enviados al proceso.<br />
<br />
=== Abortar procesamiento ===<br />
Cuando nos encontramos en la última pantalla de la operación encontramos un botón llamado abortar procesamiento que nos sirve para finalizar el proceso.<br /><br />
<br />
[[Archivo:G3_Abortar_proceso.png]]<br />
<br /><br />
Esté botón se habilita cuando el proceso está en ejecución, y se deshabilita si el proceso finaliza.<br />
<br />
=== Visualización de resultados anteriores ===<br />
Al ingresar a la operación/es que se ejecutan por background, podemos ver un botón de resultados anteriores, donde se listan las ejecuciones anteriores y podemos ver también los resultados de los mismos.<br />
<br />
[[Archivo:G3_Resultados_Anteriores.png]]<br />
<br /><br />
En esta imagen vemos la inclusión del nuevo botón para ver los resultados anteriores.<br />
<br /><br /><br />
[[Archivo:G3_Resultados_Anteriores_Cuadro.png]]<br />
<br /><br />
Acá vemos todo lo ejecutado anteriormente y donde está localizada la carpeta de logs.<br />
<br /><br />
<br /><br />
[[SIU-Guarani/Version3.17.0/Novedades_tecnicas|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.18.0/Novedades_tecnicas&diff=65997SIU-Guarani/Version3.18.0/Novedades tecnicas2020-06-24T12:20:59Z<p>Jmarino: /* Gestión */</p>
<hr />
<div>__NOTOC__<br />
__NOTOC__<br />
= Principales novedades técnicas =<br />
<br />
<p style="clear: both;"></p><br />
<br />
<div style="clear: both; display: block; float: left; border-left: 3px solid #3399ff; padding: 10px; background-color: #eee; width: 565px;font-size: 13px;"><br />
<p style="margin: 0; padding: 0;">[[SIU-Guarani/Version3.18.0 | Volver]]</p><br />
<p style="margin: 0; padding: 0;">Número de versión: <strong>3.18.0</strong></p><br />
<p style="margin: 0; padding: 0;">Fecha de publicación: '''26/06/2020'''</p><br />
</div><br />
<p style="clear: both;"></p><br />
== Base de Datos ==<br />
=== Diferencias con versiones anteriores ===<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.13.2&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.13.2]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.14.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.14.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.15.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.15.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.15.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.15.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.0]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.1&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.1]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.16.2&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.16.2]<br />
* [https://colab.siu.edu.ar/trac/guarani3/changeset?old=HEAD@/branches/base_diff/versiones/3.18.0&new=HEAD@/branches/base_diff/versiones/3.18.1 Con versión 3.17.0]<br />
<div class="mw-collapsible" style="width:100%"><div class="mw-collapsible-content"><br />
== Notas de versión ==<br />
<dd></dd><br />
<br />
<div class="mw-collapsible-content"><br />
== Gestión ==<br />
<br />
* '''Se agrega el comando vincular_usuarios_moodle:'''<br />
<br />
<dd>Se agrega el comando de consola '''bin/guarani vincular_usuarios_moodle''' para vincular los usuarios de una instalación de '''Moodle''' preexistente con personas de '''SIU-Guaraní'''.</dd><br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/moodle Ver documentación aquí].</dd><br />
<br />
* '''Se agrega configuración por perfil funcional de la API REST de SIU-Guaraní:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional Ver documentación aquí].</dd><br />
<br />
* '''Se agrega comunicación con SIU-Araí:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/gestion-arai Ver documentación aquí].</dd><br />
<br />
* '''Se deben quitar las directivas echo dentro del archivo entorno_toba.env:'''<br />
<br />
<dd>Se deben quitar las directivas '''echo''' dentro del archivo '''entorno_toba.env''' por problemas de compatibilidad con SIU-Toba 3.3.4.</dd><br />
<br />
* '''Se pasan los logs de los procesos background a la carpeta instalación:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/Gestion/Refactorizacion Ver documentación aquí].</dd><br />
<br />
== 3W ==<br />
<br />
* '''Se modifica el archivo de configuración''': <br />
<dd>Se agregan nuevas directivas en el archivo '''instalacion/config.php''', se debe recrear a partir de su template (archivo '''instalacion/config_template.php'''):<br />
<br />
Se agregan las directivas '''ptoacc_ra''' y '''metodos_autenticacion_habilitados''' dentro de la configuración de '''accesos''', para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.18.0/3w/configuracion Ver documentación aquí].<br />
</dd><br />
<br />
* '''Se agrega comunicación con SIU-Araí:'''<br />
<br />
<dd>Para más información [https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.18.0/interfaces/gestion-arai Ver documentación aquí].</dd><br />
<br />
</div></div></div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/interfaces/gestion-arai&diff=65839SIU-Guarani/version3.18.0/interfaces/gestion-arai2020-06-22T13:06:43Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
= SIU-Araí =<br />
SIU-Araí es la plataforma integradora de servicios del SIU. Cada uno de los sistemas SIU son módulos dentro de la plataforma que interactúan entre sí, consumiendo y ofreciendo servicios.<br />
Esté apartado está enfocado en la integración de SIU-Guaraní en la plataforma SIU-Araí, se asume que los sistemas ya están instalados y funcionando. Para ver documentación específica de Araí hágalo desde [http://documentacion.siu.edu.ar/wiki/SIU-Arai aquí].<br />
<br />
== Vinculando SIU-Guaraní Gestión con SIU-Araí ==<br />
<br />
Antes de registrar la aplicación en Araí debemos verificar que en el archivo <code><path_gestion>/instalacion/i__desarrollo/instancia.ini</code> dentro de la sección [guarani] contenga el entrada full_url<br />
<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
[guarani]<br />
path = "<path_gestion>"<br />
url = "<url_gestion>"<br />
url_pers = "<url_gestion_pers>"<br />
full_url = "<http://full_url>" <===> URL completa donde esta publicado el proyecto<br />
<br />
</syntaxhighlight><br />
<br />
=== Generar las claves para encriptar ===<br />
Llegado a este punto, durante la instalación del proyecto y por única vez, será necesario como '''pre-requisito''' generar y configurar la clave ''para encriptar la sincronización de api REST con Araí'' . Para hacerlo, se debe correr el siguiente comando parados en <path_gestion>:<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
bin/arai-cli arai:generar-key --backend sodium_compat --destino=/ruta/donde/guardar/arai-sync.key<br />
</syntaxhighlight>También será necesario configurar en el archivo <code><path_gestion>/instalacion/instalacion.ini</code> del proyecto, la entrada <code>arai_sync_key_file</code> con la ruta donde se aloja la clave previamente creada.<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
...<br />
arai_sync_key_file=/ruta/donde/guardar/arai-sync.key<br />
<br />
</syntaxhighlight><br />
<br />
=== Variables de Entorno ===<br />
<br />
Araí-Cli utiliza variables de entorno para acceder a archivos y otras tareas, hay que asegurarse de que las siguientes variables estén instanciadas correctamente de acuerdo al entorno de instalación de la aplicación (archivos <code><path_gestion>/entorno_toba.env</code> y <code><path_gestion>/instalacion/entorno_toba.env</code>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
export TOBA_INSTANCIA=desarrollo<br />
export TOBA_PROYECTO=guarani<br />
export TOBA_PROYECTO_DIR=<path_gestion><br />
export TOBA_INSTALACION_DIR=<path_gestion>/instalacion<br />
export ARAI_REGISTRY_USER=<arai_registry_user><br />
export ARAI_REGISTRY_PASS=<arai_registry_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><arai_registry_user></code> y <code><arai_registry_pass></code> se obtienen de la instalación de Registry de SIU-Araí.<br />
<br />
=== Registrar el proyecto ===<br />
<br />
Si todo está en orden, por única vez, el proceso de registración a la plataforma SIU-Araí de la aplicación se concreta haciendo uso de la librería previamente con el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
source <path_gestion>/entorno_toba.env <===> Carga la variables de entorno<br />
bin/arai-cli registry:add --backend sodium_compat --maintainer <nombre_encargado_admin> --maintainer-email <email_encargado_admin> <url_arai_registry><br />
</syntaxhighlight><br />
<br />
'''Nota:''' Se debe proporcionar la url válida del servicio SIU-Araí Registry, junto con los datos del administrador.<br />
<br />
=== Sincronizar el proyecto ===<br />
Siempre que registremos alguna aplicación a Araí-Registry, es necesario realizar un <code>registr:sync</code> para que nuestra aplicación localmente tenga los datos más actualizados acerca de los diferentes servicios, aplicaciones y/o apis que querramos consumir. Además, si nuestra aplicación localmente agregó una nueva característica (ej. una http://toba.siu.edu.ar/trac/toba/wiki/Referencia/Rest api REST]), este comando informará a Araí-Registry la ''buena nueva''.<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/arai-cli registry:sync<br />
</syntaxhighlight><br />
<br />
<blockquote><br />
Este paso es necesario realizarlo también en Araí-Usuarios, para que este sistema se entere de la presencia de una nueva aplicación.<br />
</blockquote><br />
<br />
A partir de este momento, al ingresar al proyecto, este debiera de redirigirnos a la página de login centralizado de la plataforma SIU-Araí. Una vez el usuario ha ingresado, nos redirige nuevamente hacia la aplicación. La misma debiera de contar además con el menú de aplicaciones integrado, con las aplicaciones SIU o de terceros que tengamos registrados.<br />
<br />
[[Archivo:GUA_Launcher.png]]<br />
<br />
<br />
=== Conectando con SIU-Araí Usuarios ===<br />
Como el login a partir de este momento solo se hará através de SIU-Araí y no desde la base de negocio deberíamos indicarle a Guaraní donde está la API de SIU-Araí Usuarios para que pueda traernos los usuarios que queremos vincular a la persona existente.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
[conexion]<br />
to = <url_arai_usuarios>/rest/<br />
auth_tipo = basic<br />
auth_usuario = <arai_usuarios_user><br />
auth_password = <arai_usuarios_pass><br />
</syntaxhighlight><br />
<br />
A partir de ahora cuando queramos asignar un usuario a una persona, aparecerá un combo editable donde podremos buscar los usuarios existentes en SIU-Araí. <br />
<br />
Entonces de está forma necesitamos editar la persona en SIU-Guaraní Gestión (operación '''Administrar Personas''' solapa '''Acceso al sistema'''), y vincularla con el usuario de SIU-Araí.<br />
<br />
<br />
=== Conectando con SIU-Araí Documentos ===<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Gestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_user>"<br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
== Vinculando SIU-Guaraní Autogestión con SIU-Araí ==<br />
<br />
Ir a la aplicación de Araí Usuarios y en la operación Aplicaciones dar de alta una nueva aplicación para 3w, para luego poder vincular los usuarios de tipos de docente con el autogestión y huarpe.<br />
Se debe ingresar la url de 3w y también el appUniqueId que luego se utilizará para los siguientes pasos.<br />
Un ejemplo podría ser como el siguiente:<br />
<br />
<br />
<br />
En la instalación de Araí Usuarios, que puede ser un docker o una instalación local, pararse sobre la carpeta del mismo y correr el siguiente comando:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/toba proyecto configurar_sp -p arai_usuarios --endpoint <url_3w>/acceso --acs <url_3w>/acceso?auth=saml --login <url_3w>/acceso?auth=saml --logout <url_3w>/acceso/logout --app <appUniqueId3w><br />
</syntaxhighlight><br />
<br />
--Donde:<br />
<br />
-- <url_3w> es la url de autogestión a la cual queremos darle un acceso por el proveedor de indentidad Siu-Araí.<br />
<br />
-- <appUniqueId3w> es el identificador que hemos utilizado en el paso anterior cuando dimos de alta la aplicación en el Araí Usuarios<br />
<br />
Ir a <path_3w>/instalacion/saml y correr el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
cp settings_example.php settings.php<br />
</syntaxhighlight><br />
<br />
Abrir el archivo settings.php y dejar el siguiente contenido.<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<?php<br />
//settings y advanced_settings de la libreria de saml.<br />
$url_autogestion = '<url_3w>';<br />
$url_idp = '<url_arai>';<br />
return $settings = array (<br />
// If 'strict' is True, then the PHP Toolkit will reject unsigned<br />
// or unencrypted messages if it expects them signed or encrypted<br />
// Also will reject the messages if not strictly follow the SAML<br />
// standard: Destination, NameId, Conditions ... are validated too.<br />
'strict' => false,<br />
<br />
// Enable debug mode (to print errors)<br />
'debug' => true,<br />
<br />
// Service Provider Data that we are deploying<br />
'sp' => array (<br />
// Identifier of the SP entity (must be a URI)<br />
'entityId' => $url_autogestion.'/acceso',<br />
// Specifies info about where and how the <AuthnResponse> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'assertionConsumerService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso?auth=saml',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',<br />
),<br />
// Specifies info about where and how the <Logout Response> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'singleLogoutService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso/logout',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Specifies constraints on the name identifier to be used to<br />
// represent the requested subject.<br />
// Take a look on lib/Saml2/Constants.php to see the NameIdFormat supported<br />
'nameIdFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',<br />
<br />
// Usually x509cert and privateKey of the SP are provided by files placed at<br />
// the certs folder. But we can also provide them with the following parameters<br />
// 'x509cert' => file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt'),<br />
// 'privateKey' > file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.pem'),<br />
),<br />
<br />
// Identity Provider Data that we want connect with our SP<br />
'idp' => array (<br />
// Identifier of the IdP entity (must be a URI)<br />
'entityId' => $url_idp.'/saml2/idp/metadata.php',<br />
// SSO endpoint info of the IdP. (Authentication Request protocol)<br />
'singleSignOnService' => array (<br />
// URL Target of the IdP where the SP will send the Authentication Request Message<br />
'url' => $url_idp.'/saml2/idp/SSOService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-POST binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// SLO endpoint info of the IdP.<br />
'singleLogoutService' => array (<br />
// URL Location of the IdP where the SP will send the SLO Request<br />
'url' => $url_idp.'/saml2/idp/SingleLogoutService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Public x509 certificate of the IdP<br />
// 'x509cert' => \siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt',<br />
/*<br />
*Instead of use the whole x509cert you can use a fingerprint<br />
*(openssl x509 -noout -fingerprint -in "idp.crt" to generate it)<br />
*/<br />
'certFingerprint' => '65:C0:CE:76:C5:41:8B:C1:D6:0F:C3:E6:4E:22:E5:58:06:E9:94:F1',<br />
),<br />
<br />
//Advanced settings<br />
// Security settings<br />
'security' => array (<br />
<br />
/** signatures and encryptions offered */<br />
<br />
// Indicates that the nameID of the <samlp:logoutRequest> sent by this SP<br />
// will be encrypted.<br />
'nameIdEncrypted' => false,<br />
<br />
// Indicates whether the <samlp:AuthnRequest> messages sent by this SP<br />
// will be signed. [The Metadata of the SP will offer this info]<br />
'authnRequestsSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutRequest> messages sent by this SP<br />
// will be signed.<br />
'logoutRequestSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutResponse> messages sent by this SP<br />
// will be signed.<br />
'logoutResponseSigned' => false,<br />
<br />
/* Sign the Metadata<br />
False || True (use sp certs) || array (<br />
keyFileName => 'metadata.key',<br />
certFileName => 'metadata.crt'<br />
)<br />
*/<br />
'signMetadata' => false,<br />
<br />
<br />
/** signatures and encryptions required **/<br />
<br />
// Indicates a requirement for the <samlp:Response>, <samlp:LogoutRequest> and<br />
// <samlp:LogoutResponse> elements received by this SP to be signed.<br />
'wantMessagesSigned' => false,<br />
<br />
// Indicates a requirement for the <saml:Assertion> elements received by<br />
// this SP to be signed. [The Metadata of the SP will offer this info]<br />
'wantAssertionsSigned' => false,<br />
<br />
// Indicates a requirement for the NameID received by<br />
// this SP to be encrypted.<br />
'wantNameIdEncrypted' => false,<br />
),<br />
<br />
// Contact information template, it is recommended to suply a technical and support contacts<br />
'contactPerson' => array (<br />
'technical' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
'support' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
),<br />
<br />
// Organization information template, the info in en_US lang is recomended, add more if required<br />
'organization' => array (<br />
'en-US' => array(<br />
'name' => 'CAMBIAR',<br />
'displayname' => 'CAMBIAR',<br />
'url' => 'CAMBIAR.com'<br />
),<br />
),<br />
);<br />
<br />
</syntaxhighlight><br />
<br />
Una vez terminado esto ir al archivo <path_3w>/instalacion/login.php y configurar lo siguiente:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
'saml' => array(<br />
'activo' => true,<br />
'clase' => 'modelo\\autenticacion\\auth_saml',<br />
'parametros' => array(<br />
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings.php',<br />
'saml_uid' => 'userAccounts',// 'urn:oid:0.9.2342.19200300.100.1.1', //se matchea con local_uid<br />
'local_uid' => 'usuario', //puede ser 'persona'<br />
),<br />
),<br />
</syntaxhighlight><br />
<br />
Agregar en instalacion.ini de gestion estas variables según lo que se tiene en araí usuarios para cada aplicación<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
appUniqueIdGestion = <br />
appUniqueId3w= <br />
</syntaxhighlight><br />
<br />
<br />
= Migrando usuarios de Gestión a Araí =<br />
<br />
=== Exportación de usuarios ===<br />
Los usuarios actuales que poseemos en gestión los deberiamos tener disponibles en una cuenta de Araí.<br />
Para exportarlos deberíamos realizar lo siguiente:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani exportar_usuarios_arai<br />
</syntaxhighlight><br />
<br />
Este comando posee las siguiente opciones:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
-d => Path donde se guarda el archivo, por defecto -> $this->get_instalacion()->get_dir()/usersExportFiles/,<br />
-f => Nombre del archivo donde se exportaran los usuarios, por defecto -> usuarios_ . date('YmdHis'),<br />
-m => Nombre del responsable, por defecto -> toba,<br />
-e => Mails del responsable, por defecto -> toba<br />
</syntaxhighlight><br />
<br />
=== Importando usuarios a Araí ===<br />
<br />
Para importar las cuentas, el módulo '''SIU-Araí: Usuarios''' proporciona un comando de consola, que nos permite cargar la información de un conjunto de usuarios y/o cuentas, todo a partir de un archivo en formato '''json'''. Para ejecutar el comando primero será necesario cargar el entorno, para lo cual podemos ejecutar:<syntaxhighlight lang="bash" enclose="div"><br />
cd /ruta/siu-arai/usuarios<br />
. ./entorno_toba.env<br />
</syntaxhighlight><br />
<br />
Una vez cargado el entorno, es posible ejecutar la exportación de la siguiente forma:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
toba proyecto importar_usuarios_arai -f <path_completo_archivo.json> -m comparador [-t cuentas|personas]<br />
</syntaxhighlight><br />
Este comando procesará un archivo en la ruta <code>/ruta/modulo/siu/instalacion/usersExportFiles/cuentas-xxx-arai.json</code> importando las definiciones de personas y/o cuentas, teniendo en cuenta las opciones de comparación. <br />
<br />
Al momento de importar, es necesario elegir como se comparan los datos de usuarios/personas a importar con los que pueden existir, mediante el argumento <code>comparador</code>. Este puede ser uno de los siguientes: <br />
* <code>0</code>: Género, tipo y número de documento<br />
* <code>1</code>: Tipo y número de documento<br />
* <code>2</code>: Email<br />
* <code>3</code>: atributo UniqueIdentifier<br />
* <code>4</code>: No intenta matchear, sólo agrega cuentas nuevas para las personas<br />
De forma opcional, se puede indicar con el argumento <code>-t</code> si se desea importar la información de <code>cuentas</code> o solamente la información de <code>personas</code>.<br />
<br />
Una vez realizada la importación, el proceso nos mostrará un resumen de las acciones realizadas, así como los posibles inconvenientes que pueden haber surgido al momento de importar y comparar los datos existentes.<br />
<br />
Para más información puede consultar la documentación de [[SIU-Arai/Administrar#Importar_cuentas_desde_una_aplicaci.C3.B3n_vinculada | Araí]]<br />
<br />
<br />
[[SIU-Guarani/version3.18.0/interfaces | < Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/interfaces/gestion-arai&diff=65838SIU-Guarani/version3.18.0/interfaces/gestion-arai2020-06-22T12:52:52Z<p>Jmarino: /* Vinculando SIU-Guaraní Autogestión con SIU-Araí */</p>
<hr />
<div>__NOTOC__<br />
= SIU-Araí =<br />
SIU-Araí es la plataforma integradora de servicios del SIU. Cada uno de los sistemas SIU son módulos dentro de la plataforma que interactúan entre sí, consumiendo y ofreciendo servicios.<br />
Esté apartado está enfocado en la integración de SIU-Guaraní en la plataforma SIU-Araí, se asume que los sistemas ya están instalados y funcionando. Para ver documentación específica de Araí hágalo desde [http://documentacion.siu.edu.ar/wiki/SIU-Arai aquí].<br />
<br />
== Vinculando SIU-Guaraní Gestión con SIU-Araí ==<br />
<br />
Antes de registrar la aplicación en Araí debemos verificar que en el archivo <code><path_gestion>/instalacion/i__desarrollo/instancia.ini</code> dentro de la sección [guarani] contenga el entrada full_url<br />
<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
[guarani]<br />
path = "<path_gestion>"<br />
url = "<url_gestion>"<br />
url_pers = "<url_gestion_pers>"<br />
full_url = "<http://full_url>" <===> URL completa donde esta publicado el proyecto<br />
<br />
</syntaxhighlight><br />
<br />
=== Generar las claves para encriptar ===<br />
Llegado a este punto, durante la instalación del proyecto y por única vez, será necesario como '''pre-requisito''' generar y configurar la clave ''para encriptar la sincronización de api REST con Araí'' . Para hacerlo, se debe correr el siguiente comando parados en <path_gestion>:<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
bin/arai-cli arai:generar-key --backend sodium_compat --destino=/ruta/donde/guardar/arai-sync.key<br />
</syntaxhighlight>También será necesario configurar en el archivo <code><path_gestion>/instalacion/instalacion.ini</code> del proyecto, la entrada <code>arai_sync_key_file</code> con la ruta donde se aloja la clave previamente creada.<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
...<br />
arai_sync_key_file=/ruta/donde/guardar/arai-sync.key<br />
<br />
</syntaxhighlight><br />
<br />
=== Variables de Entorno ===<br />
<br />
Araí-Cli utiliza variables de entorno para acceder a archivos y otras tareas, hay que asegurarse de que las siguientes variables estén instanciadas correctamente de acuerdo al entorno de instalación de la aplicación (archivos <code><path_gestion>/entorno_toba.env</code> y <code><path_gestion>/instalacion/entorno_toba.env</code>).<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
export TOBA_INSTANCIA=desarrollo<br />
export TOBA_PROYECTO=guarani<br />
export TOBA_PROYECTO_DIR=<path_gestion><br />
export TOBA_INSTALACION_DIR=<path_gestion>/instalacion<br />
export ARAI_REGISTRY_USER=<arai_registry_user><br />
export ARAI_REGISTRY_PASS=<arai_registry_pass><br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><arai_registry_user></code> y <code><arai_registry_pass></code> se obtienen de la instalación de Registry de SIU-Araí.<br />
<br />
=== Registrar el proyecto ===<br />
<br />
Si todo está en orden, por única vez, el proceso de registración a la plataforma SIU-Araí de la aplicación se concreta haciendo uso de la librería previamente con el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div" highlight="4"><br />
source <path_gestion>/entorno_toba.env <===> Carga la variables de entorno<br />
bin/arai-cli registry:add --backend sodium_compat --maintainer <nombre_encargado_admin> --maintainer-email <email_encargado_admin> <url_arai_registry><br />
</syntaxhighlight><br />
<br />
'''Nota:''' Se debe proporcionar la url válida del servicio SIU-Araí Registry, junto con los datos del administrador.<br />
<br />
=== Sincronizar el proyecto ===<br />
Siempre que registremos alguna aplicación a Araí-Registry, es necesario realizar un <code>registr:sync</code> para que nuestra aplicación localmente tenga los datos más actualizados acerca de los diferentes servicios, aplicaciones y/o apis que querramos consumir. Además, si nuestra aplicación localmente agregó una nueva característica (ej. una http://toba.siu.edu.ar/trac/toba/wiki/Referencia/Rest api REST]), este comando informará a Araí-Registry la ''buena nueva''.<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/arai-cli registry:sync<br />
</syntaxhighlight><br />
<br />
<blockquote><br />
Este paso es necesario realizarlo también en Araí-Usuarios, para que este sistema se entere de la presencia de una nueva aplicación.<br />
</blockquote><br />
<br />
A partir de este momento, al ingresar al proyecto, este debiera de redirigirnos a la página de login centralizado de la plataforma SIU-Araí. Una vez el usuario ha ingresado, nos redirige nuevamente hacia la aplicación. La misma debiera de contar además con el menú de aplicaciones integrado, con las aplicaciones SIU o de terceros que tengamos registrados.<br />
<br />
[[Archivo:GUA_Launcher.png]]<br />
<br />
<br />
=== Conectando con SIU-Araí Usuarios ===<br />
Como el login a partir de este momento solo se hará através de SIU-Araí y no desde la base de negocio deberíamos indicarle a Guaraní donde está la API de SIU-Araí Usuarios para que pueda traernos los usuarios que queremos vincular a la persona existente.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/i__desarrollo/p__guarani/rest/arai_usuarios/cliente.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
[conexion]<br />
to = <url_arai_usuarios>/rest/<br />
auth_tipo = basic<br />
auth_usuario = <arai_usuarios_user><br />
auth_password = <arai_usuarios_pass><br />
</syntaxhighlight><br />
<br />
A partir de ahora cuando queramos asignar un usuario a una persona, aparecerá un combo editable donde podremos buscar los usuarios existentes en SIU-Araí. <br />
<br />
Entonces de está forma necesitamos editar la persona en SIU-Guaraní Gestión (operación '''Administrar Personas''' solapa '''Acceso al sistema'''), y vincularla con el usuario de SIU-Araí.<br />
<br />
<br />
=== Conectando con SIU-Araí Documentos ===<br />
Para la creación de documentos en SIU-Araí necesitamos realizar la siguiente configuración en SIU-Guaraní Gestión.<br />
<br />
Se debería agregar el siguiente archivo:<br />
<code><path_gestion>/instalacion/arai_documentos.ini</code><br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
host_arai = "<url_arai_documentos>"<br />
usr_arai = "<arai_documentos_user>"<br />
pass_arai = "<arai_documentos_user>"<br />
</syntaxhighlight><br />
<br />
'''Nota:''' <code><url_arai_documentos></code> es la URL base de SIU-Araí Documentos (sin el sufijo "/rest/backend/").<br />
<br />
== Vinculando SIU-Guaraní Autogestión con SIU-Araí ==<br />
<br />
En la instalación de Araí Usuarios, que puede ser un docker o una instalación local, pararse sobre la carpeta del mismo y correr el siguiente comando:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/toba proyecto configurar_sp -p arai_usuarios --endpoint <url_3w>/acceso --acs <url_3w>/acceso?auth=saml --login <url_3w>/acceso?auth=saml --logout <url_3w>/acceso/logout --app <appUniqueId3w><br />
</syntaxhighlight><br />
<br />
--Donde:<br />
-- <url_3w> es la url de autogestión a la cual queremos darle un acceso por el proveedor de indentidad Siu-Araí.<br />
-- <appUniqueId3w> es el identificador que le queremos dar a nuestro 3w. Es recomendable que quede similar al que tiene el gestión con el que se relaciona el 3w. <br />
<br />
Ir a <path_3w>/instalacion/saml y correr el siguiente comando:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
cp settings_example.php settings.php<br />
</syntaxhighlight><br />
<br />
Abrir el archivo settings.php y dejar el siguiente contenido.<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
<?php<br />
//settings y advanced_settings de la libreria de saml.<br />
$url_autogestion = '<url_3w>';<br />
$url_idp = '<url_arai>';<br />
return $settings = array (<br />
// If 'strict' is True, then the PHP Toolkit will reject unsigned<br />
// or unencrypted messages if it expects them signed or encrypted<br />
// Also will reject the messages if not strictly follow the SAML<br />
// standard: Destination, NameId, Conditions ... are validated too.<br />
'strict' => false,<br />
<br />
// Enable debug mode (to print errors)<br />
'debug' => true,<br />
<br />
// Service Provider Data that we are deploying<br />
'sp' => array (<br />
// Identifier of the SP entity (must be a URI)<br />
'entityId' => $url_autogestion.'/acceso',<br />
// Specifies info about where and how the <AuthnResponse> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'assertionConsumerService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso?auth=saml',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',<br />
),<br />
// Specifies info about where and how the <Logout Response> message MUST be<br />
// returned to the requester, in this case our SP.<br />
'singleLogoutService' => array (<br />
// URL Location where the <Response> from the IdP will be returned<br />
'url' => $url_autogestion.'/acceso/logout',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Specifies constraints on the name identifier to be used to<br />
// represent the requested subject.<br />
// Take a look on lib/Saml2/Constants.php to see the NameIdFormat supported<br />
'nameIdFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',<br />
<br />
// Usually x509cert and privateKey of the SP are provided by files placed at<br />
// the certs folder. But we can also provide them with the following parameters<br />
// 'x509cert' => file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt'),<br />
// 'privateKey' > file_get_contents(\siu\bootstrap::get_dir_instalacion() . '/saml/saml.pem'),<br />
),<br />
<br />
// Identity Provider Data that we want connect with our SP<br />
'idp' => array (<br />
// Identifier of the IdP entity (must be a URI)<br />
'entityId' => $url_idp.'/saml2/idp/metadata.php',<br />
// SSO endpoint info of the IdP. (Authentication Request protocol)<br />
'singleSignOnService' => array (<br />
// URL Target of the IdP where the SP will send the Authentication Request Message<br />
'url' => $url_idp.'/saml2/idp/SSOService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-POST binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// SLO endpoint info of the IdP.<br />
'singleLogoutService' => array (<br />
// URL Location of the IdP where the SP will send the SLO Request<br />
'url' => $url_idp.'/saml2/idp/SingleLogoutService.php',<br />
// SAML protocol binding to be used when returning the <Response><br />
// message. Onelogin Toolkit supports for this endpoint the<br />
// HTTP-Redirect binding only<br />
'binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',<br />
),<br />
// Public x509 certificate of the IdP<br />
// 'x509cert' => \siu\bootstrap::get_dir_instalacion() . '/saml/saml.crt',<br />
/*<br />
*Instead of use the whole x509cert you can use a fingerprint<br />
*(openssl x509 -noout -fingerprint -in "idp.crt" to generate it)<br />
*/<br />
'certFingerprint' => '65:C0:CE:76:C5:41:8B:C1:D6:0F:C3:E6:4E:22:E5:58:06:E9:94:F1',<br />
),<br />
<br />
//Advanced settings<br />
// Security settings<br />
'security' => array (<br />
<br />
/** signatures and encryptions offered */<br />
<br />
// Indicates that the nameID of the <samlp:logoutRequest> sent by this SP<br />
// will be encrypted.<br />
'nameIdEncrypted' => false,<br />
<br />
// Indicates whether the <samlp:AuthnRequest> messages sent by this SP<br />
// will be signed. [The Metadata of the SP will offer this info]<br />
'authnRequestsSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutRequest> messages sent by this SP<br />
// will be signed.<br />
'logoutRequestSigned' => false,<br />
<br />
// Indicates whether the <samlp:logoutResponse> messages sent by this SP<br />
// will be signed.<br />
'logoutResponseSigned' => false,<br />
<br />
/* Sign the Metadata<br />
False || True (use sp certs) || array (<br />
keyFileName => 'metadata.key',<br />
certFileName => 'metadata.crt'<br />
)<br />
*/<br />
'signMetadata' => false,<br />
<br />
<br />
/** signatures and encryptions required **/<br />
<br />
// Indicates a requirement for the <samlp:Response>, <samlp:LogoutRequest> and<br />
// <samlp:LogoutResponse> elements received by this SP to be signed.<br />
'wantMessagesSigned' => false,<br />
<br />
// Indicates a requirement for the <saml:Assertion> elements received by<br />
// this SP to be signed. [The Metadata of the SP will offer this info]<br />
'wantAssertionsSigned' => false,<br />
<br />
// Indicates a requirement for the NameID received by<br />
// this SP to be encrypted.<br />
'wantNameIdEncrypted' => false,<br />
),<br />
<br />
// Contact information template, it is recommended to suply a technical and support contacts<br />
'contactPerson' => array (<br />
'technical' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
'support' => array (<br />
'givenName' => 'CAMBIAR',<br />
'emailAddress' => 'CAMBIAR'<br />
),<br />
),<br />
<br />
// Organization information template, the info in en_US lang is recomended, add more if required<br />
'organization' => array (<br />
'en-US' => array(<br />
'name' => 'CAMBIAR',<br />
'displayname' => 'CAMBIAR',<br />
'url' => 'CAMBIAR.com'<br />
),<br />
),<br />
);<br />
<br />
</syntaxhighlight><br />
<br />
Una vez terminado esto ir al archivo <path_3w>/instalacion/login.php y configurar lo siguiente:<br />
<br />
<syntaxhighlight lang="php" enclose="div"><br />
'saml' => array(<br />
'activo' => true,<br />
'clase' => 'modelo\\autenticacion\\auth_saml',<br />
'parametros' => array(<br />
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings.php',<br />
'saml_uid' => 'userAccounts',// 'urn:oid:0.9.2342.19200300.100.1.1', //se matchea con local_uid<br />
'local_uid' => 'usuario', //puede ser 'persona'<br />
),<br />
),<br />
</syntaxhighlight><br />
<br />
Agregar en instalacion.ini de gestion estas variables según lo que se tiene en araí usuarios para cada aplicación<br />
<br />
appUniqueIdGestion = <br />
appUniqueId3w= <br />
<br />
<br />
<br />
--Usuarios de gestion y 3w.<br />
<br />
= Migrando usuarios de Gestión a Araí =<br />
<br />
=== Exportación de usuarios ===<br />
Los usuarios actuales que poseemos en gestión los deberiamos tener disponibles en una cuenta de Araí.<br />
Para exportarlos deberíamos realizar lo siguiente:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
bin/guarani exportar_usuarios_arai<br />
</syntaxhighlight><br />
<br />
Este comando posee las siguiente opciones:<br />
<syntaxhighlight lang="bash" enclose="div"><br />
-d => Path donde se guarda el archivo, por defecto -> $this->get_instalacion()->get_dir()/usersExportFiles/,<br />
-f => Nombre del archivo donde se exportaran los usuarios, por defecto -> usuarios_ . date('YmdHis'),<br />
-m => Nombre del responsable, por defecto -> toba,<br />
-e => Mails del responsable, por defecto -> toba<br />
</syntaxhighlight><br />
<br />
=== Importando usuarios a Araí ===<br />
<br />
Para importar las cuentas, el módulo '''SIU-Araí: Usuarios''' proporciona un comando de consola, que nos permite cargar la información de un conjunto de usuarios y/o cuentas, todo a partir de un archivo en formato '''json'''. Para ejecutar el comando primero será necesario cargar el entorno, para lo cual podemos ejecutar:<syntaxhighlight lang="bash" enclose="div"><br />
cd /ruta/siu-arai/usuarios<br />
. ./entorno_toba.env<br />
</syntaxhighlight><br />
<br />
Una vez cargado el entorno, es posible ejecutar la exportación de la siguiente forma:<br />
<br />
<syntaxhighlight lang="bash" enclose="div"><br />
toba proyecto importar_usuarios_arai -f <path_completo_archivo.json> -m comparador [-t cuentas|personas]<br />
</syntaxhighlight><br />
Este comando procesará un archivo en la ruta <code>/ruta/modulo/siu/instalacion/usersExportFiles/cuentas-xxx-arai.json</code> importando las definiciones de personas y/o cuentas, teniendo en cuenta las opciones de comparación. <br />
<br />
Al momento de importar, es necesario elegir como se comparan los datos de usuarios/personas a importar con los que pueden existir, mediante el argumento <code>comparador</code>. Este puede ser uno de los siguientes: <br />
* <code>0</code>: Género, tipo y número de documento<br />
* <code>1</code>: Tipo y número de documento<br />
* <code>2</code>: Email<br />
* <code>3</code>: atributo UniqueIdentifier<br />
* <code>4</code>: No intenta matchear, sólo agrega cuentas nuevas para las personas<br />
De forma opcional, se puede indicar con el argumento <code>-t</code> si se desea importar la información de <code>cuentas</code> o solamente la información de <code>personas</code>.<br />
<br />
Una vez realizada la importación, el proceso nos mostrará un resumen de las acciones realizadas, así como los posibles inconvenientes que pueden haber surgido al momento de importar y comparar los datos existentes.<br />
<br />
Para más información puede consultar la documentación de [[SIU-Arai/Administrar#Importar_cuentas_desde_una_aplicaci.C3.B3n_vinculada | Araí]]<br />
<br />
<br />
[[SIU-Guarani/version3.18.0/interfaces | < Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces/configuracion-ldap&diff=64277SIU-Guarani/version3.17.0/interfaces/configuracion-ldap2020-04-29T15:36:28Z<p>Jmarino: </p>
<hr />
<div>== Configuración LDAP ==<br />
<br />
=== Configuración en Gestión ===<br />
<br />
En el archivo <path_gestion>/instalacion/instalacion.ini que por defecto viene comentada de la siguiente forma<br />
<br />
<nowiki>;</nowiki>autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"<br />
<br />
Dejar de la siguiente forma la línea anterior<br />
<br />
autenticacion = "guarani_ldap"<br />
<br />
Luego en el archivo ldap.ini cambiar los parametros que vienen por defecto por los que correspondan por ejemplo:<br />
<br />
<source lang="php" enclose="div"><br />
[basicos]<br />
<br />
server = "localhost/ldap" ;Servidor LDAP<br />
<br />
user = "admin" ;Usuario<br />
<br />
dn = "dc=siu,dc=edu" ;DN<br />
<br />
bind_dn = "cn=admin,dc=uni,dc=edu"' ;Usuario DN<br />
<br />
bind_pass = "admin" ;Password<br />
<br />
filter = "uid=%s" ;Busqueda de usuarios.<br />
<br />
</source><br />
<br />
=== Configuración en 3W ===<br />
<br />
En el archivo instalacion/login.php<br />
<br />
Cambiar la clase de autenticacion de form por auth_ldap.<br />
<br />
También se deben agregar los parámetros con esos indices para que funcione.<br />
<br />
A modo de ejemplo:<source lang="php" enclose="div"><br />
'form' => array(<br />
<br />
'activo' => true,<br />
<br />
'clase' => 'modelo\\autenticacion\\auth_ldap',<br />
<br />
'parametros' => array(<br />
<br />
'server' => 'localhost/ldap', //Servidor LDAP<br />
<br />
'user' => 'admin', //Usuario<br />
<br />
'dn' => 'dc=siu,dc=edu', //DN<br />
<br />
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN<br />
<br />
'bind_pass' => 'admin', //Password<br />
<br />
'filter' => 'uid=*' //Busqueda de usuarios.<br />
<br />
)<br />
<br />
),<br />
</source>Cualquier error que se generé va a quedar en los logs del 3w.</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces/configuracion-ldap&diff=64276SIU-Guarani/version3.17.0/interfaces/configuracion-ldap2020-04-29T15:35:17Z<p>Jmarino: /* Configuración en Gestión */</p>
<hr />
<div>== Configuración LDAP ==<br />
<br />
=== Configuración en Gestión ===<br />
<br />
En el archivo <path_gestion>/instalacion/instalacion.ini que por defecto viene comentada de la siguiente forma<br />
<br />
<nowiki>;</nowiki>autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"<br />
<br />
Dejar de la siguiente forma la línea anterior<br />
<br />
autenticacion = "guarani_ldap"<br />
<br />
Luego en el archivo ldap.ini cambiar los parametros que vienen por defecto por los que correspondan por ejemplo:<br />
<br />
[basicos]<br />
<br />
server = "localhost/ldap" ;Servidor LDAP<br />
<br />
user = "admin" ;Usuario<br />
<br />
dn = "dc=siu,dc=edu" ;DN<br />
<br />
bind_dn = "cn=admin,dc=uni,dc=edu"' ;Usuario DN<br />
<br />
bind_pass = "admin" ;Password<br />
<br />
filter = "uid=%s" ;Busqueda de usuarios.<br />
<br />
=== Configuración en 3W ===<br />
<br />
En el archivo instalacion/login.php<br />
<br />
Cambiar la clase de autenticacion de form por auth_ldap.<br />
<br />
También se deben agregar los parámetros con esos indices para que funcione.<br />
<br />
A modo de ejemplo:<source lang="php" enclose="div"><br />
'form' => array(<br />
<br />
'activo' => true,<br />
<br />
'clase' => 'modelo\\autenticacion\\auth_ldap',<br />
<br />
'parametros' => array(<br />
<br />
'server' => 'localhost/ldap', //Servidor LDAP<br />
<br />
'user' => 'admin', //Usuario<br />
<br />
'dn' => 'dc=siu,dc=edu', //DN<br />
<br />
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN<br />
<br />
'bind_pass' => 'admin', //Password<br />
<br />
'filter' => 'uid=*' //Busqueda de usuarios.<br />
<br />
)<br />
<br />
),<br />
</source>Cualquier error que se generé va a quedar en los logs del 3w.</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces/configuracion-ldap&diff=64275SIU-Guarani/version3.17.0/interfaces/configuracion-ldap2020-04-29T15:33:52Z<p>Jmarino: </p>
<hr />
<div>== Configuración LDAP ==<br />
<br />
=== Configuración en Gestión ===<br />
<br />
En el archivo <path_gestion>/instalacion/instalacion.ini<br />
<br />
que por defecto viene comentada de la siguiente forma<br />
<br />
<nowiki>;</nowiki>autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"<br />
<br />
Dejar de la siguiente forma la línea anterior<br />
<br />
autenticacion = "guarani_ldap"<br />
<br />
Luego en el archivo ldap.ini cambiar los parametros que vienen por defecto por los que correspondan por ejemplo:<br />
<br />
[basicos]<br />
<br />
server = "localhost/ldap" ;Servidor LDAP<br />
<br />
user = "admin" ;Usuario<br />
<br />
dn = "dc=siu,dc=edu" ;DN<br />
<br />
bind_dn = "cn=admin,dc=uni,dc=edu"' ;Usuario DN<br />
<br />
bind_pass = "admin" ;Password<br />
<br />
filter = "uid=%s" ;Busqueda de usuarios.<br />
<br />
=== Configuración en 3W ===<br />
<br />
En el archivo instalacion/login.php<br />
<br />
Cambiar la clase de autenticacion de form por auth_ldap.<br />
<br />
También se deben agregar los parametros con esos indices para que funcione.<br />
<br />
A modo de ejemplo te envió esto para que lo veas.<br />
#<source lang="php" enclose="div"><br />
'form' => array(<br />
<br />
'activo' => true,<br />
<br />
'clase' => 'modelo\\autenticacion\\auth_ldap',<br />
<br />
'parametros' => array(<br />
<br />
'server' => 'localhost/ldap', //Servidor LDAP<br />
<br />
'user' => 'admin', //Usuario<br />
<br />
'dn' => 'dc=siu,dc=edu', //DN<br />
<br />
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN<br />
<br />
'bind_pass' => 'admin', //Password<br />
<br />
'filter' => 'uid=*' //Busqueda de usuarios.<br />
<br />
)<br />
<br />
),<br />
</source><br />
Cualquier error que se generé va a quedar en los logs del 3w.</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces/configuracion-ldap&diff=64274SIU-Guarani/version3.17.0/interfaces/configuracion-ldap2020-04-29T15:33:27Z<p>Jmarino: /* Configuración en 3W */</p>
<hr />
<div>== Configuración LDAP ==<br />
<br />
=== Configuración en Gestión ===<br />
<br />
En el archivo <path_gestion>/instalacion/instalacion.ini<br />
<br />
que por defecto viene comentada de la siguiente forma<br />
<br />
<nowiki>;</nowiki>autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"<br />
<br />
Dejar de la siguiente forma la línea anterior<br />
<br />
autenticacion = "guarani_ldap"<br />
<br />
Luego en el archivo ldap.ini cambiar los parametros que vienen por defecto por los que correspondan por ejemplo:<br />
<br />
[basicos]<br />
<br />
server = "localhost/ldap" ;Servidor LDAP<br />
<br />
user = "admin" ;Usuario<br />
<br />
dn = "dc=siu,dc=edu" ;DN<br />
<br />
bind_dn = "cn=admin,dc=uni,dc=edu"' ;Usuario DN<br />
<br />
bind_pass = "admin" ;Password<br />
<br />
filter = "uid=%s" ;Busqueda de usuarios.<br />
<br />
=== Configuración en 3W ===<br />
<br />
En el archivo instalacion/login.php<br />
<br />
Cambiar la clase de autenticacion de form por auth_ldap.<br />
<br />
También se deben agregar los parametros con esos indices para que funcione.<br />
<br />
A modo de ejemplo te envió esto para que lo veas.<br />
#:<source lang="php" enclose="div"><br />
'form' => array(<br />
<br />
'activo' => true,<br />
<br />
'clase' => 'modelo\\autenticacion\\auth_ldap',<br />
<br />
'parametros' => array(<br />
<br />
'server' => 'localhost/ldap', //Servidor LDAP<br />
<br />
'user' => 'admin', //Usuario<br />
<br />
'dn' => 'dc=siu,dc=edu', //DN<br />
<br />
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN<br />
<br />
'bind_pass' => 'admin', //Password<br />
<br />
'filter' => 'uid=*' //Busqueda de usuarios.<br />
<br />
)<br />
<br />
),<br />
</source><br />
Cualquier error que se generé va a quedar en los logs del 3w.</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces/configuracion-ldap&diff=64273SIU-Guarani/version3.17.0/interfaces/configuracion-ldap2020-04-29T15:33:01Z<p>Jmarino: /* Configuración en 3W */</p>
<hr />
<div>== Configuración LDAP ==<br />
<br />
=== Configuración en Gestión ===<br />
<br />
En el archivo <path_gestion>/instalacion/instalacion.ini<br />
<br />
que por defecto viene comentada de la siguiente forma<br />
<br />
<nowiki>;</nowiki>autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"<br />
<br />
Dejar de la siguiente forma la línea anterior<br />
<br />
autenticacion = "guarani_ldap"<br />
<br />
Luego en el archivo ldap.ini cambiar los parametros que vienen por defecto por los que correspondan por ejemplo:<br />
<br />
[basicos]<br />
<br />
server = "localhost/ldap" ;Servidor LDAP<br />
<br />
user = "admin" ;Usuario<br />
<br />
dn = "dc=siu,dc=edu" ;DN<br />
<br />
bind_dn = "cn=admin,dc=uni,dc=edu"' ;Usuario DN<br />
<br />
bind_pass = "admin" ;Password<br />
<br />
filter = "uid=%s" ;Busqueda de usuarios.<br />
<br />
=== Configuración en 3W ===<br />
<br />
En el archivo instalacion/login.php<br />
<br />
Cambiar la clase de autenticacion de form por auth_ldap.<br />
<br />
También se deben agregar los parametros con esos indices para que funcione.<br />
<br />
A modo de ejemplo te envió esto para que lo veas.<br />
<br />
'form' => array(<br />
<br />
'activo' => true,<br />
<br />
'clase' => 'modelo\\autenticacion\\auth_ldap',<br />
<br />
'parametros' => array(<br />
<br />
'server' => 'localhost/ldap', //Servidor LDAP<br />
<br />
'user' => 'admin', //Usuario<br />
<br />
'dn' => 'dc=siu,dc=edu', //DN<br />
<br />
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN<br />
<br />
'bind_pass' => 'admin', //Password<br />
<br />
'filter' => 'uid=*' //Busqueda de usuarios.<br />
<br />
)<br />
<br />
),<br />
<br />
Cualquier error que se generé va a quedar en los logs del 3w.</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces/configuracion-ldap&diff=64272SIU-Guarani/version3.17.0/interfaces/configuracion-ldap2020-04-29T15:32:25Z<p>Jmarino: /* Configuración LDAP */</p>
<hr />
<div>== Configuración LDAP ==<br />
<br />
=== Configuración en Gestión ===<br />
<br />
En el archivo <path_gestion>/instalacion/instalacion.ini<br />
<br />
que por defecto viene comentada de la siguiente forma<br />
<br />
<nowiki>;</nowiki>autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"<br />
<br />
dejar de la siguiente forma:<br />
<br />
autenticacion = "guarani_ldap"<br />
<br />
Luego en el archivo ldap.ini cambiar los parametros que vienen por defecto por los que correspondan por ejemplo:<br />
<br />
[basicos]<br />
<br />
server = "localhost/ldap" ;Servidor LDAP<br />
<br />
user = "admin" ;Usuario<br />
<br />
dn = "dc=siu,dc=edu" ;DN<br />
<br />
bind_dn = "cn=admin,dc=uni,dc=edu"' ;Usuario DN<br />
<br />
bind_pass = "admin" ;Password<br />
<br />
filter = "uid=%s" ;Busqueda de usuarios.<br />
<br />
=== Configuración en 3W ===<br />
<br />
En el archivo instalacion/login.php<br />
<br />
cambiar la clase de autenticacion de form por auth_ldap.<br />
<br />
También se deben agregar los parametros con esos indices para que funcione.<br />
<br />
A modo de ejemplo te envió esto para que lo veas.<br />
<br />
'form' => array(<br />
<br />
'activo' => true,<br />
<br />
'clase' => 'modelo\\autenticacion\\auth_ldap',<br />
<br />
'parametros' => array(<br />
<br />
'server' => 'localhost/ldap', //Servidor LDAP<br />
<br />
'user' => 'admin', //Usuario<br />
<br />
'dn' => 'dc=siu,dc=edu', //DN<br />
<br />
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN<br />
<br />
'bind_pass' => 'admin', //Password<br />
<br />
'filter' => 'uid=*' //Busqueda de usuarios.<br />
<br />
)<br />
<br />
),<br />
<br />
Cualquier error que se generé va a quedar en los logs del 3w.</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces/configuracion-ldap&diff=64271SIU-Guarani/version3.17.0/interfaces/configuracion-ldap2020-04-29T15:30:33Z<p>Jmarino: Página creada con «== Configuración LDAP == === Configuración en Gestión === En el archivo <path_gestion>/instalacion/instalacion.ini que por defecto viene comentada de la siguiente form...»</p>
<hr />
<div>== Configuración LDAP ==<br />
<br />
=== Configuración en Gestión ===<br />
<br />
En el archivo <path_gestion>/instalacion/instalacion.ini<br />
que por defecto viene comentada de la siguiente forma<br />
;autenticacion = "toba|openid|ldap|cas|saml|saml_onelogin"<br />
<br />
Dejar de la siguiente forma esa línea<br />
autenticacion = "guarani_ldap"<br />
<br />
Luego en el archivo ldap.ini cambiar los parametros que vienen por defecto por los que correspondan por ejemplo:<br />
<br />
[basicos]<br />
server = "localhost/ldap" ;Servidor LDAP<br />
user = "admin" ;Usuario<br />
dn = "dc=siu,dc=edu" ;DN<br />
bind_dn = "cn=admin,dc=uni,dc=edu"' ;Usuario DN<br />
bind_pass = "admin" ;Password<br />
filter = "uid=%s" ;Busqueda de usuarios.<br />
<br />
=== Configuración en 3W ===<br />
<br />
En el archivo instalacion/login.php<br />
cambiar la clase de autenticacion de form por auth_ldap.<br />
También se deben agregar los parametros con esos indices para que funcione.<br />
<br />
<br />
A modo de ejemplo te envió esto para que lo veas.<br />
<br />
<br />
'form' => array(<br />
'activo' => true,<br />
'clase' => 'modelo\\autenticacion\\auth_ldap',<br />
'parametros' => array(<br />
'server' => 'localhost/ldap', //Servidor LDAP<br />
'user' => 'admin', //Usuario<br />
'dn' => 'dc=siu,dc=edu', //DN<br />
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN<br />
'bind_pass' => 'admin', //Password<br />
'filter' => 'uid=*' //Busqueda de usuarios.<br />
)<br />
),<br />
<br />
<br />
Cualquier error que se generé va a quedar en los logs del 3w.</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces&diff=64270SIU-Guarani/version3.17.0/interfaces2020-04-29T15:27:01Z<p>Jmarino: /* Configuración LDAP */</p>
<hr />
<div>__NOTOC__<br />
==Interfaces con otros módulos==<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/kolla|Interfaz SIU-Guaraní - SIU-Kolla]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/sanaviron|Interfaz SIU-Guaraní - SIU-Sanaviron/Quilmes]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/tehuelche|Interfaz SIU-Guaraní - SIU-Tehuelche]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/moodle|Interfaz SIU-Guaraní - Moodle]] ===<br />
<br />
=== [[SIU-Guarani/version3.17.0/interfaces/moodle sso|Single Sign-On (SSO) con Moodle]] ===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/gestion-3w-rest|Interfaz SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/app-3w-jwt|Interfaz SIU-Guaraní App y 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/preinscripcion|Conexión con Preinscripción]]===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/saml|Configuración SAML para vincular SIU-Guaraní Gestión con 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/3w|Interconexión entre SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[https://colab.siu.edu.ar/documentacion_guarani/sw/index.html?url=https://colab.siu.edu.ar/documentacion_guarani/031700/api_rest/rest-guarani.json API Guaraní] (Se accede con credenciales de Colab) ===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/rest-hooks|Rest-Hooks]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/gestion-arai|Interfaz SIU-Guaraní y SIU-Araí]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/configuracion-ldap|Configuración LDAP]] ===<br />
<br />
<br />
[[SIU-Guarani/Version3.17.0|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/interfaces&diff=64958SIU-Guarani/version3.18.0/interfaces2020-04-29T15:27:01Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
==Interfaces con otros módulos==<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/kolla|Interfaz SIU-Guaraní - SIU-Kolla]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/sanaviron|Interfaz SIU-Guaraní - SIU-Sanaviron/Quilmes]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/tehuelche|Interfaz SIU-Guaraní - SIU-Tehuelche]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/moodle|Interfaz SIU-Guaraní - Moodle]] ===<br />
<br />
=== [[SIU-Guarani/version3.18.0/interfaces/moodle sso|Single Sign-On (SSO) con Moodle]] ===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/gestion-3w-rest|Interfaz SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/app-3w-jwt|Interfaz SIU-Guaraní App y 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/preinscripcion|Conexión con Preinscripción]]===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/saml|Configuración SAML para vincular SIU-Guaraní Gestión con 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/3w|Interconexión entre SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[https://colab.siu.edu.ar/documentacion_guarani/sw/index.html?url=https://colab.siu.edu.ar/documentacion_guarani/031800/api_rest/rest-guarani.json API Guaraní] (Se accede con credenciales de Colab) ===<br />
<br />
===[[SIU-Guarani/Version3.18.0/interfaces/rest-hooks|Rest-Hooks]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/gestion-arai|Interfaz SIU-Guaraní y SIU-Araí]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]===<br />
<br />
===[[SIU-Guarani/version3.18.0/interfaces/configuracion-ldap|Configuración LDAP]] ===<br />
<br />
<br />
[[SIU-Guarani/Version3.18.0|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/interfaces&diff=64269SIU-Guarani/version3.17.0/interfaces2020-04-29T15:26:39Z<p>Jmarino: </p>
<hr />
<div>__NOTOC__<br />
==Interfaces con otros módulos==<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/kolla|Interfaz SIU-Guaraní - SIU-Kolla]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/sanaviron|Interfaz SIU-Guaraní - SIU-Sanaviron/Quilmes]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/tehuelche|Interfaz SIU-Guaraní - SIU-Tehuelche]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/moodle|Interfaz SIU-Guaraní - Moodle]] ===<br />
<br />
=== [[SIU-Guarani/version3.17.0/interfaces/moodle sso|Single Sign-On (SSO) con Moodle]] ===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/gestion-3w-rest|Interfaz SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/app-3w-jwt|Interfaz SIU-Guaraní App y 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/preinscripcion|Conexión con Preinscripción]]===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/saml|Configuración SAML para vincular SIU-Guaraní Gestión con 3w]]===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/3w|Interconexión entre SIU-Guaraní Gestión y 3w]]===<br />
<br />
===[https://colab.siu.edu.ar/documentacion_guarani/sw/index.html?url=https://colab.siu.edu.ar/documentacion_guarani/031700/api_rest/rest-guarani.json API Guaraní] (Se accede con credenciales de Colab) ===<br />
<br />
===[[SIU-Guarani/Version3.17.0/interfaces/rest-hooks|Rest-Hooks]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/gestion-arai|Interfaz SIU-Guaraní y SIU-Araí]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]===<br />
<br />
===[[SIU-Guarani/version3.17.0/interfaces/api-guarani-perfil-funcional|Configuración LDAP]] ===<br />
<br />
<br />
[[SIU-Guarani/Version3.17.0|< Volver]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/versionesprevias&diff=60400SIU-Guarani/versionesprevias2019-10-04T16:07:07Z<p>Jmarino: Se agrega version 3.15.0</p>
<hr />
<div><br />
[[SIU-Guarani/version3.15.0|Versión 3.15.0]]<br />
<br />
[[SIU-Guarani/version3.14.0|Versión 3.14.0]]<br />
<br />
[[SIU-Guarani/version3.13.0|Versión 3.13.0]]<br />
<br />
[[SIU-Guarani/version3.12.0|Versión 3.12.0]]<br />
<br />
[[SIU-Guarani/version3.11.0|Versión 3.11.0]]<br />
<br />
<br />
[[SIU-Guarani/preinscripcion3.7.0|Preinscripción 3.7.0]]<br />
<br />
[[SIU-Guarani/preinscripcion3.6.0|Preinscripción 3.6.0]]<br />
<br />
[[SIU-Guarani/preinscripcion3.5.0|Preinscripción 3.5.0]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.17.0/actualizacion_con_personalizaciones/gestion&diff=57621SIU-Guarani/version3.17.0/actualizacion con personalizaciones/gestion2019-08-08T14:25:43Z<p>Jmarino: /* Pasos a realizar por el Concentrador */</p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.17.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.17.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.17.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.17.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.17.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:(*) '''Si está actualizando desde la versión 3.15.0:''' Eliminar el archivo composer.lock de la raíz de la aplicación antes de ejecutar el comando. <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.17.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.17.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
##:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.17.0/personalizaciones/formas_de_menu| menu.ini]]<br />
##Configurar la API REST<br />
##:[[SIU-Guarani/version3.17.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.17.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.17.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.17.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.17.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.17.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.17.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.17.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.17.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.17.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.18.0/actualizacion_con_personalizaciones/gestion&diff=64950SIU-Guarani/version3.18.0/actualizacion con personalizaciones/gestion2019-08-08T14:25:43Z<p>Jmarino: </p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.18.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.18.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.18.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.18.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:(*) '''Si está actualizando desde la versión 3.15.0:''' Eliminar el archivo composer.lock de la raíz de la aplicación antes de ejecutar el comando. <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
##:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
##Configurar la API REST<br />
##:[[SIU-Guarani/version3.18.0/interfaces/api-guarani-perfil-funcional|API SIU-Guaraní - Perfil Funcional]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.18.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.18.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.18.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.18.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.18.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.18.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.18.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/version3.16.0/actualizacion_con_personalizaciones/gestion&diff=57620SIU-Guarani/version3.16.0/actualizacion con personalizaciones/gestion2019-08-08T14:25:19Z<p>Jmarino: /* Pasos a realizar por el Concentrador */</p>
<hr />
<div><br />
<span style="float: right; margin: 0 0 15px 15px;">__TOC__</span><br />
== Actualización de SIU-Guaraní Gestión a la versión 3.16.x en entorno de desarrollo con personalizaciones ==<br />
<br />
{| class="simple" border="1"<br />
! <u>Importante</u>: Antes de comenzar el proceso de actualización, verificar las <u>[[SIU-Guarani/Version3.16.0/Novedades tecnicas|novedades técnicas]]</u> de la versión.<br />
|}<br />
=== Requisitos previos ===<br />
* Que no queden desarrollos parciales de ningún miembro del equipo sin subir al repositorio SVN.<br />
<br />
=== Pasos para la actualización ===<br />
Cada actualización del sistema implica modificaciones importantes, por este motivo es primordial que se respeten '''todos los pasos detallados'''. Ante cualquier inconveniente consulte con el equipo SIU-Guaraní (vía foro o GdS).<br />
<br />
A continuación se diferenciarán las tareas que debe llevar a cabo el '''[[SIU-Guarani/Version3.16.0/concentrador|Concentrador]]''' y las que debe realizar el resto del equipo.<br />
<br />
'''Importante:''' el resto del equipo de trabajo debe realizar los pasos que le corresponden una vez que el Concentrador terminó de actualizar todo.<br />
<br />
'''A lo largo de los pasos se deberá reemplazar:'''<br />
* '''<path proyecto Guaraní>''': por el path donde está instalado el proyecto<br />
* '''<siglas institución>''': por las siglas correspondientes al nodo de Colab de la institución que realiza la instalación.<br />
* '''3.y.z''': por la versión actual del sistema<br />
* '''3.16.x''': por la versión a la que se quiere actualizar<br />
<br />
== Pasos a realizar por el Concentrador ==<br />
#Verificar que se cumplan todos los [[SIU-Guarani/Version3.16.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Versionar los diferenciales de metadatos personalizados. <br />
##Calcular los diferenciales de metadatos, en formato XML que facilitará su incorporación en la próxima versión, ejecutando, desde la carpeta bin ('''<path proyecto Guaraní>/bin'''):<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers exportar<br />
</source><br />
##:El resultado de dicha acción quedará en la carpeta '''<path proyecto Guaraní>/personalizacion/metadatos'''<br />
##:'''Importante:''' Controlar los mensajes que surgen de aplicar el comando anterior. <br />
##Desactivar el esquema de personalizaciones para evitar conflictos de SVN al cambiar de versión. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers desactivar<br />
</source><br />
##Verificar si hay cambios para subir al repositorio, ejecutando dentro de la carpeta de Guaraní ('''<path proyecto Guaraní>''')<br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:Si dentro del directorio de personalizaciones aparece el signo '''?''', se debe ejecutar el siguiente comando para que luego el directorio que tiene el '''?''' sea considerado para agregar a SVN:<br />
##:<source lang="bash" enclose="div"><br />
svn add <path del directorio que se tiene que agregar (el que tiene el signo ?)><br />
</source><br />
##Versionar el resultado de los comandos anteriores. Para ello, posicionados en la carpeta de Guaraní ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "Se versionan las personalizaciones para cambio de versión"<br />
</source><br />
#Actualizar el entorno de desarrollo a la nueva versión<br />
##Cambiar la versión del código <br />
##:Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:(*) '''Si está actualizando desde la versión 3.15.0:''' Eliminar el archivo composer.lock de la raíz de la aplicación antes de ejecutar el comando. <br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.16.x<br />
</source><br />
##:En versiones nuevas de svn puede salir un error:<br />
##:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
##:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
##:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.16.x --ignore-ancestry<br />
</source><br />
##Una vez concluído el switch debemos verificar que el mismo se haya completado correctamente. Para ello, dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
svn status<br />
</source><br />
##:y verificar que no existan archivos con estado 'S'.<br />
##En caso de existir un conflicto SVN en el archivo personalizacion.ini, resolverlo dejando la opción de la nueva versión del SIU. Una forma de hacerlo es borrando los archivos en conflicto y realizando un svn update de la carpeta '''<path proyecto Guaraní>/personalizacion'''.<br />
##Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
##:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
##Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
##:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
##Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
##:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
##:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
##:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
##:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
##:Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
##:Reiniciar Apache.<br />
##:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
##Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
##:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
##Migrar la base de datos de negocio. Dentro de la carpeta 'bin'('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
##:'''Importante:''': si como parte de las personalizaciones tienen el caso de vistas que referencian a tablas (u otras vistas) que desde el SIU modificamos, pueden tener errores en la migración. En ese escenario, lo recomendado es borrarlas, migrar y luego volver a crearlas.<br />
##En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
##:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
##:Completar el archivo [[SIU-Guarani/Version3.16.0/personalizaciones/formas_de_menu| menu.ini]]<br />
#Migrar las personalizaciones <br />
#:Luego de seguir los pasos anteriores, se tiene una instalación de la versión 3.16.x del sistema tal como la distribuye el SIU. Ahora es el turno de incorporar las personalizaciones desarrolladas en versiones anteriores. <br><br />
##Mergear la carpeta '''personalizacion''' a la nueva versión <br />
##:En la instancia actual de la actualización, la carpeta '''personalizacion''' tiene únicamente los archivos distribuidos por el SIU. Se debe combinar con las personalizaciones realizadas en la versión anterior, realizando la acción ''svn merge''. Usando la línea de comandos, posicionados en la carpeta raíz del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn merge -r0:HEAD https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.y.z/personalizacion/ ./personalizacion/<br />
</source><br />
##Activar el esquema de personalizaciones <br />
##:Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers iniciar <br />
</source><br />
##Chequear conflictos de las personalizaciones con la nueva versión <br />
##:Dado que el sistema Guaraní funciona sobre el framework SIU-Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers conflictos<br />
</source><br />
##:'''Importante''': si al ejecutar el comando llegara a reportarse algún conflicto irresoluble, consultar con el equipo SIU-Guaraní (vía foro o GdS) para ser guiados en el tratamiento de los mismos. Si los conflictos son solubles, cuando se proceda con el proceso de importación de personalizaciones se preguntará si desea incorporar o no este cambio.<br />
##Importar las personalizaciones <br />
##:A continuación se procede a incorporar las personalizaciones desarrolladas en la versión anterior a la actual. Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani esquema_pers importar<br />
</source><br />
##Agregar al repositorio las personalizaciones importadas<br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.16.x Merge de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
##Exportar las personalizaciones <br />
##:Deben exportarse las personalizaciones para que las mismas queden disponibles para los demás miembros del equipo (recordar que el único que ejecuta los comandos relativos a personalización es el concentrador). Dentro de la carpeta 'bin' del proyecto Guaraní ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
./guarani exportar<br />
</source><br />
##Versionar las personalizaciones <br />
##:Posicionados en la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar:<br />
##:<source lang="bash" enclose="div"><br />
svn commit -m "3.16.x Se versionan metadatos exportados de las personalizaciones realizadas en versiones anteriores" <br />
</source><br />
<br />
== Pasos a realizar por el resto del equipo ==<br />
'''Observación:''' Recordar que, tal como se indicó en los '''[[SIU-Guarani/Version3.16.0/actualizacion_con_personalizaciones/gestion#Requisitos_previos| Requisitos Previos]]''', todos los miembros del equipo deberán haber subido sus cambios al SVN, por lo que en las ''working copies'' del resto del equipo no habrá cambios locales antes de ejecutar los siguientes pasos. Esto puede verificarse ejecutando un <source lang="bash" enclose="div"> svn status</source> sobre la raíz del proyecto.<br />
<br />
'''Una vez que el Concentrador terminó de actualizar todo''', el resto del equipo deberá realizar los siguientes pasos:<br />
#Verificar que se cumplan en cada servidor de desarrollo todos los [[SIU-Guarani/Version3.16.0/instalacion_desde_cero/requisitos_previos/linux|requisitos técnicos de la versión]].<br />
#Exportar la información local de la instancia. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani instancia_exp_local<br />
</source><br />
#Cambiar a la nueva versión del sistema. Dentro de la carpeta del proyecto ('''<path proyecto Guaraní>''') ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.16.x<br />
</source><br />
#:En versiones nuevas de svn puede salir un error:<br />
#:<source lang="bash" enclose="div"><br />
svn: E195012: Path '.' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check.<br />
</source><br />
#:en este caso ejecutar el comando anterior siguiendo lo recomendado en el mensaje:<br />
#:<source lang="bash" enclose="div"><br />
svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/gestion/trunk/3.16.x --ignore-ancestry<br />
</source><br />
#Antes de ejecutar el siguiente paso, es fundamental asegurar tener '''composer''' y '''bower''' instalados. Para verificarlo, se pueden correr los siguientes comandos y verificar que no surjan errores:<br />
#:<source lang="ini" enclose="div"><br />
composer --version<br />
bower --version<br />
</source><br />
#Instalar vía ''Composer'' las dependencias del proyecto. Posicionados en la raíz '''<path proyecto Guaraní>''', ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
composer install<br />
</source><br />
#:'''Verificar que el comando anterior finalice sin errores para continuar.'''<br />
#Si se está actualizando desde una versión 3.15.0 o posterior, '''omitir este paso.'''<br />
#:Realizar un backup de la carpeta '''<path_proyecto>/lib/toba/instalacion'''. <br />
#:En una consola en '''<path_proyecto>/bin''' ejecutar: <br />
#:<source lang="bash" enclose="div"><br />
./reestructurar<br />
</source><br />
#:Es un comando que se corre por única vez para reubicar la carpeta '''instalacion''', que pasa a estar en la raíz del proyecto, eliminar recursos obsoletos y ajustar paths en los archivos de configuración.<br />
#Seguir las instrucciones finales brindadas por el comando, relativo al ajuste de archivos de configuración de Apache.<br />
#Reiniciar Apache.<br />
#:<source lang="bash" enclose="div"><br />
service apache2 restart<br />
</source><br />
#Regenerar la instancia Toba. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./toba instancia regenerar -i desarrollo<br />
</source><br />
#:'''Nota''': ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder '''n'''.<br />
#Migrar la base de datos de negocio. Dentro de la carpeta 'bin' ('''<path proyecto Guaraní>/bin''') ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
./guarani migrar_base<br />
</source><br />
#:'''Nota:''' si al ejecutar el comando de migración se muestra el mensaje ''No pudo resguardarse la base actual. Desea continuar? (Si o No)'', probablemente no se encuentre el directorio 'bin' de PostgreSQL en el path del sistema operativo. Responder '''n''', agregue la carpeta al path y vuelva a intentarlo.<br />
#En caso de no tener una configuración anterior de la manera de ver el menú de la aplicación, se puede establecer de la siguiente manera:<br />
#:Para ello, dentro de la carpeta '''<path proyecto Guaraní>''' ejecutar:<br />
#:<source lang="bash" enclose="div"><br />
cp menu.ini.tmpl menu.ini<br />
</source><br />
#:Completar el archivo [[SIU-Guarani/Version3.16.0/personalizaciones/formas_de_menu| menu.ini]]<br />
<br />
[[SIU-Guarani/Version3.16.0/instalacion_actualizacion_gestion|Ir al esquema de instalación y actualización de la versión]]</div>Jmarinohttps://documentacion.siu.edu.ar/wiki/index.php?title=SIU-Guarani/Version3.20.0/Migracion/Desde_SIU_Guarani_2/Requisitos&diff=75997SIU-Guarani/Version3.20.0/Migracion/Desde SIU Guarani 2/Requisitos2019-08-07T12:06:35Z<p>Jmarino: </p>
<hr />
<div>__TOC__<br />
<br />
<br />
= Requisitos Para la correcta Migración =<br />
<br />
<br />
== Consideraciones Iniciales ==<br />
<br />
El proceso de migración de SIU-Guaraní 2 a SIU-Guaraní 3 se produce a medida que se desarrollan los módulos en SIU-Guaraní 3. Hasta el momento se han desarrollado los scripts de migración de los '''módulos''':<br><br />
* Personas<br />
* Datos Censales<br />
* Propuestas<br />
* Planes<br />
* Calendario Académico<br />
* Docentes<br />
* Matricula<br />
* Cursadas, Promociones y Exámenes<br />
* Actas<br />
* Equivalencias<br />
* Parciales Clases<br />
* Historia Académica<br />
* Tesis<br />
* Egresados<br />
* Encuestas<br />
<br />
A su vez, hay módulos de Tablas Comunes y Generales que permiten la migración de múltiples base de Guaraní 2 a una de Guaraní 3. <br />
<br> Estos procesos se encuentran en etapa de testeo, por lo que '''su publicación tiene como objetivo que las instituciones puedan realizar pruebas con sus bases de datos e informarnos si detectan problemas o casos no contemplados'''. <br />
<br />
== Requisitos necesarios para la migración ==<br />
<br />
* Base de datos de Guaraní 2 a migrar: debe estar en la última versión publicada (2.9.5). <br />
* Base de datos de Guaraní 3 versión 3.20.0<br />
* Herramienta de migración Pentaho Data Integration (Kettle) instalada y configurada. <br />
* La URL de descarga de los scripts de migración de Guarani 2 a Guarani 3 es:<br />
'''https://colab.siu.edu.ar/svn/guarani3/nodos/''<nodo_institución>''/migracion/trunk/3.20.0'''<br />
<br />
Se debe reemplazar ''<nodo_institución>'' por la Institución que se encuentra realizando la instalación.<br />
<br />
<br><br />
<br />
----<br />
<br />
<br><br />
<br />
{| style="width:100%;"<br />
|-<br />
| [[SIU-Guarani/Version3.20.0/Migracion/Desde_SIU_Guarani_2|< Migración desde SIU-Guaraní 2]] || align="right" | [[SIU-Guarani/Version3.20.0/Migracion/Desde SIU Guarani 2/Consideraciones| Consideraciones Previas >]]<br />
|}</div>Jmarino