- David Roberts 4
- NEWBIE
- 193 Points
- Member since 2015
- Business Development manager
- Logicom Virtual Worlds
-
ChatterFeed
-
0Best Answers
-
1Likes Received
-
2Likes Given
-
22Questions
-
241Replies
How can we pass date selected from calendar to event override component?
-
- David Roberts 4
- November 09, 2023
- Like
- 0
- Continue reading or reply
How can I post to a web site and launch it at the same time?
I can Http post to a website from Apex
and I can navigate to a page reference from Aura.
How can I combine the two so that I open a web site while passing (not in the url) some parameters?
Is the only way to do the two steps?
-
- David Roberts 4
- July 06, 2023
- Like
- 0
- Continue reading or reply
How do I emulate the "Was this article helpful?" section in a custom 'article detail' component in a digital experience site?
What are the actions on those buttons?
-
- David Roberts 4
- March 30, 2023
- Like
- 0
- Continue reading or reply
When calling an apex method from a visualforce page, when should the method be of type PageReference and when should we use Void?
apex;commandbutton
apex:actionSupport
apex:actionFunction
etc
Should it always be a PageReference type rather than a void?
-
- David Roberts 4
- October 26, 2022
- Like
- 0
- Continue reading or reply
How to produce reports in Apex and Lightning
I'm using a simple Account Visit report which has a group but I don't find it with the code I have. Basically, I see the results in a JSON but can't interpret them into my chart.
Here's my class:
public class ReportViaApexController { //https://absyz.com/displaying-standard-report-data-in-lightning-component/ //https://cloudanswers.com/blog/run-salesforce-reports-in-apex //https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_analytics_report_data.htm //https://www.linkedin.com/pulse/reports-apex-its-use-vijayakumar-vm // @AuraEnabled public static string getReportPlanned(String AccId){ //Report repRec = [SELECT Id, Name, DeveloperName FROM Report WHERE DeveloperName LIKE 'Catalogue_Summary%']; Report repRec = [SELECT Id, Name, DeveloperName FROM Report WHERE DeveloperName LIKE 'Visit_Reports_by_accounts%']; //00O8E000000HkNvUAK // string reportPlannedId=repRec.Id; string filterId=String.valueOf(AccId).substring(0, 15); // Retrieves report metadata Reports.ReportDescribeResult describe = Reports.ReportManager.describeReport(reportPlannedId); Reports.ReportMetadata reportMd = describe.getReportMetadata(); // Add/Override filters Reports.ReportFilter filterlist = reportMd.getReportFilters()[0]; filterlist .setValue(filterId); //filterlist .setValue('In Progress'); //and Run report Reports.ReportResults reportResult = Reports.ReportManager.runReport(reportPlannedId,reportMd); system.debug('ReportResultsJSON '+JSON.serialize(reportResult)); MAP<String,Reports.ReportFact> summarizedRows=reportResult.getFactMap(); System.debug('summarizedRows: ' + summarizedRows); // Get the first down-grouping in the report Reports.Dimension dim = reportResult.getGroupingsDown(); System.debug('dim: ' + dim); Reports.GroupingValue groupingVal = dim.getGroupings()[0]; System.debug('Key: ' + groupingVal.getKey()); System.debug('Label: ' + groupingVal.getLabel()); System.debug('Value: ' + groupingVal.getValue()); // Construct a fact map key, using the grouping key value String factMapKey = groupingVal.getKey() + '!T'; // Get the fact map from the report results Reports.ReportFactWithDetails factDetails = (Reports.ReportFactWithDetails)reportResult.getFactMap().get(factMapKey); // Get the first summary amount from the fact map Reports.SummaryValue sumVal = factDetails.getAggregates()[0]; System.debug('Summary Value: ' + sumVal.getLabel()); // Get the field value from the first data cell of the first row of the report Reports.ReportDetailRow detailRow = factDetails.getRows()[0]; System.debug(detailRow.getDataCells()[0].getLabel()); return JSON.serialize(reportResult); }//Getreportplanned }//ReportViaApexController
My component from the bundle ReportViaApex:
<aura:component controller="ReportViaApexController" access="global" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:lightningQuickAction"> <ltng:require scripts="{!$Resource.chartJS23}" afterScriptsLoaded="{!c.createPlannedchart}"/> <aura:attribute name="accrecId" type="String" default = "0018E00000Wg0ZLQAZ" /> <canvas aura:id="chartCanvas" height="300" width="300"></canvas> </aura:component>
and my controller:
({ createPlannedchart: function(component) { var chartCanvas = component.find("chartCanvas").getElement(); console.log(chartCanvas); var action = component.get("c.getReportPlanned"); var getPlannedReportId = '00O8E000000HkNvUAK'; //Visit_reports_by_accounts% var accIdsub = '0018E000008IK3SQAW'; //an account var recId = component.get("v.accrecId"); console.log('got recId = '+ recId); var urlPlannedreport = '/lightning/r/Report/'+getPlannedReportId+'/view?queryScope=userFolders&fv0='+accIdsub; //fv is filter value //e.g. //https://virtualworlds--triggertes.lightning.force.com/lightning/r/Report/00O8E000000HkNvUAK/view?queryScope=userFolders&fv0=0018E000008IK3SQAW //console.log(urlPlannedreport); action.setParams({ "AccId": recId // component.get("v.accrecId") }); action.setCallback(this, function(response) { var state = response.getState(); if (state === "SUCCESS") { var reportResultData = JSON.parse(response.getReturnValue()); console.log(JSON.stringify(reportResultData)); var chartData = []; var chartLabels = []; var gDown = reportResultData.groupingsDown; console.log('gDown = ',gDown); var nullcheck = reportResultData.groupingsDown.groupings; if (nullcheck !== null) { for (var i = 0; i < (reportResultData.groupingsDown.groupings.length); i++) { //Iterate and prepare the list of Labels for the chart var labelItem = reportResultData.groupingsDown.groupings[i].label; chartLabels.push(labelItem); var keyTemp = reportResultData.groupingsDown.groupings[i].key; //Prepeare the chart data to be plotted. var valueTemp = reportResultData.factMap[keyTemp + "!T"].aggregates[0].value; chartData.push(valueTemp); }//next i }//endif nullcheck //Construct chart-doughnut/bar var chart = new Chart(chartCanvas, { type: 'bar', data: { labels: chartLabels, datasets: [{ label: "Count", data: chartData, backgroundColor: [ "#52BE80", "#76D7C4", "#1E8449", "#2ECC71", "#FFB74D", "#E67E22", "#F8C471", "#3498DB", "#00BCD4", "#D32F2F", "#82E0AA", "#AFB42B" ] }] }, options: { responsive: true, title: { display: true, text: 'Planned Visits' }, scales: { yAxes: [{ ticks: { // max: 100, stepSize: 25, beginAtZero: true }, scaleLabel: { display: true, labelString: 'Visits Count' }, }], xAxes: [{ scaleLabel: { display: true, labelString: 'Created Date' } }] }, maintainAspectRatio: false, legend: { display: false, position: "right", fullWidth: false, } } }); } else if (state === "ERROR") { console.log('Problem, response state: ' + state); }//endif error }); $A.enqueueAction(action); },//createPlannedchart })
I hope someone can't point me in the right direction.
Here's my returned metadata:
{"reportMetadata":{"topRows":null,"standardFilters":null,"standardDateFilter":{"startDate":null,"endDate":null,"durationValue":"CUSTOM","column":"DUE_DATE"},"sortBy":null,"showSubtotals":false,"showGrandTotal":false,"scope":"organization","reportType":{"type":"AccountCustomEntity$Visit_Report__c","label":"Companies with Visit Reports"},"reportFormat":"SUMMARY","reportFilters":[{"value":"0018E00000Wg0ZLQAZ","operator":"equals","filterType":"fieldValue","column":"ACCOUNT_ID"}],"reportBooleanFilter":null,"name":"Visit reports by accounts","id":"00O8E000000HkNvUAK","historicalSnapshotDates":null,"hasRecordCount":true,"hasDetailRows":false,"groupingsDown":[{"sortOrder":"ASCENDING","sortAggregate":null,"name":"ACCOUNT.NAME","dateGranularity":"NONE"}],"groupingsAcross":null,"division":null,"developerName":"Visit_reports_by_accounts","detailColumns":["CUST_NAME","Visit_Report__c.Date__c","Visit_Report__c.Type__c","Visit_Report__c.Goal_of_the_visit__c","Visit_Report__c.Goal_of_next_visit__c","Visit_Report__c.Main_competitor__c"],"description":null,"customSummaryFormula":null,"currencyCode":"GBP","crossFilters":null,"buckets":null,"aggregates":["RowCount"]},"reportExtendedMetadata":{"groupingColumnInfo":{"ACCOUNT.NAME":{"name":"ACCOUNT.NAME","label":"Account Name","groupingLevel":0,"dataType":"STRING_DATA"}},"detailColumnInfo":{"Visit_Report__c.Main_competitor__c":{"name":"Visit_Report__c.Main_competitor__c","label":"Main competitor","dataType":"PICKLIST_DATA"},"Visit_Report__c.Goal_of_next_visit__c":{"name":"Visit_Report__c.Goal_of_next_visit__c","label":"Goal of next visit","dataType":"STRING_DATA"},"Visit_Report__c.Goal_of_the_visit__c":{"name":"Visit_Report__c.Goal_of_the_visit__c","label":"Goal of the visit","dataType":"STRING_DATA"},"Visit_Report__c.Type__c":{"name":"Visit_Report__c.Type__c","label":"Type","dataType":"PICKLIST_DATA"},"Visit_Report__c.Date__c":{"name":"Visit_Report__c.Date__c","label":"Date","dataType":"DATE_DATA"},"CUST_NAME":{"name":"CUST_NAME","label":"Visit Report: Visit Report Name","dataType":"STRING_DATA"}},"aggregateColumnInfo":{"RowCount":{"name":"RowCount","label":"Record Count","downGroupingContext":null,"dataType":"INT_DATA","acrossGroupingContext":null}}},"hasDetailRows":false,"groupingsDown":{"groupings":null},"groupingsAcross":{"groupings":null},"factMap":{"T!T":{"key":"T!T","aggregates":[{"value":0,"label":"0"}]}},"allData":true}
-
- David Roberts 4
- August 23, 2022
- Like
- 0
- Continue reading or reply
How do I get the date from the selected calendar cell?
-
- David Roberts 4
- April 22, 2022
- Like
- 0
- Continue reading or reply
why do earlier debug statements disappear when I add wrapper objects to a list?
I create a new list of a wrapper class. .
When I add a newly created wrapper object to the list, it causes any debug statements before the call to disappear.
Any suggestions?
-
- David Roberts 4
- October 21, 2020
- Like
- 0
- Continue reading or reply
how to add a document version
String strDebug = 'some debug information \n'; //ContentDocument //SELECT title, LatestPublishedVersionId FROM ContentDocument where title = 'debuglog.txt' ContentVersion file = new ContentVersion( title = 'debuglog.txt', versionData = Blob.valueOf( strDebug ), pathOnClient = '/debuglog.txt' ); insert file;
but how do I overwrite it (add a new version) so I don't get multiple 'debuglog.txt' files?
-
- David Roberts 4
- November 14, 2019
- Like
- 0
- Continue reading or reply
How to create a custom object with Lookup(contact,user)
What, if any, are the pitfalls?
-
- David Roberts 4
- August 28, 2019
- Like
- 0
- Continue reading or reply
how to export country codes
Here's the Visualforce Page:
<apex:page controller="ExportToExcelController" readOnly="true" action="{!fetchListOfCountryCodes}" contentType="application/vnd.ms-excel#{!fileName}.xls"> <!-- https://help.salesforce.com/articleView?id=000338321&type=1&mode=1 --> <table> <apex:repeat value="{!Countries}" var="cos"> <tr> <td><apex:outputText>{!cos[0]}</apex:outputText></td> <td><apex:outputText>{!cos[1]}</apex:outputText></td> </tr> </apex:repeat> <tr></tr> <apex:repeat value="{!States}" var="st"> <tr> <td><apex:outputText>{!st[0]}</apex:outputText></td> <td><apex:outputText>{!st[1]}</apex:outputText></td> </tr> </apex:repeat> </table> </apex:page>
and the controller:
public class ExportToExcelController { public String fileName {get; set;} public List<List<String>> Countries {get; set;} public List<List<String>> States {get; set;} public void fetchListOfCountryCodes() { List<Schema.PicklistEntry> ple; fileName = 'countryandstatecodes'; Countries = new List<List<String>>(); Schema.DescribeFieldResult fieldResult = User.Countrycode.getDescribe(); ple = fieldResult.getPicklistValues(); //System.debug('Picklist::'+ple); for( Schema.PicklistEntry f : ple){ List<String> aCountry = new List<String>(); aCountry.add(f.getLabel()); aCountry.add(f.getValue()); //System.debug(f.getLabel() +'::'+ f.getValue()); Countries.add(aCountry); } States = new List<List<String>>(); fieldResult = User.statecode.getDescribe(); ple = fieldResult.getPicklistValues(); //System.debug('Picklist::'+ple); for( Schema.PicklistEntry f : ple){ List<String> aState = new List<String>(); aState.add(f.getLabel()); aState.add(f.getValue()); //System.debug(f.getLabel() +'::'+ f.getValue()); States.add(aState); } }//fetchListOfCountryCodes }//ExportToExcelController
-
- David Roberts 4
- August 27, 2019
- Like
- 0
- Continue reading or reply
Where do we post enhancement requests for the developer console?
Also, the debug logs won't show the last few lines without jumping back up the list.
The "Search" box overlays the horizontal scroll bar.
-
- David Roberts 4
- October 24, 2018
- Like
- 1
- Continue reading or reply
different apex:input value during testing of a visualforce page
When testing, I want a different value.
<!-- Normal Run-->
<apex:input value="runtime" name="status"/>
<!-- Test-->
<apex:input value="testing" name="status"/>
Does a vf page have the equivalent of the apex isTest() function?
or is there another method of forcing a different value to be used during testing?
-
- David Roberts 4
- June 05, 2018
- Like
- 0
- Continue reading or reply
unable to find the apex source
The test results shows a list of classes/components with their code coverage.
Ideally, selecting one shows the lines of code not covered.
However, sometimes I get the message "unable to find the apex source" and a number of dialogues pop up saying that.
What is the correct procedure to resolve this?
Any pointers greatly appreciated.
-
- David Roberts 4
- May 09, 2018
- Like
- 0
- Continue reading or reply
Command not updating fields on visualforce page
I want to search for a postcode/zip match and update the page with the result.
I'm using a command button to initiate the search.
My search is returning the correct result but not refreshing the other fields.
I guess I'm not using rerender correctly but can't get it to work.
Please help.
Here's the code:
<apex:page controller="TerritoryController" tabstyle="Territory__c">
<apex:form >
<apex:pageBlock title="Area Representative Lookup" id="theBlock">
<apex:pageBlockSection columns="1" id="theSection">
<apex:outputText value="{!Area}"/>
<apex:outputText value="{!Name}"/>
<apex:outputText value="{!Manager}"/>
<apex:outputText value="{!Postcode}"/>
<apex:pageBlockSectionItem >
<apex:outputLabel value="search by postcode" for="searchText" />
<apex:inputText value="{!searchText}" id="SearchText"/>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
<apex:pageBlockButtons >
<apex:commandButton action="{!lookup}" value="Lookup" rerender="theSection"/>
</apex:pageBlockButtons>
<!-- rerender="theBlock" immediate="true" -->
</apex:pageBlock>
</apex:form>
</apex:page>
public class TerritoryController {
// Called by apex page:
// ...salesforce.com/apex/vwAreaRepLookup
public List<Territory__c> myTerList;
public string name;
public string postcode;
public string area;
public string manager;
public string searchText;
//constructor
public TerritoryController() {
searchText = '';
}
public List<Territory__c> getmyTerList() {
system.debug('in getmyTerList searchText=>'+searchText+'<');
ApexPages.Message msgErr;
ApexPages.Message msgInfo;
String err = 'Hello';
String info = 'Hi!';
//example error post
//err='whatever';
//msgErr = new ApexPages.Message(ApexPages.Severity.ERROR, err);
//ApexPages.addmessage(msgErr);
//example info post
//info = 'searchtext=>'+searchText+'<';
//msgInfo = new ApexPages.Message(ApexPages.Severity.INFO, info);
//ApexPages.addmessage(msgErr);
Territory__c[] myTerList = [Select territory__c.area__c, territory__c.postcode__c, territory__c.name, territory__c.territory_manager__c from Territory__c where postcode__c = :searchText ];
return myTerList;
}//getMyRetLicList
public String getManager() {
return 'nothing';
}
public String getArea() {
return 'nothing';
}
public String getName() {
return 'nothing';
}
public String getPostcode() {
system.debug('in get postcode');
return 'nothing';
}
public String getSearchText() {
return 'MK';
}
public void setSearchText(String theSearchText) {
searchText = theSearchText;
}
public void lookup() {
system.debug('in lookup searchText=>'+searchText+'<');
Territory__c result = [Select territory__c.area__c, territory__c.postcode__c, territory__c.name, territory__c.territory_manager__c from Territory__c where postcode__c = :searchText limit 1];
name = result.name;
postcode = result.postcode__c;
area = result.area__c;
manager = result.territory_manager__c;
system.debug('name: '+name);
}//Lookup
}//TerritoryController
-
- David Roberts 4
- June 14, 2017
- Like
- 0
- Continue reading or reply
redirect causes map to fail
I then construct a url with parameters and launch another page using apex redirect to show a map - but it doesn't draw the map.
Yet, when I launch the page directly using the constructed URL, the map appears.
When sandbox laucnches it, a complex URL is displayed.
What is happenning and how can I remedy it?
I have festooned my code with console logs and system logs but can't see why it fails.
Please help.
-
- David Roberts 4
- June 11, 2017
- Like
- 0
- Continue reading or reply
very simple lightning component returning Account information.
The presentation of the information isn't tidy yet...that's my next learning excercise!
This can also be used as an action via an action button on the page.
It was based on the article
https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_using_lex_s1_config_action_recordid.htm#components_using_lex_s1_config_action_recordid
Hope this helps others.
accountSummary.cmp
-----------------------------
<aura:component controller="accountSummaryController"
implements="force:lightningQuickActionWithoutHeader,force:hasRecordId,force:appHostable,flexipage:availableForAllPageTypes">
<!-- based on https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_using_lex_s1_config_action_recordid.htm#components_using_lex_s1_config_action_recordid -->
<aura:attribute name="account" type="Account" />
<aura:handler name="init" value="{!this}" action="{!c.doInit}" />
<!-- Display details about the account -->
<div class="slds-page-header" role="banner">
<p class="slds-text-heading--label">{!v.account.Name}</p>
</div>
<!-- Display the details form needs work -->
<div class="slds-form--stacked">
<div class="slds-form-element">
<p class="slds-text-heading--label">{!v.account.BillingCity}</p>
</div>
<div class="slds-form-element">
<p class="slds-text-heading--label">{!v.account.BillingState}</p>
</div>
<div class="slds-form-element">
<p class="slds-text-heading--label">{!v.account.Website}</p>
</div>
</div>
</aura:component>
accountSummaryController.js
---------------------------------------
({
doInit : function(component, event, helper) {
// Prepare the action to load account record
var action = component.get("c.getAccount");
action.setParams({"accountId": component.get("v.recordId")});
// Configure response handler
action.setCallback(this, function(response) {
var state = response.getState();
if(component.isValid() && state === "SUCCESS") {
component.set("v.account", response.getReturnValue());
} else {
console.log('Problem getting account, response state: ' + state);
}
});
$A.enqueueAction(action);
}
})
...and the controller class
accountSummaryController.apxc
-------------------------------------------
public with sharing class accountSummaryController {
@AuraEnabled
public static Account getAccount(Id accountId) {
// Perform isAccessible() checks here
return [SELECT Name, BillingCity, BillingState,website FROM Account WHERE Id = :accountId];
}
}
-
- David Roberts 4
- March 31, 2017
- Like
- 0
- Continue reading or reply
Meaning of syntax [FIND...RETURNING][0]
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_methods.htm
which uses
results = (List<Account>)[FIND :searchText RETURNING account(Name, billingpostalcode, Phone)][0];
For a start, I don't know what the [0] is doing.
Also, what are search criteria. It isn't returning every account I'd expect.
An alternative would be:
results = [SELECT Name, Phone, billingpostalcode FROM Account where name like :searchText];
although I'd add a '%' to the search text.
Hope someone can explain.
Thanks.
-
- David Roberts 4
- September 27, 2016
- Like
- 0
- Continue reading or reply
EventRelation as a related list
I get errors like: "'EventRelations' is not a valid child relationship name for entity Event "
<apex:relatedList subject="{!anEvent}" list="EventRelations">
<apex:facet name="header">Attendees</apex:facet>
</apex:relatedList>
where "anEvent" is my event record (public Event in controller) which succesfully returns all the fields of the event in a pageBlock.
Any ideas?
-
- David Roberts 4
- September 02, 2016
- Like
- 0
- Continue reading or reply
"Build a mapping application for iPhone" example is confusing to me.
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_mobile_example.htm
but, as far as I'm concerned, there are some missing instructions.
I'm new to this so, although it may seem obvious, I just don't know how to make it work.
There are two parts that don't make sense to me and I'd be grateful for any assistance.
I'm not sure what to do with the
"The following markup defines the iuivf page used as the template:"
Where do I save the code and as what?
Similarly, what do I do with
" Visualforce page that displays the phone number and rating of the account the user selected from the list view."
What do I call it? Is this the main page that is called to make this work?
Many thanks, Dave.
-
- David Roberts 4
- May 05, 2016
- Like
- 0
- Continue reading or reply
Assign an Account to a custom object's field that is an account lookup.
I want to compare accounts
if (thisAc == thatAc){
} //endif
and tried
if (thisAc.id == thatAc.id){
} //endif
My custom object has an account field: MyCustomObject__c has referenceCompany__c
I can't seem to copy it to another custom object - even a temporary Account
starting from MyCustomObject my1...
MyOtherCustomObject myOco = new(MyOtherCustomObject);
myOco.copiedCompany__c = my1.referenceCompany__c;
I've tried:
Account thisAc = .my1.referenceCompany__c;
and
Account thatAc= .my1.referenceCompany__r; (which seems close to the answer).
Any suggestions?
Thanks in advance.
-
- David Roberts 4
- April 28, 2016
- Like
- 0
- Continue reading or reply
Where do we post enhancement requests for the developer console?
Also, the debug logs won't show the last few lines without jumping back up the list.
The "Search" box overlays the horizontal scroll bar.
-
- David Roberts 4
- October 24, 2018
- Like
- 1
- Continue reading or reply
How can we pass date selected from calendar to event override component?
- David Roberts 4
- November 09, 2023
- Like
- 0
- Continue reading or reply
How can I post to a web site and launch it at the same time?
I can Http post to a website from Apex
and I can navigate to a page reference from Aura.
How can I combine the two so that I open a web site while passing (not in the url) some parameters?
Is the only way to do the two steps?
- David Roberts 4
- July 06, 2023
- Like
- 0
- Continue reading or reply
How do I emulate the "Was this article helpful?" section in a custom 'article detail' component in a digital experience site?
What are the actions on those buttons?
- David Roberts 4
- March 30, 2023
- Like
- 0
- Continue reading or reply
Debugging with Email Message Flow
Hey all, I have a flow that I am kicking off when an email message is recevied by the system. When I try to debug since it's not working right, I cannot do so as I cannot for the life of me figure out how to pick an email in the system to test from! This is the screen and what it's looking for. What does it want here. The ID of an icoming email preveiously recieved did not do the trick. I'm having an issue with this flow not working and I really want to run in debug mode to figure out where it's stopping in the process! I've searched google and can't find anything on how to pass this flow an email message!
- Jennifer Wolfel 13
- July 01, 2022
- Like
- 0
- Continue reading or reply
How do I get the date from the selected calendar cell?
- David Roberts 4
- April 22, 2022
- Like
- 0
- Continue reading or reply
Automated Process User’s email address isn’t valid
Hi there,
I am gettinhg the following warning in my flow, where I have a send email action, which has a no reply email address as the sender address:
xxxxxx (Action) - Because the Automated Process User’s email address isn’t valid, this flow can’t send emails for actions or errors. On the Process Automation Settings page in Setup, the Automated Process User Email Address must specify an organization-wide email address for the system administrator profile.
The proccess automation settings and the organization-wide email addresses are already set up correctly, though.
- Dayene
- February 16, 2022
- Like
- 0
- Continue reading or reply
Override New Event Button
I think there is no way except using quick action instead of it.
Any idea please.
- klthaw
- May 20, 2021
- Like
- 0
- Continue reading or reply
How to create new Contact (firstname & lastname) from Account.Name
We have orders with associated accounts being created as part of an integration with eCommerce and ERP.
It is essentially creating person accounts since these are consumers. Instead of enabling person accounts, I would like to create a new contact record using the data from the account where Account.Person__c = true (custom field created to designate consumer accounts).
This would be an easy PB but I'm having trouble setting values with the name fields. Any shared experience on how to "reverse-concatenate" Account.Name into Contact first name & last name?
Thanks in advance
- mcc22
- January 05, 2021
- Like
- 0
- Continue reading or reply
- Bablu Kumar Pandit
- July 13, 2020
- Like
- 0
- Continue reading or reply
Trying to return a list of custom object records to my collection variable via apex action
Hello all,
I'm building my first flow, which is now in flow builder. My first major hurdle is that I can't seem to send a string to an apex action, query some records using that string as a soql criterion, then return the list.
My Apex action looks like this:
global class Flow_ChecklistTemplateItemGetter{ @invocableMethod(label = 'Get Template Items' description = 'gets all Checklist Template Items whose "Applies_To" field contains the provided machine model') global static List<Checklist_Template_Item__c> getRelevantTemplateItems(List<String> modelList){ String searchModel; // this will only be a single value for(String s : modelList){ searchModel = s; } System.debug('SearchModel = '+searchModel); String queryString = 'Select Id, Checkbox_Options__c, Checklist_Template_Section__c, Objective__c, Required__c, Sort_Order__c From Checklist_Template_Item__c Where Applies_To__c Includes(:searchModel)'; List<Checklist_Template_Item__c> itemList = Database.query(queryString); for(Checklist_Template_Item__c cti : itemList){ System.debug('checklist template item = '+cti); } return itemList; } }"modelList" is only ever going to be a single value, which is why I assign it to its own string for querying.
I get the error "The number of results does not match the number of interviews that were executed in a single bulk execution request".
Well...no kidding. I don't want to only return one record just because I only had one string input.
What I thought might be the reason was that my output variable was not a collection variable, but the collection variable I created in followup to that is un-selectable from my Apex action.
I can only select variables that accept a single record.
- Jason Kuzmak 12
- March 22, 2019
- Like
- 0
- Continue reading or reply
How to download the developer console query results?
SELECT CreatedDate,Id, Owner.Name,Inquiry_Type__c, (SELECT id FROM EmailMessages WHERE Incoming = true) FROM Case WHERE Sales_Department__c='Sales' AND Response_Indicator__c=TRUE
- Yogesh Biyani
- July 27, 2018
- Like
- 0
- Continue reading or reply
Custom Lightning Component not showing in Lightning App Builder Custom Components
Can anyone review the codes quickly and check why the component is not showing on the list of available components on the lightning app builder although it has force:appHostable? Thanks!
COMPONENT
<aura:component controller="NonUserAccountTeamController" implements="force:appHostable,force:hasRecordId,flexipage:availableForAllPageTypes"> <aura:attribute name="nonUserAccountTeamMembers" type="Non_User_Account_Team__c[]" /> <aura:attribute name="employees" type="Employee__c[]" /> <aura:handler name="updateNonUserAccountTeam" event="c:updateNonUserAccountTeamUser" action="{!c.handleUpdateNonUserAccountTeam}"/> <aura:handler name="init" action="{!c.doInit}" value="{!this}" /> <div class="slds"> <div class="slds-page-header"> <div class="slds-grid"> <div class="slds-col slds-has-flexi-truncate"> <p class="slds-text-heading--label">Coverage Team</p> <div class="slds-grid"> <div class="slds-grid slds-type-focus slds-no-space"> <h1 class="slds-text-heading--medium slds-truncate" title="Coverage Team"> {!'Coverage Team Members ' + '(' + 'Non_User_Account_Team__c[].size' +')'} </h1> </div> <ui:button aura:id="button" buttonTitle="Manage the employees handling this account" class="button" label="Add Coverage Team Members" press="{!c.clickAdd}"/> </div> </div> </div> </div> <!-- End of Header --> </div> <!-- End of SLDS --> <c:NonUserAccountTeamListItem nonUserAccountTeams="nonUserAccountTeamMembers" employees="employees"/> <ui:button aura:id="button" buttonTitle="View all the members of this team" class="button" label="View All" press="{!c.clickViewAll}"/> </aura:component>
CONTROLLER:
({ doInit : function(component, event, helper) { // Prepare the action to load account record var action = component.get("c.getUsers"); action.setParams({ "recordId" : component.get("v.recordId") }); // Configure response handler action.setCallback(this, function(response) { var state = response.getState(); if(component.isValid() && state === "SUCCESS") { component.set("v.nonUserAccountTeamMembers", response.getReturnValue()); } else { console.log('Problem getting account, response state: ' + state); } }); $A.enqueueAction(action); }, clickAdd : function (component, event, helper) { var createRecordEvent = $A.get("e.force:createRecord"); createRecordEvent.setParams({ "entityApiName": "Non_User_Account_Team__c" }); createRecordEvent.fire(); }, clickViewAll : function (component, event, helper) { var relatedListEvent = $A.get("e.force:navigateToRelatedList"); relatedListEvent.setParams({ "relatedListId": "nonUserAccountTeamMembers", "parentRecordId": component.get("v.recordId") }); relatedListEvent.fire(); }, handleUpdateNonAccountUserTeam: function(component, event, helper) { //Update the new expense var updatedUser = event.getParam("nonUserAccountTeamMember"); helper.updateUser(component, updatedUser); }, })
HELPER:
({ saveUser: function(component, user, callback) { var action = component.get("c.saveUser"); action.setParams({ "user": user }); if (callback) { action.setCallback(this, callback); } $A.enqueueAction(action); }, createUser: function(component, user) { this.saveExpense(component, user, function(response){ var state = response.getState(); if (component.isValid() && state === "SUCCESS") { var users = component.get("v.nonUserAccountTeamMembers"); expenses.push(response.getReturnValue()); component.set("v.nonUserAccountTeamMembers", users); } }); }, updateUser: function(component, user) { this.saveExpense(component, user); }, })
- Jefferson Fernandez
- November 20, 2016
- Like
- 0
- Continue reading or reply
Flow Error: The number of results does not match ....
Here is the apex class I am using, I want to store list<string> data from a json file into a flow variable:
global class par{ global static List<string> l = new list<string>(); @InvocableMethod(label='Get Map' description='Returns the values of Maps') global static List<String> CallMap(){ HttpRequest req = new HttpRequest(); req.setEndpoint('https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=AIzaSyBOyIQi54LMykmzSOvCuQ2naVvVQEsEfHw'); req.setMethod('GET'); Http http = new Http(); HTTPResponse res = http.send(req); JSONParser parser = JSON.createParser(res.getBody()); while (parser.nextToken()!= null) { if ((parser.getCurrentToken() == JSONToken.FIELD_NAME)) { string fieldName = parser.getText(); parser.nextToken(); if(fieldName == 'place_id') { string place = parser.getText(); system.debug(place); l.add(place); parser.nextToken(); }else if(fieldName == 'status') { string status = parser.getText(); system.debug(status); l.add(status); } } } return l; } }
- Adelchi Pelizzo
- August 28, 2016
- Like
- 0
- Continue reading or reply
How "Type: Object" is used in Salesforce
Hi ,
I am curious to know which method for "type: object" are supported in salesforce.
What its use and how it can be leaveraged in salesforce.
Thanks
_RSN
- ThisIsRSN
- November 23, 2013
- Like
- 0
- Continue reading or reply
How to solve error Too many Email Invocations: 11
I am facing this problem, I have my custom apex code from where i am sending emails. I am facing "Too many Email Invocations: 11" error, can any one tell me about this.
krish
- KrishSingh
- June 02, 2011
- Like
- 0
- Continue reading or reply
Accessing public calendars and resources in APEX
Is there a way to access public calendar and resources from APEX?
Here is what I trying to do:
Given a event, I want to find the name of the public calendar and also find the name of the resource invited to the event. Event.OwnerId gives me the public calendar id. But, I not able to find the public calendar name. Likewise, I can query EventAttendee to find the AttendeeId, but I can't seem to find a way find to find the resource name.
Any thoughts / suggestions? Thanks a lot.
- aeben
- April 09, 2011
- Like
- 0
- Continue reading or reply
How to show specific value of the element in the Arraylist in a Visualforce page?
Hi,
First, i added some values to the List, and then I return the entire list to visualforce page, my problem is that i can not show specific value of element in the visualforce page but only can show all the elements together once. Anybody has this experience, welcome.
- Supper_Kent
- November 30, 2009
- Like
- 0
- Continue reading or reply
Passing Parameters with Commandbutton
I want to pass one parameter when user clicks on a command button.
I tried the following
<apex:commandButton action="{!registerForEvent}" value="Register" title="Register">
<apex:param name="eventId" value="{!r.id}" assignTo="{!eventId}"/>
</apex:commandButton>
It does not work. The eventid value is coming as null in the controller.
I was searching through the posts and found a few that says that this is a bug and parameters cannot be passed with command button. Some posts say, it works using assignTo attribute and having proper getter and setter methods for the assignTo variable. It is not working for me.
Is it working for anyone? Please let me know.
- DCS
- July 29, 2009
- Like
- 0
- Continue reading or reply
How to print today's date in visualforce?
I know this is probably a silly question but I'm new to web programming and salesforce/apex/vf and I need to do this but cannot find a way.
I need to be able to simply print today's date on a page. I've tried embedding some javascript in <script></script> tags and that does not seem to do anything at all.
Thank's to all that read
- astro
- February 20, 2009
- Like
- 0
- Continue reading or reply
Insert event field in email template
- Pankaj IRT
- September 26, 2015
- Like
- 1
- Continue reading or reply
Passing values from one visualforce page to another
I use a controller to display a list of products with a checkbox against each product value . When the end user selects few products and clicks "add quantity" button it should navigate to another VF page in which i should display the selected products and an input filed for quantity. Quite similiar to the way of adding products in opportunity. In the code below im using a single controller for 2 VF pages. Problem i m facing here is when the second page is called the wrapperList becomes null instead of holding the values of the selected products. Please give me some suggestions.
public with sharing class productAdd { public List<Product2> Stdproduct{get;set;} public List<wrapper> wrapperList {get;set;} public list<wrapper> SelectedprodList{get;set;} public class wrapper { public product2 cont{get;set;} public Boolean selected{get;set;} public integer quantity{get;set;} public wrapper(product2 c) { cont = c; selected = false; } } public List<wrapper> getProdList() { if((wrapperList == null) || (wrapperList.size() == 0)) { wrapperList = new List<wrapper>(); Stdproduct = [Select id, Name from product2 limit 2]; for(Product2 c :(List<Product2>)Stdproduct) { wrapperList.add(new wrapper(c)); } } return wrapperList; } public PageReference AddQuantity() { PageReference pageRef= new PageReference('/apex/AddQuantity'); pageRef.setredirect(true); return pageRef; } public list<wrapper> getSelectedproducts() { selectedprodList = new list<wrapper>(); for(wrapper cCon:getProdList()) { if(cCon.selected==true) { selectedprodList.add(cCon); } } return selectedprodList; } } <!-- 1st Page --> <apex:page Controller="productAdd" sidebar="false"> <table width="90%"> <apex:form> <apex:repeat value="{!ProdList}" var="l" > <tr> <td> <apex:inputCheckbox value="{!l.selected}"/> </td> <td class="fieldname">{!l.cont.name}</td> </tr> </apex:repeat> <tr> <apex:commandButton value="Add Quantity" action="{!AddQuantity}"/> </tr> </apex:form> </table> </apex:page> <!-- 2nd Page --> <apex:page Controller="productAdd"> <apex:form > <apex:pageBlock > <apex:pageBlockTable value="{!Selectedproducts}" var="c" id="table"> <apex:column value="{!c.cont.Name}" /> <apex:column > <apex:inputText value="{!c.quantity}"/> </apex:column> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page>
- AbiBrownie
- September 06, 2011
- Like
- 2
- Continue reading or reply