Прочитайте о расписаниях обновления здесь.

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

Чаще всего автоматизация означает перевод бизнес-процессов из одной формы в другую: из бумажной формы в цифровую, из старой системы в новую. С каждым переводом бизнес-процесса появляется возможность трансформации.

Трансформация - это не использование новых технологий для внедрения разрушительных и запутанных изменений для пользователей. Трансформация — это создание более простых способов выполнения работы, создание условий для развития бизнеса без трений, а также предоставление бизнес-пользователям возможности более глубоко сосредоточиться на том, что действительно важно для их заинтересованных лиц. С архитектурной точки зрения это предполагает определение задач, которые можно полностью исключить или обработать автоматически. Для этого требуется четкая связь между способом использования технологии и ее измеримым воздействием на предприятие.

Важно отметить автоматизацию с помощью Salesforce: ее можно выполнить с помощью разных инструментов, используя программные и декларативные наборы навыков. Создание автоматизаций с хорошей архитектурой не означает выбора создания только с одним средством автоматизации. Речь идет об использовании последовательных и предсказуемых подходов, а также предоставлении группам возможности разработки, тестирования, развертывания и обслуживания разработанных автоматизаций. Автоматизация должна иметь максимально удобную и читаемую форму.

Данный раздел посвящен способам проектирования и реорганизации автоматизации, позволяющим предприятиям быстрее и масштабнее достигать ключевых целей. Архитектура автоматизаций Salesforce может быть улучшена посредством повышения эффективности и целостности данных.

Создание эффективности автоматизации не означает корректного воссоздания нормальной работы с помощью технологий Salesforce. Главное — глубокое понимание ключевых показателей и бизнес-результатов, за выполнение которых будут отвечать рабочие группы, а также отход назад для просмотра функциональных единиц в автоматизируемой работе и между ними. Это определение способа создания схем с помощью автоматизации, позволяющих бизнесу работать более эффективно и быстро в масштабах.

Эффективная логика автоматизации сделает ваши системы:

  • Более масштабируемый и ценный для бизнеса
  • Больше полезного для пользователей
  • Более адаптируемый и способный удовлетворять меняющиеся бизнес-потребности

Эффективность автоматизации можно повысить посредством проектирования процессов и операционной логики.

Проектирование процессов включает определение способов выполнения работы. Создание по-настоящему эффективных и действенных процессов означает, что ваши разработки не просто копируют современные методы работы. Крайне важно выявлять и удалять неэффективные или неясные шаги. Оптимизированные процессы должны создавать измеримую бизнес-ценность (см. КПЭ) без лишних шагов. Неясные или ненужные шаги, вероятно, создадут техническую задолженность и приведут к необслуживаемой автоматизации.

Часто ответственность за обнаружение и документирование бизнес-процессов ложится на бизнес-аналитика или даже системного администратора. Архитекторы отвечают за сотрудничество с этими участниками рабочей группы, чтобы убедиться в технической надежности и правильной структуре процессов. Раннее применение Knowledge о Salesforce Platform поможет рабочей группе определить процессы для оптимизации посредством автоматизации или процессы, которые нужно изменить во избежание дорогостоящих настроек.

Чтобы создать оптимизированные процессы для Salesforce, выполните указанные ниже действия.

  • Тщательно определите процессы. Процессы с неясными целями или неясными определениями, скорее всего, будут неправильно истолкованы во время проектирования. Это приведет к ошибочным конструкциям, основанным на предположениях, что приведет к неправильной или неэффективной автоматизации. Убедитесь, что бизнес-процессы, которые нужно автоматизировать, соответствуют следующим стандартам:

    • Ограничивается одной конкретной функцией (см. «Функциональные единицы»)
    • Содержит четко определенные измеримые результаты (см. раздел «Бизнес-значение»)
    • Имеет четко определенные вводные и выходные данные
  • Хотя иногда возникает соблазн добавить дополнительные этапы, которые «могут оказаться полезными в будущем», это никогда не будет хорошим подходом.**** Каждый этап автоматизации должен соответствовать результату общего процесса. Убедитесь, что каждый этап процесса имеет следующие характеристики:

    • Выполняет конкретную детальную задачу (см. составной)
    • Обязательно для создания заданного результата процесса (удаление всех несущественных этапов)
    • Можно выполнить, используя минимальное количество ресурсов
    • Использует существующие системные данные вместо запроса вводных данных пользователей (см. раздел «Задействование»)
    • Предоставляет параметры ввода, понятные пользователям без необходимости знать, как работают базовые системы (см. полезно)

Список шаблонов и антишаблонов ниже отображает правильную (и плохую) оптимизацию в организации Salesforce. Их можно использовать для проверки дизайна автоматизации перед созданием или определения автоматизации, требующей дальнейшей оптимизации.

Дополнительные сведения об инструментах автоматизации процессов, доступных в Salesforce, см. в разделе «Инструменты, связанные с автоматизированными».

Операционная логика определяет эффективность преобразования процесса из его разработки в фактическое внедрение. Автоматы с сильной операционной логикой продолжают работать хорошо, вне зависимости от увеличения объемов транзакций или количества выполняемых параллельных экземпляров. Логически обоснованные автоматизации помогают предприятиям легче масштабироваться, чтобы работать на более высоком уровне спроса. Внедрение сильной операционной логики в автоматизацию напрямую зависит от общей надежности системы.

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

Чтобы создать эффективную операционную логику в автоматизации, учитывайте следующее:

  • Убедитесь, что все создатели автоматизации знают правильный способ. Плохой выбор дизайна может быть сделан с помощью любого средства автоматизации. Код не менее подвержен ошибкам или плохому выбору внедрения, чем инструменты на основе кликов. Например, использование жестко запрограммированных кодов ссылки является антипаттерном, который отображается в потоке и коде. Инструменты на основе кликов не должны рассматриваться как лицензия, позволяющая всем и каждому выпускать автоматизацию в производство. Каждый участник рабочей группы, создающий автоматизацию, должен знать, как ее правильно создать. Подробнее о том, как определить и применить эффективные стандарты в системах, см. в разделе «Стандарты чтения и разработки».
  • Четко задокументировать все пути выполнения. Расширение использования автоматизации не только увеличивает потенциальные объемы данных, но и увеличивает незапланированные контексты вызовов. Вам нужно понять, как можно вызывать разные автоматизации, и обеспечить отображение правильных элементов управления транзакциями (см. обработку данных) во всех автоматизациях с несколькими точками входа. Например, потоки окон не будут выполняться с пакетными загрузками данных, но Apex, вероятно, запустит и запустит (и автоматически запустит) потоки. Четкое документирование запланированных и потенциальных путей выполнения для автоматизаций является ключевым аспектом понимания того, какие логические условия вам потребуются во время внедрения.
  • «Пакетирование» всех операций над данными (включая SOQL). Каждая операция над данными (вставка, обновление и т. д.) должна выполняться относительно коллекций. Всегда. Без исключений. Именно это подразумевается под «пакетными» операциями. Хотя платформа может поддерживать операции с однотонными данными, вы не должны разрешать внедрение однотонных схем.
  • Использовать SOSL для поисковых операций. Существует ошибочное мнение, что операции над данными не могут выполняться над записями, возвращенными посредством SOSL. Верно, что DML нельзя вызвать напрямую против результатов SOSL, но код может анализировать результаты SOSL и создавать коллекцию, на которую можно ссылаться в методах класса DML или базы данных. Ключевые отличия между SOSL и SOQL заключаются в типах возврата для каждого и их реакции на обобщенные или специальные поиски. SOSL может работать против нескольких типов sObject (поэтому тип возврата отличается) и обрабатывать специальные символы и обобщенные поиски строк с лучшей производительностью, чем SOQL.
  • Считайте SOQL операцией над данными. Не используйте SOQL для поиска записей — используйте его для настройки операций над данными. Операции SOQL и данные могут оказывать весьма одинаковое воздействие на производительность базы данных. SOQL может даже передавать явный индикатор DML, который будет блокировать строки базы данных в ожидании операций над данными. Чтобы создать масштабируемые автоматизации, отнеситесь к SOQL с одинаковой должной осмотрительностью: не используйте его без четко определенных критериев выбора, не разрешайте ссылки на посторонние поля и требуйте тщательного сопоставления типов данных между полями и вводными данными фильтра в логике оператора WHERE. Ваш код также должен иметь соответствующие элементы управления, чтобы гарантировать выполнение запроса в непакетных контекстах или по нулевым или пустым критериям фильтрации.
  • Поддерживайте строгий фокус синхронных операций на работе, помогающей пользователю в режиме реального времени. Во время оптимизации процесса определите логику, соответствующую потребностям пользователей в реальном или близком к реальному времени, а также возможности переноса в асинхронную (асинхронную) транзакцию. См. раздел «Обработка данных» для получения дополнительных сведений о создании операций синхронизации/асинхронизации.

Список шаблонов и антишаблонов ниже отображает правильную (и плохую) логику работы в автоматизации Salesforce. Их можно использовать для проверки дизайна автоматизации перед созданием или определения автоматизации, требующей дальнейшей оптимизации.

Чтобы узнать больше об инструментах, доступных в Salesforce, которые могут помочь вам спланировать масштаб, см. Инструменты, связанные с автоматизированными.

КПЭ автоматизации определяют влияние автоматизации в динамике. Без них у вас не будет возможности определить, действительно ли автоматизация повышает ценность бизнеса или создает непреднамеренные сложности для пользователей. Каждая созданная автоматизация должна быть привязана к четкому и измеримому набору КПЭ.

Хорошие КПЭ определяются измеримым значением вместе со связанным промежутком времени. Примеры:

  • [X число] рабочих часов, сохраненных в месяц
  • Количество сбоев обработки при вводе данных вручную сокращено на [Y%] в неделю

После получения четких измеримых КПЭ необходимо также понять, будет ли и как автоматизация в Salesforce создавать данные, связанные с отчетностью по этим КПЭ.

Список шаблонов и антишаблонов ниже отображает, как правильно (и плохо) выглядят КПЭ в автоматизации Salesforce. Их можно использовать для проверки текущих КПЭ или определения областей, где нужно лучше определить КПЭ перед созданием.

Чтобы узнать больше об инструментах, доступных в Salesforce для получения справки по КПЭ, см. «Инструменты, связанные с автоматизированными».

Следующая таблица отображает выбор схем для поиска (или создания) в организации и антисхемы для избежания или нацеливания на исправление.

✨ Ознакомьтесь с дополнительными схемами эффективности в Проводнике по шаблонам и антипаттернам.

Шаблоны Антишаблоны
Проектирование процессов В вашей организации:
- Каждый поток служит одной конкретной цели
- Каждый этап выполняет определенную детальную задачу
- Потоки организованы в иерархической структуре, состоящей из основного потока и поддерживающих подпотоков
- Все вводные данные пользователя имеют четкое назначение в потоке
- Пользователям предлагается предоставить данные только при невозможности использования существующих системных данных
В вашей организации:
- Потоки служат нескольким целям и требуют дополнительных вводных данных для предоставления контекста
- Потоки требуют вводных данных, которые не используются
- Группы связанных этапов содержат функции, которые накладываются на группы этапов в других потоках
- Потоки запрашивают вводные данные пользователя, когда сохраненные данные могут использоваться вместо них
В Apex:
- Каждый класс служит одной конкретной цели
- Каждый метод выполняет определенную детальную задачу
- Все переменные ввода имеют четкое назначение в классе
- Выполнение кода требует минимального количества ресурсов
В Apex:
- Занятия служат нескольким целям
- Методы выполняют несколько задач или методы выполняют задачи, которые не соответствуют заявленной цели класса, в который они входят
- Переменные ввода фактически не используются в методах
- Методы неоправданного извлечения данных из базы данных или внешних систем
Оперативная логика В потоке:
- Нет переменных, ссылающихся на жестко запрограммированные значения (для типов записей, пользователей и т. д.)
- Все автоматически запущенные потоки и процессы используют элементы решения и/или приостановления для оценки критериев входа и предотвращения бесконечных циклов или выполнения в больших объемах данных
- Потоки (включая процессы) отключают логику передачи в Apex в контекстах большого объема данных
- Подпотоки используются для разделов процессов, которые нужно повторно использовать в бизнесе
В потоке:
- Переменные имеют жестко запрограммированные значения
- Потоки (включая процессы) должны быть деактивированы вручную до пакетной загрузки данных
- Потоки (включая процессы) инициируют уведомления о "необработанном исключении"
- Даже простые потоки регулярно приводят к ошибкам, связанным с контролирующими ограничениями
- Части потока повторяются в потоках вместо использования подпотоков
В Apex:
- Нет переменных, ссылающихся на жестко запрограммированные значения (для типов записей, пользователей и т. д.)
- Все специальные критерии отображаются в SOSL
- SOQL добавлен в пробную ловлю
- Отсутствие SOQL в цикле
Высказывания SOQL являются выборочными, включая:
не используются сравнения типа «Нравится» или сравнения частичного текста
операторы сравнения используют положительную логику (т. е. ВКЛЮЧАЕТ, IN) в качестве основной или только логику
-- использование = NULL, != NULL редко и/или всегда следует положительному оператору сравнения
-- не отображаются операторы LIMIT 1
неиспользование ключевого слова «ВСЕ СТРОКИ»
В Apex:
- Переменные имеют жестко запрограммированные значения
SOSL редко или не всегда используется для критериев выбора специальных символов
- SOQL не добавляется в пробную ловлю
- SOQL отображается в циклах
Заявления SOQL являются неизбирательными, включая:
-- Отображаются критерии фильтрации «НРАВИТСЯ» и «Подстановка»
-- сравнения, использующие критерии НЕ, НЕ В качестве основного или единственного оператора сравнения
-- = NULL, != NULL используются в качестве основного или единственного оператора сравнения
-- Отображаются операторы LIMIT 1
используется ключевое слово ALL ROWS
В стандартах проектирования и документации:
- Четко расписаны запланированные и потенциальные пути выполнения автоматизации
- Сценарии использования синхронных и асинхронных операций в автоматике четко расписаны как часть стандартов проектирования
В стандартах проектирования и документации:
- Вызов автоматизации не задокументирован
- Сценарии использования для синхронных и асинхронных операций не рассматриваются
KPIs В документации:
- Выводы для каждой автоматизации измеримы и ограничены по времени
Ответственные заинтересованные лица указаны для каждого КПЭ
В документации:
КПЭ не существуют для автоматизации или имеют неясные временные промежутки для измерений
КПЭ существуют без подотчетных заинтересованных лиц
В отчетах и панелях мониторинга:
- Все показатели, связанные с КПЭ, включены как минимум в один отчет или панель мониторинга
В отчетах и панелях мониторинга:
Отчетность по КПЭ не существует или отчеты не содержат показателей, связанных с некоторыми КПЭ

Целостность данных — это качество хранения точных и полных данных системой. Salesforce Platform поддерживает надежную встроенную логику обработки, предназначенную для защиты целостности данных, хранящихся в соответствующей базе данных отдельной организации. Одной из основ создания здоровых автоматизаций является понимание встроенных алгоритмов целостности данных Salesforce и обеспечение соответствия (и признания) всех ваших дизайнов автоматизации этим алгоритмам.

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

Правильное расширение целостности данных в настраиваемых автоматах означает, что ваша система может:

  • работают против пакетных и больших объемов данных без ручного вмешательства,
  • внедрять политики безопасности пользователей при необходимости и переключаться в системный контекст при необходимости,
  • столкнуться с ошибками во время выполнения и следовать предсказуемым путям восстановления или сбоя.

Вы можете создать лучшую целостность данных в автоматизации Salesforce посредством правильной обработки данных и обработки ошибок.

Первым шагом к созданию правильных методов обработки данных в Salesforce является понимание того, как многопользовательская платформа обрабатывает транзакции. Это включает понимание встроенного порядка выполнения алгоритмов, используемых Salesforce Platform для обеспечения целостности данных во время операций над данными на уровне записи. Дополнительные сведения о влиянии этого алгоритма см. в разделе «Манипулирование базами данных в основах архитектуры Salesforce».

Плохая обработка данных в автоматизации может быть одним из самых сложных антипаттернов для идентификации и полного исправления. Рекурсивный и накладывающийся характер порядка выполнения платформы может затруднить определение источников проблем. Конкретный раздел кода или потока, создающий фатальную ошибку или превышающий контролирующие ограничения, может не быть основной причиной проблемы обработки данных.

Информированность о транзакциях является ключом к созданию автоматизаций, которые будут надежно и эффективно работать с Salesforce. Это значит, что каждый этап автоматизации должен быть спроектирован с Knowledge о том, где он находится в связи с управляемым платформой порядком выполнения, может корректно выполнять свои функции и правильно передавать информацию на следующий этап.

Независимо от используемого инструмента автоматизации, надлежащая осведомленность о транзакциях выполняется по одинаковым схемам и требует общих рекомендаций:

  • Предположим, каждой автоматизации будет предложено выполнить проверку больших объемов данных без предупреждения в любое заданное время. Автоматы должны иметь пути, позволяющие пакетное или пакетное выполнение (см. «Масштабируемость»).
  • Не смешивайте операции над данными системного и пользовательского контекста в одной транзакции.
  • Зарезервируйте операции синхронизации данных для до контекстов и используйте операции асинхронизации для всех после действий контекста.
  • Используйте сообщения и уведомления, чтобы избежать создания внутрипрограммных взаимодействий, требующих ожидания данных на основе результатов асинхронной операции.

Помимо осведомленности об операциях, обработка данных связана со вторым аспектом: знанием того, когда следует применять логику в различных контекстах выполнения. Распространенные причины разделения автоматизации на разные контексты выполнения включают:

  • Большой объем и/или сложные операции с данными
    • Пакетирование операций не гарантирует корректную обработку больших объемов данных автоматизацией. Если объем операций над данными в автоматизации превышает ограничения по транзакциям, необходимо выполнить операции над данными посредством функций, характерных для больших объемов данных (например, посредством пакетного Apex или Bulk 2.0 API). У них есть разные ограничения транзакций, соответствующие большим объемам данных.
    • Операции над данными, требующие преодоления сложных иерархий взаимосвязей или выполнения сложных пересчетов (кроме полей формул) в записях, могут легко превышать ограничения по транзакциям при пакетном выполнении. Определите, насколько «шумным» является обновление одной записи с точки зрения связанных операций над данными или SOQL, необходимых для выполнения последующих действий в системе.
    • Типы объектов sObject, задействованных во всей цепочке автоматизации, могут требовать разделения операций над данными на отдельные транзакции во избежание ошибок «смешанного DML».
  • Логика, которую нужно выполнить в контексте пользователя или системы
    • Salesforce Platform применяет общий доступ и доступность в контексте пользователя. Если вам нужно выполнить операции, выходящие за пределы полномочий пользователей автоматизации, необходимо убедиться, что эти операции выполняются в контексте системы.
    • Разные инструменты будут или не будут выполняться в разных контекстах:
      • Apex будет выполняться в системном контексте по умолчанию. Вы можете управлять внедрением правил общего доступа на уровне пользователя алгоритмами Apex, используя ключевые слова общего доступа в определении класса Apex.
      • В потоке нет единого стандартного алгоритма. Поток будет выполняться в пользовательском или системном контексте на основе способа запуска потока. У вас есть возможность применить общий доступ в контексте системы.
      • Процессы (то есть автоматизация, созданная посредством конструктора процессов) выполняются в контексте системы без рекомендаций по общему доступу. (Примечание: Рекомендуем создавать автоматизацию с низким кодом посредством потока.
  • Логика, которая должна выполняться асинхронно
    • Операции внешней системы - Синхронные выноски или действия, открывающие внешние данные, не включены в алгоритмы отката платформы. Чтобы воспользоваться этими алгоритмами, необходимо разместить действия с внешними системами в отдельные транзакции (посредством методов асинхронизации Apex, асинхронных путей или вызываемых действий).
    • Событие и служба сообщений. Чтобы управлять потоком событий или сообщений, связанных с операциями над данными (и использовать алгоритмы отката платформы), разместите все действия, связанные с службой сообщений или событиями, в после контекстов, используя методы асинхронизации Apex.

Список шаблонов и антишаблонов ниже отображает, как правильно (и плохо) выглядит обработка данных в автоматизации Salesforce. Их можно использовать для проверки дизайна автоматизации перед созданием или определения автоматизации, которую нужно реорганизовать для улучшения обработки данных.

Чтобы узнать больше об инструментах, доступных в Salesforce для обработки данных в автоматизации, см. Инструменты, связанные с автоматизированными.

Обработка ошибок важна для целостности данных. Сильная обработка ошибок также помогает повысить масштабы и возраст системы с большей устойчивостью.

Неправильная обработка ошибок в автоматизации может привести к:

  • Несоответствия записей и другие проблемы целостности данных
  • Отправка неточных уведомлений пользователям и другим системам
  • Трата времени и ресурсов на ручную или повторную обработку
  • General lack of Trust in a system

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

Чтобы встроить соответствующие средства управления ошибками в автоматизацию, задайте следующие вопросы:

  • Что такое «роковая» ошибка?
  • Что такое «исправимая» ошибка?
  • Как автоматизация, инициированная действиями пользователя, может обнаружить ошибки и уведомить пользователя перед попыткой внесения изменений?

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

Чтобы узнать больше об инструментах, доступных в Salesforce для обработки ошибок, см. Инструменты, связанные с автоматизированными.

Следующая таблица отображает выбор схем для поиска (или создания) в организации и антисхемы для избежания или нацеливания на исправление.

✨ Ознакомьтесь с дополнительными схемами целостности данных в Проводнике по шаблонам и антипаттернам.

Шаблоны Антишаблоны
Обработка данных В словаре данных:
Данные уровня поля и логика приоритетов для всех источников данных и объектов озера данных существуют
- Существует соотнесение полей из объекта озера данных с объектом модели данных
В словаре данных:
Данные поля и логика расстановки приоритетов для источников данных и объектов озера данных не включены
- Соотнесение полей из объектов озера данных с объектами модели данных не включено
В Apex:
- Все синхронные операторы DML или методы класса базы данных выполняются в контекстах выполнения перед триггером
- Вызовы Async Apex используют очереди для «цепочки» сложных DML в транзакциях
- Пакетный Apex используется исключительно для больших объемов данных
- @ future Apex не используется или используется экономно, для выносок или DML системного объекта
В Apex:
Заявления DML регулярно отображаются в коде, который будет вызываться после контекстов триггера
- Async Apex используется редко
- Функции Async Apex используются произвольно, включая:
-- Будущие методы и Apex в очереди используются непоследовательно или взаимозаменяемо
-- Операции базы данных не имеют четкой, последовательной логики передачи выполнения в пакет Apex при необходимости
В потоке:
- Все потоки, запущенные в контексте пользователя, извлекают все транзакции системного контекста в подпотоки, которые последовательно размещаются после элемента приостановления, для создания новой транзакции
- Создаются сложные последовательности операций связанных данных посредством оркестратора (вместо вызова нескольких подпотоков в монолитном потоке)
- Все потоки, запущенные записью, заполнены значениями порядка триггеров
- Потоки, использующие выноски внешней системы или длительные процессы, используют асинхронные пути
В потоке:
- Крупные монолитные потоки пытаются координировать сложные последовательности операций связанных данных (с подпотоками или без них)
- Потоки, запущенные записью, вообще не используют атрибуты порядка триггеров или не используют значения порядка триггеров последовательно
- Асинхронные пути не используются последовательно или вообще
В вашей организации:
- Правила сверки разрешающей способности при опознавании следуют логике приоритетов в словаре данных
В вашей организации:
- Правила сверки разрешающей способности при опознавании не следуют логике приоритетов в словаре данных
Обработка ошибок В Apex:
- Код добавляет все DML, SOQL, выноски и другие важные этапы процесса в блоки пробной ловли
- Настраиваемые исключения используются для создания расширенных сообщений об ошибках и логики
В асинхронном и пакетном контекстах вместо DML используются методы класса базы данных
Методы класса базы данных могут использоваться исключительно для всех операций над данными (вместо DML)
В Apex:
- DML, SOQL, выноски или другие важные этапы процесса не всегда добавляются в блоки пробной ловли
Выписки из System.debug отображаются в производственном коде (без комментариев)
- Методы класса базы данных не используются
- Операции над данными выполняются исключительно посредством DML
В веб-компонентах Lightning (LWC):
- JavaScript добавляет все операции над данными и важные этапы процесса в блоки если ()/иначе, если ()
- Все функции @wire используют свойства данных и ошибок, предоставленные API
- Все, если (ошибка)/иначе, если операторы содержат логику для обработки ошибок и предоставления информативных сообщений
В LWC:
- JavaScript не использует последовательно блоки If ()/else if () с операциями над данными или важными этапами процесса
Функции @wire не используют свойства данных и ошибок, предоставленные API (или не используют их последовательно).
Если операторы используются вообще, если (ошибка)/иначе, если (ошибка) операторы фактически не содержат логики для обработки ошибок и предоставления полезных сообщений об ошибках
В Aura:
- JavaScript добавляет все операции над данными и критические этапы процесса в пробные блоки
- В пробных блоках собственная ошибка JavaScript используется в операторе броска (без использования $A.error())
- Вся исправляемая логика ошибки отображается в операторе вылова и предоставляет четкие сообщения пользователя
В Aura:
- JavaScript не поддерживает последовательное добавление операций над данными и критических этапов процесса в пробные блоки
Использование компонентами $A.error()
- Логика исправляемой ошибки не всегда отображается в отчетах об улове, а сообщения об ошибках пользователям не понятны
В потоке:
- Потоки окон последовательно используют коннекторы ошибок для отображения ошибок пользователям
- Настраиваемые сообщения об ошибках настроены на ошибки, которые отобразятся на экране
- Потоки с операциями над данными, выносками и другой логикой критической обработки имеют пути ошибок для всех ключевых действий
В потоке:
- Потоки не используют пути ошибок последовательно или вообще
- Настраиваемые сообщения об ошибках не используются, поэтому пользователям отображается стандартное сообщение «В данном потоке произошла необработанная ошибка»

Концепция бизнес-ценности в контексте автоматизации заключается в том, насколько хорошо процессы создают измеримое положительное воздействие для заинтересованных лиц. В идеале, автоматизация процессов позволяет пользователям тратить меньше времени на повторяющиеся задачи низкой ценности. Он также помогает повысить целостность данных, исключая действия ручной обработки, которые могут привести к ошибкам. Подобно проектированию процессов, определение и внедрение автоматизаций, которые будут стимулировать реальную ценность бизнеса, требует работы, выходящей за рамки базовых открытий и бизнес-анализа.

Иногда может показаться, что лучший способ повысить ценность бизнеса — это просто автоматизировать каждый процесс, запрошенный бизнес-пользователем, в порядке их отображения в накопившихся делах (или очереди на билеты) или на основе политических факторов в организации. Это может привести к двум связанным проблемам: создание автоматизаций в неоптимальном порядке и создание неправильных автоматизаций вообще. Первая проблема, плохая расстановка приоритетов, не позволяет внедрить ценные процессы в нужное время, потенциально замедляя рост. Вторая проблема, создание неправильных автоматизаций, не только задерживает доставку ценных автоматизаций, но и приводит к пропущенному времени, ненужным затратам и росту разочарования среди групп доставки.

Вы можете обеспечить большую ценность бизнеса, сосредоточившись на КПЭ и приоритетах.

ИнструментОписаниеЭффективностьЦелостность данныхБизнес-ценность
Пакетирование ApexПакетирование записей и обработка управляемых фрагментовXX
Будущие методы ApexАсинхронное выполнение методов Apex в фоновом режимеXX
Apex Queing Добавление заданий Apex в очередь и их мониторингXX
Apex SchedulerАсинхронное выполнение классов Apex в указанное времяXX
УтвержденияУкажите обязательные шаги для утверждения записейXX
Asynchronous ApexАсинхронный запуск кода ApexXX
Автоматические действияВыполнение обновлений полей, отправок электронной почты и других действий в фоновом режимеXX
Einstein Next Best ActionОтображение правильных рекомендаций нужным людям в нужное времяXX
Электронное предупреждениеСоздание и отправка автоматических сообщений эл. почтыXX
Действия расширенияОпределение автоматических действий для расширения обращенийXX
Обновление поляОбновление значений полей на основе автоматизацииXX
Flow BuilderСоздание автоматизаций с помощью интерфейса «Указатель в точку»XX
Расширения потокаДоступ к сохраненным переменным в качестве вводных данных компонента в потокахX
Библиотека шаблонов потокаИспользование шаблонов для создания отраслевых потоковXX
Триггер потокаАвтоматизация сложных бизнес-процессовX
Вызываемые действияДобавление функций Apex в потокиXX
ОркестраторСоздание многоэтапных автоматизаций и управление имиXX
Исходящее сообщениеОтправка сведений из автоматизированного процесса с получением и повторными попытками X
Публикация событий платформы в потокеПубликация событий посредством взаимодействий с пользователями и автоматизацииX
Оптимизатор запросовИспользуйте избирательность и индексы для повышения производительности запросов, отчетов и списковых представленийXX
Поток SalesforceСоздание декларативных автоматизаций процессов посредством Flow BuilderXX
Отправка уведомлений посредством потоковОтправка сообщений посредством SMS-сообщений, WhatsApp или Facebook MessengerXX
Отправка уведомлений посредством процессовОтправка сообщений посредством SMS-сообщений, WhatsApp или Facebook MessengerXX
SOQL ДЛЯ МОДИФИКАТОРА ОБНОВЛЕНИЯБлокировка записей для предотвращения условий гонки и проблем безопасности потокаX
Sтратегия Builder Определение рекомендаций для отображения на страницах записейXX
ПодпотокиУменьшение сложности потока посредством повторного использованияX
Подписка на события платформы посредством потокаПолучение сообщений, опубликованных посредством автоматизацииX
Действия задачиОпределение сведений о назначении, предоставленных пользователю автоматизациейX
РесурсОписаниеЭффективностьЦелостность данныхБизнес-ценность
Управляющие и ограничения выполнения ApexУзнайте, как механизм среды выполнения Apex применяет ограниченияXX
Ресурсы пакетного управленияСоздание, управление, планирование и мониторинг пакетных заданийXX
Рекомендации по SOQL и SOSL Повышение производительности запросов приложений с большими объемами данныхX
Разработка шаблона стандартовСоздание стандартов проектирования для организацииXXX
Пакетное выполнение потока в транзакцияхСоздание потоков для работы с коллекциямиXX
Рекомендации по данным потокаСведения о потоках, запущенных расписанием для пакетных данныхXX
Отладка потокаТестирование и устранение неполадок потоковX
Порядок обработки запросовУзнайте, как Salesforce быстро обрабатывает задания и минимизирует сбоиXX
Шаблон электронной таблицы КПЭОпределение бизнес-значения определенного показателяXX
Создание выносок на внешние системы из вызываемых действийВызов внешних систем из потока посредством ApexX
Смешанные операции DML Знайте, какие sObjects можно использовать вместе для DML в одной транзакцииXX
Порядок выполненияПонимание порядка событий для вставок, обновлений и обновленийXX
Вопросы и ответы плана запросовОптимизация запросов, связанных с большими объемами данныхXX
Рекомендации по потокам, запущенным расписаниемПонимание особых алгоритмов потоков, запущенных расписаниемX
Управление транзакциямиСоздание точки сохранения, определяющей текущее состояние базы данныхXX
Что происходит при сбое потока?Понимание обработки ошибок в потокахXX
Руководство по рекомендациям по автоматизации бизнес-правилНачало работы с автоматизацией SalesforceXXX
Работа с очень большими запросами SOQLНаписание более эффективных запросов SOQLX

Помогите нам поддерживать актуальность Salesforce «Хорошо архитектура». Пройдите опрос, чтобы предоставить отзыв об этом содержимом и сообщить, что вы хотите видеть дальше.