循环使用Salesforce帐户

时间:2016-06-27 15:55:51

标签: angularjs salesforce apex

我是一名新开发人员,我需要完成一项任务,而且我对如何解决问题完全无能为力。这是一个角度日历应用程序。我在这个大项目中的任务是简单地使其运行,以便当用户在搜索查询中键入字段时,它会搜索特定的“代理”和“MasterAgency”帐户,而不是搜索所有帐户。所以这是一个Apex,Angular应用程序。我创建了一个RecordHelper类,下面是一个片段:

public static Set<Id> getAgencyRecordTypeIds(){
        Set<Id> recordTypeIds = new Set<Id>();
        recordTypeIds.add(GetRecordTypeIdByDeveloperName('Account','Agency'));
        recordTypeIds.add(GetRecordTypeIdByDeveloperName('Account','MasterAgency'));

        return recordTypeIds;
    }

然后我创建了另一个类,以便我可以使用remoteAction在Angular上传递它,如下所示:

@RemoteAction
    public static Set<Id> passRecordsIds() {
        Set<Id> fetchRecordTypeIds = RecordTypeHelper.getAgencyRecordTypeIds();
        return fetchRecordTypeIds;
    }

然后我使用.vfr方法将此remoteaction结果传递给Angular。这是它的Angular代码:

var passRecordsIds = vfr.send('S1_PAV_CalendarController.passRecordsIds', $scope.data.SFSendOpts, false);
            passRecordsIds().then(function(result){
                                        $scope.typeRecord = result;
                                        $log.debug($scope.typeRecord);
                                    }
                                    ,function(error){
                                        $log.error('passRecordsIds error');
                                        $log.error(error);
                                        $window.alert(error.message);
        });

所以我遇到的问题是,在我的Angular代码中,我需要修改Query语句,以便仅针对Account和MasterAccount进行搜索。我认为在AND语句之后我的查询是完全错误的。我的老板说我需要循环使用它,但我不知道如何解决这个问题。

var queryString = $scope.ACCOUNT_SELECT_PART + "  FROM Account WHERE" + " (Name Like '%" + searchTerm + "%' OR Safeco_Sub_Stat__c  Like '%" + searchTerm + "%') AND RecordTypeId IN ('Agency', 'MasterAgency')";

我原本写过

var queryString = $scope.ACCOUNT_SELECT_PART + "  FROM Account WHERE" + " (Name Like '%" + searchTerm + "%' OR Safeco_Sub_Stat__c  Like '%" + searchTerm + "%') AND typeRecord IN :passRecordsIds"; 

但它没有用,老板说这是不正确的,我需要包含字段名RecordTypeId。 我知道我已经跳过很多代码,但这些是我所做的修改。任何帮助将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:1)

我认为你需要结合你的两次尝试。尝试下面的代码,因为我相信你想要的记录类型的id是int passRecordIds。

var queryString = $scope.ACCOUNT_SELECT_PART + "  FROM Account WHERE" + " (Name Like '%" + searchTerm + "%' OR Safeco_Sub_Stat__c  Like '%" + searchTerm + "%') AND RecordTypeId IN : passRecordsIds";