Na versão inicial, antes do bug ser percebido, eu utilizava o seguinte código para gerar o link:
String url = System.Url.getSalesforceBaseURL().toExternalForm();
Ou: String url = System.Url.getSalesforceBaseUrl().getHost();
Porém, após o bug ser percebido, acessei a Org em que o pacote gerenciado foi implantado. Em seguida fui à listagem de páginas Visualforce do Salesforce, acessei a página, em que o link apresentava problema. Ao clicar em "Preview" para a página ser carregada no meu navegador, vi que o link era diferente do que eu gerava com os código acima descritos. O link gerado com os códigos acima eram: https://na16.salesforce.com/apex/MinhaPaginaVisualForce
Já o link que o Salesforce me gerava, na Org com o pacote gerenciado era: https://MeuNamespace.na16.visual.force.com/apex/MinhaPaginaVisualForce
Veja que no segundo caso há o namespace do pacote gerenciado no link. Diante disso, pesquisei algumas soluções para o problema com o namespace, e descobri que se eu usar o mesmo código que usei inicialmente para gerar a URL, concatenar com o namespace da Org do pacote gerenciado, concatenar com o underline (2x) e por fim concatenar com o nome da página, obteria exito. Dessa forma fiz:
String url = System.Url.getSalesforceBaseURL().toExternalForm();
String complemento = '/apex/' + 'MeuNamespace__' + 'MinhaPaginaVisualForce';
String urlFinal = url + complemento;
A variável urlFinal gerou o link: https://na16.salesforce.com/apex/MeuNamespace__MinhaPaginaVisualForce
Ao acessar o link supracitado, sou redirecionado para o link real: https://MeuNamespace.na16.visual.force.com/apex/MinhaPaginaVisualForce
Bem, por hoje é só! Abraços.
Nenhum comentário:
Postar um comentário