You need to sign in to do that
Don't have an account?
Sudipta Patnaik 5
How can I incorporate a string (highlighted in bold) in SOQL query after where clause???? .Below is the code and I'm getting errors
public class SearchLienController {
@AuraEnabled
public static List<Lien__c> getLiens(String lienReservationNumber,String paymentConfirmationNumber,String lienClaimantName,String injuredWorkerName, String caseRefNumber) {
String finalQry = finalQuery(lienReservationNumber, paymentConfirmationNumber, lienClaimantName, injuredWorkerName, caseRefNumber);
return [SELECT Name,Case__r.CaseNumber,Lien_Claimant_Name__r.Name,Injured_Worker_Name__r.Name,Lien_Disposition__c,Form_Received_Date_Original_File_Date__c,Payment_Confirmation_Number__c,Total_Requested_Amount__c
FROM Lien__c where =:finalQry];
}
private static String finalQuery(String lienReservationNumber,String paymentConfirmationNumber,String lienClaimantName,String injuredWorkerName, String caseRefNumber){
String finalQry = '';
String payCA = paymentConfirmationNumber;
if(!String.isBlank(lienReservationNumber)){
finalQry= ' Name=:lienReservationNumber';
}
if(!String.isBlank(payCA)){
finalQry += ' AND Payment_Confirmation_Number__c=:payCA';
}
if(!String.isBlank(lienClaimantName)){
finalQry += ' AND Lien_Claimant_Name__r.id=:lienClaimantName';
}
if(!String.isBlank(injuredWorkerName)){
finalQry += ' AND Injured_Worker_Name__r.id=:injuredWorkerName';
}
if(!String.isBlank(caseRefNumber)){
finalQry += ' AND Case__r.CaseNumber=:caseRefNumber';
}
if(finalQry.startsWith('AND')){
finalQry = finalQry.replaceFirst('AND', '');
}
return finalQry;
}
}
@AuraEnabled
public static List<Lien__c> getLiens(String lienReservationNumber,String paymentConfirmationNumber,String lienClaimantName,String injuredWorkerName, String caseRefNumber) {
String finalQry = finalQuery(lienReservationNumber, paymentConfirmationNumber, lienClaimantName, injuredWorkerName, caseRefNumber);
return [SELECT Name,Case__r.CaseNumber,Lien_Claimant_Name__r.Name,Injured_Worker_Name__r.Name,Lien_Disposition__c,Form_Received_Date_Original_File_Date__c,Payment_Confirmation_Number__c,Total_Requested_Amount__c
FROM Lien__c where =:finalQry];
}
private static String finalQuery(String lienReservationNumber,String paymentConfirmationNumber,String lienClaimantName,String injuredWorkerName, String caseRefNumber){
String finalQry = '';
String payCA = paymentConfirmationNumber;
if(!String.isBlank(lienReservationNumber)){
finalQry= ' Name=:lienReservationNumber';
}
if(!String.isBlank(payCA)){
finalQry += ' AND Payment_Confirmation_Number__c=:payCA';
}
if(!String.isBlank(lienClaimantName)){
finalQry += ' AND Lien_Claimant_Name__r.id=:lienClaimantName';
}
if(!String.isBlank(injuredWorkerName)){
finalQry += ' AND Injured_Worker_Name__r.id=:injuredWorkerName';
}
if(!String.isBlank(caseRefNumber)){
finalQry += ' AND Case__r.CaseNumber=:caseRefNumber';
}
if(finalQry.startsWith('AND')){
finalQry = finalQry.replaceFirst('AND', '');
}
return finalQry;
}
}
Expression cannot be assigned
update the return of getLiens method like this
return Database.query( 'SELECT Name,Case__r.CaseNumber,Lien_Claimant_Name__r.Name,Injured_Worker_Name__r.Name,Lien_Disposition__c,Form_Received_Date_Original_File_Date__c,Payment_Confirmation_Number__c,Total_Requested_Amount__c
FROM Lien__c where = '+finalQry);
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dynamic_soql.htm
Mark it the best answer if it solved your query.
if(!String.isBlank(lienReservationNumber)){
finalQry= ' Name like : %lienReservationNumber%';
}
if(!String.isBlank(lienReservationNumber)){
finalQry= ' Name like : \'%'+lienReservationNumber+'%\' Limit 10'';
}
try this
if(!String.isBlank(lienReservationNumber)){
finalQry= ' Name like \'%'+lienReservationNumber+'%\' Limit 10';
}
% sign does not go well with :