标签: apex-code

在Salesforce中创建Apex测试方法"未定义构造函数"

我编写了一个在用户按下按钮时执行的顶点类.它将当前数据保存到日志中,检查它们当前所在的页面并重新加载它(因此它们显示为记录器的空白实例).我目前正在尝试为此类编写测试方法并收到此错误:"编译错误:未定义构造函数:[Logger_Extend].()在第45行第38列"(第45行是这一行"Logger_Extend controller = new Logger_Extend ();").

这是相关的代码.对于我做错了什么,有没有人有任何想法?

public class Logger_Extend {

private final RCA_Logger__c Log;

public Logger_Extend (ApexPages.StandardController
                            stdController) {
   Log = (RCA_Logger__c)stdController.getRecord();
}

 public PageReference XX() {

// Add the account to the database.   
insert Log; 

// Send the user back to current page.  

  PageReference pageRef = ApexPages.currentPage();
  pageRef.setRedirect(true);
  return pageRef;
}

static testMethod void myTest() {

      Logger_Extend controller = new Logger_Extend();
      PageReference pageRef = ApexPages.currentPage();
      System.assert(controller.XX() == pageRef);

   }
Run Code Online (Sandbox Code Playgroud)

}

java salesforce apex-code

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

我可以在salesforce中拥有包含多种数据类型的列表

我有一个字符串List time1的值(00:00 AM,00:30 AM,01:00 AM,01:30 AM ...........所以一直到晚上11:30)

我还有一个自定义对象预约_c的列表appList.

此列表仅包含设定约会的记录

即如果预约设定为上午8点至上午8点30分和上午10点至上午11点,则只能保留这2条记录

我需要创建一个网格或表来显示从凌晨00:00到晚上11:30的当天约会.

我需要读通在该时间点的每一行,并检查是否有相应匹配的APPLIST那个时候,如果发现的话,我需要显示从APPLIST细节否则它应该显示对时间自由.我还需要将它存储在列表中,以便我可以在VF页面中使用它.我该怎么定义这个清单?我可以将列表存储在一列中,并在其他列中包含约会对象列表

有没有更好的方法来接近这个?

salesforce visualforce apex-code

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

有没有办法按值列表过滤Salesforce报表?

好的,所以我想要一份报告,不要求最终用户了解编写和自定义报告或记忆字段值的所有信息.我最终希望用户能够在我创建的顶点页面上使用一组预先填充的基于SelectList的过滤器来过滤他们的报告.

到目前为止,我只能为每个字段过滤一个值:

  1. 创建帐户报告
  2. 为BillingState Equals添加过滤器空白(这是过滤器#1或索引0)
  3. 使用SelectList创建一个页面,并使用Controller使用状态列表填充它
  4. 在页面上创建一个CommandButton并使用PageReference对象重定向到报表
  5. 在报告的URL末尾,添加pv0(索引0的参数值)= [选定状态]

所以这一切都很好 - 而不是让用户记住有效的字段值并混淆报告过滤器,他们可以指向和点击东西 - 这么简单的销售人员可以做到这一点.

但现在我想按状态列表(或其他一些文本字段)进行过滤.我可以轻松地获得具有SelectList的multiselect属性的String []状态列表,但我不知道如何将其应用于报表.在SQL意义上,我想在报告查询中添加"State = x OR State = y OR State = Z"或"State IN(x,y,z)"where condition.


我怎么能这样做 - 通过一个字段的有效值列表过滤报表,并从控制器可编程地执行它?

  • 是否有一些方法可以即时编程创建临时报告?克隆"模板"报告,然后根据需要添加OR过滤器?

  • 有没有办法将一组对象传递给报表?有些报告会返回很多结果,所以这看起来很危险.

  • 在执行PageReference重定向时,Redirect属性指出当它为false时,所有状态信息都会保留,但目标页面必须具有相同的控制器 - 是否有办法使用带报告的控制器来自定义其逻辑?

reporting salesforce filter apex-code

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

从Salesforce传递数据的设计思路

在salesforce中,我们设想有人点击帐户对象记录上的引用按钮,并将多个字段信息传递给两个系统中的一个.一个系统是一个Web应用程序.另一个是Windows应用程序.我以为这是对系统的JavaScript调用,但我不确定.我有哪些潜在的选择?你们会怎么做呢?

谢谢,对不起,它是如此广泛.

ajax winapi salesforce apex-code

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

Java加密和Force.com顶点加密

我需要在force.com apex中转换这个java代码.我试图使用Crypto类来获得相同的加密,但没有得到如何在APEX的最后一个变量"fingerprintHash"得到相同的值.任何人都可以帮我解决这个技术问题吗?

Random generator = new Random();
sequence =Long.parseLong(sequence+""+generator.nextInt(1000));

timeStamp = System.currentTimeMillis() / 1000;

try {
    SecretKey key = new SecretKeySpec(transactionKey.getBytes(), "HmacMD5"); 
    Mac mac = Mac.getInstance("HmacMD5");
    mac.init(key);

    String inputstring = loginID + "^" + sequence + "^" + timeStamp + "^" + amount + "^";
    byte[] result = mac.doFinal(inputstring.getBytes());

    StringBuffer strbuf = new StringBuffer(result.length * 2);

    for (int i = 0; i < result.length; i++) {
        if (((int) result[i] & 0xff) < 0x10) {
            strbuf.append("0");
        }

        strbuf.append(Long.toString((int) result[i] & 0xff, …
Run Code Online (Sandbox Code Playgroud)

java salesforce force.com apex-code

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

新记录的顶点触发器会创建数字

Log.add(new Cx_Trans_Log__c(
               Object__c = 'Activity',
               Object_Id__c = newActivity.Name,
               Owner2_Id__c = newActivity.Owner1_Id__c,
Run Code Online (Sandbox Code Playgroud)

我在salesforce.com中更改活动时使用上面的代码创建新的日志记录.从newActivity.Owner1_Id__c创建的Owner2_Id__c没有给出Owner1_Id__c的名称(这是查找(用户)字段).有没有办法获取Owner1中显示的用户名到Owner2?

salesforce apex-code

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

如何在Salesforce中解析CSV

我有一个CSV,其中包含需要转到多个Salesforce自定义对象的字段.我已经创建了APEX类来处理解析.但是,当我从VisualForce页面调用该类时,我收到消息:

Collection size 3,511 exceeds maximum size of 1,000.
Run Code Online (Sandbox Code Playgroud)

我的APEX课程如下(从关于该主题的2篇博文中拼凑而成):

public class parseCSV{  
public Blob contentFile { get; set; }    
public String nameFile { get; set; }    
public Integer rowCount { get; set; }    
public Integer colCount { get; set; }    
public List<List<String>> getResults() {        
 List<List<String>> parsedCSV = new List<List<String>>();        
 rowCount = 0;        
 colCount = 0;        
 if (contentFile != null){            
 String fileString = contentFile.toString();            
 parsedCSV = parseCSV(fileString, false);            
 rowCount = parsedCSV.size();            
 for (List<String> row : parsedCSV){                
 if (row.size() > colCount){ …
Run Code Online (Sandbox Code Playgroud)

salesforce apex-code

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

Salesforce:使用SOQL强制执行安全性并限制记录访问权限是一个好主意吗?

这更像是一个最佳实践问题.我们的组织目前对我们的自定义对象的组织默认值具有"公共读取"权限.我们不能把这个私有化,因为它现在为内部员工工作的方式,或者我们试图避免这种情况.

我还创建了一个带有自定义可视化强制页面的客户门户...我使用SOQL查询显示数据.

在SOQL查询上添加一个子句以仅返回帐户ID与登录用户的帐户ID匹配的记录是一个好主意吗?

我做到了,它工作得很好......但是我忽略了这种方法的任何陷阱吗?

谢谢你,凯文

salesforce visualforce apex-code

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

你能用soql填充一个集合吗?

你可以从soql查询中填充一个集合吗?我无法让我的语法工作

设置c = [选择id来自接触限制1000];

谢谢!

soql apex-code

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

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-code ×10

salesforce ×9

java ×2

soql ×2

visualforce ×2

ajax ×1

filter ×1

force.com ×1

reporting ×1

winapi ×1