none
Deletando registros RRS feed

  • Pergunta

  • Bom dia,

    Tenho no CRM 3 entidades, sendo uma pai e as outras 2 filhos dessa (1:n)...

    Quero deletar todos os registros que tenho no CRM, limpar todos os registros dessas entidades...

    Como poderia fazer isso?

    Desde ja agradeço!!!
    quarta-feira, 15 de abril de 2009 11:52

Respostas

  • Ola Gilberto...

    Consegui resolver de outra maneira, nao sei se é assim o certo, mas deu certo...

    Exclui o registro das duas filhas e depois o do pai, segue exemplo de uma das entidade que deletei:

    SqlConnection conn_Lyceum = new SqlConnection(conexao);
    SqlCommand cmd3 = new SqlCommand("select ContactId from Contact where DeletionStateCode = 0", conn_Lyceum);
    cmd3.CommandType = System.Data.
    CommandType.Text;
    conn_Lyceum.Open();
    SqlDataReader dr3;
    dr3 = cmd3.ExecuteReader();
    while (dr3.Read())
    {
    //deleta contato
          excluiContato((dr3["ContactId"].ToString()));
    }


    ----------------------------------------------

     

    protected void excluiContato(string id_crm)

    {

     

    CrmAuthenticationToken token = new CrmAuthenticationToken();
    token.AuthenticationType = 0;
    token.OrganizationName =
    "XXX";
    CrmService crm = new CrmService();
    crm.CrmAuthenticationTokenValue = token;
    crm.Credentials = System.Net.
    CredentialCache.DefaultCredentials;

    Guid
    contactGuid = new Guid(id_crm);

     

    try
    {
         crm.Delete(
    EntityName.contact.ToString(), contactGuid);
    }
    catch (System.Web.Services.Protocols.SoapException ex)
    {
         lbldetalhe.Text = ex.Detail.InnerText;
    }

     

    }

    • Marcado como Resposta Rafael.Moreno quinta-feira, 23 de abril de 2009 16:52
    quinta-feira, 23 de abril de 2009 16:52
  • Rafasax,

    Que bom que funcionou. Apenas dê uma olhada depois no processo do CRM para exclusão em massa (Bulk Delete) que é bem interessate. Por exemplo, se eu quiser excluir todas as Contas e Contatos, posso fazer através de um único [Request] para o CRM:

    Exemplo:

    CrmAuthenticationToken token = new CrmAuthenticationToken();
    token.AuthenticationType = 0;
    token.OrganizationName = "AdventureWorksCycle";

    CrmService service = new CrmService();
    service.Url = "http://<servername>:<port>/mscrmservices/2007/crmservice.asmx";
    service.CrmAuthenticationTokenValue = token;
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;

    // Query Expression para retornar todas as contas
    QueryExpression accountsQuery = new QueryExpression();
    accountsQuery.EntityName = EntityName.account.ToString();
    accountsQuery.ColumnSet = new AllColumns();

    // Query Expression para retornar todas os contatos
    QueryExpression contactsQuery = new QueryExpression();
    contactsQuery.EntityName = EntityName.contact.ToString();
    contactsQuery.ColumnSet = new AllColumns();

    BulkDeleteRequest request = new BulkDeleteRequest();
    request.JobName = "Exclui todas as CONTAS e CONTATOS";
    request.QuerySet = new QueryBase[] { accountsQuery, contactsQuery };
    request.SendEmailNotification = false;
    request.ToRecipients = new Guid[0];
    request.CCRecipients = new Guid[0];
    request.RecurrencePattern = string.Empty;
    request.StartDateTime = new CrmDateTime();
    request.StartDateTime.Value = DateTime.Now.ToString("s");

    BulkDeleteResponse response = (BulkDeleteResponse)service.Execute(request);
    Guid jobId = response.JobId;

    []s


    Gilberto Tezini - MCP ASP.NET (C#/VB.NET) / MCP CRM - (http://gtezini.blogspot.com)
    • Marcado como Resposta Rafael.Moreno quinta-feira, 23 de abril de 2009 18:14
    quinta-feira, 23 de abril de 2009 17:09

Todas as Respostas

  • Olá Rafasax,

    Exclusão em massa pela próprio produto existe somente na versão [OnLine] do CRM. Provavelmente a sua é [On-Premisse]. Portanto, para excluir os registros de uma vez terá que desenvolver (no vs.net), via SDK do CRM, o processo chamado [Bulk Delete], conforme mostra o help do SDK - http://msdn.microsoft.com/en-us/library/cc151198.aspx.

    []


    Gilberto Tezini - MCP ASP.NET (C#/VB.NET) / MCP CRM - (http://gtezini.blogspot.com)
    quarta-feira, 15 de abril de 2009 16:06
  • Olá Rafasax,

    Conseguiu resolver?!
    Gilberto Tezini - MCP ASP.NET (C#/VB.NET) / MCP CRM - (http://gtezini.blogspot.com)
    quinta-feira, 23 de abril de 2009 16:26
  • Ola Gilberto...

    Consegui resolver de outra maneira, nao sei se é assim o certo, mas deu certo...

    Exclui o registro das duas filhas e depois o do pai, segue exemplo de uma das entidade que deletei:

    SqlConnection conn_Lyceum = new SqlConnection(conexao);
    SqlCommand cmd3 = new SqlCommand("select ContactId from Contact where DeletionStateCode = 0", conn_Lyceum);
    cmd3.CommandType = System.Data.
    CommandType.Text;
    conn_Lyceum.Open();
    SqlDataReader dr3;
    dr3 = cmd3.ExecuteReader();
    while (dr3.Read())
    {
    //deleta contato
          excluiContato((dr3["ContactId"].ToString()));
    }


    ----------------------------------------------

     

    protected void excluiContato(string id_crm)

    {

     

    CrmAuthenticationToken token = new CrmAuthenticationToken();
    token.AuthenticationType = 0;
    token.OrganizationName =
    "XXX";
    CrmService crm = new CrmService();
    crm.CrmAuthenticationTokenValue = token;
    crm.Credentials = System.Net.
    CredentialCache.DefaultCredentials;

    Guid
    contactGuid = new Guid(id_crm);

     

    try
    {
         crm.Delete(
    EntityName.contact.ToString(), contactGuid);
    }
    catch (System.Web.Services.Protocols.SoapException ex)
    {
         lbldetalhe.Text = ex.Detail.InnerText;
    }

     

    }

    • Marcado como Resposta Rafael.Moreno quinta-feira, 23 de abril de 2009 16:52
    quinta-feira, 23 de abril de 2009 16:52
  • Rafasax,

    Que bom que funcionou. Apenas dê uma olhada depois no processo do CRM para exclusão em massa (Bulk Delete) que é bem interessate. Por exemplo, se eu quiser excluir todas as Contas e Contatos, posso fazer através de um único [Request] para o CRM:

    Exemplo:

    CrmAuthenticationToken token = new CrmAuthenticationToken();
    token.AuthenticationType = 0;
    token.OrganizationName = "AdventureWorksCycle";

    CrmService service = new CrmService();
    service.Url = "http://<servername>:<port>/mscrmservices/2007/crmservice.asmx";
    service.CrmAuthenticationTokenValue = token;
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;

    // Query Expression para retornar todas as contas
    QueryExpression accountsQuery = new QueryExpression();
    accountsQuery.EntityName = EntityName.account.ToString();
    accountsQuery.ColumnSet = new AllColumns();

    // Query Expression para retornar todas os contatos
    QueryExpression contactsQuery = new QueryExpression();
    contactsQuery.EntityName = EntityName.contact.ToString();
    contactsQuery.ColumnSet = new AllColumns();

    BulkDeleteRequest request = new BulkDeleteRequest();
    request.JobName = "Exclui todas as CONTAS e CONTATOS";
    request.QuerySet = new QueryBase[] { accountsQuery, contactsQuery };
    request.SendEmailNotification = false;
    request.ToRecipients = new Guid[0];
    request.CCRecipients = new Guid[0];
    request.RecurrencePattern = string.Empty;
    request.StartDateTime = new CrmDateTime();
    request.StartDateTime.Value = DateTime.Now.ToString("s");

    BulkDeleteResponse response = (BulkDeleteResponse)service.Execute(request);
    Guid jobId = response.JobId;

    []s


    Gilberto Tezini - MCP ASP.NET (C#/VB.NET) / MCP CRM - (http://gtezini.blogspot.com)
    • Marcado como Resposta Rafael.Moreno quinta-feira, 23 de abril de 2009 18:14
    quinta-feira, 23 de abril de 2009 17:09
  • Puxa... parece mais facil mesmo, vou testar depois...

    Valeu...

    Obrigado!!!
    quinta-feira, 23 de abril de 2009 18:14
  • Giberto,

    Usei o codigo que vc passou e nao da erro nenhum, ele executa... mas quando entro no CRM para ver meus contatos nao excluiu nenhum...

    segue o codigo:

     

    CrmAuthenticationToken token = new CrmAuthenticationToken();

    token.AuthenticationType = 0;

    token.OrganizationName =

    "SPD";

     

    CrmService service = new CrmService();

    service.CrmAuthenticationTokenValue = token;

    service.Credentials = System.Net.

    CredentialCache.DefaultCredentials;

     

    // Query Expression para retornar todas as contas

     

    QueryExpression inscQuery = new QueryExpression();

    inscQuery.EntityName =

    EntityName.un_inscricaovestibular.ToString();

    inscQuery.ColumnSet =

    new AllColumns();

     

    // Query Expression para retornar todas as contas

     

    QueryExpression regQuery = new QueryExpression();

    regQuery.EntityName =

    EntityName.un_registroacademico.ToString();

    regQuery.ColumnSet =

    new AllColumns();

     

    // Query Expression para retornar todas os contatos

     

    QueryExpression contactsQuery = new QueryExpression();

    contactsQuery.EntityName =

    EntityName.contact.ToString();

    contactsQuery.ColumnSet =

    new AllColumns();

     

    BulkDeleteRequest request = new BulkDeleteRequest();

    request.JobName =

    "Exclui todas as CONTAS e CONTATOS";

    request.QuerySet =

    new QueryBase[] { contactsQuery, inscQuery, regQuery };

    request.SendEmailNotification =

    false;

    request.ToRecipients =

    new Guid[0];

    request.CCRecipients =

    new Guid[0];

    request.RecurrencePattern =

    string.Empty;

    request.StartDateTime =

    new CrmDateTime();

    request.StartDateTime.Value =

    DateTime.Now.ToString("s");

     

    BulkDeleteResponse response = (BulkDeleteResponse)service.Execute(request);

     

    Guid jobId = response.JobId;

    quinta-feira, 23 de abril de 2009 18:32
  • Rafasax,

    Note que ele cria Jobs no CRM. Verifique qual o status do Job que vc criou (Configurações -> Gerenciamento de Dados -> Exclusão em Massa de Registros).
    Gilberto Tezini - MCP ASP.NET (C#/VB.NET) / MCP CRM - (http://gtezini.blogspot.com)
    quinta-feira, 23 de abril de 2009 18:40
  • É mesmo...

    Esta em andamento... bem melhor assim...

    Show de bola, valeu!!!

    Obrigado!!!

    quinta-feira, 23 de abril de 2009 18:47
  • Blz,

    Se demorar para excluir os registros me avise para analisarmos.

    []
    Gilberto Tezini - MCP ASP.NET (C#/VB.NET) / MCP CRM - (http://gtezini.blogspot.com)
    quinta-feira, 23 de abril de 2009 19:10
  • Deu certinho!!!


    Tenho uma duvida, nao sei se pode fazer aki mesmo ou abrir outra discusao... mas é o seguinte, sou novo nessa parte de CRM e estou meio que aprendendo sozinho, olhando na internet, qual a diferenca dos dois web services: CRMSERVICE e METADATASERVICE ???

    CRMSERVICE ele mexe com os registros e METADATASERVICE com a estrutura???


    FalO!!!
    quinta-feira, 23 de abril de 2009 19:17
  • Resumidamente é isto!

    CRMService para acesso aos DADOS do CRM.
    Metadataservice para acesso a todo Metadado do CRM. Por exemplo, vc pode acessar este WS para buscar os valores de um Picklist da Conta no CRM.

    Recomendo tirar um tempo (bom tempo!) para ler o SDK do CRM. Vai te esclarecer muitas dúvidas.

    []
    Gilberto Tezini - MCP ASP.NET (C#/VB.NET) / MCP CRM - (http://gtezini.blogspot.com)
    quinta-feira, 23 de abril de 2009 19:41