标签: soql

SQL到SOQL的转换(Salesforce.com SOQL)

有没有人为Salesforce.com对象的SOQL转换做过SQL?

sql salesforce soql

2
推荐指数
1
解决办法
5316
查看次数

SOQL查询获取超过2000条记录

如何通过SOQL获取超过2000条记录....是否有更多的查询?

salesforce soql

2
推荐指数
1
解决办法
2731
查看次数

SOQL - 查询当前用户关注的用户列表

在我的应用程序中,我显示当前用户的列表.我这样要求:

尝试1

List<User> Following = [SELECT Id, Name, SmallPhotoUrl 
  FROM User 
  WHERE Id IN (
      SELECT ParentId 
      FROM EntitySubscription 
      WHERE SubscriberId = :UserInfo.getUserId()) 
    AND Id != :UserInfo.getUserId() 
  LIMIT 96];
Run Code Online (Sandbox Code Playgroud)

这完全符合以管理员身份登录的情况,但我发现非管理员收到错误:

实施限制:EntitySubscription仅允许在指定LIMIT时对非管理员用户进行安全评估,最多为1000

好吧,没什么大不了的,我会像这样打一个极限:

尝试2

List<User> Following = [SELECT Id, Name, SmallPhotoUrl 
  FROM User 
  WHERE Id IN (
      SELECT ParentId 
      FROM EntitySubscription 
      WHERE SubscriberId = :UserInfo.getUserId() 
      LIMIT 1000) 
    AND Id != :UserInfo.getUserId() 
  LIMIT 96];
Run Code Online (Sandbox Code Playgroud)

容易,对吗?错误.这给出了以下内容:

期待一个正确的括号,发现'LIMIT'

好...

然后我试着把它分解出来:

尝试3

List<EntitySubscription> sub = [SELECT ParentId 
  FROM EntitySubscription 
  WHERE SubscriberId = :UserInfo.getUserId() 
  LIMIT 1000]; …
Run Code Online (Sandbox Code Playgroud)

salesforce soql apex-code salesforce-chatter

2
推荐指数
1
解决办法
1万
查看次数

为什么Salesforce阻止我使用包含关系的查询创建推送主题?

当我在开发者控制台中执行此代码时

PushTopic pushTopic = new PushTopic();
pushTopic.ApiVersion = 23.0;
pushTopic.Name = 'Test';
pushTopic.Description = 'test';
pushtopic.Query = 'SELECT Id, Account.Name FROM Case';
insert pushTopic;
System.debug('Created new PushTopic: '+ pushTopic.Id);
Run Code Online (Sandbox Code Playgroud)

我收到此消息:

致命错误System.DmlException:插入失败.第0行的第一个例外; 第一个错误:INVALID_FIELD,不支持关系:[QUERY]

相同的查询在查询编辑器上运行正常,但是当我将其分配给推送主题时,我得到了INVALID_FIELD异常.

如果底线是异常消息所说的内容,Push Topic对象不支持这种关系,那么如何创建一个Push Topic对象来返回我正在寻找的数据?

exception salesforce soql apex-code sql-insert

2
推荐指数
1
解决办法
1659
查看次数

Salesforce相当于"SELECT DISTINCT"?

我想知道字段的所有现有值是什么.

在SQL中,它将是这样的:

SELECT DISTINCT foo
FROM bar
Run Code Online (Sandbox Code Playgroud)

我如何使用salesforce的SOQL执行此操作?

salesforce soql

2
推荐指数
1
解决办法
1万
查看次数

Salesforce SOQL一次性获得案例所有者

使用Salesforce SOQL我可以使用以下内容获取所有者的ID:

SELECT Case.OwnerId 
FROM Case 
WHERE Case.CaseNumber = '00001234'
Run Code Online (Sandbox Code Playgroud)

然后,我可以在此查询中获取拥有该案例的用户的用户详细信息:

SELECT User.Id, User.Name, User.Custom_Field__c 
FROM User 
WHERE User.Id = '001A0000001abc1DEF'
Run Code Online (Sandbox Code Playgroud)

但我不能让它在一个声明中工作,我认为这是因为所有者!=用户,即使在这种情况下所有者实际上是用户.我试过了:

SELECT Owner.Custom_Field__c
FROM Case 
WHERE Case.CaseNumber = '00001234'
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误,即Custom_Field__c不是有效字段.

salesforce soql

1
推荐指数
1
解决办法
8402
查看次数

Soql查询以获取机会中帐户的所有相关联系人

我有SOQL查询,它根据where条件查询一些记录.

select id, name,account.name ... <other fields> from opportunity where eventname__c='Test Event'
Run Code Online (Sandbox Code Playgroud)

我还需要在机会中获取该帐户的相关联系详细信息.即我需要添加联系人的电子邮件ID,这些联系人都是机会中帐户的一部分.

对于每个机会,我需要获得与机会中的帐户关联的所有联系人电子邮件.

我真的无法弄清楚如何处理这个问题.参考文档我可以使用查询获取帐户的联系信息

SELECT Name,
(
SELECT LastName
FROM Contacts
)
FROM Account
Run Code Online (Sandbox Code Playgroud)

我怎样才能将这与机会一起使用?

谢谢

salesforce soql

1
推荐指数
1
解决办法
3万
查看次数

Salesforce.com:获取SOQL语句以返回要在电子邮件模板中使用的字符串?

我为生日做了一个Apex Scheduler Class.当生日为2天时,该课程可以成功发送电子邮件给我们的导演.

但是,两天后生日时发送的电子邮件模板需要包含联系人的姓氏和生日.(电子邮件模板看起来是这样的:这是一个调度程序生成的电子邮件通知您名字的生日:{!Contact.FirstName},姓氏:{!Contact.LastName}是的{!Contact.Next_Birthday__c}.

在我的调度程序中,我使用SOQl语句在数据库中查询联系人的id和名字.

在我调用查询后,如何将我刚查询的信息转换为在电子邮件模板中使用的字符串/方法?

我的猜测是将查询结果作为字符串返回?任何建议表示赞赏!

这是我的代码:

global class BirthdayName implements Schedulable
{
    global void execute (SchedulableContext ctx) 
    { 
        sendBirthdayEmail(); 
    }

    public void sendBirthdayEmail()
    {
        for(Contact con : [SELECT Contact.name, Id FROM Contact WHERE Next_Birthday__c = : system.Today().addDays(2)])
        {
            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); 
            mail.setTemplateId('00XJ0000000M31w'); 
            mail.setTargetObjectId('005J0000000JWYx'); 
            mail.setSaveAsActivity(false);
            Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail}); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

salesforce soql apex-code

1
推荐指数
1
解决办法
1910
查看次数

Salesforce Apex-从SOQL查询填充对象

我有一个简单的SOQL查询,该查询返回与Contact和CampaignMember有关的信息。我正在尝试使用SOQL查询的结果填充自定义对象。但是,加载Visualforce页面时出现以下错误:

CampaignMember的字段Campaign.name无效

列出campaignMembers = [从CampaignMember中选择campaign.name,contact.id,contact.firstname,contact.lastname,status,campaignId,其中contactId ='003U000000U0eNq'和:campaigns中的campaignId];

for(Integer i = 0; i <campaignMembers.size(); i ++){
    results.add(new CampaignMemberResult(
        (String)campaignMembers [i] .get('CampaignId'), 
        (String)campaignMembers [i] .get('campaign.name'),
        真正
    ));
}

我已经在开发人员控制台中单独运行了SOQL查询,并且查询成功。为什么不能在for循环中从SOQL查询中提取campaign.name?

salesforce soql apex-code

1
推荐指数
1
解决办法
7399
查看次数

Apex初学者 - 从触发器发送电子邮件

这是我用APEX编写的第一段代码,所以我正在学习...知道一点Java(到研究生水平),但我不知道为什么这不起作用.

我知道它不会像之前告诉我那样给salesforce一个错误(因此最后注释掉了调试.我更改了联系人电子邮件,它只是这样做,但我没有收到任何电子邮件!这是代码,谢谢你有任何帮助!

trigger Test1 on Contact (after update) {

//IF Email has changed (look at the old email and compare to new)
if(trigger.old[0].Email != trigger.new[0].Email){


    //Commit current transaction, reserver email capacity
    Messaging.reserveSingleEmailCapacity(1);
    //Create an email message object
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();

    //List<Messaging.SendEmailResult> results = new list<Messaging.SendEmailResult>();
    //hold email address
    String[] toAddresses = new String[] {trigger.new[0].Email};

    //Assign new address string
    mail.setToAddresses(toAddresses);
    //specify return ad (assuming as being sent from server)    
    mail.setReplyTo('XXX@example.com');
    //sender name
    mail.setSenderDisplayName('Mr Apex Tester');
    //Subject Specification
    mail.setSubject('Subjected to …
Run Code Online (Sandbox Code Playgroud)

email salesforce soql apex-code

1
推荐指数
1
解决办法
6166
查看次数