Información sobre las UDF de Excel Services
Última modificación: miércoles, 17 de marzo de 2010
Hace referencia a: SharePoint Server 2010
Las funciones definidas por el usuario (UDF) son funciones personalizadas que amplían las capacidades de cálculo y de importación de datos de Excel. Los programadores crean paquetes personalizados de cálculo para proporcionar:
Funciones que no están integradas en Excel.
Implementaciones personalizadas para funciones integradas.
Fuentes de datos personalizadas para orígenes de datos antiguos o no compatibles, y flujos de datos específicos de aplicación.
Los usuarios que crean libros pueden llamar a las UDF desde una celda a través de fórmulas, por ejemplo: "= MyUdf(A1*3.42)", al igual que llaman a funciones integradas.
Las UDF de Servicios de Excel permiten usar fórmulas en celdas para llamar a las funciones personalizadas escritas en código administrado e implementadas en Microsoft SharePoint Server 2010. Puede crear UDF para:
Llamar a funciones matemáticas personalizadas.
Obtener datos de orígenes de datos personalizados en libros.
Llamar a servicios web desde las UDF.
Creación de UDF de código administrado
Una manera fácil de crear una UDF de código administrado de Servicios de Excel consiste en usar la plantilla de biblioteca de clases de Microsoft Visual Studio 2005. Deberá hacer referencia a la biblioteca dinámica de vínculos (DLL) de UDF de Servicios de Excel, denominada Microsoft.Office.Excel.Server.Udf.dll, en el proyecto de las UDF de código administrado.
Microsoft.Office.Excel.Server.Udf.dll se ha compilado mediante Microsoft .NET Framework 2.0. Si usa Visual Studio 2003 para crear la UDF de código administrado, no podrá hacer referencia a Microsoft.Office.Excel.Server.Udf.dll. Un ensamblado creado con una versión anterior de .NET Framework no puede hacer referencia a un ensamblado creado con .NET Framework 2.0.
Atributos obligatorios
Para usar funciones personalizadas en una clase como una clase de UDF de Servicios de Excel, debe marcar la clase de UDF con el atributo Microsoft.Office.Excel.Server.Udf.UdfClass. Cualquier clase que no esté marcada con este atributo en el ensamblado de UDF será omitida por Excel Calculation Services. Éstas no se consideran clases de UDF de Servicios de Excel.
Para usar funciones personalizadas en una clase como métodos de UDF de Servicios de Excel, debe marcar los métodos de UDF con el atributo Microsoft.Office.Excel.Server.Udf.UdfMethod. Cualquier método que no esté marcado con este atributo en el ensamblado de UDF se omitirá porque no se considerará un método de UDF de Servicios de Excel.
El atributo Microsoft.Office.Excel.Server.Udf.UdfMethod tiene una propiedad IsVolatile. Use la propiedad IsVolatile para especificar un método de UDF como volátil o no volátil. La propiedad IsVolatile toma un valor Boolean. El valor predeterminado es false, lo cual significa que ese método de UDF en particular es no volátil.
Ubicación de Microsoft.Office.Excel.Server.Udf.dll
En el equipo donde haya instalado SharePoint Server 2010, puede encontrar una copia de Microsoft.Office.Excel.Server.Udf.dll en:
[drive:]\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI
Implementación y seguridad
Tipo de ubicación de la implementación
Los ensamblados de UDF pueden residir en un directorio local, en una memoria caché de ensamblados global o en un recurso compartido de red. En un escenario de granja de servidores, la ruta de acceso al directorio local debe ser idéntica en toda la granja de servidores.
Identificación de los ensamblados de UDF
Puede exponer la identidad de un ensamblado de UDF mediante el uso de una ruta de acceso completa o un nombre seguro del ensamblado para que Excel Calculation Services realice la llamada.
Por ejemplo, puede usar:
C:\UDFs\MySampleUdf.dll
\\MyNetworkServer\UDFs\MySampleUdf.dll
CompanyName.Hierarchichal.MyUdfNamespace.MyUdfClassName.dll, Version=1.1.0.0, Culture=en, PublicKeyToken=e8123117d7ba9ae38
Habilitar ensamblados de UDF
Los ensamblados de UDF están deshabilitados de forma predeterminada.
Cada ubicación de confianza de Servicios de Excel tiene una marca AllowUdfs.
Nota
La marca AllowUdfs se denota mediante la opción Funciones definidas por el usuario permitidas en la página Ubicaciones de archivos de confianza de Servicios de Excel. Para obtener información acerca de cómo navegar a esta página, vea Paso 3: Implementar y habilitar UDF.
El valor predeterminado de AllowUdfs es false. Si el valor de AllowUdfs está establecido en false en una ubicación de confianza determinada, los libros de esa ubicación de confianza no pueden llamar a las UDF.
Para que se pueda llamar a las UDF desde una ubicación de confianza determinada, establezca el valor AllowUdfs en true.
Si el valor AllowUdfs es false cuando se inicia una sesión en un libro que tiene llamadas a UDF en esta ubicación de confianza, se producirá un error en las llamadas a UDF. Si cambia el valor AllowUdfs a true después de iniciar la sesión, también se producirá un error en la llamada a UDF. Esto se debe a que los cambios en el identificador AllowUdfs surtirán efecto en la siguiente sesión, tras la actualización de la base de datos de configuración.
Permitir que los ensamblados de UDF se ejecuten
Si los administradores desean permitir que los ensamblados de UDF se ejecuten, deben registrar todos los ensamblados de UDF y habilitar los libros para llamar a las UDF estableciendo la marca AllowUdfs en true en las ubicaciones de confianza.
Volver a cargar un ensamblado de UDF
Para volver a cargar un ensamblado de UDF, puede ejecutar iisreset o reiniciar el dominio de aplicación de Excel Calculation Services.
Precaución |
---|
El restablecimiento de IIS finalizará todas las sesiones actuales. Para obtener más información, vea Procedimiento para habilitar las UDF. |
Para obtener más información, consulte Descargar una aplicación desde la memoria (https://go.microsoft.com/fwlink/?linkid=65706\&clcid=0xC0A).
Permiso de seguridad de acceso de código predeterminado para los ensamblados de UDF
De forma predeterminada, los ensamblados de UDF se ejecutan con plena confianza.
Restricción del permiso de seguridad de acceso de código para los ensamblados de UDF
Si no desea que un ensamblado de UDF específico se ejecute con plena confianza, debe restringir explícitamente el permiso de seguridad del código de acceso para ese ensamblado de UDF. Puede configurar los grupos de código y restringir el permiso mediante el uso de la herramienta de configuración de .NET Framework 2.0.
Los programadores también pueden usar los métodos RequestMinimum y RequestOptional en su código para asegurarse de que sus ensamblados de UDF no obtienen más permiso del que necesitan.
Para obtener más información acerca de cómo configurar los grupos de código y los métodos RequestMinimum y RequestOptional, consulte los siguientes artículos en MSDN:
Configurar grupos de código mediante la herramienta de configuración de .NET Framework (https://msdn.microsoft.com/es-es/library/eb8xw74a.aspx)
Seguridad de acceso al código en la práctica (https://msdn.microsoft.com/es-es/library/Aa302424.aspx)
Vea también
Tareas
Procedimiento para crear una UDF que llame a un servicio web
Procedimiento para confiar en una ubicación
Procedimiento para detectar excepciones
Procedimiento para habilitar las UDF
Conceptos
Tutorial: Desarrollo de una UDF de código administrado
Preguntas más frecuentes sobre las UDF de Excel Services
Arquitectura de Excel Services