none
Controle de Registro com Error e Na ação create pode atualizar o registro RRS feed

  • Pergunta

  • Ola Amigos,

    Estou precisando fazer uma carga onde o arquivo é grande. Este arquivo vai ser carregado todo mês para o Dynamics CRM. Eu gostei da forma que o "import Wizard" faz para registar o erro do registro. Existe alguma coisa no sdk ou tenho que fazer todo o controle no meu código? Outra coisa, quando eu criou uma importação via sdk com o "Create", existe alguma forma do "plugin" ou "fluxo de processo" interceptar ação de create? E fazer uma consulta para saber se o registro existe? E depois atualizar o registro na entidade. Caso o registro no exista seguir o processo normal de inserção. Lembrando que isto deveria acontecer em uma importação em massa.

    Muito Obrigado pela Ajuda.

    Tiago Santos


    • Editado Tiagovnrio quarta-feira, 16 de julho de 2014 20:38
    quarta-feira, 16 de julho de 2014 20:12

Todas as Respostas

  • Boas Tiago,

    Me desculpe mas eu não percebi o seu problema ou dúvida. Você está a fazer uma importação de dados via "import wizard", o que você quer dizer com "Existe alguma coisa no sdk ou tenho que fazer todo o controle no meu código?" você está a utilizar o SDK para importar os dados?

    Em relação a mensagem create apenas o plugin será capaz de interceptar a criação por um import, mas não estás apanhar? Dentro do plugin depois podes procurar se existe e actualizar, basicamente podes fazer qualquer operação, mas tenta dar mais detalhes.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    quinta-feira, 17 de julho de 2014 16:35
  • Obrigado Pedro pela Resposta.

    Eu tenho 2 cenários:

    1- Eu faço a carga via "import wizard" e fiz um plugin para quando for "create" ele verifique se o registro já  existe para atualizar. O que esta acontecendo é que ele esta atualizando e inserindo um novo tmb. O plugin funciona também para carga em massa?

    2 - Para fazer uma carga pelo sdk. Eu vou precisar sabe qual o registro foi rejeitado, igual é feito pelo "import Wizard". Teria como fazer?

    Outra coisa eu tenho como acionar o import wizard via sdk?

    Muito Obrigado,

    Tiago Santos

    sábado, 19 de julho de 2014 19:41
  • Boas Tiago,

    1 - Os plugins também são despoletados aquando de uma carga em massa. Em relação a ele inserir e actualizar é normal, pois se estás num plugin de create é porque existe uma criação e se nele estás a dizer para actualizar outro registo ele vai actualizar. Não tens como cancelar um plugin, quer dizer podes lançar a exeção InvalidPluginExecutionException mas isto vai cancelar toda a transação, ou seja, o create e o update.

    2 - Sim podes fazer e simular o import wizard via SDK mas não consegues saber os erros, também seria muito difícil de fazeres parsing, aqui vai algo para te ajudar:

    ImportMap importMap = new ImportMap()
    {
    	Name = "Nome da importação",
    	Source = "Importar Clientes.csv",
    	Description = "Descrição dos dados",
    	EntitiesPerFile = new OptionSetValue(1),
    	EntityState = EntityState.Created
    };
    
    Guid? _importMapId = _serviceProxy.Create(importMap);
    //Podes adicionar mapeamentos:
    ColumnMapping colMapping1 = new ColumnMapping();
    Guid colMappingId1 = _serviceProxy.Create(colMapping1);

    Tens outras opções que é ele não criar se detectar duplicados, ou teres um workflow para detectar duplicações. Agora se queres controlar uma importação registo a registo o melhor seria leres o CSV ou o Excel e por cada linha e depois de pesquisares no CRM com base nos valores que tens em cada linha decidires se vais criar ou actualizar.

    Se necessitares de ajuda em alguma destas questões diz.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    domingo, 27 de julho de 2014 00:07