-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
10Questions
-
3Replies
Styling the pdf
Hi,
I want to style my PDF. By using VF page I am able to get certain contact details through putting ID in url and able to edit and update and changed fields will reflect in salesforce org. After updating it will save as PDF in Notes & Attachments to that particular record. Vf page preview is like below.....
So, Now the problem is that I'm trying to change the style of PDF (that is saved to particular records) from below to look like the records fields in box style .As shown below pdf have no styling.
ShowContactDetail.vfp ========
<apex:page controller="UpdateContactDetail">
<style type="text/css">
#title {
font-size: 150%;
margin-left: 30%;
}
</style>
<h2 id="title">Contact</h2><br/><br/>
<apex:form >
<apex:pageBlock >
<apex:pageBlockTable value="{!con}" var="b">
<apex:column headervalue="Title">
<apex:OutputText value="{!b.Title}" />
</apex:column>
<apex:column headervalue="First Name">
<apex:OutputText value="{!b.FirstName}" />
</apex:column>
<apex:column headervalue="Last Name">
<apex:OutputText value="{!b.LastName}" />
</apex:column>
<apex:column headervalue="Email">
<apex:inputText value="{!b.Email}" />
</apex:column>
<apex:column headervalue="Phone">
<apex:inputText value="{!b.Phone}" />
</apex:column>
<apex:column >
<apex:commandLink action="{!updateRecord}" value="Update"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
UpdateContactDetail.apxc =======
public class UpdateContactDetail {
public Contact con {get;set;}
public Id recId;
public UpdateContactDetail ()
{
recId = ApexPages.CurrentPage().getparameters().get('recordId');
getRecord();
}
public void getRecord() {
con = [select Id, Name,FirstName, LastName, Title, Email, Phone from contact where id =:recId];
}
public PageReference updateRecord(){
try{
update con;
}
catch(DmlException ex){
ApexPages.addMessages(ex);
}
return null;
}
}
GeneratePDFOfContactTrigger.apxt =======
trigger GeneratePDFOfContactTrigger on Contact (after update) {
GeneratePDFController.generateContactPDF(Trigger.new);
}
GeneratePDFController.apxc ==========
public class GeneratePDFController{
public static final String FORM_HTML_START = '<HTML><BODY>';
public static final String FORM_HTML_END = '</BODY></HTML>';
public static void generateContactPDF(list<contact> contactList){
String pdfContent = '' + FORM_HTML_START;
for(contact con : contactList){
try
{
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<H2>Contact Information</H2>';
//Dynamically grab all the fields to store in the PDF
Map<String, Schema.SObjectType> sobjectSchemaMap = Schema.getGlobalDescribe();
Schema.DescribeSObjectResult objDescribe = sobjectSchemaMap.get('Contact').getDescribe();
Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
//Append each Field to the PDF
for(Schema.SObjectField fieldDef : fieldMap.values()){
Schema.Describefieldresult fieldDescResult = fieldDef.getDescribe();
String name = fieldDescResult.getName();
if(name == 'Title' || name == 'FirstName' || name == 'LastName' || name == 'Email' || name == 'Phone'){
pdfContent = pdfContent + '<P>' + name + ': ' + con.get(name) + '</P>';
}
}
pdfContent = pdfContent + FORM_HTML_END;
}catch(Exception e){
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<P>THERE WAS AN ERROR GENERATING PDF: ' + e.getMessage() + '</P>';
pdfContent = pdfContent + FORM_HTML_END;
}
attachPDF(con,pdfContent);
}
}
public static void attachPDF(Contact con, String pdfContent){
try{
Attachment attachmentPDF = new Attachment();
attachmentPDF.parentId = con.Id;
attachmentPDF.Name = con.FirstName+' '+con.LastName+ '.pdf';
attachmentPDF.body = Blob.toPDF(pdfContent); //This creates the PDF content
insert attachmentPDF;
}catch(Exception e){
con.addError(e.getMessage());
}
}
}
Thank you in advance :)
I want to style my PDF. By using VF page I am able to get certain contact details through putting ID in url and able to edit and update and changed fields will reflect in salesforce org. After updating it will save as PDF in Notes & Attachments to that particular record. Vf page preview is like below.....
So, Now the problem is that I'm trying to change the style of PDF (that is saved to particular records) from below to look like the records fields in box style .As shown below pdf have no styling.
ShowContactDetail.vfp ========
<apex:page controller="UpdateContactDetail">
<style type="text/css">
#title {
font-size: 150%;
margin-left: 30%;
}
</style>
<h2 id="title">Contact</h2><br/><br/>
<apex:form >
<apex:pageBlock >
<apex:pageBlockTable value="{!con}" var="b">
<apex:column headervalue="Title">
<apex:OutputText value="{!b.Title}" />
</apex:column>
<apex:column headervalue="First Name">
<apex:OutputText value="{!b.FirstName}" />
</apex:column>
<apex:column headervalue="Last Name">
<apex:OutputText value="{!b.LastName}" />
</apex:column>
<apex:column headervalue="Email">
<apex:inputText value="{!b.Email}" />
</apex:column>
<apex:column headervalue="Phone">
<apex:inputText value="{!b.Phone}" />
</apex:column>
<apex:column >
<apex:commandLink action="{!updateRecord}" value="Update"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
UpdateContactDetail.apxc =======
public class UpdateContactDetail {
public Contact con {get;set;}
public Id recId;
public UpdateContactDetail ()
{
recId = ApexPages.CurrentPage().getparameters().get('recordId');
getRecord();
}
public void getRecord() {
con = [select Id, Name,FirstName, LastName, Title, Email, Phone from contact where id =:recId];
}
public PageReference updateRecord(){
try{
update con;
}
catch(DmlException ex){
ApexPages.addMessages(ex);
}
return null;
}
}
GeneratePDFOfContactTrigger.apxt =======
trigger GeneratePDFOfContactTrigger on Contact (after update) {
GeneratePDFController.generateContactPDF(Trigger.new);
}
GeneratePDFController.apxc ==========
public class GeneratePDFController{
public static final String FORM_HTML_START = '<HTML><BODY>';
public static final String FORM_HTML_END = '</BODY></HTML>';
public static void generateContactPDF(list<contact> contactList){
String pdfContent = '' + FORM_HTML_START;
for(contact con : contactList){
try
{
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<H2>Contact Information</H2>';
//Dynamically grab all the fields to store in the PDF
Map<String, Schema.SObjectType> sobjectSchemaMap = Schema.getGlobalDescribe();
Schema.DescribeSObjectResult objDescribe = sobjectSchemaMap.get('Contact').getDescribe();
Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
//Append each Field to the PDF
for(Schema.SObjectField fieldDef : fieldMap.values()){
Schema.Describefieldresult fieldDescResult = fieldDef.getDescribe();
String name = fieldDescResult.getName();
if(name == 'Title' || name == 'FirstName' || name == 'LastName' || name == 'Email' || name == 'Phone'){
pdfContent = pdfContent + '<P>' + name + ': ' + con.get(name) + '</P>';
}
}
pdfContent = pdfContent + FORM_HTML_END;
}catch(Exception e){
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<P>THERE WAS AN ERROR GENERATING PDF: ' + e.getMessage() + '</P>';
pdfContent = pdfContent + FORM_HTML_END;
}
attachPDF(con,pdfContent);
}
}
public static void attachPDF(Contact con, String pdfContent){
try{
Attachment attachmentPDF = new Attachment();
attachmentPDF.parentId = con.Id;
attachmentPDF.Name = con.FirstName+' '+con.LastName+ '.pdf';
attachmentPDF.body = Blob.toPDF(pdfContent); //This creates the PDF content
insert attachmentPDF;
}catch(Exception e){
con.addError(e.getMessage());
}
}
}
Thank you in advance :)
- Lokesh Rayapati4
- September 23, 2021
- Like
- 0
Styling the output pdf using Html
Hi,
I want to style my pdf. I want to get the record fields in a box and with good appearence.please help me in this.
Below is my code...
========
ShowContactDetail.vfp
<apex:page controller="UpdateContactDetail">
<style type="text/css">
#title {
font-size: 150%;
margin-left: 30%;
}
</style>
<h2 id="title">Contact</h2><br/><br/>
<apex:form >
<apex:pageBlock >
<apex:pageBlockTable value="{!con}" var="b">
<apex:column headervalue="Title">
<apex:OutputText value="{!b.Title}" />
</apex:column>
<apex:column headervalue="First Name">
<apex:OutputText value="{!b.FirstName}" />
</apex:column>
<apex:column headervalue="Last Name">
<apex:OutputText value="{!b.LastName}" />
</apex:column>
<apex:column headervalue="Email">
<apex:inputText value="{!b.Email}" />
</apex:column>
<apex:column headervalue="Phone">
<apex:inputText value="{!b.Phone}" />
</apex:column>
<apex:column >
<apex:commandLink action="{!updateRecord}" value="Update"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
===============
UpdateContactDetail.apxc
public class UpdateContactDetail {
public Contact con {get;set;}
public Id recId;
public UpdateContactDetail ()
{
recId = ApexPages.CurrentPage().getparameters().get('recordId');
getRecord();
}
public void getRecord() {
con = [select Id, Name,FirstName, LastName, Title, Email, Phone from contact where id =:recId];
}
public PageReference updateRecord(){
try{
update con;
}
catch(DmlException ex){
ApexPages.addMessages(ex);
}
return null;
}
}
=============
GeneratePDFOfContactTrigger
trigger GeneratePDFOfContactTrigger on Contact (after update) {
GeneratePDFController.generateContactPDF(Trigger.new);
}
==============
GeneratePDFController.apxc
public class GeneratePDFController{
public static final String FORM_HTML_START = '<HTML><BODY>';
public static final String FORM_HTML_END = '</BODY></HTML>';
public static void generateContactPDF(list<contact> contactList){
String pdfContent = '' + FORM_HTML_START;
for(contact con : contactList){
try
{
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<H2>Contact Information</H2>';
//Dynamically grab all the fields to store in the PDF
Map<String, Schema.SObjectType> sobjectSchemaMap = Schema.getGlobalDescribe();
Schema.DescribeSObjectResult objDescribe = sobjectSchemaMap.get('Contact').getDescribe();
Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
//Append each Field to the PDF
for(Schema.SObjectField fieldDef : fieldMap.values()){
Schema.Describefieldresult fieldDescResult = fieldDef.getDescribe();
String name = fieldDescResult.getName();
if(name == 'Title' || name == 'FirstName' || name == 'LastName' || name == 'Email' || name == 'Phone'){
pdfContent = pdfContent + '<P>' + name + ': ' + con.get(name) + '</P>';
}
}
pdfContent = pdfContent + FORM_HTML_END;
}catch(Exception e){
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<P>THERE WAS AN ERROR GENERATING PDF: ' + e.getMessage() + '</P>';
pdfContent = pdfContent + FORM_HTML_END;
}
attachPDF(con,pdfContent);
}
}
public static void attachPDF(Contact con, String pdfContent){
try{
Attachment attachmentPDF = new Attachment();
attachmentPDF.parentId = con.Id;
attachmentPDF.Name = con.FirstName+' '+con.LastName+ '.pdf';
attachmentPDF.body = Blob.toPDF(pdfContent); //This creates the PDF content
insert attachmentPDF;
}catch(Exception e){
con.addError(e.getMessage());
}
}
}
Thank you in advance
I want to style my pdf. I want to get the record fields in a box and with good appearence.please help me in this.
Below is my code...
========
ShowContactDetail.vfp
<apex:page controller="UpdateContactDetail">
<style type="text/css">
#title {
font-size: 150%;
margin-left: 30%;
}
</style>
<h2 id="title">Contact</h2><br/><br/>
<apex:form >
<apex:pageBlock >
<apex:pageBlockTable value="{!con}" var="b">
<apex:column headervalue="Title">
<apex:OutputText value="{!b.Title}" />
</apex:column>
<apex:column headervalue="First Name">
<apex:OutputText value="{!b.FirstName}" />
</apex:column>
<apex:column headervalue="Last Name">
<apex:OutputText value="{!b.LastName}" />
</apex:column>
<apex:column headervalue="Email">
<apex:inputText value="{!b.Email}" />
</apex:column>
<apex:column headervalue="Phone">
<apex:inputText value="{!b.Phone}" />
</apex:column>
<apex:column >
<apex:commandLink action="{!updateRecord}" value="Update"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
===============
UpdateContactDetail.apxc
public class UpdateContactDetail {
public Contact con {get;set;}
public Id recId;
public UpdateContactDetail ()
{
recId = ApexPages.CurrentPage().getparameters().get('recordId');
getRecord();
}
public void getRecord() {
con = [select Id, Name,FirstName, LastName, Title, Email, Phone from contact where id =:recId];
}
public PageReference updateRecord(){
try{
update con;
}
catch(DmlException ex){
ApexPages.addMessages(ex);
}
return null;
}
}
=============
GeneratePDFOfContactTrigger
trigger GeneratePDFOfContactTrigger on Contact (after update) {
GeneratePDFController.generateContactPDF(Trigger.new);
}
==============
GeneratePDFController.apxc
public class GeneratePDFController{
public static final String FORM_HTML_START = '<HTML><BODY>';
public static final String FORM_HTML_END = '</BODY></HTML>';
public static void generateContactPDF(list<contact> contactList){
String pdfContent = '' + FORM_HTML_START;
for(contact con : contactList){
try
{
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<H2>Contact Information</H2>';
//Dynamically grab all the fields to store in the PDF
Map<String, Schema.SObjectType> sobjectSchemaMap = Schema.getGlobalDescribe();
Schema.DescribeSObjectResult objDescribe = sobjectSchemaMap.get('Contact').getDescribe();
Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
//Append each Field to the PDF
for(Schema.SObjectField fieldDef : fieldMap.values()){
Schema.Describefieldresult fieldDescResult = fieldDef.getDescribe();
String name = fieldDescResult.getName();
if(name == 'Title' || name == 'FirstName' || name == 'LastName' || name == 'Email' || name == 'Phone'){
pdfContent = pdfContent + '<P>' + name + ': ' + con.get(name) + '</P>';
}
}
pdfContent = pdfContent + FORM_HTML_END;
}catch(Exception e){
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<P>THERE WAS AN ERROR GENERATING PDF: ' + e.getMessage() + '</P>';
pdfContent = pdfContent + FORM_HTML_END;
}
attachPDF(con,pdfContent);
}
}
public static void attachPDF(Contact con, String pdfContent){
try{
Attachment attachmentPDF = new Attachment();
attachmentPDF.parentId = con.Id;
attachmentPDF.Name = con.FirstName+' '+con.LastName+ '.pdf';
attachmentPDF.body = Blob.toPDF(pdfContent); //This creates the PDF content
insert attachmentPDF;
}catch(Exception e){
con.addError(e.getMessage());
}
}
}
Thank you in advance
- Lokesh Rayapati4
- September 21, 2021
- Like
- 0
Need help developing a test class for 100 percent code coverage. Can someone please help???
public with sharing class Auracsv {
@AuraEnabled
public static void processData(String fileData,String sobjectName,List<String> fields) {
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(sobjectName);
try{
if(fileData!=null){
String[] fileLines = new String[]{};
fileLines = fileData.split('\n');
List<sObject> myList = new List<sObject>();
for (Integer i=1,j=fileLines.size();i<j;i++){
String[] inputvalues = new String[]{};
inputvalues = fileLines[i].split(',');
sObject obj = targetType.newSObject();
integer rowsize=inputvalues.size();
for(integer l=0;l<rowsize-1;l++){
system.debug('fields.get(l)'+fields.get(l));
if(String.isNotBlank(inputvalues[l]) )
{
String value= inputvalues[l].length()>255 ? inputvalues[l].substring(0,254) : inputvalues[l];
obj.put(fields.get(l),value);
}else{
obj.put(fields.get(l),'');
}
}
myList.add(obj);
}
insert myList;
}
}catch(Exception e){
System.debug('exception'+e);
}
}
@AuraEnabled
public static List<Map<string,string>> getObjectList()
{
List<Map<string,string>> SObjectList = new List<Map<string,string>>();
for(Schema.SObjectType objTyp : Schema.getGlobalDescribe().Values()){
String name = objTyp.getDescribe().getName();
SObjectList.add(new Map<string,string>{'label'=>name,'value'=>name});
System.debug('name'+name);
}
return SObjectList;
}
@AuraEnabled
public static List<Sobject> updateData(string objectName, string file){
system.debug('Json : '+file+'----------'+objectName);
Blob json = EncodingUtil.base64Decode(file);
system.debug('Json file : '+json.tostring());
String[] fileLines = json.tostring().split('\n');
string[] headers = fileLines[0].split(',');
List<Sobject> objectList = new List<Sobject>();
for(integer i=1; i<fileLines.size() ;i++){
string[] rows = fileLines[i].split(',');
sObject sObj = Schema.getGlobalDescribe().get(objectName).newSObject();
for(integer j=0;j<headers.size();j++){
sObj.put(headers[j].trim(), rows[j].trim());
}
objectList.add(sObj);
}
system.debug('Object : '+objectList);
insert objectList;
return objectList;
}
}
Heres my WIP test class code====
@isTest
public class TestAuracsv {
public static String[] csvFileLines;
public static Blob csvFileBody;
@TestSetup
static void Accountdata(){
Account acc = new Account();
acc.Name = 'Lokesh';
acc.AccountNumber = '56293723';
acc.Type = 'Other';
acc.Industry = 'Chemicals';
insert acc;
}
@IsTest
static void testmethod1(){
Account acc = new Account();
acc.Name = 'Lokesh';
insert acc;
Test.startTest();
csvFileBody = Blob.valueOf(str);
String csvAsString = csvFileBody.toString();
AccountListController.updateData('Account', EncodingUtil.base64Encode(Blob.valueOf(str)));
AccountListController.getObjectList();
}
}
As I'm newbiee.There are some errors in test class and I'm trying to clear that.
@AuraEnabled
public static void processData(String fileData,String sobjectName,List<String> fields) {
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(sobjectName);
try{
if(fileData!=null){
String[] fileLines = new String[]{};
fileLines = fileData.split('\n');
List<sObject> myList = new List<sObject>();
for (Integer i=1,j=fileLines.size();i<j;i++){
String[] inputvalues = new String[]{};
inputvalues = fileLines[i].split(',');
sObject obj = targetType.newSObject();
integer rowsize=inputvalues.size();
for(integer l=0;l<rowsize-1;l++){
system.debug('fields.get(l)'+fields.get(l));
if(String.isNotBlank(inputvalues[l]) )
{
String value= inputvalues[l].length()>255 ? inputvalues[l].substring(0,254) : inputvalues[l];
obj.put(fields.get(l),value);
}else{
obj.put(fields.get(l),'');
}
}
myList.add(obj);
}
insert myList;
}
}catch(Exception e){
System.debug('exception'+e);
}
}
@AuraEnabled
public static List<Map<string,string>> getObjectList()
{
List<Map<string,string>> SObjectList = new List<Map<string,string>>();
for(Schema.SObjectType objTyp : Schema.getGlobalDescribe().Values()){
String name = objTyp.getDescribe().getName();
SObjectList.add(new Map<string,string>{'label'=>name,'value'=>name});
System.debug('name'+name);
}
return SObjectList;
}
@AuraEnabled
public static List<Sobject> updateData(string objectName, string file){
system.debug('Json : '+file+'----------'+objectName);
Blob json = EncodingUtil.base64Decode(file);
system.debug('Json file : '+json.tostring());
String[] fileLines = json.tostring().split('\n');
string[] headers = fileLines[0].split(',');
List<Sobject> objectList = new List<Sobject>();
for(integer i=1; i<fileLines.size() ;i++){
string[] rows = fileLines[i].split(',');
sObject sObj = Schema.getGlobalDescribe().get(objectName).newSObject();
for(integer j=0;j<headers.size();j++){
sObj.put(headers[j].trim(), rows[j].trim());
}
objectList.add(sObj);
}
system.debug('Object : '+objectList);
insert objectList;
return objectList;
}
}
Heres my WIP test class code====
@isTest
public class TestAuracsv {
public static String[] csvFileLines;
public static Blob csvFileBody;
@TestSetup
static void Accountdata(){
Account acc = new Account();
acc.Name = 'Lokesh';
acc.AccountNumber = '56293723';
acc.Type = 'Other';
acc.Industry = 'Chemicals';
insert acc;
}
@IsTest
static void testmethod1(){
Account acc = new Account();
acc.Name = 'Lokesh';
insert acc;
Test.startTest();
csvFileBody = Blob.valueOf(str);
String csvAsString = csvFileBody.toString();
AccountListController.updateData('Account', EncodingUtil.base64Encode(Blob.valueOf(str)));
AccountListController.getObjectList();
}
}
As I'm newbiee.There are some errors in test class and I'm trying to clear that.
- Lokesh Rayapati4
- August 17, 2021
- Like
- 0
Need help developing a test class for 100 percent code coverage. Can someone please help??
public class EmployeeController {
@AuraEnabled
public static list<Map<String,Object>> getLightningPickListValues(String fieldName, string objectName) {
list<Map<String,Object>> returnList = new list<Map<String,Object>>();
try {
returnList.add(new Map<String,Object>{'label'=>'--Select--','value'=>'--Select--'});
Map<String, schema.SObjectField> feildMap = Schema.getGlobalDescribe().get(objectName.trim()).getDescribe().fields.getMap();
list<Schema.PicklistEntry> values = feildMap.get(fieldName.trim()).getDescribe().getPickListValues();
for (Schema.PicklistEntry obj : values) {
returnList.add(new Map<String,Object>{'label'=>obj.getLabel(),'value'=>obj.getValue().remove('\'').escapeUnicode()});
}
System.debug('MAP with FEILD TYPE : '+returnList);
} catch (Exception e) {
System.debug('Error in lightning picklist values : '+e.getMessage()+' at line no :'+e.getLineNumber());
}
return returnList;
}
@AuraEnabled
public static List<Map<string,object>> getEmployee(string typeEmployee){
List<Map<string,object>> returnList = new List<Map<string,object>>();
Map<string,string> imageMap = new Map<string,string>();
List<employee__c> employeeList;
if(typeEmployee == 'All'){
employeeList = [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c];
}else{
employeeList = [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c where Department__c =:typeEmployee ];
}
Set<Id> tempSet = new Set<Id>();
for(employee__c emp : employeeList){
tempSet.add(emp.Id);
}
system.debug('Temp Set : '+tempSet);
for(ContentDocumentLink doc : [SELECT Id, ContentDocumentId, ContentDocument.LatestPublishedVersionId,ContentDocument.LatestPublishedVersion.Title,LinkedEntityId FROM ContentDocumentLink WHERE LinkedEntityId In :tempSet]){
imageMap.put(doc.LinkedEntityId,doc.ContentDocument.LatestPublishedVersionId);
}
for(employee__c emp : employeeList){
string imageUrl = imageMap.get(emp.Id) == null ? 'https://img.lovepik.com/original_origin_pic/19/01/17/ffea3ab99d95aca466f5c9f3ccb6a7f3.png_wh300.png' : 'https://emorphis-b-dev-ed.my.salesforce.com/sfc/servlet.shepherd/version/download/'+imageMap.get(emp.Id);
returnList.add(new Map<string,object>{
'Name'=>emp.name,'Date_of_Birth__c'=>emp.Date_of_Birth__c,'Mobile__c'=>emp.Mobile__c,'Blood_Group__c'=>emp.Blood_Group__c,'Image'=>imageUrl
});
}
return returnList;
}
@AuraEnabled
public static List<employee__c> updateEmployee(List<employee__c> dataList , string file){
system.debug('Data before update : '+dataList);
upsert dataList;
if(string.isNotBlank(file)){
ContentVersion conVer = new ContentVersion();
conVer.ContentLocation = 'S';
conVer.PathOnClient = 'testing.jpg';
conVer.Title = 'Testing Files';
conVer.VersionData = EncodingUtil.base64Decode(file);
insert conVer;
Id conDoc = [SELECT ContentDocumentId FROM ContentVersion WHERE Id =:conVer.Id].ContentDocumentId;
ContentDocumentLink conDocLink = New ContentDocumentLink();
conDocLink.LinkedEntityId = dataList[0].Id;
conDocLink.ContentDocumentId = conDoc;
conDocLink.shareType = 'V';
insert conDocLink;
}
system.debug('Data after update : '+dataList);
return dataList;
}
@AuraEnabled
public static void deleteEmployee(string recordId){
system.debug('recordId : '+recordId);
delete[select id from Employee__c where Id = : recordId ];
}
}
Test Class=============(Percentage- 95%, Wanted percentage- 100)
@isTest
public class EmployeeControllerTest {
@TestSetup
static void makeData(){
Employee__c emp = new Employee__c();
emp.Name = 'Lokesh';
emp.Blood_Group__c = 'B+';
emp.Department__c = 'All';
emp.Date_of_Birth__c = Date.today();
insert emp;
ContentVersion conVer = new ContentVersion();
conVer.ContentLocation = 'S';
conVer.PathOnClient = 'testing.text';
conVer.Title = 'Testing Files';
conVer.VersionData = EncodingUtil.base64Decode('file');
insert conVer;
Id conDoc = [SELECT ContentDocumentId FROM ContentVersion WHERE Id =:conVer.Id].ContentDocumentId;
ContentDocumentLink conDocLink = New ContentDocumentLink();
conDocLink.LinkedEntityId = emp.Id;
conDocLink.ContentDocumentId = conDoc;
conDocLink.shareType = 'V';
insert conDocLink;
}
@IsTest
static void testMethod1(){
EmployeeController.getLightningPickListValues('Department__c', 'Employee__c');
EmployeeController.getEmployee('All');
Employee__c emp = new Employee__c();
emp.Name = 'Lokesh';
emp.Blood_Group__c = 'B+';
emp.Date_of_Birth__c = Date.today();
String file = 'data:image/png;base64,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';
EmployeeController.updateEmployee(new List<Employee__c>{emp}, EncodingUtil.base64Encode(Blob.valueOf(file)));
EmployeeController.deleteEmployee([select id from Employee__c limit 1].Id);
}
}
@AuraEnabled
public static list<Map<String,Object>> getLightningPickListValues(String fieldName, string objectName) {
list<Map<String,Object>> returnList = new list<Map<String,Object>>();
try {
returnList.add(new Map<String,Object>{'label'=>'--Select--','value'=>'--Select--'});
Map<String, schema.SObjectField> feildMap = Schema.getGlobalDescribe().get(objectName.trim()).getDescribe().fields.getMap();
list<Schema.PicklistEntry> values = feildMap.get(fieldName.trim()).getDescribe().getPickListValues();
for (Schema.PicklistEntry obj : values) {
returnList.add(new Map<String,Object>{'label'=>obj.getLabel(),'value'=>obj.getValue().remove('\'').escapeUnicode()});
}
System.debug('MAP with FEILD TYPE : '+returnList);
} catch (Exception e) {
System.debug('Error in lightning picklist values : '+e.getMessage()+' at line no :'+e.getLineNumber());
}
return returnList;
}
@AuraEnabled
public static List<Map<string,object>> getEmployee(string typeEmployee){
List<Map<string,object>> returnList = new List<Map<string,object>>();
Map<string,string> imageMap = new Map<string,string>();
List<employee__c> employeeList;
if(typeEmployee == 'All'){
employeeList = [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c];
}else{
employeeList = [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c where Department__c =:typeEmployee ];
}
Set<Id> tempSet = new Set<Id>();
for(employee__c emp : employeeList){
tempSet.add(emp.Id);
}
system.debug('Temp Set : '+tempSet);
for(ContentDocumentLink doc : [SELECT Id, ContentDocumentId, ContentDocument.LatestPublishedVersionId,ContentDocument.LatestPublishedVersion.Title,LinkedEntityId FROM ContentDocumentLink WHERE LinkedEntityId In :tempSet]){
imageMap.put(doc.LinkedEntityId,doc.ContentDocument.LatestPublishedVersionId);
}
for(employee__c emp : employeeList){
string imageUrl = imageMap.get(emp.Id) == null ? 'https://img.lovepik.com/original_origin_pic/19/01/17/ffea3ab99d95aca466f5c9f3ccb6a7f3.png_wh300.png' : 'https://emorphis-b-dev-ed.my.salesforce.com/sfc/servlet.shepherd/version/download/'+imageMap.get(emp.Id);
returnList.add(new Map<string,object>{
'Name'=>emp.name,'Date_of_Birth__c'=>emp.Date_of_Birth__c,'Mobile__c'=>emp.Mobile__c,'Blood_Group__c'=>emp.Blood_Group__c,'Image'=>imageUrl
});
}
return returnList;
}
@AuraEnabled
public static List<employee__c> updateEmployee(List<employee__c> dataList , string file){
system.debug('Data before update : '+dataList);
upsert dataList;
if(string.isNotBlank(file)){
ContentVersion conVer = new ContentVersion();
conVer.ContentLocation = 'S';
conVer.PathOnClient = 'testing.jpg';
conVer.Title = 'Testing Files';
conVer.VersionData = EncodingUtil.base64Decode(file);
insert conVer;
Id conDoc = [SELECT ContentDocumentId FROM ContentVersion WHERE Id =:conVer.Id].ContentDocumentId;
ContentDocumentLink conDocLink = New ContentDocumentLink();
conDocLink.LinkedEntityId = dataList[0].Id;
conDocLink.ContentDocumentId = conDoc;
conDocLink.shareType = 'V';
insert conDocLink;
}
system.debug('Data after update : '+dataList);
return dataList;
}
@AuraEnabled
public static void deleteEmployee(string recordId){
system.debug('recordId : '+recordId);
delete[select id from Employee__c where Id = : recordId ];
}
}
Test Class=============(Percentage- 95%, Wanted percentage- 100)
@isTest
public class EmployeeControllerTest {
@TestSetup
static void makeData(){
Employee__c emp = new Employee__c();
emp.Name = 'Lokesh';
emp.Blood_Group__c = 'B+';
emp.Department__c = 'All';
emp.Date_of_Birth__c = Date.today();
insert emp;
ContentVersion conVer = new ContentVersion();
conVer.ContentLocation = 'S';
conVer.PathOnClient = 'testing.text';
conVer.Title = 'Testing Files';
conVer.VersionData = EncodingUtil.base64Decode('file');
insert conVer;
Id conDoc = [SELECT ContentDocumentId FROM ContentVersion WHERE Id =:conVer.Id].ContentDocumentId;
ContentDocumentLink conDocLink = New ContentDocumentLink();
conDocLink.LinkedEntityId = emp.Id;
conDocLink.ContentDocumentId = conDoc;
conDocLink.shareType = 'V';
insert conDocLink;
}
@IsTest
static void testMethod1(){
EmployeeController.getLightningPickListValues('Department__c', 'Employee__c');
EmployeeController.getEmployee('All');
Employee__c emp = new Employee__c();
emp.Name = 'Lokesh';
emp.Blood_Group__c = 'B+';
emp.Date_of_Birth__c = Date.today();
String file = 'data:image/png;base64,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';
EmployeeController.updateEmployee(new List<Employee__c>{emp}, EncodingUtil.base64Encode(Blob.valueOf(file)));
EmployeeController.deleteEmployee([select id from Employee__c limit 1].Id);
}
}
- Lokesh Rayapati4
- August 16, 2021
- Like
- 0
How to upload image by using lightning component
How to add an image functionality in Lightning Component
Hi,
I'm doing a task on aura components in which employees will be available in different Departments. I'm fetching the data and can edit but only thing left is functionalities like adding New record, Delete and adding image functionality.
Please help me in this. Below is my code
EmployeeComponent.cmp
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" Controller="EmployeeController">
<aura:attribute name="employeeOptions" type="List" default="[]"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"></aura:handler>
<aura:attribute name="spinner" type="boolean" default="true"/>
<aura:attribute name="isEdit" type="boolean" default="true"/>
<aura:attribute name="employeeList" type="List" default="[]"/>
<aura:if isTrue="{!v.spinner}">
<div class="exampleHolder">
<lightning:spinner alternativeText="Loading" size="large" />
</div>
</aura:if>
<div style="background:white">
<div class="demo-only demo-only--sizing slds-grid slds-wrap" >
<div class="slds-size_2-of-4">
<lightning:combobox name="Employee__c" label="Select Department" value="All" placeholder="Select Type" options="{! v.employeeOptions }" onchange="{! c.handleChange }"/>
</div>
<div class="slds-size_1-of-2 slds-p-left_x-small" style="margin-top:20px">
<lightning:button variant="brand" label="Delete" title="Brand action" onclick="{!c.handleClick}" />
<lightning:button variant="brand" label="Save" title="Brand action" onclick="{!c.handleSave}" />
<lightning:button variant="brand" label="Edit" title="Brand action" onclick="{!c.handleEdit}" />
<lightning:button variant="brand" label="Cancel" title="Brand action" onclick="{!c.handleCancel}" />
</div>
</div>
<div class="slds-p-top_large">
<div class="demo-only demo-only--sizing slds-grid slds-wrap">
<aura:iteration items="{!v.employeeList}" var="item">
<aura:if isTrue="{!v.isEdit}">
<div class="slds-size_1-of-4">
<lightning:card>
<p class="slds-p-horizontal_small">
{!item.Name}<br></br>
{!item.Date_of_Birth__c}<br></br>
{!item.Blood_Group__c}<br></br>
{!item.Mobile__c}<br></br>
</p>
</lightning:card>
</div>
<aura:set attribute="else">
<lightning:card>
<p class="slds-p-horizontal_small">
<lightning:input type="text" name="input1" label="Name" value="{!item.Name}"/>
<lightning:input type="date" name="input1" label="Date Of Birth" value="{!item.Date_of_Birth__c}"/>
<lightning:input type="text" name="input1" label="Blood Group" value="{!item.Blood_Group__c}"/>
<lightning:input type="text" name="input1" label="Mobile__c" value="{!item.Mobile__c}"/>
</p>
</lightning:card>
</aura:set>
</aura:if>
</aura:iteration>
</div>
</div>
</div>
</aura:component>
EmployeeController.apxc
public class EmployeeController {
@AuraEnabled
public static list<Map<String,Object>> getLightningPickListValues(String fieldName, string objectName) {
list<Map<String,Object>> returnList = new list<Map<String,Object>>();
try {
returnList.add(new Map<String,Object>{'label'=>'--Select--','value'=>'--Select--'});
Map<String, schema.SObjectField> feildMap = Schema.getGlobalDescribe().get(objectName.trim()).getDescribe().fields.getMap();
list<Schema.PicklistEntry> values = feildMap.get(fieldName.trim()).getDescribe().getPickListValues();
for (Schema.PicklistEntry obj : values) {
returnList.add(new Map<String,Object>{'label'=>obj.getLabel(),'value'=>obj.getValue().remove('\'').escapeUnicode()});
}
System.debug('MAP with FEILD TYPE : '+returnList);
} catch (Exception e) {
System.debug('Error in lightning picklist values : '+e.getMessage()+' at line no :'+e.getLineNumber());
// return null;
}
return returnList;
}
@AuraEnabled
public static List<employee__c> getEmployee(string typeEmployee){
if(typeEmployee == 'All'){
return [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c];
}else{
return [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c where Department__c =:typeEmployee ];
}
}
@AuraEnabled
public static List<employee__c> updateEmployee(List<employee__c> dataList){
system.debug('Data before update : '+dataList);
update dataList;
system.debug('Data after update : '+dataList);
return dataList;
}
}
EmployeeComponentController.js
({
doInit : function(component, event, helper) {
console.log('In Doint');
var action = component.get("c.getLightningPickListValues");
action.setParams({
"fieldName":'Department__c',
"objectName":'Employee__c'
});
action.setCallback(this,function(response){
console.log('response of picklist : ',response.getReturnValue());
component.set("v.employeeOptions",response.getReturnValue());
var actionTwo = component.get("c.getEmployee");
actionTwo.setParams({
"typeEmployee":"All"
});
actionTwo.setCallback(this,function(response){
component.set("v.spinner",false);
console.log('data : ',response.getReturnValue());
component.set("v.employeeList",response.getReturnValue());
})
$A.enqueueAction(actionTwo);
});
$A.enqueueAction(action);
},
handleChange : function(component,event,helper){
component.set("v.spinner",true);
const type = event.getSource().get("v.value");
var actionTwo = component.get("c.getEmployee");
actionTwo.setParams({
"typeEmployee":type
});
actionTwo.setCallback(this,function(response){
component.set("v.spinner",false);
console.log('data : ',response.getReturnValue());
component.set("v.employeeList",response.getReturnValue());
component.set("v.spinner",false);
})
$A.enqueueAction(actionTwo);
},
handleEdit : function(component,event,helper){
console.log('edit');
component.set("v.isEdit",false);
},
handleCancel : function(component,event,helper){
console.log('cancel');
component.set("v.isEdit",true);
},
handleSave : function(component,event,helper){
var list = component.get("v.employeeList");
console.log('Data : ',list[0]);
component.set("v.spinner",true);
var actionTwo = component.get("c.updateEmployee");
actionTwo.setParams({
"dataList":list
});
actionTwo.setCallback(this,function(response){
console.log('data : ',response.getReturnValue());
component.set("v.employeeList",response.getReturnValue());
component.set("v.spinner",false);
component.set("v.isEdit",true);
$A.get('e.force:refreshView').fire();
})
$A.enqueueAction(actionTwo);
}
})
Hi,
I'm doing a task on aura components in which employees will be available in different Departments. I'm fetching the data and can edit but only thing left is functionalities like adding New record, Delete and adding image functionality.
Please help me in this. Below is my code
EmployeeComponent.cmp
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" Controller="EmployeeController">
<aura:attribute name="employeeOptions" type="List" default="[]"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"></aura:handler>
<aura:attribute name="spinner" type="boolean" default="true"/>
<aura:attribute name="isEdit" type="boolean" default="true"/>
<aura:attribute name="employeeList" type="List" default="[]"/>
<aura:if isTrue="{!v.spinner}">
<div class="exampleHolder">
<lightning:spinner alternativeText="Loading" size="large" />
</div>
</aura:if>
<div style="background:white">
<div class="demo-only demo-only--sizing slds-grid slds-wrap" >
<div class="slds-size_2-of-4">
<lightning:combobox name="Employee__c" label="Select Department" value="All" placeholder="Select Type" options="{! v.employeeOptions }" onchange="{! c.handleChange }"/>
</div>
<div class="slds-size_1-of-2 slds-p-left_x-small" style="margin-top:20px">
<lightning:button variant="brand" label="Delete" title="Brand action" onclick="{!c.handleClick}" />
<lightning:button variant="brand" label="Save" title="Brand action" onclick="{!c.handleSave}" />
<lightning:button variant="brand" label="Edit" title="Brand action" onclick="{!c.handleEdit}" />
<lightning:button variant="brand" label="Cancel" title="Brand action" onclick="{!c.handleCancel}" />
</div>
</div>
<div class="slds-p-top_large">
<div class="demo-only demo-only--sizing slds-grid slds-wrap">
<aura:iteration items="{!v.employeeList}" var="item">
<aura:if isTrue="{!v.isEdit}">
<div class="slds-size_1-of-4">
<lightning:card>
<p class="slds-p-horizontal_small">
{!item.Name}<br></br>
{!item.Date_of_Birth__c}<br></br>
{!item.Blood_Group__c}<br></br>
{!item.Mobile__c}<br></br>
</p>
</lightning:card>
</div>
<aura:set attribute="else">
<lightning:card>
<p class="slds-p-horizontal_small">
<lightning:input type="text" name="input1" label="Name" value="{!item.Name}"/>
<lightning:input type="date" name="input1" label="Date Of Birth" value="{!item.Date_of_Birth__c}"/>
<lightning:input type="text" name="input1" label="Blood Group" value="{!item.Blood_Group__c}"/>
<lightning:input type="text" name="input1" label="Mobile__c" value="{!item.Mobile__c}"/>
</p>
</lightning:card>
</aura:set>
</aura:if>
</aura:iteration>
</div>
</div>
</div>
</aura:component>
EmployeeController.apxc
public class EmployeeController {
@AuraEnabled
public static list<Map<String,Object>> getLightningPickListValues(String fieldName, string objectName) {
list<Map<String,Object>> returnList = new list<Map<String,Object>>();
try {
returnList.add(new Map<String,Object>{'label'=>'--Select--','value'=>'--Select--'});
Map<String, schema.SObjectField> feildMap = Schema.getGlobalDescribe().get(objectName.trim()).getDescribe().fields.getMap();
list<Schema.PicklistEntry> values = feildMap.get(fieldName.trim()).getDescribe().getPickListValues();
for (Schema.PicklistEntry obj : values) {
returnList.add(new Map<String,Object>{'label'=>obj.getLabel(),'value'=>obj.getValue().remove('\'').escapeUnicode()});
}
System.debug('MAP with FEILD TYPE : '+returnList);
} catch (Exception e) {
System.debug('Error in lightning picklist values : '+e.getMessage()+' at line no :'+e.getLineNumber());
// return null;
}
return returnList;
}
@AuraEnabled
public static List<employee__c> getEmployee(string typeEmployee){
if(typeEmployee == 'All'){
return [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c];
}else{
return [select id, name,Date_of_Birth__c,Mobile__c,Blood_Group__c from employee__c where Department__c =:typeEmployee ];
}
}
@AuraEnabled
public static List<employee__c> updateEmployee(List<employee__c> dataList){
system.debug('Data before update : '+dataList);
update dataList;
system.debug('Data after update : '+dataList);
return dataList;
}
}
EmployeeComponentController.js
({
doInit : function(component, event, helper) {
console.log('In Doint');
var action = component.get("c.getLightningPickListValues");
action.setParams({
"fieldName":'Department__c',
"objectName":'Employee__c'
});
action.setCallback(this,function(response){
console.log('response of picklist : ',response.getReturnValue());
component.set("v.employeeOptions",response.getReturnValue());
var actionTwo = component.get("c.getEmployee");
actionTwo.setParams({
"typeEmployee":"All"
});
actionTwo.setCallback(this,function(response){
component.set("v.spinner",false);
console.log('data : ',response.getReturnValue());
component.set("v.employeeList",response.getReturnValue());
})
$A.enqueueAction(actionTwo);
});
$A.enqueueAction(action);
},
handleChange : function(component,event,helper){
component.set("v.spinner",true);
const type = event.getSource().get("v.value");
var actionTwo = component.get("c.getEmployee");
actionTwo.setParams({
"typeEmployee":type
});
actionTwo.setCallback(this,function(response){
component.set("v.spinner",false);
console.log('data : ',response.getReturnValue());
component.set("v.employeeList",response.getReturnValue());
component.set("v.spinner",false);
})
$A.enqueueAction(actionTwo);
},
handleEdit : function(component,event,helper){
console.log('edit');
component.set("v.isEdit",false);
},
handleCancel : function(component,event,helper){
console.log('cancel');
component.set("v.isEdit",true);
},
handleSave : function(component,event,helper){
var list = component.get("v.employeeList");
console.log('Data : ',list[0]);
component.set("v.spinner",true);
var actionTwo = component.get("c.updateEmployee");
actionTwo.setParams({
"dataList":list
});
actionTwo.setCallback(this,function(response){
console.log('data : ',response.getReturnValue());
component.set("v.employeeList",response.getReturnValue());
component.set("v.spinner",false);
component.set("v.isEdit",true);
$A.get('e.force:refreshView').fire();
})
$A.enqueueAction(actionTwo);
}
})
- Lokesh Rayapati4
- August 06, 2021
- Like
- 0
Create radio button in Lightning Aura components
Hi,
I created check box for fullday,Half day and Mixed day. So, I was trying to write this with the help of radio buttons because in check box i can select all three checkboxes at once.
<h1><b>Select Leave</b></h1>
<lightning:input type="checkbox" label="Full Day" name="Full Day" aura:id="apps" value="fullDay" onchange="{! c.handleChange }" />
<lightning:input type="checkbox" label="Half Day" name="Half Day" aura:id="product" value="halfDay" onchange="{! c.handleChange }" />
<lightning:input type="checkbox" label="Mixed Day" name="Mixed Day" aura:id="service" value="mixedDay" onchange="{! c.handleChange }" />
Thanks in advance
I created check box for fullday,Half day and Mixed day. So, I was trying to write this with the help of radio buttons because in check box i can select all three checkboxes at once.
<h1><b>Select Leave</b></h1>
<lightning:input type="checkbox" label="Full Day" name="Full Day" aura:id="apps" value="fullDay" onchange="{! c.handleChange }" />
<lightning:input type="checkbox" label="Half Day" name="Half Day" aura:id="product" value="halfDay" onchange="{! c.handleChange }" />
<lightning:input type="checkbox" label="Mixed Day" name="Mixed Day" aura:id="service" value="mixedDay" onchange="{! c.handleChange }" />
Thanks in advance
- Lokesh Rayapati4
- July 27, 2021
- Like
- 0
Make a lightning quick action for a employee to apply leave
Hi,
I'm new to Aura components. I'm trying to build a lightning quick action for a employee to apply leave. Employee should be able to apply leave in 3 categories casual, privileged and medical, and if he has none of the leaves left in that type it should be added to leaves without pay.He can apply for full day, half day and mixed leave.
Also if a holiday is coming in between the date he has applied for leave that no of days should be deducted from the total no of days he has applied for leave. Make a custom setting to mark name of week you give your weekly holidays example: sunday, monday or saturday sunday. please help me in this.
Thanks in advance.
For eg if a person applied leave from friday to monday then only 2 days of full leave should be counted . i.e friday and monday.
The leave record should also be saved in a object and the quick action should be on contact record page
I'm new to Aura components. I'm trying to build a lightning quick action for a employee to apply leave. Employee should be able to apply leave in 3 categories casual, privileged and medical, and if he has none of the leaves left in that type it should be added to leaves without pay.He can apply for full day, half day and mixed leave.
Also if a holiday is coming in between the date he has applied for leave that no of days should be deducted from the total no of days he has applied for leave. Make a custom setting to mark name of week you give your weekly holidays example: sunday, monday or saturday sunday. please help me in this.
Thanks in advance.
For eg if a person applied leave from friday to monday then only 2 days of full leave should be counted . i.e friday and monday.
The leave record should also be saved in a object and the quick action should be on contact record page
- Lokesh Rayapati4
- July 19, 2021
- Like
- 0
Create a form to insert account withoutt record forms using Aura component
Hi,
I'm new to Aura components concept. Iam trying to Create a form to insert account withoutt record forms using Aura component. Please help me in solving this.
Thank you in advance
I'm new to Aura components concept. Iam trying to Create a form to insert account withoutt record forms using Aura component. Please help me in solving this.
Thank you in advance
- Lokesh Rayapati4
- July 13, 2021
- Like
- 0
By using triggers add lead to campaign abc record if the lead status is ' Open-Not Contacted ', and also remove campaign abc if the status in lead status is changed from 'Open- Not Contacted' to something else
Hi,
I'm struggling to complete this trigger.If the lead status is ' Open-Not Contacted ' then the record should be added to campaign record (Create one Record Name- abc) and also if the status is changed from ' Open-Not Contacted ' to something else then the record (abc) in campaign should be removed.
I firstly tried to created junction object by adding 2 master detail that is Lead and campaign but, When creating relationship Lead is not appearing to select. My idea is that we can do this with campaign member object. please help me in solving this trigger which involves
relationship.
Thanks in advance.
I'm struggling to complete this trigger.If the lead status is ' Open-Not Contacted ' then the record should be added to campaign record (Create one Record Name- abc) and also if the status is changed from ' Open-Not Contacted ' to something else then the record (abc) in campaign should be removed.
I firstly tried to created junction object by adding 2 master detail that is Lead and campaign but, When creating relationship Lead is not appearing to select. My idea is that we can do this with campaign member object. please help me in solving this trigger which involves
relationship.
Thanks in advance.
- Lokesh Rayapati4
- July 05, 2021
- Like
- 0
By using batch class fields need to be updated daily with todays date + account name for all account in the org
Hi,
I'm new to developement. I want to do batch class by using to build a text field on account named "Todays execution".This fields needs to be updated daily wth todays date + account name for all the account in the org.
Thanks in advance
I'm new to developement. I want to do batch class by using to build a text field on account named "Todays execution".This fields needs to be updated daily wth todays date + account name for all the account in the org.
Thanks in advance
- Lokesh Rayapati4
- June 29, 2021
- Like
- 0
Styling the output pdf using Html
Hi,
I want to style my pdf. I want to get the record fields in a box and with good appearence.please help me in this.
Below is my code...
========
ShowContactDetail.vfp
<apex:page controller="UpdateContactDetail">
<style type="text/css">
#title {
font-size: 150%;
margin-left: 30%;
}
</style>
<h2 id="title">Contact</h2><br/><br/>
<apex:form >
<apex:pageBlock >
<apex:pageBlockTable value="{!con}" var="b">
<apex:column headervalue="Title">
<apex:OutputText value="{!b.Title}" />
</apex:column>
<apex:column headervalue="First Name">
<apex:OutputText value="{!b.FirstName}" />
</apex:column>
<apex:column headervalue="Last Name">
<apex:OutputText value="{!b.LastName}" />
</apex:column>
<apex:column headervalue="Email">
<apex:inputText value="{!b.Email}" />
</apex:column>
<apex:column headervalue="Phone">
<apex:inputText value="{!b.Phone}" />
</apex:column>
<apex:column >
<apex:commandLink action="{!updateRecord}" value="Update"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
===============
UpdateContactDetail.apxc
public class UpdateContactDetail {
public Contact con {get;set;}
public Id recId;
public UpdateContactDetail ()
{
recId = ApexPages.CurrentPage().getparameters().get('recordId');
getRecord();
}
public void getRecord() {
con = [select Id, Name,FirstName, LastName, Title, Email, Phone from contact where id =:recId];
}
public PageReference updateRecord(){
try{
update con;
}
catch(DmlException ex){
ApexPages.addMessages(ex);
}
return null;
}
}
=============
GeneratePDFOfContactTrigger
trigger GeneratePDFOfContactTrigger on Contact (after update) {
GeneratePDFController.generateContactPDF(Trigger.new);
}
==============
GeneratePDFController.apxc
public class GeneratePDFController{
public static final String FORM_HTML_START = '<HTML><BODY>';
public static final String FORM_HTML_END = '</BODY></HTML>';
public static void generateContactPDF(list<contact> contactList){
String pdfContent = '' + FORM_HTML_START;
for(contact con : contactList){
try
{
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<H2>Contact Information</H2>';
//Dynamically grab all the fields to store in the PDF
Map<String, Schema.SObjectType> sobjectSchemaMap = Schema.getGlobalDescribe();
Schema.DescribeSObjectResult objDescribe = sobjectSchemaMap.get('Contact').getDescribe();
Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
//Append each Field to the PDF
for(Schema.SObjectField fieldDef : fieldMap.values()){
Schema.Describefieldresult fieldDescResult = fieldDef.getDescribe();
String name = fieldDescResult.getName();
if(name == 'Title' || name == 'FirstName' || name == 'LastName' || name == 'Email' || name == 'Phone'){
pdfContent = pdfContent + '<P>' + name + ': ' + con.get(name) + '</P>';
}
}
pdfContent = pdfContent + FORM_HTML_END;
}catch(Exception e){
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<P>THERE WAS AN ERROR GENERATING PDF: ' + e.getMessage() + '</P>';
pdfContent = pdfContent + FORM_HTML_END;
}
attachPDF(con,pdfContent);
}
}
public static void attachPDF(Contact con, String pdfContent){
try{
Attachment attachmentPDF = new Attachment();
attachmentPDF.parentId = con.Id;
attachmentPDF.Name = con.FirstName+' '+con.LastName+ '.pdf';
attachmentPDF.body = Blob.toPDF(pdfContent); //This creates the PDF content
insert attachmentPDF;
}catch(Exception e){
con.addError(e.getMessage());
}
}
}
Thank you in advance
I want to style my pdf. I want to get the record fields in a box and with good appearence.please help me in this.
Below is my code...
========
ShowContactDetail.vfp
<apex:page controller="UpdateContactDetail">
<style type="text/css">
#title {
font-size: 150%;
margin-left: 30%;
}
</style>
<h2 id="title">Contact</h2><br/><br/>
<apex:form >
<apex:pageBlock >
<apex:pageBlockTable value="{!con}" var="b">
<apex:column headervalue="Title">
<apex:OutputText value="{!b.Title}" />
</apex:column>
<apex:column headervalue="First Name">
<apex:OutputText value="{!b.FirstName}" />
</apex:column>
<apex:column headervalue="Last Name">
<apex:OutputText value="{!b.LastName}" />
</apex:column>
<apex:column headervalue="Email">
<apex:inputText value="{!b.Email}" />
</apex:column>
<apex:column headervalue="Phone">
<apex:inputText value="{!b.Phone}" />
</apex:column>
<apex:column >
<apex:commandLink action="{!updateRecord}" value="Update"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
===============
UpdateContactDetail.apxc
public class UpdateContactDetail {
public Contact con {get;set;}
public Id recId;
public UpdateContactDetail ()
{
recId = ApexPages.CurrentPage().getparameters().get('recordId');
getRecord();
}
public void getRecord() {
con = [select Id, Name,FirstName, LastName, Title, Email, Phone from contact where id =:recId];
}
public PageReference updateRecord(){
try{
update con;
}
catch(DmlException ex){
ApexPages.addMessages(ex);
}
return null;
}
}
=============
GeneratePDFOfContactTrigger
trigger GeneratePDFOfContactTrigger on Contact (after update) {
GeneratePDFController.generateContactPDF(Trigger.new);
}
==============
GeneratePDFController.apxc
public class GeneratePDFController{
public static final String FORM_HTML_START = '<HTML><BODY>';
public static final String FORM_HTML_END = '</BODY></HTML>';
public static void generateContactPDF(list<contact> contactList){
String pdfContent = '' + FORM_HTML_START;
for(contact con : contactList){
try
{
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<H2>Contact Information</H2>';
//Dynamically grab all the fields to store in the PDF
Map<String, Schema.SObjectType> sobjectSchemaMap = Schema.getGlobalDescribe();
Schema.DescribeSObjectResult objDescribe = sobjectSchemaMap.get('Contact').getDescribe();
Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
//Append each Field to the PDF
for(Schema.SObjectField fieldDef : fieldMap.values()){
Schema.Describefieldresult fieldDescResult = fieldDef.getDescribe();
String name = fieldDescResult.getName();
if(name == 'Title' || name == 'FirstName' || name == 'LastName' || name == 'Email' || name == 'Phone'){
pdfContent = pdfContent + '<P>' + name + ': ' + con.get(name) + '</P>';
}
}
pdfContent = pdfContent + FORM_HTML_END;
}catch(Exception e){
pdfContent = '' + FORM_HTML_START;
pdfContent = pdfContent + '<P>THERE WAS AN ERROR GENERATING PDF: ' + e.getMessage() + '</P>';
pdfContent = pdfContent + FORM_HTML_END;
}
attachPDF(con,pdfContent);
}
}
public static void attachPDF(Contact con, String pdfContent){
try{
Attachment attachmentPDF = new Attachment();
attachmentPDF.parentId = con.Id;
attachmentPDF.Name = con.FirstName+' '+con.LastName+ '.pdf';
attachmentPDF.body = Blob.toPDF(pdfContent); //This creates the PDF content
insert attachmentPDF;
}catch(Exception e){
con.addError(e.getMessage());
}
}
}
Thank you in advance
- Lokesh Rayapati4
- September 21, 2021
- Like
- 0
Need help developing a test class for 100 percent code coverage. Can someone please help???
public with sharing class Auracsv {
@AuraEnabled
public static void processData(String fileData,String sobjectName,List<String> fields) {
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(sobjectName);
try{
if(fileData!=null){
String[] fileLines = new String[]{};
fileLines = fileData.split('\n');
List<sObject> myList = new List<sObject>();
for (Integer i=1,j=fileLines.size();i<j;i++){
String[] inputvalues = new String[]{};
inputvalues = fileLines[i].split(',');
sObject obj = targetType.newSObject();
integer rowsize=inputvalues.size();
for(integer l=0;l<rowsize-1;l++){
system.debug('fields.get(l)'+fields.get(l));
if(String.isNotBlank(inputvalues[l]) )
{
String value= inputvalues[l].length()>255 ? inputvalues[l].substring(0,254) : inputvalues[l];
obj.put(fields.get(l),value);
}else{
obj.put(fields.get(l),'');
}
}
myList.add(obj);
}
insert myList;
}
}catch(Exception e){
System.debug('exception'+e);
}
}
@AuraEnabled
public static List<Map<string,string>> getObjectList()
{
List<Map<string,string>> SObjectList = new List<Map<string,string>>();
for(Schema.SObjectType objTyp : Schema.getGlobalDescribe().Values()){
String name = objTyp.getDescribe().getName();
SObjectList.add(new Map<string,string>{'label'=>name,'value'=>name});
System.debug('name'+name);
}
return SObjectList;
}
@AuraEnabled
public static List<Sobject> updateData(string objectName, string file){
system.debug('Json : '+file+'----------'+objectName);
Blob json = EncodingUtil.base64Decode(file);
system.debug('Json file : '+json.tostring());
String[] fileLines = json.tostring().split('\n');
string[] headers = fileLines[0].split(',');
List<Sobject> objectList = new List<Sobject>();
for(integer i=1; i<fileLines.size() ;i++){
string[] rows = fileLines[i].split(',');
sObject sObj = Schema.getGlobalDescribe().get(objectName).newSObject();
for(integer j=0;j<headers.size();j++){
sObj.put(headers[j].trim(), rows[j].trim());
}
objectList.add(sObj);
}
system.debug('Object : '+objectList);
insert objectList;
return objectList;
}
}
Heres my WIP test class code====
@isTest
public class TestAuracsv {
public static String[] csvFileLines;
public static Blob csvFileBody;
@TestSetup
static void Accountdata(){
Account acc = new Account();
acc.Name = 'Lokesh';
acc.AccountNumber = '56293723';
acc.Type = 'Other';
acc.Industry = 'Chemicals';
insert acc;
}
@IsTest
static void testmethod1(){
Account acc = new Account();
acc.Name = 'Lokesh';
insert acc;
Test.startTest();
csvFileBody = Blob.valueOf(str);
String csvAsString = csvFileBody.toString();
AccountListController.updateData('Account', EncodingUtil.base64Encode(Blob.valueOf(str)));
AccountListController.getObjectList();
}
}
As I'm newbiee.There are some errors in test class and I'm trying to clear that.
@AuraEnabled
public static void processData(String fileData,String sobjectName,List<String> fields) {
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(sobjectName);
try{
if(fileData!=null){
String[] fileLines = new String[]{};
fileLines = fileData.split('\n');
List<sObject> myList = new List<sObject>();
for (Integer i=1,j=fileLines.size();i<j;i++){
String[] inputvalues = new String[]{};
inputvalues = fileLines[i].split(',');
sObject obj = targetType.newSObject();
integer rowsize=inputvalues.size();
for(integer l=0;l<rowsize-1;l++){
system.debug('fields.get(l)'+fields.get(l));
if(String.isNotBlank(inputvalues[l]) )
{
String value= inputvalues[l].length()>255 ? inputvalues[l].substring(0,254) : inputvalues[l];
obj.put(fields.get(l),value);
}else{
obj.put(fields.get(l),'');
}
}
myList.add(obj);
}
insert myList;
}
}catch(Exception e){
System.debug('exception'+e);
}
}
@AuraEnabled
public static List<Map<string,string>> getObjectList()
{
List<Map<string,string>> SObjectList = new List<Map<string,string>>();
for(Schema.SObjectType objTyp : Schema.getGlobalDescribe().Values()){
String name = objTyp.getDescribe().getName();
SObjectList.add(new Map<string,string>{'label'=>name,'value'=>name});
System.debug('name'+name);
}
return SObjectList;
}
@AuraEnabled
public static List<Sobject> updateData(string objectName, string file){
system.debug('Json : '+file+'----------'+objectName);
Blob json = EncodingUtil.base64Decode(file);
system.debug('Json file : '+json.tostring());
String[] fileLines = json.tostring().split('\n');
string[] headers = fileLines[0].split(',');
List<Sobject> objectList = new List<Sobject>();
for(integer i=1; i<fileLines.size() ;i++){
string[] rows = fileLines[i].split(',');
sObject sObj = Schema.getGlobalDescribe().get(objectName).newSObject();
for(integer j=0;j<headers.size();j++){
sObj.put(headers[j].trim(), rows[j].trim());
}
objectList.add(sObj);
}
system.debug('Object : '+objectList);
insert objectList;
return objectList;
}
}
Heres my WIP test class code====
@isTest
public class TestAuracsv {
public static String[] csvFileLines;
public static Blob csvFileBody;
@TestSetup
static void Accountdata(){
Account acc = new Account();
acc.Name = 'Lokesh';
acc.AccountNumber = '56293723';
acc.Type = 'Other';
acc.Industry = 'Chemicals';
insert acc;
}
@IsTest
static void testmethod1(){
Account acc = new Account();
acc.Name = 'Lokesh';
insert acc;
Test.startTest();
csvFileBody = Blob.valueOf(str);
String csvAsString = csvFileBody.toString();
AccountListController.updateData('Account', EncodingUtil.base64Encode(Blob.valueOf(str)));
AccountListController.getObjectList();
}
}
As I'm newbiee.There are some errors in test class and I'm trying to clear that.
- Lokesh Rayapati4
- August 17, 2021
- Like
- 0
Create a form to insert account withoutt record forms using Aura component
Hi,
I'm new to Aura components concept. Iam trying to Create a form to insert account withoutt record forms using Aura component. Please help me in solving this.
Thank you in advance
I'm new to Aura components concept. Iam trying to Create a form to insert account withoutt record forms using Aura component. Please help me in solving this.
Thank you in advance
- Lokesh Rayapati4
- July 13, 2021
- Like
- 0
By using batch class fields need to be updated daily with todays date + account name for all account in the org
Hi,
I'm new to developement. I want to do batch class by using to build a text field on account named "Todays execution".This fields needs to be updated daily wth todays date + account name for all the account in the org.
Thanks in advance
I'm new to developement. I want to do batch class by using to build a text field on account named "Todays execution".This fields needs to be updated daily wth todays date + account name for all the account in the org.
Thanks in advance
- Lokesh Rayapati4
- June 29, 2021
- Like
- 0