You need to sign in to do that
Don't have an account?

Lightning Out : No access to data
I use Lightning Out to integrate my LWCs on external sites.
My LWC displays contact records and works perfectly on my Salesforce app homepage.
On an external site, my LWC is displayed but not the records.
The code of the LWC and my application is available at this address:https://github.com/Nashle/lightningout/
The live is available at this address:https://nashle.github.io/lightningout/
Do I need to create an application connected with OAuth to allow GestUsers to access the application's data? And if so, how should it be configured to allow my LWC to display the data when it is hosted on a remote site?
Can you help me please ?

REST API Integration Issue. - System.HttpResponse[Status=Service Unavailable, StatusCode=503]
I will try to frame my question in short.
End Goal : REST API Integration from Salesforce to a InHouse Lead Management System(LMS2)
SUCCESS Through Chrome APP
1. All i need to do is retrieve values from LMS2. When i tried to use the Chrome APP 'Advanced Rest Client' and have passed the appropriate URL and Content in XML/TEST format in the form of POST methoed I was able to retrieve the values from LMS2 database.
For EG : If i pass 92126 then i was able to get 'SAN DIEGO' which is correct.
Here is the link (https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=en-US)for Advanced REST Client.
PROBLEM from Salesforce :
2) When i created this REST class in SAlesforce and tried invoking the End Point then its throwing this error.
System.HttpResponse[Status=Service Unavailable, StatusCode=503]
public with sharing class LmsRestApiIntegration {
//LmsRestApiIntegration.invokeRestAPI()
@future(callout = true)
public static void invokeRestAPI(){
String URL = 'http://pasquote-bfapp.tent.trt.ccc.pri/QuickQuoteWebSvc/QQWebSvc.asmx';
String xmlContent = '';
xmlContent = '<?xml version="1.0" encoding="utf-8"?>';
xmlContent = xmlContent + '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">';
xmlContent = xmlContent + '<soap:Body>';
xmlContent = xmlContent + '<GetCityListFromZip xmlns="http://www.ccc.com/irv/quickquote/auto/2006/10/01">';
xmlContent = xmlContent + '<zipcode>92126</zipcode></GetCityListFromZip>';
xmlContent = xmlContent + '</GetCityListFromZip>';
xmlContent = xmlContent + ' </soap:Body>';
xmlContent = xmlContent + '</soap:Envelope>';
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setBody(xmlContent);
req.setHeader('content-type','text/xml');
req.setHeader('content-length', '0');
req.setEndpoint(URL);
req.setHeader('SoapAction', 'http://www.ccc.com//irv/quickquote/auto/2006/10/01/GetCityListFromZip');
req.setMethod('POST');
String response = '' ;
HttpResponse res = h.send(req);
response = res.getBody();
System.debug('Response :'+response);
}
}
Please guide.
Thank You
Shri


Lightning component: save a generated PDF as File/Attachment
I have a Lightning component on my opportunity page that does the following:
- When clicking on the button, it opens a Lightning modal box
- This modal box display a Visualforce page, renderas PDF, inside an iframe.
- I have two button bellow: Cancel, Save
-> My issue is: how to save the PDF generated by the Visualforce page, and attach it to the Opportunity?
Any ideas?
demoModal.cmp:
<aura:component implements="flexipage:availableForAllPageTypes,force:hasRecordId" access="global"> <!--use boolean attribute for Store true/false value, make default to "false" so modal box are not display on the load of component. --> <aura:attribute name="recordId" type="Id" /> <aura:attribute name="isOpen" type="boolean" default="false"/> <!--Use "slds-m-around- -xx-large" class to add standard Large padding to the component--> <div class="slds-m-around--xx-large"> <button class="slds-button slds-button--brand" onclick="{!c.openModel}">Create a document</button> <!--Use aura:if tag to display Model Box, on the bese of conditions. [isOpen boolean attribute] --> <aura:if isTrue="{!v.isOpen}"> <!--###### MODAL BOX Start From Here ######--> <div role="dialog" tabindex="-1" aria-labelledby="header99" class="slds-modal slds-fade-in-open "> <div class="slds-modal__container"> <!-- ###### MODAL BOX HEADER Part Start From Here ######--> <div class="slds-modal__header"> <button class="slds-button slds-modal__close slds-button--icon-inverse" title="Close" onclick="{!c.closeModel}"> X <span class="slds-assistive-text">Close</span> </button> <h2 id="header99" class="slds-text-heading--medium">Your document</h2> </div> <!--###### MODAL BOX BODY Part Start From Here ######--> <iframe src="{! '/apex/monpdf?Id='+v.recordId}" width="100%" height="500px;" frameBorder="0"/> <div class="slds-modal__content slds-p-around--medium"> <p><b>Some random text. </b> </p> </div> <!--###### MODAL BOX FOOTER Part Start From Here ######--> <div class="slds-modal__footer"> <button class="slds-button slds-button--neutral" onclick="{!c.closeModel}" >Cancel</button> <button class="slds-button slds-button--brand" onclick="{!c.savenClose}">Save the document</button> </div> </div> </div> <div class="slds-backdrop slds-backdrop--open"></div> <!--###### MODAL BOX Part END Here ######--> </aura:if> </div> </aura:component>
monpdf.vfp:
<apex:page standardController="Opportunity" showHeader="false" renderAs="pdf"> {!Opportunity.Account.Name} </apex:page>
demoModalController.js
({ openModel: function(component, event, helper) { // for Display Model,set the "isOpen" attribute to "true" component.set("v.isOpen", true); }, closeModel: function(component, event, helper) { // for Hide/Close Model,set the "isOpen" attribute to "Fasle" component.set("v.isOpen", false); }, savenClose: function(component, event, helper) { // Display alert message on the click on the button from Model Footer alert('It works'); component.set("v.isOpen", false); }, })

I created one vf page that renders a PDF
<apex:page controller="TextVFPDFController" renderAs="PDF"> {!opp.Name} </apex:page>
I am just showing opportunity name in PDF. Here is the controller for vf page -
public class TextVFPDFController { public Opportunity opp{get;set;} public TextVFPDFController(){ Id oppId = apexpages.currentpage().getparameters().get('id'); opp = [select id,Name from opportunity where id=: oppId]; } }
Now i created one lightning component which has only one save button , on click of this button , it will create same pdf and attach it to an account
public class TestAppController { @auraEnabled public static void savePDFOpportunity(){ PageReference pdfPage = new PageReference('/apex/TextVFPDF'); pdfPage.getParameters().put('Id', '0062800000C044o'); Blob pdfContent = pdfPage.getContent(); Attachment attach1= new Attachment(); attach1.ParentId = '0010K00001e2kcG'; attach1.Name = 'Test Attachment for PDF'; attach1.Body = pdfContent; attach1.contentType = 'application/pdf'; insert attach1; } }
<aura:application controller="TestAppController"> <lightning:button variant="brand" label="Save" onclick="{! c.savePDF }" /> </aura:application>
({ savePDF : function(cmp, event, helper) { var action = cmp.get("c.savePDFOpportunity"); action.setCallback(this, function(response) { var state = response.getState(); if (state === "SUCCESS") { alert('Attachment saved successfully'); } else if (state === "INCOMPLETE") { // do something } else if (state === "ERROR") { var errors = response.getError(); if (errors) { if (errors[0] && errors[0].message) { console.log("Error message: " + errors[0].message); } } else { console.log("Unknown error"); } } }); $A.enqueueAction(action); } })
Let me know if this solution makes sense to your problem.

cat not recognized as an internal or external command
Thanks!

Hope this helps. Please dont ask me about SFDX bcz i am myself struggling with the sfdx setup. :-P
finding domain name from website
On the Account object I have created a formula field called Domain_Name__c . The formula I have used is this,
SUBSTITUTE(Website, LEFT(Website, FIND("www.", Website)), NULL)
Where website is a standard field on Account.
If Website is www.xyzdomain.com or https://www.xyzdomain.com
In Domain_Name__c I expected result as xyzdomain.com
Instead i am getting the result either as
.xyzdomain.com or ww.xyzdomain.com depending on whether the Email entered was 'www.xyzdomain.com' or 'https://www.xyzdomain.com'
Any thoughts how I can only get the text after the .
e.g If, in the field Website I enter www.salesforce.com or https://www.salesforce.com the result in the Domain_Name__c should be salesforce.com


So ok man remove __c and try it it's working fine
SUBSTITUTE(Website, LEFT(Website, FIND(".", Website)), NULL)
If it is helpful plz mark as solution for others it may benfit

Cannot get quickaction to close after clicking lightning component quick action
I'm extremely new to lightning components and trying to replace some of our custom javascript buttons with lightning compatible options. One button takes ownership of a lead. I found a post that does something similar for cases and tried to modify it for my purpose: https://learnownlightning.blogspot.com/2018/01/change-owner-update-record-using.html
It seems to be doing the record update based on apex code, but it launches a quickaction screen with a cancel button that doens't go away. I've seen it posted that you can use
$A.get("e.force:closeQuickAction").fire();It is not working for me. I'm not sure if I'm not puting that code in the right place but I'm hoping someone can help me figure out a way to click the quick action button, have the lead change ownership, and that's it.
Here is my code so far:
Component:
<aura:component implements="force:lightningQuickAction,force:hasRecordId" controller="LightningComponent_MoveToMarketing" access="global" > <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> </aura:component>Controller:
({ doInit : function(component, event, helper) { var leadId = component.get("v.recordId"); var action = component.get("c.changeOwnerMethod"); action.setParams({ leadId : leadId }); action.setCallback(this, function(response) { if(response.getState() === "SUCCESS") { console.log("Lead Owner Changed To Current login User"); var rec = response.getReturnValue(); console.log(rec.OwnerId); } }); $A.enqueueAction(action); $A.get("e.force:closeQuickAction").fire(); $A.get('e.force:refreshView').fire(); } })
Apex Class:
public class LightningComponent_MoveToMarketing { @AuraEnabled public static Lead changeOwnerMethod(Id leadId) { if(leadId != null) { Lead l = [SELECT OwnerId FROM Lead WHERE Id = :leadId]; l.OwnerId = UserInfo.getUserId(); //update case Ownerid with loggedin userid. update l; return l; } return null; } }
Any ideas?


$A.get("e.force:closeQuickAction").fire(); $A.get('e.force:refreshView').fire();
inside the callback function. It should be good then.
Your controller should be like this.
({ doInit : function(component, event, helper) { var leadId = component.get("v.recordId"); var action = component.get("c.changeOwnerMethod"); action.setParams({ leadId : leadId }); action.setCallback(this, function(response) { if(response.getState() === "SUCCESS") { console.log("Lead Owner Changed To Current login User"); var rec = response.getReturnValue(); console.log('->'+rec.OwnerId); $A.get("e.force:closeQuickAction").fire(); $A.get('e.force:refreshView').fire(); } }); $A.enqueueAction(action); } })
Please mark it solved if this is working for you.
Thanks.

Trailhead Recommendations?
I registered with trailhead.
I’m an SDR looking to expand my Salesforce skill set. Let’s pretend I have none. Particularly looking for the basics around reporting, and any other trails that may be beneficial to spend some time with.
My goal is to have a competent understanding of SF to build my sales as I enter a closing role and the relevant tools in SF that will help me gain an advantage.
Thanks in advance!

Below are few trailhead links, hope it helps:)
https://trailhead.salesforce.com/en/content/learn/modules/sales_admin_sales_reports_for_lex
https://trailhead.salesforce.com/en/content/learn/modules/sales-activity-analysis

Display google maps based on Account Info
Passing ID to other Page to display Google maps but not able to display maps , Any help would be appreciated
Here's my Code
<apex:page standardController="Account">
<script src="https://maps.google.com/maps?file=api">
</script>
<script type="text/javascript">
var map = null;
var geocoder = null;
var address = "{!Account.BillingStreet}, {!Account.BillingPostalCode} {!Account.BillingCity}, {!Account.BillingState}, {!Account.BillingCountry}";
function initialize() {
if(GBrowserIsCompatible())
{
map = new GMap2(document.getElementById("MyMap"));
map.addControl(new GMapTypeControl());
map.addControl(new GLargeMapControl3D());
geocoder = new GClientGeocoder();
geocoder.getLatLng(
address,
function(point) {
if (!point) {
document.getElementById("MyMap").innerHTML = address + " not found";
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.bindInfoWindowHtml("Account Name : <b><i> {!Account.Name} </i></b>
Address : "+address);
}
}
);
}
}
</script>
<div id="MyMap" style="width:100%;height:300px"></div>
<script>
initialize() ;
</script>
</apex:page>



HI,
Try this.
<apex:page standardController="Account">
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var myOptions = {
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
}
var map;
var marker;
var geocoder = new google.maps.Geocoder();
var address = "{!Account.BillingStreet}, " + "{!Account.BillingCity}, " + "{!Account.BillingPostalCode}, " + "{!Account.BillingCountry}";
var infowindow = new google.maps.InfoWindow({
content: "<b>{!Account.Name}</b><br>{!Account.BillingStreet}<br>{!Account.BillingCity}, {!Account.BillingPostalCode}<br>{!Account.BillingCountry}"
});
geocoder.geocode( { address: address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK && results.length) {
if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
//create map
map = new google.maps.Map(document.getElementById("map"), myOptions);
//center map
map.setCenter(results[0].geometry.location);
//create marker
marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
title: "{!Account.Name}"
});
//add listeners
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
google.maps.event.addListener(infowindow, 'closeclick', function() {
map.setCenter(marker.getPosition());
});
}
} else {
$('#map').css({'height' : '15px'});
$('#map').html("Oops! {!Account.Name}'s billing address could not be found, please make sure the address is correct.");
resizeIframe();
}
});
function resizeIframe() {
var me = window.name;
if (me) {
var iframes = parent.document.getElementsByName(me);
if (iframes && iframes.length == 1) {
height = document.body.offsetHeight;
iframes[0].style.height = height + "px";
}
}
}
});
</script>
<style>
#map {
font-family: Arial;
font-size:12px;
line-height:normal !important;
height:250px;
background:transparent;
}
</style>
</head>
<body>
<div id="map"></div>
</body>
</apex:page>
Regards,
Rajesh.
Einstein Analytics Data Preparation Specialist #3
I got following error on step 3.
Challenge Not yet complete... here's what's wrong:
Couldn’t find Agency records from the Account object.
Can anyone pass this step?
Thanks in advance.
Regards,
LinThaw

Please refer below, I passed this step 3.
fig 1.
fig 2.
and create Top 5 Agencies lenses.
Regards,
LinThaw

I am working on crm software. After login salesforce account, it will redirect to crm software.How to integrate my company crm website authentication process with salesforce?


Yes , you can integrate SSO in any website with Salesforce for that Salesforce needs only Metadata file of which one to you integrate. So first generate METADATA file in Your CRM tool use this file in Salesforce.
SSO Implementationntation method in Salesforce.
https://help.salesforce.com/articleView?id=sso_saml.htm&type=5&sfdcIFrameOrigin=null
If you have time practice the same thing in Salesforce trailhead. https://trailhead.salesforce.com/en/content/learn/modules/identity_login/identity_login_sso
Regards
Vijay
Make sure you have proper OWD/ records shared with community guest user along with CRUD and field-level security.