Необходимо сравнить значение с настраиваемым полем типа данных списка выбора в SFDC - PullRequest
0 голосов
/ 17 сентября 2018

Я новичок в SFDC, у меня есть программа, в которой я передаю значения, и мне нужно сравнить эти значения с полем пользовательского объекта, где оно присутствует или нет.

Вот мой код,

public class CheckUtility {

    public static ID determineFeature(ID defaultPersonaID, String Email, String Industry, String Title, Decimal Revenue, Integer EmployeeCount) {

        ID fetrID = defaultFeatureID;
        String emailDomain = Email.split('@').get(1);           
        Feature__c[] features = new Feature__c[]{};
        features = [Select id, Industries__c, Title_Tags__c, Email_Domains__c, Company_Revenue_From__c, Company_Revenue_To__c, Employee_Count_From__c, Employee_Count_To__c FROM Feature__c ORDER BY lastModifiedDate DESC];
        Integer industriesFound = 0;
        for (feature__c p: features) {
     // checking if there is a matching feature based on email    
        System.debug('Email Domains = ' + p.email_domains__c);        
             if (p.Email_Domains__c != null &&     
        p.Email_Domains__c.contains(emailDomain)) {
                 fetrID = p.ID;
                break;
             }

             if(p.Industries__c != null){ 
  //I am stuck compare the industry is present or not in the p.Industries__c (picklistdatatype)

               System.debug('Industries' + p.Industries__c);        
                 fetrID = p.ID;
                break;
             }
        }                

        return fetrID;      
    }      
}

Нет. У меня Feature__c это пользовательский объект. Пользовательское поле Feature__c.Industries__c может иметь одно или несколько значений.

например: Feature__c (объект)

id                | Industries__c
a010b00000eERj4   | technology
a010b00000eEYu4   | finance, biotechology
a010b00000eHJj8   | chemical, healthcare

Я хочу проверить, равно ли значение Industry (полученное через значение, передаваемое в defineFeature), сколько Industries__c в Feature__c, и отправить в ответ их fetrID.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Что я понимаю, я реализую ниже. Если какой-либо вопрос или неправильное понимание вопроса, пожалуйста, дайте мне знать.

Со значением, которое нужно сравнить в пользовательском объекте.

public class custom_ctrl{

public Feature__c fetur {get;set;}
public String comparvalue {get;set;}

public custom_ctrl()
{
  fetur =new Feature__c ();

  fetur=[select Name,Email from feature__c where Name=:comparvalue ]

  if(comparvalue == fetur.Name)      
 {
     //action
 }
 else
 {
     //else action
 }

}
0 голосов
/ 23 сентября 2018

Список выбора нескольких элементов в бэкэнде - это просто текстовое поле со значениями, разделенными точкой с запятой, поэтому вы можете сделать что-то вроде:

Set<String> industries = new Set<String>()
industries.addAll(String.split(p.Industries__c, ';')); 
if (industries.contains(Industry)) { ... }

Кстати, это избыточно:

Feature__c[] features = new Feature__c[]{};
features = [Select id, (...)

Так как [SELECT] всегда возвращает список, даже если он пуст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...