Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
По состоянию на 3 февраля 2025 года защита от мошенничества Dynamics 365 больше не доступна для покупки. Поддержка защиты от мошенничества завершится 3 февраля 2026 г. Дополнительные сведения см. в статье Завершение поддержки Dynamics 365 Fraud Protection.
Dynamics 365 Fraud Protection позволяет создавать функции, которые можно использовать для выполнения конкретной задачи. Например, можно использовать функции для объединения групп кода, которые должны выполняться вместе. Вы также можете использовать функции для повторного использования кода, где вы пишете код один раз и обращаетесь к нему из других мест, что упрощает обслуживание кода. В этом примере, если вы хотите вызвать внешнюю службу для получения значения из нее, логику можно определить в функции, а функцию можно вызвать из других ресурсов.
Определение функции
Функции состоят из входных параметров и свойств вывода.
Входные параметры
Функции могут определять параметры, передаваемые функции во время вызова. Входные параметры определяются в определении функции. Количество параметров, передаваемых в функцию при вызове, должно точно соответствовать количеству параметров, определенных для функции. Определенные параметры можно использовать в выходных свойствах для возврата значения. Дополнительные сведения см. в разделе "Свойства вывода". Определение входных параметров является необязательным.
Входные параметры состоят из следующих трех частей.
Имя параметра: имя, с помощью которого можно ссылаться на параметр.
Тип данных: каждый входной параметр должен иметь тип данных, связанный с ним. Указанный тип данных преобразует значение параметра в соответствующий тип. Функции поддерживают типы данных, перечисленные в следующей таблице.
Тип данных Примерное значение Булев Верно дата и время Февраль 22,2024 4:44 ВЕЧЕРА Двойной 10.0 Целое число 10 Струна "Здравствуйте" Значение по умолчанию: для каждого параметра требуется значение по умолчанию. Значение по умолчанию используется во время вычисления функции или при возникновении проблемы с вызовом функции.
Выходные свойства
Возвращаемое значение функции можно определить с помощью выходных свойств. Выходные свойства используют логику "Язык запросов мошенничества (FQL)" для возврата значения функции. Затем можно получить доступ к свойствам выходных данных из других функций, правил, скоростей, правил действий после принятия решений и правил маршрутизации при вызове функции. Функция может содержать до 30 выходных свойств. Дополнительные сведения о FQL и его использовании см. в справочнике по языку.
Свойства вывода состоят из следующих четырех частей.
Описание свойства: описание свойства. Описание является необязательным.
Тип данных: тип данных значения, возвращаемого из свойства. Функции поддерживают все примитивные типы данных, такие как булевый тип, дата и время, двойной, целое число и строка. Всякий раз, когда производится серьёзное изменение в выходном свойстве функции, на которую ссылаются другие ресурсы, тип данных исходного выходного свойства используется в качестве запасного варианта, чтобы продолжить выполнение ресурса. Мы рекомендуем обновить ресурсы после критических изменений.
Значение по умолчанию: значение по умолчанию возвращается в результате функции при обнаружении исключения во время оценки свойства. Например, деление на 0 и исключения Null Reference.
Редактор кода для возврата значения: редактор кода используется для возврата значения из функции. Ниже приведены способы возврата выходного значения.
Входные параметры, определенные в функции, можно использовать для возврата значений.
Пример выходного свойства, возвращающего входной параметр в качестве возвращаемого значения. Дополнительные сведения о том, как определить входные параметры, см. в разделе "Входные параметры " выше в этой статье.
RETURN _number1 + _number2
Атрибуты запроса и ответа (включая пользовательские данные) оценки, в которой содержится правило, вызывающее функцию. Можно получить доступ к этим атрибутам с помощью оператора @. Например: @"salesTax".
Пример функции с помощью атрибутов запроса:
RETURN @"salesTax"
Данные обогащения защиты от мошенничества. Например, Geo.CountryCode().
Пример функции с помощью riskscore:
RETURN Geo.CountryCode(@"deviceContext.ipAddress")
Списки, которые вы отправляете в защиту от мошенничества. Дополнительные сведения о том, как отправлять списки, см. в разделе "Управление списками".
Пример функции с помощью списка:
RETURN Lookup("Country_Score", "Country", "US", "ScoreCutOff")
Скорости, определенные в защите от мошенничества. Дополнительные сведения см. в разделе "Выполнение проверок скорости".
Пример функции с помощью скорости:
RETURN Velocity.IPs_Per_User(@"deviceContext.ipAddress", 30s)
Внешние вызовы, созданные в службе защиты от мошенничества. Дополнительные сведения см. в разделе "Внешние вызовы".
Пример функции с помощью внешних вызовов:
RETURN External.weather("Seattle").id
Внешние оценки, созданные в системе защиты от мошенничества. Дополнительные сведения см. в разделе "Внешние оценки".
Пример функции, вызывающей внешнюю оценку:
LET $result = Assessments.myAssessment.Evaluate($baseInput = @@) RETURN $result.ToStr()
Доступ к функциям внутри функций.
Пример функции, вызывающей другую функцию:
RETURN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
Замечание
Функции можно создавать в любой среде в стеке с многоуровневой иерархией. Если функция ссылается на ресурсы, такие как скорости, внешние вызовы, списки и внешние оценки, доступные в среде, более низкие среды, вызывающие функцию, также наследуют ресурсы, на которые ссылается функция. Например, если вы создаете функцию в корне, которая ссылается на внешний вызов для возврата значения, дочерние среды, вызывающие функцию, также могут получить доступ к результату этого внешнего вызова. Дополнительные сведения о наследовании и вызове функций см. в разделе "Наследование функций " далее в этой статье.
Публикация функции
На портале защиты от мошенничества выберите "Функции " на панели навигации и нажмите кнопку "Создать функцию". Защита от мошенничества создает черновик функции, отображаемую только для вас (создатель функции). Все изменения, внесенные в черновик, автоматически сохраняются.
Чтобы определить новую функцию с нуля, ознакомьтесь с разделом "Определение функции " ранее в этой статье.
Чтобы опубликовать функцию, выберите "Опубликовать".
В диалоговом окне подтверждения можно изменить имя и описание. Выберите Опубликовать.
Замечание
После публикации функции она отображается всем пользователям. Затем функцию можно вызвать в других функциях, правилах, скоростях, правилах после принятия решений и правилах маршрутизации.
Сведения об использовании функций в других ресурсах, таких как функции, правила, скорости, действия после принятия решений и правила маршрутизации, см. в разделе "Вызов функций из ресурсов " далее в этой статье.
Панель "Пример"
При создании или изменении функции на стороне страницы появится панель "Пример ".
Функции не привязаны к каким-либо оценкам. Образец нагрузки представлен как удобное руководство для пользователей, показывающее все свойства событий, на которые можно ссылаться в функциях. Выберите тип события в поле "Событие " в верхней части области.
Раздел payload содержит пример свойств, которые можно отправить в запросе API для оценки.
Управление функцией
Чтобы изменить ранее опубликованную функцию, выберите функцию и нажмите кнопку "Изменить". Создается черновик опубликованной функции и доступен только вам. Все изменения, внесенные в черновик, автоматически сохраняются. Чтобы отправить изменения в производство, выберите «Опубликовать». Ранее опубликованная функция перезаписана вашими изменениями. Чтобы отменить черновик, нажмите кнопку "Отменить".
Чтобы удалить существующую функцию, выберите многоточие (...), а затем нажмите кнопку "Удалить".
Чтобы обновить имя или описание функции, выберите многоточие (...), а затем нажмите кнопку "Переименовать".
Чтобы найти функцию, введите ключевое слово в поле поиска . Поиск всех имен функций и описаний выполняется, а результаты фильтруются в соответствии с ключевыми словами поиска.
Оценка функции
Перед публикацией функции можно использовать область оценки функции , чтобы убедиться, что она возвращает ожидаемые результаты.
- Чтобы открыть область оценки функции, выберите "Развернуть " на вкладке "Функции ".
- Чтобы закрыть область, нажмите кнопку Свернуть.
При открытии области оценки отображается список выходных свойств с его результатом. Оценка использует значения по умолчанию для входных параметров и значений из примера раздела полезных данных при определении возвращаемого значения. При изменении любого из этих значений выходные данные также изменяются. Таким образом, можно убедиться, что возвращаются правильные значения для каждого выходного свойства.
Вызов функций из ресурсов
Опубликованные функции можно вызывать из таких ресурсов, как правила, скорости, действия после принятия решений и правила маршрутизации. Доступ ко всем выходным свойствам, определенным в функции, можно получить путем вызова функции. Затем значения можно использовать для принятия решений.
Правила
Функции можно вызывать из любого правила (в пределах любой оценки) в той же самой среде и из дочерних сред в нижележащей иерархии. Дополнительные сведения о правилах см. в разделе "Правила".
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Скорости
Функции можно вызывать из любой скорости в той же среде и из дочерних сред в иерархии ниже. Дополнительные сведения о скоростях см. в разделе "Выполнение проверок скорости".
SELECT DistinctCount(@"device.deviceContextId") AS Devices_Per_IP
FROM AccountLogin
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum > 5
GROUPBY @"device.ipAddress"
Правила после принятия решений
Функции можно вызывать из любого правила действий после принятия решений (в пределах любой оценки) в той же среде и из дочерних сред в иерархии ниже. Дополнительные сведения о правилах действий после принятия решений см. в разделе "Правила действий принятия решений после принятия решений".
DO SetResponse()
WHEN Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum == 5
Правила маршрутизации
Функции можно вызывать из любых правил маршрутизации в той же среде и из дочерних сред в иерархии ниже. Дополнительные сведения о правилах маршрутизации см. в разделе "Управление делами".
ROUTETO Queue("General Queue")
WHEN Functions.MyFunction(@"purchase.request.totalAmount", @"purchase.request.salesTax").Calculate_Sum > 5
Наследование функций
Функции можно вызывать в той же среде и из дочерних сред в приведенной ниже иерархии. Синтаксис вызова зависит от того, где существует функция и откуда она вызывается. Ниже приведены различные способы вызова функций в многоуровневой иерархии.
Замечание
Если функция ссылается на ресурсы, такие как скорости, списки, внешние вызовы и внешние оценки, ресурсы также наследуются от дочерних сред в иерархии ниже при вызове функции.
Вызов функций, созданных в той же среде
В приведенном ниже примере вызывается функция из правила, в котором и правило, и функция существуют в одной среде.
LET $sum = Functions.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Вызов функций, созданных в корневой среде
В приведенном ниже примере вызывается функция, созданная в корневой среде из дочернего окружения.
LET $sum = Functions.root.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Вызов функций, созданных в родительской среде
В приведенном ниже примере вызывается функция из немедленной родительской среды.
LET $sum = Functions.parent.MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Вызов функций, созданных в любой среде над стеком
В приведенном ниже примере вызывается функция, созданная в среде над стеком, и наследуется из правила в нижней среде.
LET $sum = Functions.environment["environmentid"].MyFunction(@"totalAmount", @"salesTax").Calculate_Sum
RETURN Approve()
WHEN $sum > 5
Ограничения функций и ресурсов
Защита от мошенничества имеет ограничение на количество функций, которые можно создать для каждой среды, и количество ресурсов, на которые можно ссылаться в функции.
Ресурс | Лимит | |
---|---|---|
Максимальное количество функций, которые могут быть опубликованы в среде | 30 | |
Максимальное количество выходных свойств, которые могут существовать в функции | 30 | |
Максимальное количество уникальных скоростей, на которые может ссылаться функция | 15 | |
Максимальное количество внешних вызовов, на которые может ссылаться функция | 2 | |
Максимальное число уникальных запросов списка, к которым может обращаться функция | 5 | |
Максимальное количество уникальных внешних оценок, на которые может ссылаться функция | 2 | |
Максимальное количество функций, которые может вызывать набор правил | 10 | |
Максимальное количество функций, которые может вызывать правило маршрутизации | 10 | |
Максимальное число функций, которые могут вызываться действием после принятия решений | 10 | |
Максимальное количество ресурсов, которые может вызывать скорость | 10 |