Ejemplo: Uso de simultaneidad optimista con operaciones de actualización y eliminación
Publicado: noviembre de 2016
Se aplica a: Dynamics CRM 2015
Demuestra cómo usar la función de simultaneidad optimista, introducida en Actualización 1 de Microsoft Dynamics CRM Online 2015, para evitar la pérdida de datos potencial al realizar una actualización o una eliminación de registros de entidad. Para obtener más detalles sobre la técnica utilizada, consulte este tema: Reducir la pérdida potencial de datos mediante simultaneidad optimista
El ejemplo completo se puede descargar en MSDN: Uso de simultaneidad optimista con operaciones de actualización y eliminación.
Requisitos previos
Para ejecutar este ejemplo, debe tener:
Obtenga acceso a una organización de Actualización 1 de Microsoft Dynamics CRM Online 2015.
Microsoft .NET Framework 4.5.2 instalado en el equipo de desarrollo.
Una conexión activa a Internet para los paquetes necesarios de NuGet para descargar automáticamente al crear el ejemplo.
En este tema
Qué hace este ejemplo
Instalar paquetes NuGet
Ejecutar el ejemplo
Qué hace este ejemplo
Este ejemplo muestra cómo usar simultaneidad optimista para operaciones de actualización y eliminación. Se muestran fragmentos de código que muestran solo las secciones principales del ejemplo. Este ejemplo configura el comportamiento de simultaneidad en las solicitudes de actualización y eliminación para que el servidor compruebe si hay una versión determinada de un registro de cuenta para esas operaciones. Si las operaciones de actualización o eliminación se intentan mediante un registro con otra versión de fila, se produce una excepción. De lo contrario, la operación es correcta.
// Connect to the Organization service.
// The using statement assures that the service proxy will be properly disposed.
using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,
serverConfig.Credentials, serverConfig.DeviceCredentials))
{
CreateRequiredRecords();
// Retrieve an account.
var account = _serviceProxy.Retrieve("account", _accountId, new ColumnSet("name","creditlimit"));
Console.WriteLine("\tThe row version of the created account is {0}", account.RowVersion);
if (account != null)
{
// Create an in-memory account object from the retrieved account.
Entity updatedAccount = new Entity()
{
LogicalName = account.LogicalName,
Id = account.Id,
RowVersion = account.RowVersion
};
// Update just the credit limit.
updatedAccount["creditlimit"] = new Money(1000000);
// Set the request's concurrency behavour to check for a row version match.
UpdateRequest accountUpdate = new UpdateRequest()
{
Target = updatedAccount,
ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
};
// Do the update.
UpdateResponse accountUpdateResponse = (UpdateResponse) _serviceProxy.Execute(accountUpdate);
Console.WriteLine("Account '{0}' updated with a credit limit of {1}.", account["name"],
((Money)updatedAccount["creditlimit"]).Value);
account = _serviceProxy.Retrieve("account", updatedAccount.Id, new ColumnSet());
Console.WriteLine("\tThe row version of the updated account is {0}", account.RowVersion);
_accountRowVersion = account.RowVersion;
}
DeleteRequiredRecords(promptforDelete);
}
// Delete the account record only if the row version matches.
EntityReference accountToDelete = new EntityReference("account", _accountId);
accountToDelete.RowVersion = _accountRowVersion;
DeleteRequest request = new DeleteRequest()
{
Target = accountToDelete,
ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
};
_serviceProxy.Execute(request);
Instalar paquetes NuGet
Descargue este ejemplo y extraiga los archivos.
Desplácese hasta la carpeta C# y abra el archivo de solución en Microsoft Visual Studio.
En Visual Studio, haga clic con el botón secundario en el proyecto y elija Administrar paquetes de NuGet.
En la lista desplegable situada en la parte superior del diálogo, seleccione Incluir vista previa si usa una organización de vista previa de Microsoft Dynamics CRM Online. De lo contrario, elija Solo estable.
Cierre el diálogo.
Los paquetes requeridos se instalan automáticamente cuando se crea la solución.
Ejecutar el ejemplo
En Visual Studio, pulse F5 para generar y ejecutar el ejemplo. Se le pedirá que acepte las licencias de los paquetes de NuGet que se deben instalar.
Si no ha ejecutado uno de los ejemplos de código administrado de Microsoft Dynamics 365 antes, deberá especificar información para ejecutar el código. De lo contrario, escriba el número de uno de los servidores de Dynamics 365 que configuró anteriormente.
Pregunta
Descripción
Escriba un nombre de servidor y un puerto de Dynamics 365 [crm.dynamics.com]
Escriba el nombre del servidor de Microsoft Dynamics 365. El valor predeterminado es Microsoft Dynamics CRM Online (crm.dynamics.com) en Norteamérica.
Ejemplo:
crm5.dynamics.comNo incluya el nombre de la organización o protocolo de Internet (http o https). Se le pedirá esta información más adelante.
Está esta organización aprovisionada en Microsoft Online Services ([s/n)n]
Escriba s si se trata de una organización aprovisionada para Microsoft Online Services. De lo contrario, escriba n.
Escriba domain\username
Para Microsoft Dynamics CRM Online, escriba su Cuenta de Microsoft. Por ejemplo: someone@mydomain.onmicrosoft.com.
Escriba la contraseña
Escriba la contraseña. Su contraseña se guardará con seguridad en el Administrador de credenciales de Windows para poder utilizarla posteriormente.
Especifique un número de organización (1-n) [1]
En la lista de organizaciones que muestra que usted pertenece, escriba el número correspondiente. El valor predeterminado es 1, que indica la primera organización de la lista.
El ejemplo realizará las operaciones descritas en Qué hace este ejemplo y puede pedirle opciones adicionales.
Cuando se completa el ejemplo, presione ENTRAR para cerrar la ventana de la consola.
Ver también
Reducir la pérdida potencial de datos mediante simultaneidad optimista
© 2017 Microsoft. Todos los derechos reservados. Copyright