Страница Apex Salesforce для ссылки на URL-адрес слияния - PullRequest
1 голос
/ 28 сентября 2019

Предполагается, что ссылка создана и указывает на URL со следующим шаблоном: /00O70000001SOsa?pv0= enj!Account.чтобы вызывать то же самое, используя PageRference или любой другой подобный API.

1 Ответ

0 голосов
/ 28 сентября 2019
// You will have to apply your own logic on how you pick data for the link
Account acc = [SELECT Id FROM Account LIMIT 1];
Case c = [SELECT IsClosed FROM Case LIMIT 1];

Pagereference pr = new PageReference('/00O70000001SOsa');
pr.getParameters().putAll(new Map<String, String>{
    'pv0' => acc.Id,
    'pv1' => c.isClosed ? 'true' : 'false'
});

System.debug(pr.getUrl());
// outputs something like /00O70000001SOsa?pv0=0017000001TSmKmAAL&pv1=false

Параметры, которые вы передаете в URL, должны быть Strings (или что-то, что легко приводится к String).Так что ваша задача - конвертировать логические значения, отображать даты в формате, который будет нравиться другой странице (для отчетов нужны даты в том же формате, который будет использовать пользователь, поэтому в соответствии с его / ее локалью, посмотрите на метод format в Date и DateTimeкласс).

Но это все.Вам не нужно беспокоиться о "?"знак или любое необычное экранирование специальных символов, это будет сделано для вас:

Pagereference pr = new PageReference('/home/home.jsp');
pr.getParameters().putAll(new Map<String, String>{
    'spaces' => 'spa ce',
    'html-entities' => '& < >',
    'percents' => '1 / 4 = 25%'
});

System.debug(pr.getUrl());
// /home/home.jsp?html-entities=%26+%3C+%3E&percents=1+%2F+4+%3D+25%25&spaces=spa+ce
...