You need to sign in to do that
Don't have an account?
Olga Kim 5
populate a field with parent object data
I need to create a record on a BILLING object every time when a bill checked the box on another TEST object is checked.
My problem is that there is a required field on the BILLING record called rate__c.
The rate__c field has to be populated by a field from PROJECT which is a parent object of TEST. (There is a lookup relationship between TEST and PROJECT. And lookup relationship between PROJECT and BILLING)
I wrote a code that works only when I prepopulated a rate__c field on the BILLING record.
I also wrote a code that retrieves a rate field from project object, but for some reason, I get an error message that required field - rate__c is missing.
Please, help me to resolve this issue
public class testBillingLineCreate {
public static void createBillingLine (list<TEST__c> TestList, map<id, TEST__c> oldMap)
{
list<AcctSeed__Billing_Line__c> billingLineList=new List<AcctSeed__Billing_Line__c>();
for(TEST__c objtest:TestList)
{
if(objtest.Billed__c==true && oldMap.get(objtest.Id).Billed__c==false)
{
AcctSeed__Billing_Line__c bill=new AcctSeed__Billing_Line__c();
bill.AcctSeed__Billing__c=objtest.Billing__c;
bill.AcctSeed__Project__c=objtest.Project__c;
bill.AcctSeed__Hours_Units__c=objtest.time__c;
bill.AcctSeed__Rate__c= objtest.Project__r.Billing_Rate__c;
billingLineList.add(bill);
}
}
insert billingLineList;
}
}
My problem is that there is a required field on the BILLING record called rate__c.
The rate__c field has to be populated by a field from PROJECT which is a parent object of TEST. (There is a lookup relationship between TEST and PROJECT. And lookup relationship between PROJECT and BILLING)
I wrote a code that works only when I prepopulated a rate__c field on the BILLING record.
I also wrote a code that retrieves a rate field from project object, but for some reason, I get an error message that required field - rate__c is missing.
Please, help me to resolve this issue
public class testBillingLineCreate {
public static void createBillingLine (list<TEST__c> TestList, map<id, TEST__c> oldMap)
{
list<AcctSeed__Billing_Line__c> billingLineList=new List<AcctSeed__Billing_Line__c>();
for(TEST__c objtest:TestList)
{
if(objtest.Billed__c==true && oldMap.get(objtest.Id).Billed__c==false)
{
AcctSeed__Billing_Line__c bill=new AcctSeed__Billing_Line__c();
bill.AcctSeed__Billing__c=objtest.Billing__c;
bill.AcctSeed__Project__c=objtest.Project__c;
bill.AcctSeed__Hours_Units__c=objtest.time__c;
bill.AcctSeed__Rate__c= objtest.Project__r.Billing_Rate__c;
billingLineList.add(bill);
}
}
insert billingLineList;
}
}
I found the below developer forum thread that has a similar requirement can you please have a look at it once:
>> https://success.salesforce.com/answers?id=9063A000000ibeiQAA
Another way I could think of is you could have a trigger such that you can store the field value according to the value selected in the lookup field.
In case if this comes handy can you please choose this answer as the best answer so that it can be used by others in the future.
Regards,
Anutej
All Answers
I found the below developer forum thread that has a similar requirement can you please have a look at it once:
>> https://success.salesforce.com/answers?id=9063A000000ibeiQAA
Another way I could think of is you could have a trigger such that you can store the field value according to the value selected in the lookup field.
In case if this comes handy can you please choose this answer as the best answer so that it can be used by others in the future.
Regards,
Anutej