将Javascript按钮替换为Lightning组件

时间:2019-11-09 03:39:35

标签: salesforce salesforce-lightning

我是Salesforce的新手,正在尝试将SF Classic中的按钮重现为Lightning。单击经典中的按钮,将按钮(传递给客户服务)将案件分配给所有者(ID为(例如:00GU0000001eW6XYZA'的客户服务)。我一直在阅读有关快速操作并在Lightning上采用所有权按钮的信息,但它们使用户选择/分配所有者到所选择的记录,但是我想做的是单击按钮时应将记录直接分配给指定的ownerID,该怎么做。

var caseObj = new sforce.SObject("Case");
caseObj.Id = '{!Case.Id}';
caseObj.OwnerId = '00GU0000001eW6XYZA';
var result2 = sforce.connection.update([caseObj]);
if (result2[0].success=='true') {
location.reload(true);}
else{alert(result2[0].errors);}

我试图在下面的“快速操作”中将其作为闪电组件实现

组件

<aura:component implements="flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction" controller="ChangeOwnerClass" access="global" >
    <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
</aura:component>

控制器

({
 doInit : function(component, event, helper) {
        var caseId = component.get("v.recordId");
        var action = component.get("c.changeOwnerMethod");
        action.setParams({
            caseId : caseId
        });
        action.setCallback(this, function(response) {
            if(response.getState() === "SUCCESS") {
                console.log("Case Owner Changed To Domestic Customer Service");
             }
        });
        $A.enqueueAction(action);
        $A.get('e.force:refreshView').fire();
 }
})

和班级

public class ChangeOwnerClass {
@AuraEnabled
    public static Case changeOwnerMethod(Id caseId) {
        if(caseId != null) {
           Case c = [SELECT OwnerId FROM Case WHERE Id = :caseId];
         c.OwnerId =  '00GU0000001eW6XYZA';
            update c;
            return c;
        }
        return null;
    }
}

我将组件添加为快速操作,将其添加到布局中。问题是它没有显示为按钮,而是显示在Feed中

enter image description here

有人可以指导我前进的方式吗,我尝试了一些事情,需要帮助。

0 个答案:

没有答案