Usuário com melhor resposta
CRM 2011 - Plugin ou javascript que altera campo para registros selecionados

Pergunta
-
Preciso alterar um campo de determinados registros em uma pesquisa avançada.
EX: faço uma pesquisa avançada de 10 oportunidades, e seleciono 5, clico em algum botão e o código Javascript pega o ID destas oportunidades e altera o status.
Tem como fazer isso via JS ou o melhor e ir para um Plugin?
Respostas
-
- Marcado como Resposta Daniel Jonathan terça-feira, 27 de novembro de 2012 11:01
Todas as Respostas
-
-
Veja este link http://crm-dev.blogspot.com.br/2011/04/crm-2011-add-mapping-to-advanced-find.html ele faz o que você está querendo colocar. claro para um outro propósito mas adiciona o botão.
Atenciosamente,
Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
Profile
Blog- Sugerido como Resposta Rodrigo HentzModerator sexta-feira, 23 de novembro de 2012 12:02
-
-
Senhores, estou quase..
srsrssrsrsrsrsrs
Estudando o link acima notei que a consulta nas entidades do CRM 2011 e feita atravez de fetchXml.
bom, a linha que quero seguir e:
Registrar um plugin que e registrado no Update.
toda vez que tiver uma alteração no pedido, o plugin vai no campo Y e verifica se e igual a sim.
se for ele faz uma consulta via fetchXml de quais os ids dos produtos que fazem parte do pedido e altera o status dos Produtos do pedido.Com a ajuda de todos do forum ja consigo criar um plugin registrar no evento Update e alterar quando necessario o status do produto do pedido.
Agora e partir para consulta via fetchXml.
Estou estudando aqui, se alguem conhecer um material bacana de estudo eu agradeço.
-
Novamente tenho problemas na parte de atualizar em um registro via Plugin.
Hoje criei um Plugin no Evento Update e vai ser executado no Pos-Operation;
para pegar a entidade alvo usei os códigos abaixo:
IPluginExecutionContext context = localContext.PluginExecutionContext; ITracingService tracingService = localContext.TracingService; IOrganizationService service = localContext.OrganizationService; Entity contrato = (Entity)context.InputParameters["Target"];
Para atualizar os dados usei o comando abaixo:
contrato["new_name"] = "Teste Atualizado,Sucesso"; OptionSetValue o = new OptionSetValue(); o.Value = 100000000;
contrato["new_integrar"] = o;
E finalmente mando atualizar os dados inseridos:
localContext.OrganizationService.Update(contrato);
Mas me apresenta o erro abaixo:
Uma duvida também me persegue, como faço pra atualizar um registro a partir de seu ID, ou seja, tenho o ID do registro, quero alterar os dados e posteriormente atualizar com o método "UPDATE" ?
-
Daniel, isso vai acontecer mesmo. você realmente esta fazendo um loop de update infinito.
No inicio do seu código verifique o atributo Depth. ele vai incrementando a cada update.
no inicio coloque :
if
(localContext.Depth > 1) return;
Atenciosamente,
Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
Profile
Blog -
Rodrigo então estou fazendo algo errado, pois não tenho um atributo Depth e o objeto localContext nao me apresenta o objeto Depth.
Mas em todo caso se ele esta dando update infinito nao estou dando update no objeto correto, pois somente quero dar update no objeto Contrato.
E como faço pra atualizar um registro a partir de seu ID, ou seja, tenho o ID do registro, quero alterar os dados e posteriormente atualizar com o método "UPDATE" ?
-
- Marcado como Resposta Daniel Jonathan terça-feira, 27 de novembro de 2012 11:01
-
Rodrigo, funcionou perfeitamente,
E como faço pra atualizar um registro a partir de seu ID, ou seja, tenho o ID do registro, quero alterar os dados e posteriormente atualizar com o método "UPDATE" ?
não sei se estou no caminho correto, mas:
Tenho que criar um objeto que faz referencia a um registro já criado, correto? seria com o EntityReference ? se for quais parâmetros tenho que passar?
-