You need to sign in to do that
Don't have an account?
Alex Merwin
Populate custom field on OpportunityLineItem with an array of Custom Field values on the same object
Hi everyone -
I'm trying to modify some APEX used for a different purpose for this, and I think I'm getting off track.
There is a custom text field called SpX_Product_ID__c on the OpportunityLineItem object. I need to populate a new field, Export_All_Inventory_Pkg_Reference__c , with all SpX_Product_ID__c values for OLI associated with the same Opportunity.
I will then use the Export_All_Inventory_Pkg_Reference__c to populate a Custom Link on the OLI Detail Page so users can view a report of all Products associated with this Opportunity with one click.
Thanks for your help!
I'm trying to modify some APEX used for a different purpose for this, and I think I'm getting off track.
There is a custom text field called SpX_Product_ID__c on the OpportunityLineItem object. I need to populate a new field, Export_All_Inventory_Pkg_Reference__c , with all SpX_Product_ID__c values for OLI associated with the same Opportunity.
I will then use the Export_All_Inventory_Pkg_Reference__c to populate a Custom Link on the OLI Detail Page so users can view a report of all Products associated with this Opportunity with one click.
Thanks for your help!
trigger ExportPkgRef on OpportunityLineItem (after update, after insert) { Set<Id> oppIds = new Set<Id>(); for (OpportunityLineItem opp : Trigger.new) { OpportunityLineItem oldOpp = Trigger.oldMap.get(opp.Id); if ( opp.Opportunity.ID = opp.Opportunity.ID && oldOpp.Opportunity.ID != opp.Opportunity.ID ) { oppIds.add(opp.Id); } } if (!oppIds.isEmpty()) { List<OpportunityLineItem> oliList = [ select SpX_Product_ID__c from OpportunityLineItem where OpportunityLineItemId in :oppIds ]; for (OpportunityLineItem oli : oliList) { oli.SpX_Product_ID__c = SpX_Product_ID__c; } update oliList; } }
Error:Apex trigger ExportPkgRef caused an unexpected exception, contact your administrator: ExportPkgRef: execution of AfterUpdate caused by: System.FinalException: Record is read-only: Trigger.ExportPkgRef: line 5, column 1
I should note that SpX_Product_ID__c is a read-only formula field that returns text.
Export_All_Inventory_Pkg_Reference__c is not read only, and is a text field, up to 1500 characters.
If I'm interpreting your code correctly, it looks like it will set Export_All_Inventory_Pkg_Reference__c to equal SpX_Product_ID__c? I'm actually trying to get Export_All_Inventory_Pkg_Reference__c to contain multiple SpX_Product_ID__c values, corresponding to all Products under the opportunity.
The end goal is to pass this field as a Custom Link to a report that users can use to export all Products associated with an opportunity.
For example, say Opportunity X has 5 products associated with it, with SpX_Product_ID__c values 000001, 000002, 000003, 000004 & 000005. I'm hoping that the Export_All_Inventory_Pkg_Reference__c field on each of the Opportunity Product objects equals: 000001,000002,000003,000004,000005