Necesidad
Crear un parámetro de Oracle que recibe un parámetro tipo lista que posee más de un campo en su estructura, para que sea invocado desde BizTalk Server.
Error
Al intentar llamar el procedimiento de Oracle que recibe este parámetro personalizado desde el send port, se genera el siguiente error:
The adapter failed to transmit message going to send port “Cliente.XYZ.Proyecto.Subproyecto.ProcedimientoOracle_WCF-Custom” with URL “oracledb://127.0.0.1:1521/ORCL/Dedicated”. It will be retransmitted after the retry interval specified for this Send Port. Details:”Microsoft.ServiceModel.Channels.Common.MetadataException: The assembly required for type mapping not found.
Solución
Es necesario crear los asemblies de los tipos creados en Oracle y que corresponden a los interpretados por el WCF Lob Adapter. Para ello al momento de crear los esquemas desde la opción de Consume Adapter Service se debe crear estos assemblies espedificando: la ruta completa de la dll y el strong name key (.snk) que firmará la dll), esto se hace en las propiedades de UDT .NET Type Generation – Run Time.
- GeneratedUserTypesAssemblyFilePath
- GeneratedUserTypesAssemblyKeyFilePath
En el send port configurado para consumir el procedimiento en Oracle se debe especificar la ruta donde quedó generado la dll del tipo generado en el paso anterior.
Mona gracias por la respuesta!