You need to sign in to do that
Don't have an account?
![Eric Latreille 8 Eric Latreille 8](https://dfc-org-production.my.site.com/img/userprofile/default_profile_45_v2.png)
LWC - @api recordId not working
I am not able to save my record. no error message is showing.
Here is my class.
public with sharing class ScheduleClass {
@AuraEnabled
public static Product_Schedule__c submitSchedule(String psRecordId, string psName, string psDescription){
Product_Schedule__c psObj = new Product_Schedule__c();
psObj.Invoice_Schedule__c=psRecordId;
psObj.Product_Name__c=psName;
psObj.Product_Description__c=psDescription;
insert psObj;
return psObj;
}
}
If I add the id of my record page it works but if I am trying to pass the id through my js file it is not working.
Here is my JS File:
import {LightningElement, track, api } from 'lwc';
import submitSchedule from '@salesforce/apex/ScheduleClass.submitSchedule';
import {ShowToastEvent} from 'lightning/platformShowToastEvent';
export default class ScheduleClass extends LightningElement {
@track psObjName;
@track psObjDescription;
@api psRecordId;
@track errorMsg;
psHandleChange(event){
if(event.target.name == 'psName'){
this.psObjName = event.target.value;
}
if(event.target.name == 'psDescription'){
this.psObjDescription = event.target.value;
}
}
submitAction(){
submitSchedule({psRecordId:this.psRecordId,psName:this.psObjName,psDescription:this.psObjDescription})
.then(result=>{
this.psRecordId = result.Id;
window.console.log('psRecordId ' + this.psRecordId);
const toastEvent = new ShowToastEvent({
title:'Success!',
message:'Record created successfully',
variant:'success'
});
this.dispatchEvent(toastEvent);
/*Start Navigation*/
this[NavigationMixin.Navigate]({
type: 'standard__recordPage',
attributes: {
psRecordId: this.psRecordId,
objectApiName: 'Invoice_Schedule__c',
actionName: 'view'
},
});
/*End Navigation*/
})
.catch(error =>{
this.errorMsg=error.message;
window.console.log(this.error);
});
}
}
What Am I doing wrong?
Thanks
Eric
Here is my class.
public with sharing class ScheduleClass {
@AuraEnabled
public static Product_Schedule__c submitSchedule(String psRecordId, string psName, string psDescription){
Product_Schedule__c psObj = new Product_Schedule__c();
psObj.Invoice_Schedule__c=psRecordId;
psObj.Product_Name__c=psName;
psObj.Product_Description__c=psDescription;
insert psObj;
return psObj;
}
}
If I add the id of my record page it works but if I am trying to pass the id through my js file it is not working.
Here is my JS File:
import {LightningElement, track, api } from 'lwc';
import submitSchedule from '@salesforce/apex/ScheduleClass.submitSchedule';
import {ShowToastEvent} from 'lightning/platformShowToastEvent';
export default class ScheduleClass extends LightningElement {
@track psObjName;
@track psObjDescription;
@api psRecordId;
@track errorMsg;
psHandleChange(event){
if(event.target.name == 'psName'){
this.psObjName = event.target.value;
}
if(event.target.name == 'psDescription'){
this.psObjDescription = event.target.value;
}
}
submitAction(){
submitSchedule({psRecordId:this.psRecordId,psName:this.psObjName,psDescription:this.psObjDescription})
.then(result=>{
this.psRecordId = result.Id;
window.console.log('psRecordId ' + this.psRecordId);
const toastEvent = new ShowToastEvent({
title:'Success!',
message:'Record created successfully',
variant:'success'
});
this.dispatchEvent(toastEvent);
/*Start Navigation*/
this[NavigationMixin.Navigate]({
type: 'standard__recordPage',
attributes: {
psRecordId: this.psRecordId,
objectApiName: 'Invoice_Schedule__c',
actionName: 'view'
},
});
/*End Navigation*/
})
.catch(error =>{
this.errorMsg=error.message;
window.console.log(this.error);
});
}
}
What Am I doing wrong?
Thanks
Eric
Do you see any information in the logs?
I also have issue with @api recordId;
I can see it in Salesforce Lightning, but do not see it in Experience site (community).
In Experience builder, property set to {!recordId}
Profile is Admin with all accesses.
Console log shows - "Undefined"
I did try to add this LWC on to different objects details page - Undefined.
I`m out of ideas.
If anyone has something to share, please share :)
Thank you in advance.
here are my simple code samples:
HTML
<template>
<lightning-card title="Foto upload" icon-name="custom:custom19">
Here you should see the Record Id {recordId}
<lightning-button
variant="brand"
label="Console.log"
title="Console.log"
onclick={handleConsoleLogClick}
></lightning-button>
</lightning-card>
</template>
JS
import { LightningElement, api, wire } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
export default class FileUploadLWC extends LightningElement {
@api recordId;
handleConsoleLogClick(event) {
console.log(this.recordId);
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="recordComponent">
<apiVersion>51.0</apiVersion>
<description>externalUserFileUploader</description>
<isExposed>true</isExposed>
<targets>
<target>lightningCommunity__Page</target>
<target>lightningCommunity__Default</target>
</targets>
<targetConfigs>
<targetConfig targets="lightningCommunity__Default">
<property name="recordId" type="String" label="Record ID"
description="Should be set to {!recordId}"/>
</targetConfig>
</targetConfigs>
</LightningComponentBundle>
Aura component
<aura:component implements="flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >
<aura:attribute name="recordId" type="String" />
{!v.recordId}
</aura:component>