Salesforce Test.getStandardPricebookIdを使用して標準価格表のIDを取得する

環境
Salesforce

概要
public static Id getStandardPricebookId()
このメソッドでは、テストで組織データを照会できるかどうかに関係なく、
組織内の標準価格表の ID を返します。
型: Id 標準価格表の ID
標準価格で価格表エントリを作成するには、標準価格表の ID が必要です。
このメソッドを使用して標準価格表 ID を取得すれば、テストで価格表エントリを作成できます。

サンプルコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@IsTest
private static void oppTesttWithoutAllData() {
// 取引先の作成
Account acc = new Account(Name = 'cft');
insert acc;
// 商談の作成
Opportunity opp = new Opportunity(Name = 'demo', AccountId = acc.Id);
opp.CloseDate = Date.today().addDays(10);
opp.StageName = 'Prospecting ';
insert opp;
// 商品の作成
Product2 pro = new Product2(Name = 'items');
insert pro;
// 価格表エントリの作成
PriceBookEntry pbes = new PriceBookEntry();
pbes.Pricebook2Id = Test.getStandardPricebookId();
pbes.Product2Id = pro.Id;
pbes.UnitPrice = 1000;
insert pbes;
// 商談商品の作成
OpportunityLineItem ol = new OpportunityLineItem();
ol.OpportunityId = opp.Id;
ol.PricebookEntryId = pbes.Id;
Test.startTest();
OpportunityUtil.OpportunityLineItemSum(opp.Id);
Test.stopTest();
}
@IsTest private static void oppTesttWithoutAllData() { // 取引先の作成 Account acc = new Account(Name = 'cft'); insert acc; // 商談の作成 Opportunity opp = new Opportunity(Name = 'demo', AccountId = acc.Id); opp.CloseDate = Date.today().addDays(10); opp.StageName = 'Prospecting '; insert opp; // 商品の作成 Product2 pro = new Product2(Name = 'items'); insert pro; // 価格表エントリの作成 PriceBookEntry pbes = new PriceBookEntry(); pbes.Pricebook2Id = Test.getStandardPricebookId(); pbes.Product2Id = pro.Id; pbes.UnitPrice = 1000; insert pbes; // 商談商品の作成 OpportunityLineItem ol = new OpportunityLineItem(); ol.OpportunityId = opp.Id; ol.PricebookEntryId = pbes.Id; Test.startTest(); OpportunityUtil.OpportunityLineItemSum(opp.Id); Test.stopTest(); }
@IsTest
   private static void oppTesttWithoutAllData() {
       // 取引先の作成
       Account acc = new Account(Name = 'cft');
       insert acc;
       
       // 商談の作成
       Opportunity opp = new Opportunity(Name = 'demo', AccountId = acc.Id);
       opp.CloseDate = Date.today().addDays(10);
       opp.StageName = 'Prospecting ';
       insert opp;
       
       // 商品の作成
       Product2 pro = new Product2(Name = 'items');
       insert pro;
       
       // 価格表エントリの作成
       PriceBookEntry pbes = new PriceBookEntry();
       pbes.Pricebook2Id = Test.getStandardPricebookId();
       pbes.Product2Id  = pro.Id;
       pbes.UnitPrice  = 1000;
       insert pbes;
       
       // 商談商品の作成
       OpportunityLineItem ol = new OpportunityLineItem();
       ol.OpportunityId = opp.Id;
       ol.PricebookEntryId = pbes.Id;
       
       Test.startTest();
       OpportunityUtil.OpportunityLineItemSum(opp.Id);
       Test.stopTest();
   }

 

IT

Posted by arkgame