标签: apex-code

Salesforce Session变量,在Session中设置和获取变量

我希望能够在Salesforce网站页面上为当前会话读取/写入一些变量。

我有一个使用Salesforce网站构建的网站,我需要在所有页面上存储/检索一些值(考虑到我正在构建类似于购物车的东西)。但是,我找不到任何有关如何向会话(匿名用户)读写变量的好例子。

我将Visualforce页面与Apex中内置的多个控制器一起使用。

问候

session salesforce force.com visualforce apex-code

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

为什么APEX Schedulable类通过空白实体发送HTML电子邮件?

我有一个APEX课程,用于每天晚上7点发送电子邮件:

global class ReportBroadcaster implements Schedulable {

    global ReportBroadcaster() {
    }

    global void execute(SchedulableContext sc) {
      send();
    }

    global void send() {
      PageReference page = new PageReference('/apex/nameofvfpage');
      page.setRedirect(true);
      Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
      email.setSubject('Example Subject');
      email.setHtmlBody(page.getContent().toString());
      email.setToAddresses(new String[]{'test@test.com'});
      Messaging.sendEmail(new Messaging.SingleEmailMessage[]{email});     
    }
}

当我通过匿名APEX通过ReportBroadcaster实例执行send()方法时,它按预期传递.但是,当我安排课程时,电子邮件将以空白正文发送.如果我将电子邮件正文切​​换为纯文本,它可以正常传送(但这对我不起作用).

我该如何工作?

更新:

你不能从调度的APEX或@future方法调用PageReference实例上的getContent()(我不确定为什么会这样,但它就是这样).我认为解决方案是创建一个我将从@future方法调用的Web服务.看起来令人难以置信的hacky,但我不确定我还能做些什么.

最终更新:这是如何从预定的APEX发送HTML电子邮件:

  • 创建一个实现Schedulable接口的类.
  • 让execute()方法调用@future方法.
  • 让@future方法在发送电子邮件的类中调用启用Web服务的方法.

虽然这种方法很迂回,但它确实有效.

salesforce apex-code

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

如何在APEX中内省变量的类?

我想在运行时知道变量/属性的类.例如:

Integer i = 5;

//pseudo-code
if (i.className == 'Integer') {
    System.debug('This is an integer.');
} else {
    System.debug('This is not an integer, but a ' + i.className);
}
Run Code Online (Sandbox Code Playgroud)

我找不到在文档中返回类类型的方法/属性(假设它在那里).我错过了吗?

dynamic salesforce apex-code

5
推荐指数
2
解决办法
7893
查看次数

预定作业用于首选开始时间的时区

我们有一个预定的工作,每个月1日运行,首选开始时间为凌晨1点.使用Salesforce界面(开发| Apex类| Schedule Apex)安排作业.运行时,它会根据系统日期(System.today();)为记录设置月份字段.偶尔,月份设置错误,我怀疑这是由于日期变量设置为系统日期.

如果我将作业设置为凌晨1点运行,以我的用户身份登录(时区设置为CDT),使用该界面,将返回什么值System.today()?目前的CDT日期会被退回,还是GMT日期?

salesforce apex-code

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

如何解析字符串并在Apex代码中返回枚举值?

我想在我的Apex代码中使用Enum值,因为我们在使用外部服务时有一些严格的类型,但是当我从外部服务获得响应时,我正在努力将Enum值的String表示转换回Enum所以它可以在我的代码中使用.

要在C#中执行此操作,我会这样做:

DayOfWeek wednesday = 
      (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "Wednesday");
Run Code Online (Sandbox Code Playgroud)

但在Apex代码中我找不到办法做到这一点.有人有解决方案吗?

salesforce apex-code

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

无法将组件属性与控制器绑定

我正在尝试开发一个Visualforce自定义组件,该组件从Visual Force页面获取属性。我需要在控制器的构造函数中访问该属性,以便可以从数据库中获取一些记录,并且需要在组件中显示这些记录。但是问题是我没有在Controller中获得属性值。

请参阅下面的代码以清楚地了解问题。

控制器:

public with sharing class AdditionalQuestionController {
    public String CRFType {get;set;}
    public AdditionalQuestionController () {
        system.debug('CRFType : '+CRFType);
        List<AdditoinalQuestion__c> lstAddQues = [Select AddQues__c from AdditoinalQuestion__c wehre CRFType = :CRFType];
        system.debug('lstAddQue : '+lstAddQue);
    }
}
Run Code Online (Sandbox Code Playgroud)

零件 :

<apex:component controller="AdditionalQuestionController" allowDML="true">
    <apex:attribute name="CRFType" description="This is CRF Type."  type="String" required="true" assignTo="{!CRFType}" />
        <apex:repeat value="{!lstAddQue}" var="que">
            {!que}<br />
        </apex:repeat>
</apex:component>
Run Code Online (Sandbox Code Playgroud)

VisualForce页面:

 <apex:page >
    <c:AdditionalQuestionComponent CRFType="STE" />
</apex:page>
Run Code Online (Sandbox Code Playgroud)

谢谢,Vivek

salesforce visualforce apex-code

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

Salesforce:全面避免测试类中的调控器限制

我无法在线获得有关此问题的任何可靠信息.但我认为这一定是一个必须影响很多人的问题.

基本上我在沙盒中编写了一个简单的触发器和测试类,测试了它,当它很好的时候我将它部署到了PRD.

我首先尝试了验证模式,但是我遇到了这个错误.

System.LimitException:SOQL查询太多:101

显示此错误发生在其他一些测试类中.所以我觉得我的触发器中的测试用例运行了,再加上剩下的测试用例不知何故超出限制.

因此,我们的单元测试中的SOQL查询总数必须小于100.这有点难以正确吗?我可以想象有这么多测试用例,我们肯定需要超过100个查询.

那么有什么方法可以避免达到这个限制,因为Salesforce在部署一行代码时会运行所有测试用例.

我没有任何常见的嫌疑人......就像for循环中的SOQL一样.

更新:2012年8月19日:我现在发布测试类和触发器的源代码

测试类:

@isTest
Run Code Online (Sandbox Code Playgroud)

private class TestAccountDuplicateWebsiteTrigger {

static testMethod void myUnitTest() {
    try{
    // TO DO: implement unit test
    Test.startTest();
    Account a1;      
    a1 = new Account();
    a1.name = 'GMSTest';    
    a1.Website = 'www.test.com';            



    Account a2;      
    a2 = new Account();
    a2.name = 'GMSTest2';   
    a2.Website = 'www.test.com';            


    Account a3;      
    a3 = new Account();
    a3.name = 'GMSTest3';   
    a3.Website = 'www.test1.com';           


    insert a1;
    insert a2;
    //insert a3;
    Test.stopTest(); 


    }
    catch (Exception e)
    {
    }

}
Run Code Online (Sandbox Code Playgroud)

}

触发 …

salesforce force.com apex-code

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

如何检查site.com上的项目预览

您好我在site.com中遇到问题查找页面预览.Site.com提供构建网站和销售人员以及云相关操作的平台.

我的客户给了我关于project..project的要求,我们已经在那里修改了项目网站的内容.我无法找到页面.

测试用户(我的帐户) - 在此图像中,您可以看到site.com选项

在此输入图像描述

客户帐户 - 但这里没有site.com选项 在此输入图像描述

我是销售人员和site.com的新手,我做了研发,但都无法搞清楚.请帮我!!

salesforce apex-code

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

在salesforce中搜索全局变量$ Label的实例

我在gobal页脚组件中的代码 -

   <div id="copyright">
            &copy; {!$Label.copyright}
          </div>
Run Code Online (Sandbox Code Playgroud)

它显示在页面中"© Copyright 2012 "

我是Salesforce的新手.我只是想修改文本

"© Copyright 2013 "
Run Code Online (Sandbox Code Playgroud)

取代2012年我想用2013 ...

我试过了什么?

  1. 检查自定义标签
  2. $Label 是全球变量搜索版权...

如果我错过了一些基本的部分来检查,请帮助我!

谢谢!!

global-variables salesforce visualforce apex-code

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

带有自定义sObject的Test.loadData引发异常

我正在通过Static Resourced加载CSV文件来测试我的APEX代码.我在测试中使用以下代码:

List<Territory_Zip_Code__c> territoryData = Test.loadData(Territory_Zip_Code__c.sObjectType, TERRITORY_ZIP_CODES_STATIC_RESOURCE_NAME);
Run Code Online (Sandbox Code Playgroud)

CSV文件的前几行如下所示:

Territory__c,Zip_Code__c
ABC,123
DEF,456
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

System.StringException:未知字段:Territory__c

Territory__c 我的自定义sObject 的有效API字段名称.

我也尝试在字段名称前添加sObject名称,My_Territory__c.Territory__c但是也没有用.

另外,我尝试使用字段名称而不是API名称(例如Territory),但这也不起作用.

有许多使用Test.loadData和内置sObjects的示例,例如Account和Contacts,但没有显示自定义sObject的示例.我开始认为这对于自定义对象是不可能的.

csv salesforce apex-code apex

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