Hola!
Estamos teniendo inconvenientes a la hora de generar el JSON desde Mapuche 3.31.0.
El primero, en el archivo vendor/siu-toba/framework/php/modelo/aplicacion/toba_aplicacion_modelo_base.php tenemos que castear los strigns dentro del trim sino da muchos Notices del tipo deprecated:
$datosUsuarios[$clave] = array(
'usuario' => $datosUsuarioToba['usuario'],
'nombres' => trim((string) $nombresApellidos['nombres']),
'apellidos' => trim((string) $nombresApellidos['apellidos']),
'nombre_completo' => trim((string) $datosUsuarioToba['nombre']),
'bloqueado' => strval($datosUsuarioToba['bloqueado']),
'emails' => trim((string) $datosUsuarioToba['email']) != "" ? trim((string) $datosUsuarioToba['email']) : NULL,
'clave' => $datosUsuarioToba['clave'],
'autentificacion' => $datosUsuarioToba['autentificacion_arai'],
Lo solucionamos con un replace dentro de vim:
:%s/trim(\$/trim((string) \$/gc
Despues, y esta es la importante, al generar el json falla la validacion:
(arivas)root@mapuche-7-dev:/srv/prueba/mapuche_prueba_3_3310# ./bin/toba proyecto exportar_usuarios_arai -p mapuche -f cuentasMapuchePrueba.json
Creando JSON de personas y cuentas:
301/301 [========================================================================================>] 100.00% 00:00:00
PHP Fatal error: Uncaught SIU\JsonUtil\JsonValidationException: "/srv/prueba/mapuche_prueba_3_3310/instalacion/usersExportFiles/cuentasMapuchePrueba.json.json" does not match the expected JSON schema in /srv/prueba/mapuche_prueba_3_3310/vendor/siu/json-util/src/SIU/JsonUtil/JsonFile.php:304
Stack trace:
#0 /srv/prueba/mapuche_prueba_3_3310/vendor/siu/json-util/src/SIU/JsonUtil/JsonFile.php(148): SIU\JsonUtil\JsonFile::validateStringSchema()
#1 /srv/prueba/mapuche_prueba_3_3310/vendor/siu/arai-json-migrator/src/SIU/AraiJsonMigrator/AraiMigratorManager.php(76): SIU\JsonUtil\JsonFile->validateHashSchema()
#2 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/php/modelo/aplicacion/toba_aplicacion_comando_base.php(199): SIU\AraiJsonMigrator\AraiMigratorManager->save()
#3 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/php/consola/comandos/comando_proyecto.php(87): toba_aplicacion_comando_base->opcion__exportar_usuarios_arai()
#4 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/php/consola/comando.php(90): comando_proyecto->ejecutar_opcion()
#5 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/php/consola/consola.php(78): comando->procesar()
#6 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/php/consola/consola.php(55): consola->invocar_comando()
#7 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/php/consola/run.php(32): consola->run()
#8 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/bin/launcher.php(31): require_once('...')
#9 /srv/prueba/mapuche_prueba_3_3310/vendor/siu-toba/framework/bin/toba(2): require_once('...')
#10 /srv/prueba/mapuche_prueba_3_3310/bin/toba(119): include('...')
#11 {main}
thrown in /srv/prueba/mapuche_prueba_3_3310/vendor/siu/json-util/src/SIU/JsonUtil/JsonFile.php on line 304
Si nosotros comentamos la validacion, dejando solo que escriba lo que haya generado, en el archivo vendor/siu/arai-json-migrator/src/SIU/AraiJsonMigrator/AraiMigratorManager.php ,
public function save($path, AraiMigrator $araiMigrator)
{
$jsonFile = new JsonFile($path);
$hash = $araiMigrator->toArray();
//if ($jsonFile->validateHashSchema($hash, $this->getSchemaPath())) {
$jsonFile->write($hash);
//}
return true;
}
el json se genera y segun las pruebas que hicimos, se genera corretamente**,** por lo que asumimos que hay algun error en esa funcion, lo mas probable es que sea por el paso a php 8.x, ya que en una instalacion en php 7 funciona bien y en otra instalacion en php 8, pero de la version 3.30.2-r1 produce la misma falla.
Saluds!
Andrés Rivas
Universidad Nacional de Córdoba