Я пытаюсь получить только обновленную запись из моего текущего списка. Я использую apex pageblocktable, чтобы показать текущий список, в котором поле контакта пусто (эти данные взяты из ответа API).. и пользователи вставят значение контакта со страницы visualforce..

enter image description here

Когда пользователи нажимают кнопку «Создать данные».., класс вставляет обновленный список в пользовательский объект с именем Purecloud_Missing_Call_Log_Check__c..

Как получить обновленную конкретную запись из списка?

for(string records: listFinalRecord)
                    {
                        List<string> recordFinal = records.split(';');

                        Purecloud_Missing_Call_Log_Check__c missingCall = new Purecloud_Missing_Call_Log_Check__c ();
                        missingCall.conversation_Id__c = recordFinal[0]; //Conversation ID
                        missingCall.Participant_Id__c = recordFinal[1]; //Participant ID
                        missingCall.Agent_Name__c = recordFinal[2]; //Agent Name or Purpose (Customer)
                        missingCall.Entity__c = recordFinal[3]; //Entity
                        missingCall.Phone_Number__c = recordFinal[4]; //Phone Number

                        for (Task tsk : allCurrentTask){
                            if (recordFinal[0] == tsk.CallObject && recordFinal[1] == tsk.Purecloud_Participant_Id__c){
                                missingCall.Check__c = True;
                                break;
                            }
                            else {
                                missingCall.Check__c = False;
                            }
                        }

                        taskList.add(missingCall);
                    } 
                    //insert taskList;

Это таблица ВФ:

<apex:pageBlockSection title="Call Log List">
        <apex:pageBlockTable id="idpbt" var="var" value="{!tasklist}" style="overflow:auto;width:1000px;" border="1">
            <apex:column headerValue="Call ID" value="{!var.Conversation_ID__c}"></apex:column>
            <apex:column headerValue="Participant ID" value="{!var.Participant_ID__c}"></apex:column>
            <apex:column headerValue="Phone Number" value="{!var.Phone_Number__c}"></apex:column>
            <apex:column headerValue="Contact" >
                <apex:inputField Id="Contact" value="{!var.Contact__c}" rendered="{!IF((var.Check__c == True),False,True)}"/>
            </apex:column>
            <apex:column headerValue="User / Agent" value="{!var.Agent_Name__c}"></apex:column>
            <apex:column headerValue="Entity" value="{!var.Entity__c}"></apex:column>
            <apex:column headerValue="Check">
                <apex:inputCheckbox disabled="true" id="checkbox" value="{!var.Check__c}"/>
            </apex:column>
        </apex:pageBlockTable>
    </apex:pageBlockSection>
0
Arief Gunawan Tjiptorahardja 18 Дек 2018 в 13:01

1 ответ

Вы можете создать набор и добавить все записи из tasklist на начальном этапе, при сохранении вы можете проверить, содержит ли набор объект. Набор содержит метод return true, это означает, что запись не изменена. Если он возвращает false, это означает, что некоторые поля в записи изменены. Вы можете собрать все записи, которые возвращают false.

0
Rahul Gawale 18 Дек 2018 в 13:07