- Bob_z
- NEWBIE
- 150 Points
- Member since 2011
- Salesforce Admin
-
ChatterFeed
-
1Best Answers
-
0Likes Received
-
0Likes Given
-
85Questions
-
124Replies
Creating a Flow to Update Custom Object Using Account Contact Relationship
I have a Service Appointment object with a custom look-up field to the account object Contractor__c
The Contractor Account record uses the Account Contact Relationship to relate contacts.
I need to create a flow that starts with the service appointment object.
Looks at the related contact from the contractor lookup field
Pick a contact with the role "accountholder", and assign that contact to a custom field Contractor_Contact__c on the service appointment. But how would I go about that in a Flow or process builder/flow to find the correct contact? I can build flows and processes but I never used the Account Contact Relationship object before in a flow or process builder workflow?
The Contractor Account record uses the Account Contact Relationship to relate contacts.
I need to create a flow that starts with the service appointment object.
Looks at the related contact from the contractor lookup field
Pick a contact with the role "accountholder", and assign that contact to a custom field Contractor_Contact__c on the service appointment. But how would I go about that in a Flow or process builder/flow to find the correct contact? I can build flows and processes but I never used the Account Contact Relationship object before in a flow or process builder workflow?
- Bob_z
- July 28, 2021
- Like
- 0
- Continue reading or reply
Convert Visualforce to Lightning Components Rendered Data table
I am trying to update my visualforce code to a Lightning web component so it will render correctly on mobile devices as well as desktops. I have been looking for examples on Lightning Datatable component references but I can't find any thing to reference extension controllers or how to only render certain records like my visualforce code below.. If i could get some help on how to convert the code below that would be great.
Visualforce Page
Apex Controller
Visualforce Page
<apex:page standardController="Account" extensions="VF_SiteServicePartnerAllController" lightningStylesheets="true" > <style> .ht{ height:0px; vertical-align:middle; } </style> <apex:form > <apex:pageBlock > <apex:pageBlockTable cellpadding="1" width="100%" columns="2" value="{!sspList}" var="item"> <apex:column rendered="{!IF(item.Service_Partner_Site_Status__c = 'Active',true,false )}" > <apex:outputPanel rendered="{!CONTAINS(item.Trade__c, 'Land')}"> <apex:outputField value="{!item.Supported_Trade__c}" /><br></br> <apex:outputLabel value=""><b>Service Partner Assigned to Site</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Primary Contact</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Contact__c}"/><br></br> <apex:outputLabel value=""><b>Primary Field Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Mobile__c}"/><br></br> <apex:outputLabel value=""><b>Primary Field Email</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Email__c}"/><br></br> <apex:outputLabel value=""><b>Secondary Contact</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Secondary_Field_Contact__c}"/><br></br> <apex:outputLabel value=""><b>Secondary Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Secondary_Field_Mobile__c}"/><br></br> <apex:outputLabel ><b>Secondary Email</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Secondary_Field_Email__c}"/><br></br> <apex:outputLabel ><b>Latest Work Order</b></apex:outputLabel><br></br> <apex:outputField value="{!Account.Latest_Work_Order__c}"/> </apex:outputPanel> </apex:column> <apex:column styleClass="ht" rendered="{!IF(item.Service_Partner_Site_Status__c = 'Active',true,false && CONTAINS(item.Trade__c, 'Land') )}" > <apex:outputPanel rendered="{!CONTAINS(item.Trade__c, 'Land')}"> <apex:outputLabel ><b>Service Partner Owner</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Owner Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner_Mobile__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Main Phone</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Main_Phone__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Owner Email</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner_Email__c}"/><br></br> <apex:outputLabel value=""><b>Service Provider Start Date</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Start_Date__c}"/><br></br> <apex:outputLabel value=""><b>Service Provider End Date</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_End_Date__c}"/> </apex:outputPanel> </apex:column> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page>
Apex Controller
// Used on the account page updated 1-31-2020 Public Class VF_SiteServicePartnerAllController{ private Account acc; public List<Site_Service_Partner__c> sspList {get;set;} public VF_SiteServicePartnerAllController(ApexPages.StandardController sp){ acc = (Account)sp.getRecord(); sspList = new List<Site_Service_Partner__c>(); sspList = [SELECT Id,Name,Site_Account__c,Primary_Field_Contact__c,Service_Partner__c, Service_Partner_Owner__c,Service_Partner_Owner_Mobile__c,Service_Partner_Owner_Email__c, Primary_Field_Email__c,Primary_Field_Mobile__c,Service_Partner_Site_Status__c, Contracted_Services__c,Secondary_Field_Contact__c,Secondary_Field_Email__c,Secondary_Field_Mobile__c, Service_Partner_Start_Date__c,Service_Partner_End_Date__c,Service_Partner_Main_Phone__c,Service_Line__c,Supported_Service_Lines__c FROM Site_Service_Partner__c WHERE Site_Account__c =: acc.Id AND Service_Line__c IN ('Land', 'Snow', 'Land;Snow') AND Service_Partner_Site_Status__c = 'Active']; Set<Id> bidId = new Set<Id>(); for(Site_Service_Partner__c bs:sspList){ bidId.add(bs.Id); } } }
- Bob_z
- March 02, 2020
- Like
- 0
- Continue reading or reply
leaflet map not rendering correctly in new Salesforce mobile app
I have a custom lightning component that works fine in my salesforce org desktop version and it worked fine in the salesforce mobile 1 app, but since they updated there app to the new user UI my map does not render in the lightning component.. The lightning componet uses leaflet maps and I'm not sure if this is a CSS issue or something else. I'm hopin gsomeone can help me resolve this issue or has heard of this issue and the fix for this rendering problem. Any help would be greatly appreciated
- Bob_z
- February 27, 2020
- Like
- 0
- Continue reading or reply
Lightning component Cannot read property error
I am having an issue with my lightning component or apex class.
It is a account detail page but receiving the below error. I can't seem to find the issue with my code so i am reaching out to anyone that can help me find the issue.
Here is my controller and Component Info.
Component
Controller on the component.bundle
Apex Class
It is a account detail page but receiving the below error. I can't seem to find the issue with my code so i am reaching out to anyone that can help me find the issue.
Here is my controller and Component Info.
Component
<aura:component controller="AccountDetailsCtrl" implements="flexipage:availableForAllPageTypes,forceCommunity:availableForAllPageTypes,force:hasRecordId" access="global"> <aura:attribute name="acc" type="Account"></aura:attribute> <aura:attribute name="recordId" type="String"></aura:attribute> <aura:attribute name="data" type="Object"/> <aura:attribute name="columns" type="List"/> <aura:handler name="init" action="{!c.doInit}" value="{!this}" /> <aura:if isTrue="{!v.acc.Division__c || v.acc.Director_of_Operations__r || v.acc.Senior_Account_Manager__r || v.acc.Regional_Field_Manager_Contact__r || v.acc.Account_Manager__r}"> <div class="slds-box"> <table class="slds-table slds-table_cell-buffer slds-table_bordered"> <thead> <tr class="slds-line-height_reset"> <th class="division" scope="col"> <div class="slds-truncate" title="Division">Division : {!v.acc.Division__c}</div> </th> </tr> <tr class="slds-line-height_reset"> <th class="title" scope="col"> <div class="slds-truncate" title="Title">Title</div> </th> <th class="name" scope="col"> <div class="slds-truncate" title="Name">Name</div> </th> <th class="email" scope="col"> <div class="slds-truncate" title="Email">Email</div> </th> <th class="phone" scope="col"> <div class="slds-truncate" title="Phone">Phone</div> </th> <th class="mobile" scope="col"> <div class="slds-truncate" title="Mobile">Mobile</div> </th> </tr> </thead> <tbody> <tr class="slds-hint-parent"> <td data-label="Director of Operations title"> <div class="slds-truncate" title="Director of Operations">Director of Operations</div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="{!v.acc.Director_of_Operations__r.Name}">{!v.acc.Director_of_Operations__r.Name}</div> </td> <td data-label="Email" class="email"> <div class="slds-truncate" title="{!v.acc.Director_of_Operations__r.Email}">{!v.acc.Director_of_Operations__r.Email}</div> </td> <td data-label="Phone" class="phone"> <div class="slds-truncate" title="{!v.acc.Director_of_Operations__r.Phone}">{!v.acc.Director_of_Operations__r.Phone}</div> </td> <td data-label="Mobile" class="mobile"> <div class="slds-truncate" title="{!v.acc.Director_of_Operations__r.MobilePhone}">{!v.acc.Director_of_Operations__r.MobilePhone}</div> </td> </tr> <tr class="slds-hint-parent"> <td data-label="Senior Account Manager title"> <div class="slds-truncate" title="Senior Account Manager">Senior Account Manager</div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="{!v.acc.Senior_Account_Manager__r.Name}">{!v.acc.Senior_Account_Manager__r.Name}</div> </td> <td data-label="Email" class="email"> <div class="slds-truncate" title="{!v.acc.Senior_Account_Manager__r.Email}">{!v.acc.Senior_Account_Manager__r.Email}</div> </td> <td data-label="Phone" class="phone"> <div class="slds-truncate" title="{!v.acc.Senior_Account_Manager__r.Phone}">{!v.acc.Senior_Account_Manager__r.Phone}</div> </td> <td data-label="Mobile" class="mobile"> <div class="slds-truncate" title="{!v.acc.Senior_Account_Manager__r.MobilePhone}">{!v.acc.Senior_Account_Manager__r.MobilePhone}</div> </td> </tr> <tr class="slds-hint-parent"> <td data-label="District Manager title"> <div class="slds-truncate" title="District Manager">District Manager</div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="{!v.acc.Regional_Field_Manager_Contact__r.Name}">{!v.acc.Regional_Field_Manager_Contact__r.Name}</div> </td> <td data-label="Email" class="email"> <div class="slds-truncate" title="{!v.acc.Regional_Field_Manager_Contact__r.Email}">{!v.acc.Regional_Field_Manager_Contact__r.Email}</div> </td> <td data-label="Phone" class="phone"> <div class="slds-truncate" title="{!v.acc.Regional_Field_Manager_Contact__r.Phone}">{!v.acc.Regional_Field_Manager_Contact__r.Phone}</div> </td> <td data-label="Mobile" class="mobile"> <div class="slds-truncate" title="{!v.acc.Regional_Field_Manager_Contact__r.MobilePhone}">{!v.acc.Regional_Field_Manager_Contact__r.MobilePhone}</div> </td> </tr> <tr class="slds-hint-parent"> <td data-label="Account Manager title"> <div class="slds-truncate" title="Account Manager">Account Manager</div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="{!v.acc.Account_Manager__r.Name}">{!v.acc.Account_Manager__r.Name}</div> </td> <td data-label="Email" class="email"> <div class="slds-truncate" title="{!v.acc.Account_Manager__r.Name}">{!v.acc.Account_Manager__r.Email}</div> </td> <td data-label="Phone" class="phone"> <div class="slds-truncate" title="{!v.acc.Account_Manager__r.Name}">{!v.acc.Account_Manager__r.Phone}</div> </td> <td data-label="Mobile" class="mobile"> <div class="slds-truncate" title="{!v.acc.Account_Manager__r.Name}">{!v.acc.Account_Manager__r.MobilePhone}</div> </td> </tr> <tr class="slds-hint-parent"> <td data-label="Procurement Manager title"> <div class="slds-truncate" title="Procurement Manager">Procurement Manager</div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="{!v.acc.Customer_Procurement_Mangager__r.Name}">{!v.acc.Customer_Procurement_Mangager__r.Name}</div> </td> <td data-label="Email" class="email"> <div class="slds-truncate" title="{!v.acc.Customer_Procurement_Mangager__r.Name}">{!v.acc.Customer_Procurement_Mangager__r.Email}</div> </td> <td data-label="Phone" class="phone"> <div class="slds-truncate" title="{!v.acc.Customer_Procurement_Mangager__r.Name}">{!v.acc.Customer_Procurement_Mangager__r.Phone}</div> </td> <td data-label="Mobile" class="mobile"> <div class="slds-truncate" title="{!v.acc.Customer_Procurement_Mangager__r.Name}">{!v.acc.Customer_Procurement_Mangager__r.MobilePhone}</div> </td> </tr> <tr class="slds-hint-parent"> <td data-label="Finance Contact title"> <div class="slds-truncate" title="Procurement Manager">Finance Contact</div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="{!v.acc.Customer_Finance_Contact__r.Name}">{!v.acc.Customer_Finance_Contact__r.Name}</div> </td> <td data-label="Email" class="email"> <div class="slds-truncate" title="{!v.acc.Customer_Finance_Contact__r.Name}">{!v.acc.Customer_Finance_Contact__r.Email}</div> </td> <td data-label="Phone" class="phone"> <div class="slds-truncate" title="{!v.acc.Customer_Finance_Contact__r.Name}">{!v.acc.Customer_Finance_Contact__r.Phone}</div> </td> <td data-label="Mobile" class="mobile"> <div class="slds-truncate" title="{!v.acc.Customer_Finance_Contact__r.Name}">{!v.acc.Customer_Finance_Contact__r.MobilePhone}</div> </td> </tr> <tr class="slds-hint-parent"> <td data-label="Facilities Manager title"> <div class="slds-truncate" title="Procurement Manager">Facilities Manager</div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="{!v.acc.Customer_Facilities_Manager__r.Name}">{!v.acc.Customer_Facilities_Manager__r.Name}</div> </td> <td data-label="Email" class="email"> <div class="slds-truncate" title="{!v.acc.Customer_Facilities_Manager__r.Name}">{!v.acc.Customer_Facilities_Manager__r.Email}</div> </td> <td data-label="Phone" class="phone"> <div class="slds-truncate" title="{!v.acc.Customer_Facilities_Manager__r.Name}">{!v.acc.Customer_Facilities_Manager__r.Phone}</div> </td> <td data-label="Mobile" class="mobile"> <div class="slds-truncate" title="{!v.acc.Customer_Facilities_Manager__r.Name}">{!v.acc.Customer_Facilities_Manager__r.MobilePhone}</div> </td> </tr> </tbody> </table> </div> <!-- SITES --> <div style="height: 500px"> <lightning:datatable keyField="Name" data="{! v.data }" columns="{! v.columns }" hideCheckboxColumn="true"/> </div> <!-- <div class="slds-box"> <table class="slds-table slds-table_cell-buffer slds-table_bordered"> <thead> <tr class="slds-line-height_reset"> <th class="division" scope="col"> <div class="slds-truncate" title="Site2">Sites : </div> </th> </tr> <tr class="slds-line-height_reset"> <th class="" scope="col"> <div class="slds-truncate" title="Site">Site</div> </th> <th class="name" scope="col"> <div class="slds-truncate" title="Name">Senior Account Manager</div> </th> <th class="email" scope="col"> <div class="slds-truncate" title="Name">Account Manager</div> </th> <th class="phone" scope="col"> <div class="slds-truncate" title="Name">Regional Field Manager</div> </th> </tr> </thead> <tbody> <aura:iteration items="{!v.acc.Site__r}" var="item"> <tr class="slds-hint-parent"> <td data-label="Name"> <div class="slds-truncate" title="Name"><ui:outputText value="{!item.Name}"/></div> </td> <td data-label="Name" class="name"> <div class="slds-truncate" title="Name"><ui:outputText value="{!item.Senior_Account_Manager__r.Name}"/></div> </td> <td data-label="Name" class="email"> <div class="slds-truncate" title="Name"><ui:outputText value="{!item.Account_Manager__r.Name}"/></div> </td> <td data-label="Name" class="phone"> <div class="slds-truncate" title="Name"><ui:outputText value="{!item.Regional_Field_Manager__r.Name}"/></div> </td> </tr> </aura:iteration> </tbody> </table> </div> --> </aura:if> </aura:component>
Controller on the component.bundle
({ doInit : function(component, event, helper) { component.set('v.columns', [ {label: 'Site', fieldName: 'Name', type: 'text', sortable: true}, {label: 'Senior Account Manager', fieldName: 'Senior_Account_Manager__r_Name', type: 'text'}, {label: 'Account Manager', fieldName: 'Account_Manager__r_Name', type: 'text'}, {label: 'Regional Field Manager', fieldName: 'Regional_Field_Manager__r_Name', type: 'text'} ]); helper.call(component, component.get('c.getAccount')).then(function(res){ console.log(res); var rows = res[0].Site__r; /* Flatten list of rows for display in lightning datatable */ for (var i = 0; i < rows.length; i++) { var row = rows[i]; //as data columns with relationship __r can not be displayed directly in data table, so generating dynamic columns if (row.Senior_Account_Manager__r) { //here you assign the related data to new variables if (row.Senior_Account_Manager__r) row.Senior_Account_Manager__r_Name = row.Senior_Account_Manager__r.Name; if (row.Account_Manager__r) row.Account_Manager__r_Name = row.Account_Manager__r.Name; if (row.Regional_Field_Manager__r) row.Regional_Field_Manager__r_Name = row.Regional_Field_Manager__r.Name; } } if(res && res.length > 0) { component.set('v.acc',res[0]); component.set('v.data', rows); } }) } })
Apex Class
public without sharing class AccountDetailsCtrl { @AuraEnabled public static Object getAccount(){ return [ SELECT Id, Division__c, Account_Manager__r.Name, Account_Manager__r.Email, Account_Manager__r.Phone, Account_Manager__r.MobilePhone, Senior_Account_Manager__r.Name, Senior_Account_Manager__r.Email, Senior_Account_Manager__r.Phone, Senior_Account_Manager__r.MobilePhone, Regional_Field_Manager_Contact__r.Name, Regional_Field_Manager_Contact__r.Email, Regional_Field_Manager_Contact__r.Phone, Regional_Field_Manager_Contact__r.MobilePhone, Director_of_Operations__r.Name, Director_of_Operations__r.Email, Director_of_Operations__r.Phone, Director_of_Operations__r.MobilePhone, Customer_Procurement_Mangager__r.Name, Customer_Procurement_Mangager__r.Email, Customer_Procurement_Mangager__r.Phone, Customer_Procurement_Mangager__r.MobilePhone, Customer_Finance_Contact__r.Name, Customer_Finance_Contact__r.Email, Customer_Finance_Contact__r.Phone, Customer_Finance_Contact__r.MobilePhone, Customer_Facilities_Manager__r.Name, Customer_Facilities_Manager__r.Email, Customer_Facilities_Manager__r.Phone, Customer_Facilities_Manager__r.MobilePhone, (SELECT Id, Name, Senior_Account_Manager__r.Name, Senior_Account_Manager__r.Email, Senior_Account_Manager__r.MobilePhone, Senior_Account_Manager__r.Phone, Account_Manager__r.Name, Account_Manager__r.Email, Account_Manager__r.MobilePhone, Account_Manager__r.Phone, Regional_Field_Manager__r.Name, Regional_Field_Manager__r.Email, Regional_Field_Manager__r.MobilePhone, Regional_Field_Manager__r.Phone FROM Account.Site__r) FROM Account WHERE Id =:[SELECT AccountId FROM User WHERE Id =:UserInfo.getUserId()].AccountId ]; } }
- Bob_z
- February 24, 2020
- Like
- 0
- Continue reading or reply
Combine two apex class
Is there a way to combine both these classes(Account & Case) into one so i there isn't two seperate classes in my org? I'm not sure how to accimplish this and could use help.
Account class
Case class
Account class
Public Class VF_SiteServicePartnerAllController{ private Account acc; public List<Site_Service_Partner__c> sspList {get;set;} public VF_SiteServicePartnerAllController(ApexPages.StandardController sp){ acc = (Account)sp.getRecord(); sspList = new List<Site_Service_Partner__c>(); sspList = [SELECT Id,Name,Site_Account__c,Primary_Field_Contact__c,Service_Partner__c, Service_Partner_Owner__c,Service_Partner_Owner_Mobile__c,Service_Partner_Owner_Email__c, Primary_Field_Email__c,Primary_Field_Mobile__c,Service_Partner_Site_Status__c, Contracted_Services__c,Secondary_Field_Contact__c,Secondary_Field_Email__c,Secondary_Field_Mobile__c, Service_Partner_Start_Date__c,Service_Partner_End_Date__c,Service_Partner_Main_Phone__c,Trade__c,Supported_Trade__c,trade_value__c FROM Site_Service_Partner__c WHERE Site_Account__c =: acc.Id AND Trade__c IN ('Land', 'Snow', 'Land;Snow') AND Service_Partner_Site_Status__c = 'Active']; Set<Id> bidId = new Set<Id>(); for(Site_Service_Partner__c bs:sspList){ bidId.add(bs.Id); } } }
Case class
//Used on the Case object updated 1-31-2020 Public Class VF_CaseServicePartExtController{ private Case css; public List<Site_Service_Partner__c> cseList {get;set;} public VF_CaseServicePartExtController(ApexPages.StandardController sp){ css= (Case)sp.getRecord(); cseList = new List<Site_Service_Partner__c>(); cseList = [SELECT Id,Name,Case__c,Site_Account__c,Primary_Field_Contact__c,Service_Partner__c, Primary_Field_Email__c,Primary_Field_Mobile__c,Service_Partner_Site_Status__c, Contracted_Services__c, Secondary_Field_Contact__c,Secondary_Field_Email__c,Secondary_Field_Mobile__c,Service_Partner_Owner__c, Trade__c,Supported_Trade__c FROM Site_Service_Partner__c WHERE Case__c =: css.Id AND Trade__c includes('Land','Snow','Land;Snow') AND Service_Partner_Site_Status__c='Active' ]; Set<Id> bidId = new Set<Id>(); for(Site_Service_Partner__c bs:cseList){ bidId.add(bs.Id); } } }
- Bob_z
- February 20, 2020
- Like
- 0
- Continue reading or reply
Visualforce page with update capabilities
I created a visualforce and a apex class to display junction object child records on an account page. It is working as expected, but i was wonder how can update my apex class to allow the junction object child records to be updated from the account page? I'm not sure how to accomplish this so i am reaching out to the community to see if anyone could help me update my class to support this function. My VF page and class is below.
VF Page:
Apex Class:
VF Page:
<apex:page standardController="Account" extensions="VF_SiteServicePartnerLandController" lightningStylesheets="true" > <style> th{ width: 50%;} </style> <apex:form > <apex:pageBlock > <apex:pageBlockTable cellpadding="5" width="100%" columns="2" value="{!sspList}" var="item"> <apex:column > <apex:outputField value="{!item.Supported_Trade__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Assigned to Site</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Primary Contact</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Contact__c}"/><br></br> <apex:outputLabel value=""><b>Primary Field Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Mobile__c}"/><br></br> <apex:outputLabel value=""><b>Primary Field Email</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Email__c}"/><br></br> <apex:outputLabel value=""><b>Secondary Contact</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Secondary_Field_Contact__c}"/><br></br> <apex:outputLabel value=""><b>Secondary Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Secondary_Field_Mobile__c}"/><br></br> <apex:outputField value="{!item.Secondary_Field_Email__c}"/> </apex:column> <apex:column > <apex:outputLabel value=""><b>Service Partner Owner</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Owner Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner_Mobile__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Main Phone</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Main_Phone__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Owner Email</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner_Email__c}"/><br></br> <apex:outputLabel value=""><b>Service Provider Start Date</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Start_Date__c}"/><br></br> <apex:outputLabel value=""><b>Service Provider End Date</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_End_Date__c}"/> </apex:column> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page>
Apex Class:
// Used on the account page updated 1-31-2020 Public Class VF_SiteServicePartnerLandController{ private Account acc; public List<Site_Service_Partner__c> sspList {get;set;} public VF_SiteServicePartnerLandController(ApexPages.StandardController sp){ acc = (Account)sp.getRecord(); sspList = new List<Site_Service_Partner__c>(); sspList = [SELECT Id,Name,Site_Account__c,Primary_Field_Contact__c,Service_Partner__c, Service_Partner_Owner__c,Service_Partner_Owner_Mobile__c,Service_Partner_Owner_Email__c, Primary_Field_Email__c,Primary_Field_Mobile__c,Service_Partner_Site_Status__c, Contracted_Services__c,Secondary_Field_Contact__c,Secondary_Field_Email__c,Secondary_Field_Mobile__c, Service_Partner_Start_Date__c,Service_Partner_End_Date__c,Service_Partner_Main_Phone__c,Trade__c,Supported_Trade__c FROM Site_Service_Partner__c WHERE Site_Account__c =: acc.Id AND Site_Account__r.Trade__c includes('Land') AND Service_Partner_Site_Status__c = 'Active' ]; Set<Id> bidId = new Set<Id>(); for(Site_Service_Partner__c bs:sspList){ bidId.add(bs.Id); } } }
- Bob_z
- February 05, 2020
- Like
- 0
- Continue reading or reply
Insert Case Id on related child record's case lookup field
I am looking for help on a trigger for the case object.
I have three objects Case, Account and a custom object Site_Partner__c
I need help with a trigger or pex class that performs like this:
The Account object has related records from the Site_Partner__c which has a account lokup field Site__c
I need the functionality to perform that when a case record is created the trigger/class finds the Site_Partner__c records associated with the account on the case record and assigns the case ID to the Case___c lookup field on the Site_Partner__c record. I'm just not sure what the best practices solution to this requirement i.e. Trigger, Apex Class or Process builder.
I have three objects Case, Account and a custom object Site_Partner__c
I need help with a trigger or pex class that performs like this:
The Account object has related records from the Site_Partner__c which has a account lokup field Site__c
I need the functionality to perform that when a case record is created the trigger/class finds the Site_Partner__c records associated with the account on the case record and assigns the case ID to the Case___c lookup field on the Site_Partner__c record. I'm just not sure what the best practices solution to this requirement i.e. Trigger, Apex Class or Process builder.
- Bob_z
- January 29, 2020
- Like
- 0
- Continue reading or reply
visualforce mobile phone from contact not displaying correctly
I have a visualforce page with contct information such email and mobile phone number. The field is a standard phone numbe rfield on the Contact object but when it is display on my VF page it loses its format. I'm not sure what i can do to correct the rendering so it shows up on my the account object with the correct format. Any help would be greatly appreciated. My code is below.
Custom controller:
<apex:page standardController="Account" extensions="SiteServicePartnerExtController" > <apex:pageBlock title="My Content"> <value="{!sspList}" var="item"> <apex:column value="{!item.Service_Partner__c}"/> <apex:column value="{!item.Contracted_Services__c}"/> <apex:column value="{!item.Primary_Field_Contact__c}"/> <apex:column value="{!item.Primary_Field_Mobile__c}"/> <apex:column value="{!item.Primary_Field_Email__c}"/> <apex:column value="{!item.Contracted_Services__c}"/> <apex:column value="{!item.Secondary_Field_Contact__c}"/> <apex:column value="{!item.Secondary_Field_Mobile__c}"/> <apex:column value="{!item.Secondary_Field_Email__c}"/> </apex:pageBlockTable> </apex:pageBlock> </apex:page>
Custom controller:
Public Class SiteServicePartnerExtController{ private Account acc; public List<Site_Service_Partner__c> sspList {get;set;} public SiteServicePartnerExtController(ApexPages.StandardController sp){ acc = (Account)sp.getRecord(); sspList = new List<Site_Service_Partner__c>(); sspList = [SELECT Id,Name,Site_Account__c,Primary_Field_Contact__c,Service_Partner__c,Primary_Field_Email__c,Primary_Field_Mobile__c,Service_Partner_Site_Status__c, Contracted_Services__c,Secondary_Field_Contact__c,Secondary_Field_Email__c,Secondary_Field_Mobile__c FROM Site_Service_Partner__c WHERE Site_Account__c =: acc.Id]; Set<Id> bidId = new Set<Id>(); for(Site_Service_Partner__c bs:sspList){ bidId.add(bs.Id); } } }
- Bob_z
- January 18, 2020
- Like
- 0
- Continue reading or reply
Test Class error help for visualforce extension controller
I have an apex extension controller that I'm trying to send to my porduction org but i am getting the following error while validating from the inbound changeset.
Here is the test class and my apex extension controller
Controller:
System.ListException: List index out of bounds: 1 Stack Trace: Class.AccountMapCtrl.buildAdditionalWhere: line 190, column 1 Class.AccountMapCtrl.getAccounts: line 84, column 1 Class.AccountMapCtrlTest.testAll: line 26, column 1
Here is the test class and my apex extension controller
@isTest(SeeAllData=true) public class AccountMapCtrlTest{ static testmethod void testAll(){ Account acc = new Account( Name = 'testAcc', Description = 'test description', Industry = 'information tech', Type = 'Press', ShippingLatitude = 22.6211, ShippingLongitude = 88.4649, RecordTypeId = Account.SObjectType.getDescribe().getRecordTypeInfosByName().get('Site').getRecordTypeId() ); insert acc; AccountMapCtrl.describePickList('AccountSource'); AccountMapCtrl.getFields('Account', 'AccountMap_Filters'); List<AccountMapCtrl.Field> fields = new List<AccountMapCtrl.Field>(); Schema.FieldSet fieldset = Schema.SObjectType.Account.fieldSets.getMap().get('AccountMap_Filters'); for(Schema.FieldSetMember member : fieldset.getFields()){ fields.add(new AccountMapCtrl.Field(member)); } AccountMapCtrl.getAccounts(Json.serialize(fields), null); AccountMapCtrl.getVendors(Json.serialize(fields), null); AccountMapCtrl.getManagers(); AccountMapCtrl.getFieldCSV('Account'); } }
Controller:
Public Class AccountExtensionController{ private Account acc; public List<Bids_Sent__c> bidsList {get;set;} public Map<String,List<Site_Bid_Details__c>> bidsMap {get;set;} public AccountExtensionController(ApexPages.StandardController sc){ acc = (Account)sc.getRecord(); bidsList = new List<Bids_Sent__c>(); bidsList = [SELECT Id,IsAddedToPDF__c,Customer__r.Service_Agreement_Verbiage__c,Site__c,Site__r.Contract_Start_Date__c,Site__r.Contract_End_Date__c,Site__r.Customer_Location_ID__c,Service_Year__c,Customer__r.Contract_Start_Date__c,Name,Customer__r.Contract_End_Date__c,Site__r.Name,Customer__r.Name,Primary_Contact__r.FirstName,Site__r.BillingCity,Site__r.BillingState,Site__r.BillingStreet,Site__r.BillingPostalCode FROM Bids_Sent__c WHERE Awarded__c =: acc.Id AND IsAddedToPDF__c=true]; Set<Id> bidId = new Set<Id>(); for(Bids_Sent__c bs : bidsList){ bidId.add(bs.Id); } bidsMap = new Map<String,List<Site_Bid_Details__c>> (); for(Site_Bid_Details__c bd : [SELECT Id, Bid_Name__r.Name,Site__c,Contract_Start_Month__c,Site__r.Customer_Location_ID__c,Cost__c,Customer__r.Contract_Month__c,Increment__c,Total__c,Price__c,Scope__c,Bid_Name__r.Service_Type__c,Number_of_Months__c,Retainer_Fee__c,Monthly_Payment__c,UOM__c FROM Site_Bid_Details__c WHERE Bid_Name__c IN : bidId]){ if(bidsMap.containsKey(bd.Bid_Name__r.Name)){ System.debug('CONTAINS KEY: ' + bd.Bid_Name__r.Name); bidsMap.get(bd.Bid_Name__r.Name).add(bd); } else { System.debug('CREATE: ' + bd.Bid_Name__r.Name); bidsMap.put(bd.Bid_Name__r.Name,new List<Site_Bid_Details__c>{bd}); } } } }
- Bob_z
- January 13, 2020
- Like
- 0
- Continue reading or reply
lightning component controlling a flow's finish behavior return to home
I am working on a flow wrapped in a lightning component as a global action and i am trying to figure out how to change the finish bahavior so the user is redirected to the home page. I came across these events ( force:navigateToObjectHome or force:navigateToUrl.) but I'm not sure where to used them in my lightning component. Any help with this would be greatly appreciated. My code is below for my component.
Component:
Controller:
Helper:
Component:
<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickActionWithoutHeader" access="global" > <aura:handler name="init" value="{!this}" action="{!c.init}" /> <lightning:flow aura:id="flowData" /> </aura:component>
Controller:
({ init : function (component) { // Find the component whose aura:id is "flowData" var flow = component.find("flowData"); // In that component, start your flow. Reference the flow’s Unique Name. flow.startFlow("New_IT_Support_Case"); }, })
Helper:
({ helperMethod : function() { } })
- Bob_z
- January 08, 2020
- Like
- 0
- Continue reading or reply
Flow File Upload Component
I have created a flow to create new case records and I'm trying to add the file upload component to attach files. When I run the debug to see if it is working. The screen to upload files is greyed out. I'm not sure if i have the setup correct. please any help to get this working would be greatly appreciated.
Component Setup
Component Setup
- Bob_z
- January 03, 2020
- Like
- 0
- Continue reading or reply
Create new Case Comments on support case
Im trying to figure out if there is a way create new case comments from email to case Thread ID. I want this to work like salesforce cases work. When a salesforce agent sends me an email and I reply to the email the support case updates with my comments. Is there a way to do this?
- Bob_z
- December 09, 2019
- Like
- 0
- Continue reading or reply
flow screen with multiple dependent picklist
I am working on a new flow for a case object and I'm running into an issue.
I am using the Case Reason field as a controlling picklist to six other picklist. I can not figure out how to add all six picklist and have the Case Reason field control them on one flow screen. If anyone has a solution for this issue i would be very greatful for some help.
I am using the Case Reason field as a controlling picklist to six other picklist. I can not figure out how to add all six picklist and have the Case Reason field control them on one flow screen. If anyone has a solution for this issue i would be very greatful for some help.
- Bob_z
- December 09, 2019
- Like
- 0
- Continue reading or reply
can't see custom App in Salesforce for iOS iPad or iphone
My company has an custom heat map that works fine in the old salesforce mobile app for ipad, but when i turn on the new permission set for the new salesforce mobile app the custom heat map does not render correctly. Users can not see the map. I just wondering what could cause this issue.
It looks like this is a sizing issue like an iframe but i'm not sure.
This is the way it should look.
It looks like this is a sizing issue like an iframe but i'm not sure.
This is the way it should look.
- Bob_z
- November 15, 2019
- Like
- 0
- Continue reading or reply
App not rendering correctly in Salesforce for iOS iPad
My company has an custom heat map that works fine in the old salesforce mobile app for ipad, but when i turn on the new permission set for the new salesforce mobile app the custom heat map does not render correctly. Users can not see the map. I just wondering what could cause this issue.
It looks like this is a sizing issue like an iframe but i'm not sure.
This is the way it should look.
It looks like this is a sizing issue like an iframe but i'm not sure.
This is the way it should look.
- Bob_z
- November 14, 2019
- Like
- 0
- Continue reading or reply
flow a dependent multi-select picklist only shows single values
I am working on a Case object flow and I am having a problem trying to figure out how to get a dependent multi-select picklist. I am using the dependent lightning component for cointrolling field category and the dependent field (multi-select picklist) services.
Is there a way to show all the value in the multi select picklist when I select a value from the controlling picklist?
Also, is there a way to show those value in the multi select picklist as checkboxes on the flow screen for users?
Is there a way to show all the value in the multi select picklist when I select a value from the controlling picklist?
Also, is there a way to show those value in the multi select picklist as checkboxes on the flow screen for users?
- Bob_z
- October 04, 2019
- Like
- 0
- Continue reading or reply
Visualforce page lookup field back to standard object
I have a visualforce page using a standard account object. I also have a child custom object Bids_Sent__c. There is an account lookup field on the related child object titled "Awarded__c". In my visualforce page i want to some how reference a field Service_Agreement_Verbiage__c on the Bids_Sent__c object. The child relationship name for Bids_Sent__c lookup field "Awarded__c" is "Bids_Sent4". Below I tried this mapping on my VF page and I get the following error.
Error: Unknown property 'VisualforceArrayList.Service_Agreement_Verbiage__c'
{!Account.Bids_Sent4__r.Service_Agreement_Verbiage__c}
Error: Unknown property 'VisualforceArrayList.Service_Agreement_Verbiage__c'
{!Account.Bids_Sent4__r.Service_Agreement_Verbiage__c}
- Bob_z
- September 17, 2019
- Like
- 0
- Continue reading or reply
Date formula display text if true
I am trying to create a formula that compares a date field Like Acme_Date__c = TODAY() then display "TODAY" for atext value.
I'm not sure how to accomplish this result without getting errors
I'm not sure how to accomplish this result without getting errors
- Bob_z
- September 10, 2019
- Like
- 0
- Continue reading or reply
round currency field nearest dollar
I have a currency formula field and I wonddering if my formula below is correct to round the value to a whole number? I am trying to remove the cent values $2,022.23 should be 2,022.00
ROUND(Price__c - Price__c * Acceptable_High_Margin__c,0)
ROUND(Price__c - Price__c * Acceptable_High_Margin__c,0)
- Bob_z
- August 16, 2019
- Like
- 0
- Continue reading or reply
Traversing related child fields from the account object
I have a visualforce page and the standard object is the Account. I'm trying to map a field from the related child record to the account visualforce page.
I'm not sure how to map the field {!Account.Bids_Sent__c.Test__c} on the visualforce page.
I am getting the following error.
Error: Invalid field Bids_Sent__c for SObject Account
I'm not sure how to map the field {!Account.Bids_Sent__c.Test__c} on the visualforce page.
I am getting the following error.
Error: Invalid field Bids_Sent__c for SObject Account
- Bob_z
- August 16, 2019
- Like
- 0
- Continue reading or reply
Visualforce page with update capabilities
I created a visualforce and a apex class to display junction object child records on an account page. It is working as expected, but i was wonder how can update my apex class to allow the junction object child records to be updated from the account page? I'm not sure how to accomplish this so i am reaching out to the community to see if anyone could help me update my class to support this function. My VF page and class is below.
VF Page:
Apex Class:
VF Page:
<apex:page standardController="Account" extensions="VF_SiteServicePartnerLandController" lightningStylesheets="true" > <style> th{ width: 50%;} </style> <apex:form > <apex:pageBlock > <apex:pageBlockTable cellpadding="5" width="100%" columns="2" value="{!sspList}" var="item"> <apex:column > <apex:outputField value="{!item.Supported_Trade__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Assigned to Site</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Primary Contact</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Contact__c}"/><br></br> <apex:outputLabel value=""><b>Primary Field Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Mobile__c}"/><br></br> <apex:outputLabel value=""><b>Primary Field Email</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Primary_Field_Email__c}"/><br></br> <apex:outputLabel value=""><b>Secondary Contact</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Secondary_Field_Contact__c}"/><br></br> <apex:outputLabel value=""><b>Secondary Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Secondary_Field_Mobile__c}"/><br></br> <apex:outputField value="{!item.Secondary_Field_Email__c}"/> </apex:column> <apex:column > <apex:outputLabel value=""><b>Service Partner Owner</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Owner Cell</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner_Mobile__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Main Phone</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Main_Phone__c}"/><br></br> <apex:outputLabel value=""><b>Service Partner Owner Email</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Owner_Email__c}"/><br></br> <apex:outputLabel value=""><b>Service Provider Start Date</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_Start_Date__c}"/><br></br> <apex:outputLabel value=""><b>Service Provider End Date</b></apex:outputLabel><br></br> <apex:outputField value="{!item.Service_Partner_End_Date__c}"/> </apex:column> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page>
Apex Class:
// Used on the account page updated 1-31-2020 Public Class VF_SiteServicePartnerLandController{ private Account acc; public List<Site_Service_Partner__c> sspList {get;set;} public VF_SiteServicePartnerLandController(ApexPages.StandardController sp){ acc = (Account)sp.getRecord(); sspList = new List<Site_Service_Partner__c>(); sspList = [SELECT Id,Name,Site_Account__c,Primary_Field_Contact__c,Service_Partner__c, Service_Partner_Owner__c,Service_Partner_Owner_Mobile__c,Service_Partner_Owner_Email__c, Primary_Field_Email__c,Primary_Field_Mobile__c,Service_Partner_Site_Status__c, Contracted_Services__c,Secondary_Field_Contact__c,Secondary_Field_Email__c,Secondary_Field_Mobile__c, Service_Partner_Start_Date__c,Service_Partner_End_Date__c,Service_Partner_Main_Phone__c,Trade__c,Supported_Trade__c FROM Site_Service_Partner__c WHERE Site_Account__c =: acc.Id AND Site_Account__r.Trade__c includes('Land') AND Service_Partner_Site_Status__c = 'Active' ]; Set<Id> bidId = new Set<Id>(); for(Site_Service_Partner__c bs:sspList){ bidId.add(bs.Id); } } }
- Bob_z
- February 05, 2020
- Like
- 0
- Continue reading or reply
Insert Case Id on related child record's case lookup field
I am looking for help on a trigger for the case object.
I have three objects Case, Account and a custom object Site_Partner__c
I need help with a trigger or pex class that performs like this:
The Account object has related records from the Site_Partner__c which has a account lokup field Site__c
I need the functionality to perform that when a case record is created the trigger/class finds the Site_Partner__c records associated with the account on the case record and assigns the case ID to the Case___c lookup field on the Site_Partner__c record. I'm just not sure what the best practices solution to this requirement i.e. Trigger, Apex Class or Process builder.
I have three objects Case, Account and a custom object Site_Partner__c
I need help with a trigger or pex class that performs like this:
The Account object has related records from the Site_Partner__c which has a account lokup field Site__c
I need the functionality to perform that when a case record is created the trigger/class finds the Site_Partner__c records associated with the account on the case record and assigns the case ID to the Case___c lookup field on the Site_Partner__c record. I'm just not sure what the best practices solution to this requirement i.e. Trigger, Apex Class or Process builder.
- Bob_z
- January 29, 2020
- Like
- 0
- Continue reading or reply
Flow File Upload Component
I have created a flow to create new case records and I'm trying to add the file upload component to attach files. When I run the debug to see if it is working. The screen to upload files is greyed out. I'm not sure if i have the setup correct. please any help to get this working would be greatly appreciated.
Component Setup
Component Setup
- Bob_z
- January 03, 2020
- Like
- 0
- Continue reading or reply
Create new Case Comments on support case
Im trying to figure out if there is a way create new case comments from email to case Thread ID. I want this to work like salesforce cases work. When a salesforce agent sends me an email and I reply to the email the support case updates with my comments. Is there a way to do this?
- Bob_z
- December 09, 2019
- Like
- 0
- Continue reading or reply
flow a dependent multi-select picklist only shows single values
I am working on a Case object flow and I am having a problem trying to figure out how to get a dependent multi-select picklist. I am using the dependent lightning component for cointrolling field category and the dependent field (multi-select picklist) services.
Is there a way to show all the value in the multi select picklist when I select a value from the controlling picklist?
Also, is there a way to show those value in the multi select picklist as checkboxes on the flow screen for users?
Is there a way to show all the value in the multi select picklist when I select a value from the controlling picklist?
Also, is there a way to show those value in the multi select picklist as checkboxes on the flow screen for users?
- Bob_z
- October 04, 2019
- Like
- 0
- Continue reading or reply
Visualforce page lookup field back to standard object
I have a visualforce page using a standard account object. I also have a child custom object Bids_Sent__c. There is an account lookup field on the related child object titled "Awarded__c". In my visualforce page i want to some how reference a field Service_Agreement_Verbiage__c on the Bids_Sent__c object. The child relationship name for Bids_Sent__c lookup field "Awarded__c" is "Bids_Sent4". Below I tried this mapping on my VF page and I get the following error.
Error: Unknown property 'VisualforceArrayList.Service_Agreement_Verbiage__c'
{!Account.Bids_Sent4__r.Service_Agreement_Verbiage__c}
Error: Unknown property 'VisualforceArrayList.Service_Agreement_Verbiage__c'
{!Account.Bids_Sent4__r.Service_Agreement_Verbiage__c}
- Bob_z
- September 17, 2019
- Like
- 0
- Continue reading or reply
Date formula display text if true
I am trying to create a formula that compares a date field Like Acme_Date__c = TODAY() then display "TODAY" for atext value.
I'm not sure how to accomplish this result without getting errors
I'm not sure how to accomplish this result without getting errors
- Bob_z
- September 10, 2019
- Like
- 0
- Continue reading or reply
Percentage formula not calculating correctly
I'm having a problem with getting a formula field to calculate the correct percentage. I have 3 fields Cost (currency field) Number of Months(Number Field) Retainer(Percent Field)
I'm trying to create a formula that shows the results of
Cost__c * Number_Of_Months__c - Retainer__c
But when i view the Total__c field, My formula is only reducing the amount by the number I enter into the retainer field.
So I enter 1,000 into the cost field and 5 in the number of months field and 5 percent in the retainer field my return value is $4,999.95 not 4,750. Can any one help me with this formula?
I'm trying to create a formula that shows the results of
Cost__c * Number_Of_Months__c - Retainer__c
But when i view the Total__c field, My formula is only reducing the amount by the number I enter into the retainer field.
So I enter 1,000 into the cost field and 5 in the number of months field and 5 percent in the retainer field my return value is $4,999.95 not 4,750. Can any one help me with this formula?
- Bob_z
- August 05, 2019
- Like
- 0
- Continue reading or reply
Flow to create multiple child records
I was wondering if there is a way to create mutiple child records for an opportunity by using a number field on the opportunity record?
Below I am using this trigger to create new products, but if a user wants to add more products my code looks at that field and creates the number of product that match that number field. Iwant to give them the ability to add mor eproducts to the opportunity record if needed and I can't figure out how to update my trigger to do so that is why i am wondering if there's a way to do this with a Flow instead.
If anyone can give me advice to either update my trigger to accomadate this request or how to create that flow I would greatly appreciate it.
Thanks,
Bob
Below I am using this trigger to create new products, but if a user wants to add more products my code looks at that field and creates the number of product that match that number field. Iwant to give them the ability to add mor eproducts to the opportunity record if needed and I can't figure out how to update my trigger to do so that is why i am wondering if there's a way to do this with a Flow instead.
If anyone can give me advice to either update my trigger to accomadate this request or how to create that flow I would greatly appreciate it.
Thanks,
Bob
trigger tr_MultiProductsCreated on Opportunity (after insert, after update) { List<Yushin_Product__c> ProductRecordsFinalListToInsert = New List<Yushin_Product__c>(); If(Trigger.IsInsert || Trigger.IsUpdate) { For(Opportunity opp : Trigger.New) { If(opp.Product_Qauntity__c != null) { List<Yushin_Product__c> fetchingAlreadyExistsedRecords = [Select Id FROM Yushin_Product__c WHERE Opportunity__c =:opp.Id]; If(fetchingAlreadyExistsedRecords.IsEmpty()) { // I need to create more records if a new number is added to the field. For(Integer I = 0; I < opp.Product_Qauntity__c; I++) { Yushin_Product__c prd = New Yushin_Product__c(); prd.Opportunity__c = opp.Id; ProductRecordsFinalListToInsert.add(prd); } } } try{ If(!ProductRecordsFinalListToInsert.IsEmpty()){ insert ProductRecordsFinalListToInsert; } } Catch(Exception e){ System.debug('The thrown exception for CreatingAutoRecords is:: ' + e.getMessage()); } } } }
- Bob_z
- July 11, 2019
- Like
- 0
- Continue reading or reply
Trigger not working correctly. Error message trigger unwanted behavior
I created a trigger that display an error message if the owner of a opportunity tries to enter the same number in a field that is already on another record. My trigger below is working mostly. The message shows at the field level when there is another opportunity with the same number, but if i create an opportunity and do not enter a number ( so the field is null/blank). Then go back into the record
and try to add a number it gives me the error message no matter what number I enter into the field. I'm not sure how to get the trigger to allow a user to enter a number in the field after it's been created without getting the error. Any help would be greatly appreciated.
and try to add a number it gives me the error message no matter what number I enter into the field. I'm not sure how to get the trigger to allow a user to enter a number in the field after it's been created without getting the error. Any help would be greatly appreciated.
trigger TR_RejectDupPriority on Opportunity (before insert, before update) { //Display error message if another opportunity has the same number in Quting_Priority__c field Set<decimal> oppSet = new Set<decimal>(); for(Opportunity o : trigger.new){ oppSet.add(o.Quting_Priority__c); } //query all existing record for quoteprioritynum__c List<Opportunity> oppsList = [SELECT id,Owner.Profile.Name, Owner.Id, Quting_Priority__c, LastModifiedBy.Id, quoteprioritynum__c FROM Opportunity WHERE Quting_Priority__c in :oppSet AND Owner.Id = :userinfo.getuserid()]; //ignore system admins Profile pr = [select id from Profile where name='System Administrator']; if(UserInfo.getProfileId()!=pr.id) for(Opportunity o:trigger.new) { //Check Update for dupe numbers if(Trigger.isUpdate && Trigger.oldmap.get(o.id).Quting_Priority__c!=o.Quting_Priority__c && o.LastModifiedBy.Id == o.Owner.Id) { o.Quting_Priority__c.adderror('Another quote has the same priority number, please enter a new number!'); } //Only check for priority size if(Trigger.isInsert && o.Quting_Priority__c==o.Quting_Priority__c && oppsList.size()>0 && o.LastModifiedBy.Id == o.Owner.Id) { o.Quting_Priority__c.adderror('Another quote has the same priority number, please enter a new number!'); } } }
- Bob_z
- June 24, 2019
- Like
- 0
- Continue reading or reply
How to check a opportunity owner's records have the same field value
I created a trigger that should display an error message if the owner of a opportunity tries to enter the same number in a field that is already on another record. Ny trigger below is working somewhat. The message shows at the field level when there is another opportunity with the same number, but it shows the error message regardless of who owns the record. I'm not sure how to get the trigger to reconize that the user trying to enter the number is the same as the owner.
I first tried using "integer" in my set collection, but when i tried to compile I recieved the following error message
Invalid bind expression type of String for column of type Decimal
So I create a formula field (quoteprioritynum__c) and use TEXT to get this to work with Set<string><string> I tried a few things but I wasn't able to save my trigger successfully.
So I'm stuck with the trigger half working. Any help would be greatly appreciated.
I first tried using "integer" in my set collection, but when i tried to compile I recieved the following error message
Invalid bind expression type of String for column of type Decimal
So I create a formula field (quoteprioritynum__c) and use TEXT to get this to work with Set<string><string> I tried a few things but I wasn't able to save my trigger successfully.
So I'm stuck with the trigger half working. Any help would be greatly appreciated.
trigger TR_RejectDupPri on Opportunity (before insert,before update) { //Display error message if another opportunity has the same number in Quting_Priority__c field Set<string> oppSet = new Set<string>(); for(Opportunity o : trigger.new){ oppSet.add(o.quoteprioritynum__c); } //query all existing record for quoteprioritynum__c List<Opportunity> oppsList = [select id, Owner.Id,Quting_Priority__c,LastModifiedBy.Id,quoteprioritynum__c from Opportunity where quoteprioritynum__c in :oppSet]; for(Opportunity o:trigger.new) { //Update if(Trigger.isUpdate && o.quoteprioritynum__c==o.quoteprioritynum__c && oppsList.size()>0 && Trigger.oldmap.get(o.id).quoteprioritynum__c!=o.quoteprioritynum__c && o.LastModifiedBy.Id == o.Owner.Id ) { o.Quting_Priority__c.adderror('Another quote has the same priority number, please enter a new number!'); } //Only check for size if(Trigger.isInsert && o.quoteprioritynum__c==o.quoteprioritynum__c && oppsList.size()>0 && o.LastModifiedBy.Id == o.Owner.Id) { o.Quting_Priority__c.adderror('Another quote has the same priority number, please enter a new number!'); } } }
- Bob_z
- June 19, 2019
- Like
- 0
- Continue reading or reply
Validation Errors While Saving Record(s) BMXB.BMX_OpptyHandler
I am recevieing the following error below that just stated happening today July 12. I'm not sure what would cause this error all of a sudden. If anyone can help me where to look for the issue i would appreciate it. It apprears to be coming from an install pacakge that is not active anymore called. Big Machine for qouting.
Validation Errors While Saving Record(s)
There were custom validation error(s) encountered while saving the affected record(s). The first validation error encountered was "Apex trigger BMXB.BMX_OpptyHandler caused an unexpected exception, contact your administrator: BMXB.BMX_OpptyHandler: execution of BeforeUpdate caused by: System.QueryException: sObject type 'QConfig__Model__c' is not supported.: Class.QConfig.configOpptyTriggerHandler.copySyncedQuoteIdToModels: line 38, column 1".
Validation Errors While Saving Record(s)
There were custom validation error(s) encountered while saving the affected record(s). The first validation error encountered was "Apex trigger BMXB.BMX_OpptyHandler caused an unexpected exception, contact your administrator: BMXB.BMX_OpptyHandler: execution of BeforeUpdate caused by: System.QueryException: sObject type 'QConfig__Model__c' is not supported.: Class.QConfig.configOpptyTriggerHandler.copySyncedQuoteIdToModels: line 38, column 1".
- Bob_z
- July 12, 2018
- Like
- 0
- Continue reading or reply