Usuário com melhor resposta
[CRM 2011] Referenciar Arquivo JS de outro arquivo JS

Pergunta
-
Olá pessoal! Vou procurar detalhar ao máximo a minha situação, para que possam me ajudar a resolver o meu problema.
Criei um botão na Ribbon do meu formulário Linha de Contrato chamado Encerrar Linha de Contrato. O botão só fica habilitado para o clique quando somente um registro da Linha de Contrato é selecionando.
Ao clicar, o botão chama a minha função JavaScript (vide código abaixo) que com o ID da Linha de Contrato selecionada, executa uma query (ODAta Query) e abre outro formulário, Hora de Linha de Contrato que está relacionada com a Linha de Contrato.
Até aqui, tudo ocorre perfeitamente, o problema é que minha função JavaScript precisa utilizar o arquivo jquery1.4.1vsdoc (este arquivo pode ser encontrado facilmente em uma pesquisa) para executar o $.ajax.
Como disse, esse é o problema, referenciar o jquery14.1vsdoc, já tentei de várias maneiras:
- Colocando ambos na biblioteca do formulário
- Usando <reference path="jquery1.4.1vsdoc.js" /> de mil maneiras, com caminho absoluto, relativo, nome informado pelo CRM na importação, nome original e etc.
O curioso, é que quando eu coloco ambos arquivos na biblioteca do formulário e chamo a minha função (sem a query e com ID fixo) no Load da página, ele executa corretamente.
Bom! Para não perder mais tempo unifiquei os dois arquivos .JS e funcionou perfeitamente, porém creio que não seja uma boa prática, pois caso precise alterar o arquivo base terei que fazer em todos os arquivos que estão utilizando.
Conto com ajuda de vocês.
function OpenHoraLinhaContrato(selectedIdLinhaContrato) { if (selectedIdLinhaContrato != null && selectedIdLinhaContrato != "" && typeof (selectedIdLinhaContrato) != "undefined") { var idLinhaContrato = selectedIdLinhaContrato[0]; idLinhaContrato = idLinhaContrato.replace("{", ""); idLinhaContrato = idLinhaContrato.replace("}", ""); var serverUrl = "http://" + window.location.host + "/" + Xrm.Page.context.getOrgUniqueName(); var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc"; var query = "/new_horadelinhadecontratoSet?$select=new_horadelinhadecontratoId&$filter=new_contractdetailid/Id eq guid' " + idLinhaContrato + "'"; var urlQuery = serverUrl + ODATA_ENDPOINT + query; $.ajax( { type: "GET", async: false, contentType: "application/json; charset=utf-8", datatype: "json", url: urlQuery, beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); XMLHttpRequest.setRequestHeader("Content-Type", "application/json; charset=utf-8"); }, success: function (data, textStatus, HmlHttpRequest) { var idHoraLinhaContrato = data.d.results[0].new_horadelinhadecontratoId; Xrm.Utility.openEntityForm("new_horadelinhadecontrato", idHoraLinhaContrato); }, error: function (XmlHttpRequest, textStatus, errorThrown) { alert("Não foi possível encerrar esta Linha de Contrato."); } }); } else { alert("Não foi possível encerrar esta Linha de Contrato."); } }
Vanderlei Santana
Respostas
-
Vanderlei,
Você precisa realizar duas chamadas de funções para usar o jquery use o isNaN, veja um exemplo:
http://madcomputerist.blogspot.com.br/2012/06/referencing-multiple-javascript.html
Tiago Michelini Cardoso MVP - MCC - MCTS
https://tiagomcardoso.wordpress.com/- Sugerido como Resposta Felipe Augusto L O sexta-feira, 16 de agosto de 2013 19:10
- Marcado como Resposta Vanderlei Santana segunda-feira, 19 de agosto de 2013 16:28
Todas as Respostas
-
Vanderlei,
Você precisa realizar duas chamadas de funções para usar o jquery use o isNaN, veja um exemplo:
http://madcomputerist.blogspot.com.br/2012/06/referencing-multiple-javascript.html
Tiago Michelini Cardoso MVP - MCC - MCTS
https://tiagomcardoso.wordpress.com/- Sugerido como Resposta Felipe Augusto L O sexta-feira, 16 de agosto de 2013 19:10
- Marcado como Resposta Vanderlei Santana segunda-feira, 19 de agosto de 2013 16:28
-