标签: apex-code

如何在salesforce.com中为"Notes和Attachments"添加触发器?

我无法在salesforce.com UI中找到可以在文件附件上添加触发器的位置.我几乎可以在其他所有东西上找到触发器,但是列表中似乎缺少附件(即使我在页面上查看源代码并进行搜索.有人知道我可以在哪里放置此触发器吗?

salesforce apex-code

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

如何在运行测试类时停止执行托管触发器?

通常,当触发器运行时,我们检查用户具有哪种类型的配置文件,如果它是我们不希望触发器运行的类型,那么我们在运行任何其他代码之前退出触发器.

问题:我们安装了从其他公司购买的SF软件包,其所有代码对我们来说都是不可见的,并且不可编辑.除了通过UI手动禁用它们之外,我们如何阻止其中一些触发器运行?我想在运行测试类时暂时禁用它们.

正在考虑做这样的事情,但得到了一个错误,说"ApexTrigger上不允许使用DML".

ApexTrigger at = [select id from ApexTrigger where name='SomeTriggerName'];
at.status = 'Inactive';
update at;
Run Code Online (Sandbox Code Playgroud)

triggers salesforce dml apex-code

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

为什么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
查看次数

"相关内容"存储在哪个对象/如何从Apex创建"相关内容"记录中

如果您导航到帐户/联系人/自定义对象,我们会有相关列表"相关内容"(如果启用了内容并且相关列表已添加到页面布局).

我的问题是存储了这些"相关内容"记录吗?在哪个对象?

使用apex我能够将文件上传到内容版本,但无法创建或找到存储"相关内容"信息的对象.

UPDATE

试图创建一个链接显示在帐户的"相关内容"部分,但没有成功.收到错误"插入失败.第0行出现第一个异常;第一个错误:FIELD_INTEGRITY_EXCEPTION,您无法通过api创建此类实体的链接:[LinkedEntityId]"

任何的想法?

           ContentVersion cv = new ContentVersion(
            versionData = EncodingUtil.Base64Decode(base64BlobValue),
            Title = fileName,
            PathOnClient = '/'+fileName,
            FirstPublishLocationId = '058900000009KcL'
        );
        insert cv;

        //fetch ContentDocumentId
        cv = [Select Id,ContentDocumentId from ContentVersion where Id = :cv.Id];

        insert new ContentDocumentLink(LinkedEntityId=parentId,ContentDocumentId=cv.ContentDocumentId,ShareType='V');
Run Code Online (Sandbox Code Playgroud)

**使用案例**

用例是允许用户直接从对象详细信息页面附加内容,例如说帐户将有按钮说"附加内容",这将带上传内容页面,一旦上传(我将创建内容版本记录 - 这种情况发生得很好,没有错误)然后我需要将上传的内容与帐户(来自哪个请求)相关联,即创建"相关内容"记录(这里我遇到困难,尝试创建contentdocumentlink记录,但它的错误输出).

用例只需一次点击就可以将内容附加到帐户或机会,而不是用户转到内容的长时间当前流程,首先在那里上传,然后返回到帐户/ opty并再次搜索内容,然后将其附加到帐户/联系人.

salesforce apex-code

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

Http*方法的类型无效:apex中的system.RestRequest

嗨,我正在尝试创建一个顶点休息服务,但得到错误Http*方法的无效类型:system.RestRequest

这是我收到此错误的函数.

  @RestResource(urlMapping='/v.9/scorecard/*') 
global with sharing class ScorecardRestSvc {

  /**
  * @date July 26, 2011
  * @description Update a question answer. 
  * @return Map<String,String> - results and boolean success message
  */

  @HttpPost
  global Static Map<String,String> doPut(RestRequest req, RestResponse res) {

    String answerId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
    string updateResult = 'Waiting to run';
    Map<String,String> returnMap = new Map<String,String>();
    returnMap.put('Success','True');

    // mark the participant as having no submission
      if(req.params.containsKey('deleteSubmission') && req.params.get('deleteSubmission').toLowerCase() == 'true') {
      markParticipantAsNoSubmission(req,res);
        returnMap.put('Message','Participant marked as no submission.');
        return returnMap;    
      } 

    try …
Run Code Online (Sandbox Code Playgroud)

salesforce apex-code

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

Salesforce Apex:ISO时间戳格式功能

我想知道是否有一个顶点日期或日期时间函数来格式化日期/时间到ISO格式的时间戳"2007-04-05T12:30-02:00"或者这是否必须通过其他方式创建?

谢谢.

salesforce apex-code

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

如何在VisualForce中创建并行记录比较

该公司最近发现需要在Visualforce/Apex中创建并排记录.我们通常需要将潜在客户合并到联系人中.以前这是在S-Controls处理的; 然而,最近的举措和希望在未来支持我们的代码,这促使我们将许多S-Controls转移到Visualforce页面和Apex代码中.

我们希望实现这样的目标: 在此输入图像描述

我用apex:pageBlockTable标签做了一些尝试(运气不大); 但是,我不确定如何在需要单个SObject时获取两组数据.

我必须使用的所有先前代码都是使用JavaScript在S-Controls中完成的; 虽然这段代码现在可以正常工作 - 我们需要将它移植到VisualForce页面.显然我可以使用HTML表格等手动编写它,但我相信这会破坏使用Salesforce库存功能的目的.

我肯定对替代方法持开放态度 - 正如我所概述的那样,但需要几乎痛苦的编码才能使其可行(特别是在将来更新/删除/添加字段时).

javascript salesforce visualforce apex-code

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

在<apex:column>中的2行中显示列标题

我想在2行中显示apex:列标题.我的标题为"分布式总计"的列我希望以2行显示

<apex:column headerValue="Distributed Total$">
  <apex:outputText value="${0, number, ###,##0.00}">
  <apex:param value="{!item.Dtotal}"/>
</apex:outputText>
</apex:column> 
Run Code Online (Sandbox Code Playgroud)

知道如何实现这一目标

谢谢

普拉迪普

salesforce visualforce apex-code

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

如何使用REST Api从salesforce中的字段中获取所有选项列表值?

我试图使用REST API从salesforce中的字段中获取所有选项列表值.有可能吗?如果它是如何做到的?

谢谢,

拉吉.

jquery salesforce visualforce apex-code

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

标签 统计

apex-code ×10

salesforce ×10

visualforce ×3

dml ×1

dynamic ×1

javascript ×1

jquery ×1

triggers ×1