Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Поиск абонента по номеру телефона в карточке класса

Материал из Платформа Эра. Документации
Версия от 14:17, 28 марта 2025; AZykov (обсуждение | вклад) (Новая страница: «Предположим, что в ходе обработки входящего звонка оператор заполняет ФИО звонящего (или любые другие контактные данные). Требуется обеспечить возможность автоматической загрузки этих данных при повторных звонках (поиск по номеру телефона). Один из...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Предположим, что в ходе обработки входящего звонка оператор заполняет ФИО звонящего (или любые другие контактные данные). Требуется обеспечить возможность автоматической загрузки этих данных при повторных звонках (поиск по номеру телефона).

Один из способов решения этой задачи с использованием joined property и фрагментов кода afterSetCode и afterApplyUpdatesCode:

  1. Создаем класс Call (f, i, o, phoneNumber) и назначаем его карточку в качестве URL очереди с заполнением поля phoneNumber
  2. Создаем вспомогательный класс Abonent (f, i, o, number). В нем будет автоматически (засчет фрагментов кода ниже) накапливаться контактная информация по номерам телефонов
  3. Создаем joined property Call.abonent, phoneNumber/number, autoCreate, showInCard = false
  4. Call.phoneNumber.afterSetCode:
    this.get_abonent().then(abonent_ => {
     if (abonent_) {
     this.f = abonent_.f;
     this.i = abonent_.i;
     this.o = abonent_.o;
     this.emitAfterModify();
     }
     });
    
  5. Call.afterApplyUpdatesCode
    var abonent = await this.get_abonent();
     if (abonent) {
     await abonent.modify(() => {
     if (abonent) {
     abonent.f = this.f;
     abonent.i = this.i;
     abonent.o = this.o;
     }
     });
     await abonent.applyUpdates();
     }
    
    При изменении номера телефона (Call.phoneNumber) будет выполнен поиск абонента по номеру. В случае успеха контактная информация абонента применится к звонку. После применения изменений (Call.applyUpdates) будет выполнена обратная операция – от звонка к абоненту. Флажок autoCreate приведет к автоматическому созданию абонента, если он еще не существует.