CRM 2011 – Clonar Registros


O SDK atual não fornece um método par clonarmos registros, assim escrevo este post para dar um exemplo de como fazer, na verdade não mostrarei nada de novo e sim o procedimento para se clonar.

Abaixo um exemplo de um Clone da entidade Oportunidade, mas vejam que é só um exemplo, o mesmo se aplica para todos as outras entidades, podemos até termos apenas um método genérico para realizar o procedimento, mas como eu disse o importante é a ideia…

private Entity ClonarOportunidade(IOrganizationService service, Guid oportunidadeID)
{
    // Declara objetos
    Guid novaOportunidadeID;
    Entity oportunidadeEntity;

    // Cria objetos
    columns = new Microsoft.Xrm.Sdk.Query.ColumnSet();

    // Seta para recuperar todas as colunas
    columns.AllColumns = true;

    // Recupera Oportunidade
    oportunidadeEntity = (Entity)service.Retrieve("opportunity", oportunidadeID, columns);

    // Verifica se localizou a Oportunidade
    if (oportunidadeEntity != null)
    {
        // Remove atributos desnecessários
        oportunidadeEntity.Attributes.Remove("opportunityid");
        oportunidadeEntity.Attributes.Remove("statecode");
        oportunidadeEntity.Attributes.Remove("statuscode");

        // Limpa o ID
        oportunidadeEntity.Id = Guid.NewGuid();

        // Limpa o Assunto
        oportunidadeEntity["name"] = "";

        // Clona a Oportunidade
        novaOportunidadeID = service.Create(oportunidadeEntity);

        // ID da Nova Oportunidade
        oportunidadeEntity.Id = novaOportunidadeID;
    }

    return oportunidadeEntity;
}

Bom é isso…

Att,
Tiago Cardoso

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.