Fragmento de código XML: Especificar un valor predeterminado para un parámetro de tipo System.DateTime
Última modificación: jueves, 15 de abril de 2010
Hace referencia a: SharePoint Server 2010
Algunos métodos tienen firmas complejas. Por ejemplo, el servicio web para obtener clientes SAP puede aceptar seis parámetros, tres de los cuales podrían ser estructuras con subparámetros. Para que sea más sencillo para los usuarios llamar a estos métodos, el Servicio de conectividad de datos profesionales (BDC) permite especificar valores predeterminados para los parámetros en los metadatos. De este modo, los usuarios pueden invocar la lógica de negocios predefinida sin tener que construir parámetros.
El usuario puede invalidar cualquier parámetro de entrada para el que se defina un valor DefaultValue. El usuario debe especificar cualquier parámetro de entrada que no tenga DefaultValue, si el parámetro no es opcional.
Para cada tipo primitivo abstracto en un objeto TypeDescriptor, se pueden definir varios valores predeterminados, cada uno de los cuales corresponde a un objeto MethodInstance concreto. En tiempo de ejecución, en función del objeto MethodInstance ejecutado por el cliente, se crea una instancia del parámetro según los valores predeterminados correspondientes.
En el tema Elemento DefaultValue en DefaultValues (Esquema BDCMetadata) se enumeran los formatos aceptados para proporcionar valores predeterminados para distintos tipos. Como se menciona en dicho tema, para proporcionar valores predeterminados para métodos web que tienen parámetros de entrada de tipo System.DateTime, debe pasar el valor en el formato DateTimeFormatInfo.UniversalSortableDateTimePattern. En el código siguiente se muestra un ejemplo.
Nota
Si usa un formato DateTime incorrecto en el valor predeterminado, se producirá el siguiente error al importar el archivo de definición de aplicación: no se pudo analizar el valor predeterminado en el tipo 'System.DateTime'. Asegúrese de que el formato es correcto y no entrecomille el valor.
Ejemplo
<DefaultValues>
<DefaultValue MethodInstanceName="InvoiceFinderInstance"
Type="System.DateTime">2007-01-11 00:00:00Z
</DefaultValue>
</DefaultValues>