2016-04-19 4 views
0

У меня есть поле формулы «Asset MRR», определенное для объекта Asset.
Значение этого поля определяется всегда равен 100: enter image description hereSalesforce Formula Field всегда равно нулю в коде Apex

Но когда я пытаюсь получить доступ к «Asset MRR» поле в Apex, asset.Asset_MRR__c равен null по некоторым причинам:

static testMethod void assetTriggerTest2() { 
     Account account = new Account(Name='SFDC Account'); 
     insert account; 

     Asset asset = new Asset(Name='asset name', AccountId = account.Id); 
     insert asset; 

     // System.AssertException: Assertion Failed: Expected: null, Actual: 100 
     System.assertEquals(asset.Asset_MRR__c, 100); 
    } 

В то время как в Salesforce интерфейс значение asset.Asset_MRR__c 100, как это должно быть: enter image description here

Почему asset.Asset_MRR__cnull в Apex? Почему нет 100?

ответ

2

Вам необходимо повторно запросить запись и включить поле.

Asset asset = [Выбрать идентификатор, имя, Asset_MMR__c из Asset, где id =: asset.id limit 1] [0];

System.assertEquals (asset.Asset_MRR__c, 100);

+0

Спасибо, это сработало! – Sergey

Смежные вопросы