标签: apex-code

我们如何安排在salesforce中每15分钟运行一次课程?

我想安排一节课每15分钟跑一次.我知道我们可以每小时设置一次salesforce,但有没有办法将粒度减少到10-15分钟?

global class scheduledMerge implements Schedulable {
  global void execute(SchedulableContext SC) {
      ProcessTransactionLog p= new ProcessTransactionLog();
      p.ProcessTransaction();
   }
}
Run Code Online (Sandbox Code Playgroud)

salesforce apex-code

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

解析Salesforce Apex中的JSON对象

如何解析Apex中给定格式的jsonObject?

我需要来自items数组的List <String>,其中包含id属性.什么是合适的方法?

为了解析它,我尝试用代码创建一个类:

public class JSON2Apex {

    public class Items {
        public String kind;
        public String etag;
        public String id;
        public String status;
        public String htmlLink;
        public String created;
        public String updated;
        public String summary;
        public String description;
        public String location;
        public Creator creator;
        public Creator organizer;
        public Start start;
        public Start end;
        public String iCalUID;
        public Integer sequence;
        public Reminders reminders;
    }

    public class Reminders {
        public Boolean useDefault;
    }

    public class Start {
        public String dateTime;
    } …
Run Code Online (Sandbox Code Playgroud)

salesforce visualforce apex-code

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

SOQL查询WHERE日期= 30_days_ago?

如何制作这样的SOQL查询?

SELECT id FROM Account WHERE LastActivityDate = 30_DAYS_AGO
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

MALFORMED_QUERY: 
Account WHERE LastActivityDate = 30_DAYS_AGO
                      ^
Run Code Online (Sandbox Code Playgroud)

salesforce soql apex-code

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

salesforce Apex是否支持静态方法的继承?

public virtual class parent {
    public static void doStuff(){system.debug('stuff');} 
}

public class child extends parent{}
Run Code Online (Sandbox Code Playgroud)

我打电话的时候

child.doStuff();
Run Code Online (Sandbox Code Playgroud)

我收到此错误:方法不存在或签名不正确:child.doStuff()

是不是在salesforce中继承了静态方法,还是我做错了什么?

inheritance static salesforce apex-code

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

文本区域上的换行符

我有一个名为Current_Address__c的自定义字段,其数据类型为textarea.

我需要以下面的格式填充此字段.即街道后面的换行符和拉链后的另一个换行符.

街道城市州拉链国家

城市州拉链国家等的价值取自联系对象.我不想将它用作公式字段.所以我需要在我的控制器中填充它并将其显示在我的VF页面上.

我试图通过使用下面的代码添加换行符char

this.customobj.Current_Address__c = currentStreet + '\\n ' + currentCity + ' ' + currentState  + ' ' + currentZIP  + '\\n ' + currentCountry ;
Run Code Online (Sandbox Code Playgroud)

我也使用\n而不是\n.

它仍然显示一行中的字段而不是3行

编辑

我使用以下代码完成了这项工作.我会接受mathews的答案,因为它适用于outputfield.

                currentAddress = currentStreet;
            currentAddress += '\r\n';
            currentAddress += currentCity + + ' ' + currentState  + ' ' + currentZIP ;
            currentAddress += '\r\n';
            currentAddress += currentCountry;
Run Code Online (Sandbox Code Playgroud)

仅当您使用+ =时才有效.不知道为什么会这样

salesforce visualforce apex-code

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

CSRF安全自定义按钮链接到Apex方法

我正在寻找一种技术,以保护用户免受CSRF的方式从添加到Opportunity对象的自定义按钮执行Apex代码.

当前使用的方法来自问题 - 自定义按钮或链接到带有自定义控制器的Visualforce页面.实质上:

  1. 有一个机会自定义按钮,内容源设置为"Visualforce页面".
  2. 此按钮的内容设置为Visualforce页面,该页面使用Opportunity for standardController,输入了扩展名apex类,并为该类中的方法执行操作
  3. action方法将PageReference返回到另一个自定义Visualforce页面,包括添加带有Opportunity Id的参数.
  4. 第二个自定义Visualforce页面执行大部分实际工作,包括制作Web服务标注和执行DML操作,然后再将用户重定向到Opportunity.

这种方法的问题是第二个自定义Visualforce页面是通过HTTP GET检索的,从查询字符串中提取参数,并执行更新/插入DML操作而没有CSRF保护.这是由Force.com安全源代码扫描程序提取的.

我应该补充一点,这个顶点代码被部署为托管和非托管包,因此使用PageReference重定向到目标Visualforce页面的额外工作.这可确保在需要时添加名称空间前缀.

如何避免CSRF问题?

我不想在第二个visualforce页面上添加一个表单,只需按一下按钮即可启动该进程(从而在回发中获取ViewStateCSRF保护).从用户的角度来看,他们已经按下按钮来执行操作.

我之前在开发人员论坛上问过这个问题并没有提出解决方案 - 跨站点请求伪造(CSRF/XSRF)安全自定义按钮操作

也许我应该尝试将代码从控制器中移出第二个可视化力页并使用扩展到支架控制器?

我可以切换到Apex Web服务的Javascript回调(如从自定义按钮调用apex方法如何从自定义按钮调用APEX方法中的建议),但它看起来有点乱,我不确定我是不是只是打开Web服务的另一系列安全问题.

salesforce csrf visualforce apex-code

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

SalesForce OAuth响应中没有refresh_token

我正在与自定义APEX服务交互,显然需要OAuth身份验证.我可以轻松验证和授权我的应用程序.一切正常.

但是,我收到的访问令牌往往会过期.

当然,我可以通过发送refresh_token来刷新它.听起来不错.

问题是我没有在SalesForce的响应中收到refresh_token.

我发送请求到[instance] .salesforce.com/services/oauth2/token,我也尝试使用login.salesforce.com/services/oauth2/token,但我在响应中找不到'refresh_token'.那里除了那里有一切!..

oauth salesforce force.com apex-code

7
推荐指数
2
解决办法
3888
查看次数

为什么"||".split("\\ |").长度返回0而不是3?

当分割表达式中有相邻的分隔符时,我期望null或空字符串 - 没有消除它.

Java代码如下:

public class splitter {
    public static void main(String args[]) {
        int size = "||".split("\\|").length;
        assert size == 3 : "size should be 3 and not " + size;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望得到{"","",""}或{null,null,null}.要么没事.

也许有一个不会被空话愚弄的正则表达式?

java regex split apex-code

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

记录Salesforce.com Apex类文件

由于Salesforce.com Apex语言是"类Java",我想使用javadoc或Doxygen为我们计划在App Exchange上发布的软件包生成API文档.

我在Google Code上找到了一个ApexDoc项目,但它受到严格限制,并使用一个天真的解析器来生成HTML输出.我宁愿利用现有的Doxygen解析器和输出生成器,而不是尝试从头开始重新发明该轮.

所以,我的问题:

1)有没有人能够使用javadoc或Doxygen为他们的Apex类生成API文档?你怎么能这样做的?

2)我想知道编写一个简单的脚本从.cls Apex类文件创建一系列.java文件,添加假import语句以及可能修改某些声明以保持Doxygen满意是多么困难.关于Doxygen(或javadoc)在尝试解析Apex .cls文件时窒息的想法?

令我惊讶的是Salesforce没有提供这样的工具,或者没有为javadoc/Doxygen提供Apex解析器.他们的文档和开发人员工具非常广泛,他们有一个很棒的自动化测试设置.我没有从他们那里找到任何自动生成类的东西.

编辑:请在Salesforce Stack Exchange上查看此问题更新版本.

javadoc doxygen apex-code

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

更新后触发审批请求OriginalActorId

下面的触发器用于OriginalActorId从批准过程列表中提取最近的"分配给"用户(或),该Approval_started__c字段被检查为来自特定批准过程的初始提交操作.

我遇到的问题是下面的system.debug语句没有显示最近一次挂起的审批请求中分配给​​用户的最新信息,但显示了在用户点击提交审批之前分配给用户的最新请求,因此它跳过了"审批请求提交步骤"用户点击提交以进行审批时所执行的步骤以及初始提交操作挂起步骤(用户选择审批者)正在等待审批/拒绝并返回之前的旧请求2.

我的目标是将最新的待处理请求"分配给"用户或OriginalActorId值.

有什么想法吗 ?谢谢.

以下是审批流程列表的屏幕截图,黑色表示我在调试日志行中使用此触发器获取的值,蓝色表示预期值.

审批流程列表

trigger Assigned2testTrigger on LLC_BI__Product_Package__c(after update) {

    list < LLC_BI__Product_Package__c > listpp = new list < LLC_BI__Product_Package__c > ();
    for (LLC_BI__Product_Package__c pp: trigger.new) {
        If(!checkRecursive.SetOfIDs.contains(pp.Id)) {


            if (pp.Approval_started__c == true) {


            system.debug('---------> My ProcessInstance           ' + string.valueof([Select Id, (Select TargetObjectId, SystemModstamp, StepStatus, RemindersSent, ProcessInstanceId, OriginalActorId, IsPending, IsDeleted, Id, CreatedDate, CreatedById, Comments, ActorId From ProcessSteps order by SystemModstamp desc) from LLC_BI__Product_Package__c where Id =: pp.id].ProcessSteps[0].OriginalActorId));
            }
            checkRecursive.SetOfIDs.add(pp.Id);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

triggers salesforce soql apex-code apex

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