Пользовательская кнопка или ссылка на страницу Visualforce с настраиваемым контроллером

У меня есть страница Visualforce с настраиваемым контроллером, который используется для редактирования нескольких записей при возможности.

Я хочу создать настраиваемую кнопку или ссылку из раздела "Возможности" на эту страницу Visualforce.

В настоящее время ссылка выглядит так:

/apex/ExamplePage?oppId={!Opportunity.Id}

Это отлично работает в изолированной программной среде разработки, но когда она развертывается как часть управляемого пакета, ссылка разрывается, поскольку ссылка на страницу не имеет префикса пространства имен.

Я нашел сообщение Проблема перенаправления управляемого пакета на досках обсуждения Force.com, в котором говорилось, что можно использовать $ Page для ссылки на страницу Visualforce в URL-адресе. Например.

{!URLFOR($Page.MyExamplePage,'',[objectId = campaign.id])}

Но это дает мне только синтаксическую ошибку:

Ошибка: Поле $ Page.MyExamplePage не существует. Проверять орфографию.

Есть еще одна часть сообщения, в которой предлагается использовать класс Apex и Execute Javascript, чтобы обойти это. Но мне кажется, что это только что переместило проблему пространства имен в Javascript.

Как я могу безопасно ссылаться на страницу Visualforce для работы как внутри, так и вне управляемого пакета?

6
задан Daniel Ballinger 30 May 2012 в 02:41
поделиться