Implementación de un método Updater
Última modificación: martes, 20 de abril de 2010
Hace referencia a: SharePoint Server 2010
En este artículo
Descripción
Sintaxis
Comentarios
Ejemplos
Descripción
Una instancia de método Updater permite actualizar una instancia de entidad existente en un sistema externo. Por ejemplo, con un objeto de negocios denominado Customer, este estereotipo puede usarse para actualizar la dirección de un cliente "Juan" en el sistema externo.
Si no se define un método Updater, los elementos no se pueden actualizar mediante el uso de las características de Servicios de conectividad empresarial para la entidad. Por ejemplo, no puede hacer clic en el botón Editar elemento en la cinta de opciones de una lista externa basada en ese tipo de contenido externo para editar un elemento de la lista.
BDC realiza una operación de lectura antes de la actualización para detectar cualquier conflicto de datos.
En un método Updater, el conjunto de campos que son necesarios para actualizar el elemento se conoce como vista Updater.
Sintaxis
A continuación aparece la firma del método típica de un método Updater:
void UpdateEntity(EntityDataType fields)
void UpdateEntity(EntityDataType fields, EntityDataType previousValuesOfFields)
Comentarios
Para calificar como un método Updater:
El método Updater debe tomar como entrada el identificador (o combinación de identificadores) del elemento.
El método Updater debe tomar todos los campos de lectura y escritura de un método SpecificFinder.
La vista Updater debe ser igual a la vista SpecificFinder o debe ser un subconjunto de ésta.
Nota
Se recomienda que el método de actualización sea transaccional para evitar la posible pérdida de datos.
Si hay varios buscadores específicos, la vista Updater debe ser igual a, por lo menos, una vista SpecificFinder o ser un subconjunto de ésta.
Como sucede con la vista Creator, la vista Updater debe ser igual a la vista de uno de los buscadores específicos o debe ser un subconjunto de ésta. Debe contener todos los campos del buscador específico que no son de solo lectura. Esto se debe a que los formularios generados automáticamente de Servicios de conectividad empresarial dependen de la vista SpecificFinder. De lo contrario, los campos adicionales de la vista Updater no se podrán actualizar. Al igual que sucede con la operación de creación, Servicios de conectividad empresarial busca esta dependencia y deshabilita la operación de actualización en la lista externa. Los identificadores (o la combinación de identificadores) actualizables también se pueden actualizar mediante este estereotipo, pero no son compatibles con los formularios generados automáticamente de Servicios de conectividad empresarial.
En la tabla 1 se resumen las dependencias de las vistas Creator y Update y el estado de las operaciones de creación y actualización.
Tabla 1. Dependencias de las vistas Creator y Updater y estado de las operaciones de creación y actualización
Nº escenario |
Campos en la vista SpecificFinder |
Campos en la vista Creator |
Campos en la vista Updater |
Operaciones permitidas |
Notas |
---|---|---|---|---|---|
1. |
A B (solo lectura) C D E (solo lectura) |
A B C D E F |
A C D F |
Creación: no se permite Actualización: no se permite Creación sin conexión: no se permite Actualización sin conexión: no se permite |
El campo F no se puede encontrar en el buscador específico. Esto hace que BCS deshabilite las operaciones de creación y actualización. |
2. |
A B (solo lectura) C D E (solo lectura) |
A B C D E |
A C D |
Creación: se permite Actualización: se permite Creación sin conexión: se permite Actualización sin conexión: se permite |
El usuario puede especificar los valores de los campos B y E durante la creación, pero no puede actualizarlos más adelante. |
3. |
A B (solo lectura) C D E (solo lectura) |
A B |
A C D |
Creación: se permite Actualización: se permite Creación sin conexión: se permite Actualización sin conexión: se permite |
El usuario puede especificar el valor del campo B durante la creación, pero no puede actualizarlo más adelante. El sistema externo asigna el valor del campo E y el usuario no puede actualizarlo más adelante. Para la creación sin conexión, la operación de actualización se llama inmediatamente después de la creación. |
4. |
A B (solo lectura) C D E (solo lectura) |
A B |
A C |
Creación: se permite únicamente en formularios EL predeterminados Actualización: no se permite Creación sin conexión: no se permite Actualización sin conexión: no se permite |
El campo D no se puede actualizar. Esta inconsistencia hace que BCS deshabilite la operación de actualización. La creación sin conexión está deshabilitada debido a que no hay una operación de actualización válida. |
5. |
A B (solo lectura) C D E (solo lectura) |
A C D |
Sin operación de actualización definida |
Creación: se permite Actualización: no se permite Creación sin conexión: se permite Actualización sin conexión: no se permite |
El sistema externo asigna los valores de los campos B y E. |
6. |
A B (solo lectura) C D E (solo lectura) |
A B C |
Sin operación de actualización definida |
Creación: se permite únicamente en formularios EL predeterminados Actualización: no se permite Creación sin conexión: no se permite Actualización sin conexión: no se permite |
El valor del campo D no se puede establecer durante la creación y no hay una operación de actualización válida definida para establecerlo más adelante. Esto hace que BCS deshabilite la operación de creación sin conexión. |
Nota
Asegúrese de controlar correctamente los valores nulos. Valide si los campos son necesarios y no asigne null a los campos que no sean necesarios.
Precaución |
---|
Los nombres de los parámetros deben coincidir con los que se definieron en el sistema externo. Los nombres de parámetros distinguen mayúsculas de minúsculas. Si estos nombres no son idénticos en todos los métodos, Microsoft SharePoint Designer 2010 los interpreta como campos distintos. |
Es importante controlar las excepciones correctamente. El caso Updater tiene algunas excepciones interesantes, las cuales se muestran en la tabla 2.
Tabla 2. Excepciones
Nombre de la excepción |
Use esta excepción cuando... |
---|---|
AccessDeniedException |
El usuario no puede realizar esta operación en el sistema externo. |
ConflictDetectedException |
Se usa para la resolución de conflictos. El elemento se actualizó simultáneamente y fue cambiado por otro usuario. |
LobBusinessErrorException |
Garantiza que el mensaje de error se muestre al usuario como está (desde el sistema externo). |
ObjectDeletedException |
Use esta excepción si se sabe que el elemento fue eliminado. |
ObjectNotFoundException |
No se encuentra el elemento. |
RuntimeException |
Si se produce un error en la actualización, asegúrese de provocar esta excepción para alertar a los usuarios y usar las características de control de errores de Microsoft Outlook 2010 y Microsoft SharePoint Workspace 2010. |
Ejemplos
Fragmento de código: implementación de un Updater
Vea también
Conceptos
Fragmento XML: Modelado de un método Updater
Fragmento de código: Ejecutar una instancia del método actualizador de un tipo de contenido externo