Заменить кнопку Javascript на компонент молнии - PullRequest
0 голосов
/ 09 ноября 2019

Я новичок в Salesforce и пытаюсь воспроизвести кнопку, имеющуюся в SF Classic, для Lightning. Кнопка (Перейти к обслуживанию клиентов) назначает дела Владельцу (Служба поддержки клиентов, чей идентификатор (например: 00GU0000001eW6XYZA ') при нажатии кнопки в Classic. Я читал о быстрых действиях и приобрел кнопку владения на 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;
    }
}

Я добавил компонент, поскольку Quick Action добавил его в макет. Проблема заключается в том, что он не отображается в виде кнопки, а отображается в ленте

enter image description here

Может кто-нибудь подсказать мне, как двигаться вперед, я что-то пробовал, и мне нужна помощь.

...