вызов моего метода вершины в триггере вершины с получением ошибки

    public static void insertInboundJive(Map<Id, String> mapCases){
    try{

        system.debug('Aditya');
        Map<Id, String> mapCases1 = new Map<Id, String>();
        Map<Id, Integer> mapIncrements = new Map<Id, Integer>();
        //List<ICS_Case_Interaction__c> lstCaseInteraction;
        if(mapCases != null && mapCases.size() > 0) {
        List<ICS_Case_Interaction__c> lstCaseInteraction  = [ SELECT Id,case__r.origin FROM ICS_Case_Interaction__c Where case__r.Id =:mapCases.keySet()];
            for(ICS_Case_Interaction__c caseInteracts :lstCaseInteraction ){
                if(caseInteracts.case__r.Id != null && caseInteracts.case__r.Status == 'New Customer Message'){
                    system.debug('**AdityaDebug**' +caseInteracts.case__r.Id);
                    system.debug('**AdityaDebug**' +caseInteracts.case__r.Status);
                    mapcases1.put(caseInteracts.case__r.Id , TYPE_JIVE_INBOUND);
                    Integer intIncrement = mapIncrements.get(caseInteracts.case__r.Id);
                    system.debug('Increment' +intIncrement);
                    if(intIncrement != null){
                        intIncrement++;
                        system.debug('Increment++' +intIncrement);
                    }
                    else {
                        intIncrement = 1;
                    }
                     mapIncrements.put(caseInteracts.case__r.Id, intIncrement);
                }
            }
            if(mapCases.size() > 0) {
                insertByCaseAsync(mapCases, mapIncrements);
            }
        }
    }
    catch(Exception ex){
        Core_Log_Entry.logEntryWithException('Case Interaction Metrics', 'CaseInteraction','insertInboundEmail', 'Error', null, null, ex);
    }

}

Это мой метод в классе. Я пытаюсь вызвать метод вершины в триггере. Но он выдает ошибку. Не могли бы вы помочь мне и попытаться найти лучшее.

Ошибка, которую я получаю, была строка 188, столбец 106. Метод не существует или неправильная подпись: void insertInboundJive(List) из типа ICS_Case_Interactions_Trigger_Handler

if(trigger.isUpdate) {

if(Label.ICS_Case_Interaction_Metrics.equals('1')) {ICS_Case_Interactions_Trigger_Handler.insertInboundJive(trigger.new);} }


person vempati aditya    schedule 21.12.2017    source источник


Ответы (1)


Вы пытаетесь передать неправильные параметры. В методе вы определили, что при вызове вам нужно передать карту, где значения являются строками, однако вы передаете Trigger.new, который представляет собой список объектов. Мой подход состоит в том, чтобы обрабатывать сопоставление в триггере, а затем манипулировать данными в контроллере:

В этом случае вы можете сделать следующее, чтобы передать записи и получить строку данных, которую вы хотите, в контроллере... или сделать это в триггере, чтобы не менять контроллер.

Map<Id,Contact> map = new Map<Id,ICS_Case_Interaction__c>();  // new map

for(ICS_Case_Interaction__c con :trigger.new){  
    map.put(con.Id, con);  // enter the records you need for the method
}

if(trigger.isUpdate) {
        if(Label.ICS_Case_Interaction_Metrics.equals('1')) {
    ICS_Case_Interactions_Trigger_Handler.insertInboundJive(map);
        } 
    }

и в контроллере у вас должно быть

public static void insertInboundJive(Map<Id, ICS_Case_Interaction__c> mapCases){
}
person Iojo    schedule 04.04.2018