小编Ben*_*lap的帖子

在Apex v24.0中对OpportunityLineItem进行单元测试时,如何避免使用STANDARD_PRICE_NOT_DEFINED?

显然,Salesforce.com中Apex的Spring '12/v24.0版本的新功能是单元测试不再能够访问"真实"数据 - 因此(如果我正确理解了更改)SOQL查询将会现在只检索在单元测试过程中插入的对象 - 甚至是受到一些限制的.

无论如何,这似乎将OpportunityLineItem测试抛出窗口,因为:

  • 没有PriceBookEntryId就插入OpportunityLineItem是不可能的
  • 您不能为产品X插入新的价目表条目,除非您已经有产品X的标准价格手册条目,但是
  • 测试数据中没有标准价格手册,因为与所有表一样,Pricebook2表在单元测试运行开始时实际上是空的,AND
  • 没有办法在Apex中创建标准价格手册

我真的希望我至少得到这四点中的一个错误,但到目前为止,我现有的单元测试没有任何变化表明它们中的任何一个都是错的.这当然意味着我的单元测试不再有效.这件事发生在一夜之间 - 周五我的沙盒中的测试运行良好,现在他们失败了.

我错过了什么,或者这是新SFDC版本中的错误?

salesforce force.com apex-code

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

填充PHP数组:首先检查索引?

如果我深陷在一个循环的巢中,我想知道哪些更有效:

if (!isset($array[$key])) $array[$key] = $val;
Run Code Online (Sandbox Code Playgroud)

要么

$array[$key] = $val;
Run Code Online (Sandbox Code Playgroud)

就可读代码而言,第二种形式更为可取.实际上,名称更长,数组是多维的.因此,第一个表单最终在我的程序中看起来非常粗糙.

但我想知道第二种形式是否会变慢.由于代码是程序中最常执行的函数之一,我想使用更快的形式.

一般来说,此代码将使用相同的"$ key"值执行多次.所以在大多数情况下,$ array [$ key]已经设置好了,而isset()将返回FALSE.

为了澄清那些担心我将不相同的代码视为相同的人:就程序的这一部分而言,$ val是一个常数.直到运行时才知道它,但它在程序的早期设置,并且在此处不会更改.因此两种形式都会产生相同的结果.这是获得$ val最方便的地方.

php optimization readability

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

一个SQL查询,或循环中的许多查询?

我需要从表中提取几行并以两种方式处理它们:

  • 聚合在一个密钥上
  • 逐行排序,按相同的键排序

该表看起来大致如下:

table (
   key,
   string_data,
   numeric_data
)
Run Code Online (Sandbox Code Playgroud)

所以我正在研究我正在写的函数的两种方法.

第一个是使用一个查询拉取聚合数据,然后在循环内再次查询每组逐行数据(以下是类似PHP的伪代码):

$rows = query(
        "SELECT key,SUM(numeric_data)
         FROM table
         GROUP BY key"
    );

foreach ($rows as $row) {
    <process aggregate data in $row>

    $key = $row['key'];
    $row_by_row_data = handle_individual_rows($key);
}

function handle_individual_rows($key)
{
    $rows = query(
            "SELECT string_data
             FROM table WHERE key=?",
            $key
        );

    <process $rows one row at a time>

    return $processed_data;
}
Run Code Online (Sandbox Code Playgroud)

或者,我可以做一个大的查询,并让代码完成所有工作:

$rows = query(
    "SELECT key, string_data, numeric_data
     FROM table"
);

foreach ($rows as $row) { …
Run Code Online (Sandbox Code Playgroud)

php sql design-patterns

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