function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Ramkumar SeetharamanRamkumar Seetharaman 

force:createRecord doesn't opens a create window

I am using standard force:createRecord to create Account. but I dont get create window when I clcik on a button.
I am hosting this lightning app from a VF page (as I want to overide standard button). I have written handler for createRecord event.

But when I host this lightning component from left navigation panel then it works. Please advise what am I missing?.
VF Page :

<apex:page standardController="Account" standardStylesheets="false" showHeader="false" sidebar="false">
    
    <apex:includeLightning />
<apex:includeScript value="/lightning/lightning.out.js" /> 
    <div id="lightning" />

    <script>
        $Lightning.use("c:TestClientCreationApp", function() {
          $Lightning.createComponent("c:TestClientCreation",
          { },
          "lightning",
          function(cmp) {
            // do some stuff
          });
        });
    </script>
</apex:page>

Lightning App : c:TestClientCreationApp

<aura:application access="Global" extends="ltng:outApp" implements="force:appHostable,flexipage:availableForAllPageTypes">
    
    <ltng:require styles="/resource/SLDS201/assets/styles/salesforce-lightning-design-system-ltng.css" />
     <ltng:require styles="/resource/SLDS201/assets/styles/salesforce-lightning-design-system-vf.min.css" />
   
    <aura:dependency resource="c:TestClientCreation"/>
 </aura:application>

Lightning Component : TestClientCreation

<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,force:hasRecordId,force:hasSObjectName" access="global" controller="ThemeCLass">
    
     <aura:handler name="init" value="{!this}" action="{!c.doInit}" />
<aura:dependency resource="markup://force:createRecord" type="EVENT" />
<aura:handler event="force:createRecord" action="{!c.createClient}" />

    
     <ui:button class="slds-button slds-button--brand" aura:id="btnCreateClient" press="{!c.showCreateClientModal}" label="">Create New Client </ui:button> 
</aura:component>

TestClientCreation Js Controller :

showCreateClientModal : function (component, event, helper) {
        
        var createRecordEvent = $A.get("e.force:createRecord");
         createRecordEvent.setParams({
            "entityApiName": "Account"
        });
        createRecordEvent.fire();
        
    },
    
    createClient : function (component, event, helper) {
        
    console.log('Yay');
        
    }

 
jprichterjprichter

The force events are not available using Lightning Out. However, you can use sforce.one.createRecord().

replace

var createRecordEvent = $A.get("e.force:createRecord");
createRecordEvent.setParams({
    "entityApiName": "Account"
});
createRecordEvent.fire();


with

sforce.one.createRecord("Account");
Ramkumar SeetharamanRamkumar Seetharaman
Hi jprichter,

I get an error saying that sforce.one.createRecord is not a function
jprichterjprichter

Ah, I assumed you were workinging in Lightning or SF1, not in classic.

 

Manish Sharma 105Manish Sharma 105
Hi Guys,

Have you found any solution for this? I also have the same requirement.
Please let me know if you have any solution now?
Thanks in Advance.
 
Poornima SampathbabuPoornima Sampathbabu
Hi guys
sforce.one.createRecord is working fine. but unable to pass defaultfiled values,

Here my code is 

createRecordForEmployee: function(component, event) {
       var defaultFieldValues = {
            'Comment__c' : 'test data'
        };  
        sforce.one.createRecord("Student_Employment__c", null, defaultFieldValues);
    }


Please help me on this


 
Daniel W.Daniel W.
Hi jprichter, and anyone looking for the answer,

your solution (August 15, 2016) helped me, but only in conjunction with this StackExchange post (https://salesforce.stackexchange.com/a/190173) that shows how to transfer default values. Replace the hardcoded values as you need them.
 
sforce.one.createRecord('Lead',null,{ 
    FirstName : "John",
    LastName : "Doe",  
});

Best regards
Daniel