Importaciones¶
Las importaciones nos permiten transferir información desde archivos al sistema, por ejemplo, desde un archivo de Excel. Se puede configurar desde el panel de control ubicado en Área de Trabajo de Administración > Otras Herramientas > Importaciones o simplemente haga
Creando configuración¶
- Descripción
- Nombre del Objeto
- Tipo: Excel solo por ahora.
- Nombre del Proceso: Especificaremos el proceso que se ejecutará después de procesar el archivo a importar, es responsable de insertar/eliminar/actualizar los datos. El proceso, con solo 1 parámetro @JSONVALUE, contiene toda la información del archivo.
- Archivo de Plantilla: Es el archivo que sirve como plantilla para el usuario, el archivo se almacena en ~/custom/imports/templates/{{ImportId}}
- Activo: Habilitar/Deshabilitar la configuración de importación.
- Eliminar Archivo Exitoso
- Habilitado: Cuando la importación se ejecuta con éxito, el archivo importado se elimina.
- Deshabilitado: Cuando la importación se ejecuta con éxito, el archivo importado se almacena en ~/custom/imports/{{ImportId}}.
- Eliminar Archivo Erróneo
- Habilitado: Cuando la importación falla, el archivo importado se elimina.
- Deshabilitado: Cuando la importación falla, el archivo importado se almacena en ~/custom/imports/{{ImportId}}.
Excel¶
El formato que deben seguir los archivos tipo Excel es como se muestra en la siguiente imagen.
La primera fila debe ser los nombres de las columnas, no pueden estar vacías, no pueden contener caracteres especiales, espacios ni la letra ñ. En cualquier caso, el sistema reemplazará cualquier carácter no aceptado.
Se pueden agregar más de una hoja como en el ejemplo, el nombre de las hojas sigue los mismos criterios que las columnas.
Ejemplo de Proceso¶
- Agregarlo al repositorio de procesos de flexygo en Área de Trabajo de Administración > Lógica y Reglas > Procedimientos Almacenados de DB o Dll de Servidor.
Ejecutar importación¶
Para ejecutar la importación se encuentra en el menú superior Herramientas->Importar.
En la ventana del proceso aparece un botón para descargar la plantilla del archivo que se ha colocado previamente en la creación de la configuración.
CREATE PROCEDURE [dbo].[pImportacion]
@JSONVALUE nvarchar(max)
as
BEGIN
BEGIN TRY
select Campo1,Campo2,Campo3,Campo4,Campo5 into importacion
from openjson(@JsonValue,'$.Hoja1')
with (
[Campo1] NVARCHAR(max) '$.Campo1',
[Campo2] NVARCHAR(max) '$.Campo2',
[Campo3] NVARCHAR(max) '$.Campo3',
[Campo4] NVARCHAR(max) '$.Campo4',
[Campo5] NVARCHAR(max) '$.Campo5'
)
select ...
from openjson(@JsonValue,'$.Hoja2')
with (
...
)
return 1
END TRY
BEGIN CATCH
IF @@TRANCOUNT >0 BEGIN
ROLLBACK TRAN
END
DECLARE @CatchError NVARCHAR(MAX)
SET @CatchError=dbo.funPrintError(ERROR_MESSAGE(),ERROR_NUMBER(),ERROR_PROCEDURE(),@@PROCID ,ERROR_LINE())
RAISERROR(@CatchError,12,1)
RETURN 0
END CATCH
END
Imports System.Web.Script.Serialization
Public Shared Function Importacion(Entity As EntityObject, JSONVALUE As String, Ret As ProcessHelper) As Boolean
Try
Dim Table As Object = New JavaScriptSerializer().Deserialize(Of Object)(JSONVALUE)
For Each Row As Object In Table("Hoja1")
Dim ImportacionObj As New EntityObject("Importacion", Ret.ConfToken)
ImportacionObj("Campo1") = Row("Campo1")
ImportacionObj("Campo2") = Row("Campo2")
ImportacionObj("Campo3") = Row("Campo3")
ImportacionObj("Campo4") = Row("Campo4")
ImportacionObj("Campo5") = Row("Campo5")
ImportacionObj.InsertProcess(ImportacionObj.TableName, Settings.ObjectSettings.eUpdateType.Standard, "")
Next
For Each Row As Object In Table("Hoja2")
...
Next
Ret.Success = True
Return Ret.Success
Catch ex As Exception
Ret.Success = False
Ret.LastException = ex
Return False
End Try
End Function
{
"Hoja1": [
{
"Campo1": "1",
"Campo2": "Texto 1",
"Campo3": "Texto 2",
"Campo4": "Texto 3",
"Campo5": "Texto 4"
},
{
"Campo1": "2",
"Campo2": "24/02/2022",
"Campo3": "25/02/2022",
"Campo4": "26/02/2022",
"Campo5": "27/02/2022"
},
{
"Campo1": "3",
"Campo2": "10.3",
"Campo3": "10.3",
"Campo4": "10.3",
"Campo5": "10.3"
},
{
"Campo1": "4",
"Campo2": "25/02/2022",
"Campo3": "Texto 2",
"Campo4": "10.3",
"Campo5": "Texto"
}
],
"Hoja2": [
{
"Campo1": "1",
"Campo2": "Texto 1",
"Campo3": "Texto 2",
"Campo4": "Texto 3",
"Campo5": "Texto 4"
},
{
"Campo1": "2",
"Campo2": "24/02/2022",
"Campo3": "25/02/2022",
"Campo4": "26/02/2022",
"Campo5": "27/02/2022"
},
{
"Campo1": "3",
"Campo2": "10.3",
"Campo3": "10.3",
"Campo4": "10.3",
"Campo5": "10.3"
},
{
"Campo1": "4",
"Campo2": "25/02/2022",
"Campo3": "Texto 2",
"Campo4": "10.3",
"Campo5": "Texto"
}
]
}



