Apex Push список идентификаторов в параметре Pagereference - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь выдвинуть список идентификаторов к параметру URL, используя строку, при загрузке страницы VF вот так это выглядит - я получаю кучу% 27% 2C% 27:

"/ 00O1f000000W6c5? PV0 =% 27a1D1f000000GC8tEAG% 27% 2C% 27a1D1f000000GE1AEAW% 27% 2C% 27a1D1f000000GE3QEAW% 27% 2C% 27a1D1f000000GE3VEAW% 27 & PV1 =% 27a1D1f000000GC8tEAG% 27% 2C% 27a1D1f000000GE1AEAW% 27% 2C% 27a1D1f000000GE3QEAW% 27% 2C% 27a1D1f000000GE3VEAW% 27 "

в то время как я ожидаю, что он будет опубликован следующим образом

" / 00O1f000000W6c5? Pv0 = ('a1D1f000000GC8tEAG', 'a1D1f000000GE1AEAW', 'a1D1f000000GE3QEAW.)

ниже моего контроллера и код

public with sharing class AccountLoanCollateralControllerTESTSAAD {

public Id AccountId { get; set; }
public Account Acc { get; set; }
list<ID> listcoll = new list<ID>();
list<string>liststring=new list<string>();
string idString;
string url;


public AccountLoanCollateralController(ApexPages.StandardController controller) {





Acc= (Account) controller.getRecord();
list<LLC_BI__Account_Collateral__c> AccColl=[select LLC_BI__Collateral__c from LLC_BI__Account_Collateral__c where LLC_BI__Account__c =:Acc.Id and LLC_BI__Collateral__r.Type1__c like '%agreement%'];

for(LLC_BI__Account_Collateral__c ac: AccColl)
{

listcoll.add(Ac.LLC_BI__Collateral__c);
liststring.add('\''+string.valueof(Ac.LLC_BI__Collateral__c)+'\'');

}

idString = string.join(liststring,',');
url=  string.valueof(idString);


}


public PageReference Run() {

        //build your code logic here
       PageReference pageRef = new PageReference('/00O1f000000W6c5?pv0=' + url + '&pv1='+url);
        pageRef.setRedirect(true);
       return pageRef;

       }


}

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Это ожидаемая функциональность.Браузеры автоматически кодируют URL-адреса и заменяют символы их соответствующим кодом

Вам необходимо декодировать URL-адрес на странице, которая получает параметры

Если этоэто стандартная страница Salesforce, которую вы не можете контролировать, тогда то, что вы делаете, - это, по сути, хакерство URL, и вы изучаете последствия этого.

0 голосов
/ 28 сентября 2019

Попробуйте отправить их без "()" и без апострофов, вы слишком усложнили это.Для отчетов не нужен тот же синтаксис, что и для SOQL.

Только идентификаторы, разделенные запятыми.

В моем органе: /00O0g000005Z3I7?pv0=0017000000Lg8Wa,0017000000Lg8Wg,0017000000Lg8WX&isdtp=vw дает

enter image description here

...