jueves, 17 de septiembre de 2015

Package execution failed please check event log in DMF service box

I've been finding it difficult to locate some of our DIXF/DMF errors.  The below error occurs when we have a T-SQL database view as our data source, and we try to preview the data by an entity in a processing group, for example.

Error ES-ES: Error al ejecutar el paquete. Consulte el registro de eventos en el cuadro del servicio DMF.
Error EN-US: Package execution failed please check event log in DMF service box

We therefore need to move over to the server that is executing the data processing service, and check the event logs, origin 'DataMigrationImportExportFramework'.

DMF Service error: <Error><ErrorCode>-1071636471</ErrorCode><SubComponent>OLE DB Destination [40]</SubComponent><Description>Código de error SSIS DTS_E_OLEDBERROR. Error de OLE DB. Código de error: 0x80004005.
Hay un registro OLE DB disponible. Origen: "Microsoft OLE DB Provider for SQL Server" Resultado: 0x80004005 Descripción: "Error no especificado".
</Description></Error><Error><ErrorCode>-1071607780</ErrorCode><SubComponent>OLE DB Destination [40]</SubComponent><Description>Error con OLE DB Destination.Entradas[Entrada de destino de OLE DB].Columnas[Copy of TXT] en OLE DB Destination.Entradas[Entrada de destino de OLE DB]. Se devolvió el estado de columna: "El valor infringió las restricciones de integridad para la columna.".
</Description></Error>

Above I have highlighted the column that is causing the error.  In this case the database view was returning the TXT column without a value in one of the rows.  The error message is 'swallowed' by having so much architecture around the solution.

A mandatory column in the DMFDlvModeEntity, so no empty values please.
(But DlvMode.Txt is NOT mandatory)




viernes, 11 de septiembre de 2015

Be careful about what you name your new DIXF/DMF entities

After having ran our wizard for creating a new entity framework to import will be necessary to add the entity to the destiny entities table, below.

Entity name: Modelo de valor/grupo de activos fijos

Note, however the backslash that we have for the entity name, where it is taken directly from the form that manages these rows we wish to import.
This all works as expected, generating no warnings.  Also, we can now add the entity to a Processing Group with no problems.  It's the moment of actually obtaining the source data that generates the error.

System.IO.DirectoryNotFoundException: No se puede encontrar una parte de la ruta de acceso '\\Desrvsql2012\dmf\{B129C632-9B7D-40DC-860E-B7A1E120F01C}Modelo de valor\grupo de activos fijos..dtsx'.
It appears to have translated our name into part of a directory structure, and replaced the back slash with a forward slash.

Conclusion: Avoid these characters that may be either denied or misinterpreted by the Importation Exportation framework.