Когда используемый Механизм Бизнес-правил

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

data

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

уведомление

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

[ https://firebase.google.com/docs/cloud-messaging/http-server-ref#send-downstream] [Найти Подробнее здесь]

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

{
  "notification": {
        "title" : "title",
        "body"  : "body text",
        "icon"  : "ic_notification",
        "click_action" : "OPEN_ACTIVITY_1"
       }
}

Вам нужно использовать полезную нагрузку data вместо полезной нагрузки уведомления, ваша проблема будет решена.

Вот пример JSON, который я получаю:

{
  "to": "FCM registration ID",

   "data": {
     "someData"  : "This is some data",
     "someData2" : "etc"
   }
}

Вот мой код Java.

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        if (remoteMessage == null)
            return;

        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) {

            try {
                JSONObject json = new 
                JSONObject(remoteMessage.getData().toString());
                handleDataMessage(json);
            } catch (Exception e) {
                Log.e(TAG, "Exception: " + e.getMessage());
            }
        }
    }

Сообщения с уведомлением и полезной нагрузкой данных:

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

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

Когда на переднем плане - приложение получает объект сообщения с обоими полезными нагрузками.

12
задан Jonas 31 March 2014 в 21:17
поделиться

3 ответа

Механизмы правил могут выполнять переадресацию и обратная цепочка, а также вывод. Проверьте Fair Isaac Blaze, Drools или iLog для реализации.

2
ответ дан 2 December 2019 в 20:41
поделиться

Механизмы бизнес-правил, как правило, используются для предоставления настраиваемой логики «ЕСЛИ-ТО-ТО-ТО-ДЕЛАЕТ» для приложений. Эти типы бизнес-правил могут запускать определенные рабочие процессы или передавать знания о событиях правилам более высокого уровня, вызывая их оценку.

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

Механизмы правил реализуют такие алгоритмы, как Rete (если судить по опыту Drools), которые ускоряют задачу оценки правил. , Механизм правил также обеспечивает прямую цепочку, обратную цепочку, гибридную цепочку и т. Д. Правил. Тем не мение, они также могут быть реализованы на языке сценариев. С обоими подходами вы можете достичь одних и тех же вещей, но я считаю, что это зависит от сложности и количества правил относительно того, какой путь вы должны выбрать.

Посмотрите на эту ссылку из проекта Jess: http://www.jessrules.com/guidelines.shtml

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

5
ответ дан 2 December 2019 в 20:41
поделиться

Механизм бизнес-правил или систему управления бизнес-правилами следует использовать, когда вы пытаетесь реализовать решение в своем коде. Но не просто какое-то решение. Решение, которое:

  • Включает множество правил
  • Имеет правила, которые часто меняются
  • Имеет правила, которые сложны или взаимодействуют сложным образом (в противном случае подумайте о множестве вложенных IF)
  • Имеет правила, которые только кто-то с доменом знания могут понять / проверить
  • Это то, что деловые люди ДЕЙСТВИТЕЛЬНО хотят изменить без вашей помощи.
  • Включает использование прогнозной аналитики / оценок как часть процесса принятия решений

Это те виды решений, которые приносят прибыль от использования системы управления бизнес-правилами. Не начинайте с правил, начните с РЕШЕНИЙ.

Бизнес-правила многословны (поэтому деловым людям их легче читать),

8
ответ дан 2 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: