Коллеги, добрый день.

Столкнулся с проблемой отображения уведомлений в коммуникационной панели.

Задача: при добавлении нового участника в деталь "команда" в карточке продажи - уведомлять добавленного участника в коммуникационной панели.

Делал через бп (скриншот во вложении).



При смене NotificationType на Notification - во вкладке системных уведомлений все отображается корректно. Можно перейти в продажу по ссылке.

При значении Reminding - во вкладке напоминаний пустота (а напоминание нужно как раз именно там). При этом на счетчике самой вкладки видно, что напоминание есть.

Решаема ли задача через бп? Или все же нужно кодить? Сначала подумал что нужно создавать провайдер, но я так понял что после 7.12 схема поменялась? Вообщем буду рад подсказке как это корректнее всего сделать.

С Активностями-Участниками аналогичный бп работает нормально (уведомления в напоминаниях отображаются).

Прикрепленные файлы

Нравится

5 комментариев

Возможно, при создании записи в таблице Reminding не заполнены нужными значениями все поля. Сравните в базе значения у той записи, что отображается у пользователя в этом разделе верно и у Вашей, созданной при помощи БП.

Зверев Александр,

Александр, спасибо за подсказку. В таблице Reminding поле SourceId получает null. Не совсем пока понятно что с этим сделать, но это уже хоть что-то) Буду разбираться.

Александр, на Вашем скриншоте в элементе БП создания напоминания нет заполнения этого поля SourceId, нужно добавить. Возможные варианты значений есть в таблице справочника RemindingSource.

Зверев Александр,

Александр, так я тоже пробовал еще в самом начале. К сожалению никакого эффекта это не дает (но кстати SourceId в таблице заполняется, это да).

На данный момент оставил уведомления как NotificationType = Notification. Но хотелось бы конечно разобраться.

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

Показать все комментарии

Здравствуйте всем, хочу сделать напоминание в бизнес процессе, напоминание добавляется в БД, и на странице отображается только счётчик напоминаний, но нету самого тела, то есть содержания, не могу понять в чём дело..

var insert = new Insert(UserConnection).Into("Reminding")

    .Set("ContactId", Column.Const("410006E1-CA4E-4502-A9EC-E54D922D2C00"))

    .Set("Description", Column.Const("Привет это напоминание"))

    .Set("PopupTitle", Column.Const("Напоминание"))

    .Set("RemindTime", Column.Const("2018-08-09 12:00"))

    .Set("SysEntitySchemaId", Column.Const("41AF89E9-750B-4EBB-8CAC-FF39B64841EC"))

    .Set("SourceId", Column.Const("A66D08E1-2E2D-E011-AC0A-00155D043205"))

    .Set("SubjectId", Column.Const("ED9F217C-F36B-1410-A086-00155D04C01D"))

    .Set("SubjectCaption", Column.Const("Содержимое"))

    .Set("TypeCaption", Column.Const("Task"))

    .Set("NotificationTypeId", Column.Const("5D4B76F0-953C-4F91-A8A4-B85DF935074F"));

insert.Execute();

return true;



Изображение удалено.

 

Нравится

3 комментария

Сравните в базе новую и существующие записи в таблице напоминаний. Может, не все поля заполнены или заполнены не так.

Понял как надо делать)

Вот этот код почему то работает как надо..

Напоминания отображаются полностью, ..

Entity remindingEntity = UserConnection.EntitySchemaManager.GetInstanceByName("Reminding").CreateEntity(UserConnection);

// Индификатор записи

var caseId = new Guid("ED9F217C-F36B-1410-A086-00155D04C01D");

// Индификатор раздела

var entitySchemaId = "41AF89E9-750B-4EBB-8CAC-FF39B64841EC";

remindingEntity.SetDefColumnValues();

remindingEntity.SetColumnValue("AuthorId", authorId);

remindingEntity.SetColumnValue("ContactId", authorId);

remindingEntity.SetColumnValue("Description", Description);

remindingEntity.SetColumnValue("SubjectCaption", Title);

remindingEntity.SetColumnValue("SourceId", Terrasoft.Configuration.RemindingConsts.RemindingSourceAuthorId);

remindingEntity.SetColumnValue("RemindTime", UserConnection.CurrentUser.GetCurrentDateTime());

remindingEntity.SetColumnValue("NotificationTypeId", Terrasoft.Configuration.RemindingConsts.NotificationTypeRemindingId );

remindingEntity.SetColumnValue("SysEntitySchemaId", entitySchemaId);

remindingEntity.SetColumnValue("SubjectId", caseId);

remindingEntity.Save();

return true;

t.vladislav,

Будьте добры, подскажите какие пространства имен нужно подключить в БП, чтобы оно у меня нормально опубликовалось? И в какой таблице можно найти ID разделов? SysModule?

Показать все комментарии

Доброго времени суток, форумчане.

Работаю в 7.9.
Возникла следующая проблема: не отображается напоминание в коммуникационной панели.
Задача состоит в том, чтобы напоминать пользователю о созданных по определенным условиям проектах. Создал ProjectNotificationProvider (за основу взял InvoiceNotificationProvider) для проекта и зарегистрировал в таблице NotificationProvider, установил в ней Type =1
Добавляю запись в таблицу Reminding, где заполняю следующие поля:

[AuthorId] - Id контакта пользователя системы
,[ContactId] - Id контакта пользователя системы
,[RemindTime] - текущая дата/время
,[Description] - какое-то описание
,[SubjectId] - Id проекта
,[SourceId] - Id автора из таблицы RemindingSource
,[SysEntitySchemaId] - uid проекта
,[ProcessListeners] - 0
,[SubjectCaption] - какой-то Caption
,[TypeCaption] - ''
,[Hash] - ''
,[IsRead] - 0
,[NotificationTypeId] - тип "Напоминание"

Напоминание на панели не отображается, только через определенное время появляется всплывающее окно с ссылкой на проект, если окно сайта bpm закрыто другим приложением. Оно отображается несколько секунд и исчезает.
Если я, например, в поле NotificationTypeId укажу тип "Уведомление", то уведомление отображается без проблем даже без регистрации провайдера. Если в поле SysEntitySchemaId указать uid Invoice, то напоминание появляется, но по ссылке, которая указана в нем, идет переход на новый заказ, а мне нужен переход на проект. Не до конца понятен механизм по отображению напоминаний.
Буду благодарен за помощь

Нравится

3 комментария

Кирилл, здравствуйте!

С подобными проблемами уже разобрались в схожих темах:
http://www.community.terrasoft.ua/forum/topic/24969
http://www.community.terrasoft.ua/forum/topic/25016
и многих других, которые можно найти здесь же при поиске по ключевым словам.

Ссылки битые. Как решить подобную же проблему в 2021 году?

Сергей Зеленский,

А на какой версии вы столкнулись с подобной проблемой? 

У вас возникают проблемы со всеми типами уведомлений или с какими-то определенными?

Показать все комментарии

Добрый день.
Столкнулся с проблемой в процессе настройки механизма уведомления по документам.
DocumentNotificationProvider в системе уже был, его добавил в NotificationProvider.
Уведомления создаются так же, как и в активностях. Запись в Reminding создается корректно.
Уведомление появляется, но не понятно почему в виде "от 05.04.2016" без гиперссылки и иконки.
Буду благодарен за идеи!
Версия 7.7.0.2223

Нравится

10 комментариев

Добрый день!

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

В процессе объекта при сохранении и удалении запускается действие Синхронизировать уведомление по объекту со следующими параметрами, заданными в элементе скрипт:

SynchronizeReminding.IsSubjectDelete = Entity.IsInDeleting;
SynchronizeReminding.Active = !Entity.IsInDeleting;
SynchronizeReminding.SubjectPrimaryColumnValue = Entity.PrimaryColumnValue;
SynchronizeReminding.Contact = Entity.GetTypedColumnValue<Guid>("OwnerId");
SynchronizeReminding.Source = new Guid("a76d08e1-2e2d-e011-ac0a-00155d043205");
SynchronizeReminding.RemindTime = Entity.GetTypedColumnValue<DateTime>("SxRemindingDate");
SynchronizeReminding.SysEntitySchema = Entity.Schema.UId;
SynchronizeReminding.Description = "Договор №" + Entity.GetTypedColumnValue<string>("Number");
SynchronizeReminding.NotificationType = RemindingConsts.NotificationTypeRemindingId;
SynchronizeReminding.TypeCaption = "Договор";

Добрый день!
Немогли бы Вы прикрепить все замещенные схемы?

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

Добрый день!

Посмотрите реализацию схемы SystemNotificationsSchema, метод getNotificationItemConfig().
На этом примере можно реализовать отображение необходимых данных как гиперссылок.

Я так и не понял, почему напоминания по активностям, которые создаются таким же образом отображаются корректно? Так же в предыдущих версиях bpm проблем с напоминаниями не было и не нужно было что-то реализовывать сверх добавления записи в Reminding и провайдера. И не понятно что и где нужно теперь реализовывать...

Здравствуйте!

В 770 были изменены отображения уведомлений. Теперь на вкладке "Уведомления" можно делать ссылки только на счета и активности. Другие уведомления считаются системными (на самом деле зависит от значения в поле NotificationType).
Об этом Вы можете прочитать здесь.

Получается, что для других разделов теперь можно создавать только системные уведомления и обойти это никак не получится?

Здравствуйте!

Обойти возможно все) Формально, можно создать уведомление на активность, при открытии которой будет открываться счет. Для этого Вы можете воспользоваться функционалом бизнес процессов. В бизнес процессе есть элемент "Страница редактирования". Этот элемент создает активность, но при открытии активности, открывается страница другой сущности. В настройках элемента "Открыть страницу редактирования" в поле "Напомнить за" Вам необходимо указать значение, отличное от 0. В результате, уведомление будет сформировано.

Спасибо, будем пробовать!

Показать все комментарии

Создали раздел "Заявки" добавили к нему иконку с прозрачным фоном, для того чтобы при смене цветовой схемы всё корректно отображалось. Но теперь когда создаем напоминание на этот раздел в области уведомлений иконка тоже прозрачная на белом фоне. Соответственно её не видно.

Как сделать чтобы иконка корректно отображалась в списке разделов и в области уведомлений?
И ещё один вопрос: можно ли сделать напоминание на деталь а не на раздел?

Версия 7.5

Нравится

8 комментариев

Вячеслав, добрый день!

1. Если я правильно понял, то изображение для уведомлений можно добавить в модуле «NotificationsModule» (Рис. 1) (предварительно необходимо заместить).

Для корректного отображения необходимо, чтобы размер был 42х42 pixels и была заливка заднего фона (например, серый).

2. Такой возможности в приложении нет.

Заместил NotificationsModule, скопировал исходный код. Загрузил изображение, но получаю ошибку в консоли "Cannot read property 'source' of undefined"
Выяснил что ругается на эту функцию:

            /**
             * Создает контейнер для размещения текста о новых уведомлениях
             * @private
             * @return {Object} Возвращает экземпляр конфигурации контейнера
             */
            getMessageContainer: function() {
                debugger;
                return {
                    className: "Terrasoft.Container",
                    id: "messageContainer",
                    selectors: {wrapEl: "#messageContainer"},
                    classes: {wrapClassName: ["showNewNotificationContainer-class"]},
                    visible: {bindTo: "ShowNewNotificationsVisible"},
                    items: [
                        {
                            className: "Terrasoft.Button",
                            caption: {bindTo: "getShowNewNotificationText"},
                            classes: {textClass: ["showNewNotificationButton-class"]},
                            style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            iconAlign: Terrasoft.controls.ButtonEnums.iconAlign.LEFT,
                            imageConfig: {
                                source: Terrasoft.ImageSources.URL,
                                url: Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.More)
                            },
                            click: {bindTo: "onShowNewNotificationClick"}
                        }
                    ]
                };
            },

Как я понимаю не может получить путь к изображению в строке
"url: Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.More)"
потому, что resources.localizableImages.More = undefined

Я так понимаю, что при замещении объекта, localizableImages не подтянулись. Допустим ActivityImage и DocumentImage я могу перезалить. А вот что такое More ?

И в связи с чем вопрос почему на вкладке "Изображения" изображения не отображаются? Я бы мог оттуда их вытащить.

Вячеслав, судя по сообщению:

"Ляутин Вячеслав Андреевич" написал:Заместил NotificationsModule, скопировал исходный код. Загрузил изображение, но получаю ошибку в консоли "Cannot read property 'source' of undefined"

У Вас не подгрузились ресурсы.

Есть не большая специфичность у модулей. При замещении модулей необходимо копировать полностью код, в ручную добавлять в структуру замещенного модуля, например, Images, т.е. копировать из родительского «ActivityImage», «DocumentImage» и т.д. И затем заново загружать изображения в поле «Изображение».
Также название в структуре для всех изображений необходимо задать новое (например, ActivityImageNew), а также изменить в коде на соответствующее название объекта.

Например:

imageConfig: {
source: Terrasoft.ImageSources.URL,
url:Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.MoreNew)
},
click: {bindTo: "onShowNewNotificationClick"}
}

"Ляутин Вячеслав Андреевич" написал:
Я так понимаю, что при замещении объекта, localizableImages не подтянулись. Допустим ActivityImage и DocumentImage я могу перезалить. А вот что такое More ?

Это «стрелка», которая отображается, когда панель немного пролистнут вниз и показывает, что присутствуют новые уведомления.

"Ляутин Вячеслав Андреевич" написал:
И в связи с чем вопрос почему на вкладке "Изображения" изображения не отображаются? Я бы мог оттуда их вытащить.

Колонка «Изображение» работает только на импорт файлов.
Изображение можно отобразить используя разметку страницу в браузере.

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

https://название_сайта/0/img/source-code/hash/NotificationsModule/More

, где

NotificationsModule – название модуля
More – название изображения

И в результате можно сохранить изображение на рабочий стол.

Загрузил изображение для localizableImages.More

Ошибок нет и все картинки отображаются как и прежде. Т.е. стандартные разделы отображаются иконками с фоном. А мой кастомный раздел "Заявки" на прозрачном фоне, хотя в localizableImages.EmptyImage загрузил иконку с фоном.

На всякий случай загружаю скриншот исходного кода NotificationProvider для моего раздела

NotificationProvider

А еще пришлось переписывать все localizableStrings.

Вячеслав, как писал ранее:

«Есть не большая специфичность у модулей. При замещении модулей необходимо копировать полностью код, в ручную добавлять в структуру замещенного модуля, например, Images, т.е. копировать из родительского «ActivityImage», «DocumentImage» и т.д.»

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

Если данный способ не помог, то можно поступить следующим образом:

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

sozdanie_spravochnika_s_izobrazheniem.docx

- в SysImage найти ID нужного изображения;
- проапдейтить изображения в колонке LogoID для нужного раздела (таблица SysModule);
- почистить Redis и кэш браузера.

Кэш и редис конечно чистил.

Я пока не пробовал способ через справочник. Но в теории мне кажется это не совсем то, что мне надо. У меня уже есть иконка раздела и колонка LogoID в таблице SysModule заполнена для моего раздела "Заявки". Там у меня хранится иконка с прозрачным фоном как я понимаю. А если я вместо неё загружу с фоном тогда при смене цветовой схемы в списке разделов будет не корректно отображаться иконка.

И еще исходя из названия локализированной картинки EmptyImage - она используется когда у раздела нет иконки, а у меня то она есть.

Или я что-то не так понимаю?..

Вячеслав, Вам необходимо загрузить в SysImage изображение. Нет разницы каким способом Вы это сделаете (через новый справочник или например, можно загрузить через мастер раздела изображение а потом вернуть прежнюю).
Если Вы хотите:
1. иконку для левой панели, где размещаются разделы, то Вам необходима прозрачная иконка и проапдейтить колонку «Image32Id» (таблица SysModule);
2. иконку для правой панели (панель уведомлений), то Вам необходима иконка с фоном (заливкой) и проапдейтить колонку «LogoId» (таблица SysModule);

Т.е загружаете изображение, узнаете ID и обновить значение для соответствующей колонки.

Да! Вот именно это мне и нужно было, оказывается колонка "Image32Id" для левой панели а "LogoId" для правой!

Спасибо большое всё заработало!
NotificationsModule можно не трогать.

Показать все комментарии
Всем привет!Предлагаю информацию о новых уведомлениях выводить не только в коммуникационную панель справа, но и в саму вкладку сверху. Тогда пользователь будет оперативно получать уведомления не только когда он на странице системы, но и на любой странице браузера. Например это очень удобно сделано в Ya.Почте:
1 комментарий

Здравствуйте, Александр!

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

Приятного дня!

Показать все комментарии

Коллеги, подскажите как работают напоминания?
А именно: как происходит проверка на появление новых напоминаний?
Вот предположим, я создал задачу, где стоит галка "Напомнить ответственному". В таблице Reminding появилась новая запись. Как система делает проверку о новых записях в таблице? Где можно найти и отредактировать событие (процесс) делающее 'колокольчик' желтым и меняющее на нем число напоминаний?

Нравится

3 комментария

В странице MainPage, обработчике PageLoadcomplete вызывается клиентский код, который вызывает ядровый метод UserConnection.DBEngine.GetContactCounters() и по возвращаемому значения отображает напоминания и письма. UserConnection.DBEngine.GetContactCounters() в свою очередь вызывает хранимую функцию [fn_GetContactCounters]. Все, что вы можете поменять, это код в главной странице. который меняет кнопку напоминаний.

Ндаа...) Все оказалось сложнее, чем я думал. А могу ли я каким-то образом, при увеличении числа напоминаний или писем, сгенерировать, скажем, сообщение пользователю?

Вот часть джаваскриптового кода, которая Вам нужна. Теоретически можно перед строкой
PageContainer_NewRemindingsCountButton.setCaption(userCounters.newRemindingsCount.toString());
сначала считывать этот Caption и сравнивать с полученным значением, так Вы узнаете изменилось ли количество. Тут же можете вызвать window.open() и открыть окно сообщения.

function updateRemindings(userCounters) {
       var messagePanel = Ext.FormValidator.getVMP();
       if (!messagePanel) {
                       return;
       }                                                                             
       var mi = Ext.get(messageId); 
       var miIsEmpty = Ext.isEmpty(mi);      
       PageContainer_NewRemindingsCountButton.setCaption(userCounters.newRemindingsCount.toString());
       PageContainer_NewRemindingsCountButton.setEnabled(userCounters.newRemindingsCount > 0);
	   if (userCounters.newRemindingsCount && userCounters.newRemindingsCount > 0) {                                                                                                              
                       PageContainer_NewRemindingsCountButton.setButtonStyle('yellow');											   
       } else {
                       PageContainer_NewRemindingsCountButton.setButtonStyle('blue');											   
       }
       PageContainer_UnreadEmailCountButton.setEnabled(userCounters.unreadEmailsCount > 0);											   
       PageContainer_UnreadEmailCountButton.setCaption(userCounters.unreadEmailsCount.toString());
       if (userCounters.unreadEmailsCount && userCounters.unreadEmailsCount > 0) { 
                       PageContainer_UnreadEmailCountButton.setButtonStyle('yellow');
       } else {
                       PageContainer_UnreadEmailCountButton.setButtonStyle('blue');											   
	   }
}
Показать все комментарии

Добрый день, уважаемые пользователи интернет сообщества Террасофт!

Предлагаю ко вниманию реализацию возможности выбора нескольких контактов при добавлении новой записи на деталь "Напоминания".

Для этого Вам необходимо изменить свойство SelectWindowUSI на wnd_MultiSelectData для окна wnd_RemindingEdit, и привести функции function btnOKOnClick(Control) в скриптах scr_RemindingEdit и scr_MultiSelectData к следующему виду:

scr_RemindingEdit:

function btnOKOnClick(Control) {
         if (!CheckData(Self, BaseDBEdit, dlData)) {
                   return false;
         }
         var RemindTime = edtRemindTime.DataField.Value;
         var Description = edtDescription.DataField.Value;
         var ContactValue = Self.Attributes('Contacts');
         ContactValue = ContactValue.CommaText.split(',');
         var Count = ContactValue.length - 1;
         while(Count >= 0)
         {
         if (ContactValue == null) {
                   ShowWarnings();
                   return false;
         }
        System.BeginProcessing();
         if (RemindingEdit.IsGroup == true) {
                   AddRemindsForGroup();
         } else {
                   var Dataset = dlData.Dataset;
                   Dataset.Append();
                   if ((Dataset.State == dstInsert) || (Dataset.State == dstEdit)) {
                           
                            var AdminUnit = Services.GetNewItemByUSI('ds_AdminUnit');
                            ApplyDatasetFilter(AdminUnit, 'ID', ContactValue[Count], true);
                            AdminUnit.Open();                      
                            var ContactID = AdminUnit('UserContactID');
                            AdminUnit.Close();                      
                            dlData.Dataset.Values('ContactID') = ContactID;
                            dlData.Dataset.Values('Description') = Description;
                            dlData.Dataset.Values('RemindTime') = RemindTime;
                            dlData.Dataset.Post();
                            Count = Count - 1;
                           
                   }                
         }
         System.EndProcessing();
         }                
         Self.Close();
}

scr_MultiSelectData:

function btnOkOnClick(Control) {  
         var Contacts = ReturnSelectedValue(Self);        
         System.ProcessMessages();
         if (Self.IsModal) {
                   Self.ModalResult = wmrOK;
         } else {
                   var Control = Self.Attributes('NotifyObject');
                   if (Control != null) {
                            var Window = Control.ParentWindow;
                            if (Window != null) {                                      
                                      SetAttribute(Self, 'NotifyObject', Window);
                                      SetAttribute(Window, 'Contacts', Contacts);
                            }
                   }
                   SendNotify(Self, MSG_OK);
                   Self.Close();
         }
}

А также функцию function ReturnSelectedValue(Window) в этом же скрипте:

function ReturnSelectedValue(Window) {
         grdTarget.SelectAllRows();          
         MultiSelectData.KeyValues = grdTarget.SelectedIDs.CreateCopy();
         MultiSelectData.DisplayFieldValues = grdTarget.SelectedIDs.CreateCopy();
         MultiSelectData.DisplayFieldValues.Clear();
         MultiSelectData.TargetDataset.GotoFirst();
         var Value;
         while (!MultiSelectData.TargetDataset.IsEOF) {
                   Value = MultiSelectData.TargetDataset.
                            Values(MultiSelectData.DisplayFieldName);
                   if (!IsEmptyValue(Value)) {
                            MultiSelectData.DisplayFieldValues.Add(Value);
                   }
                   MultiSelectData.TargetDataset.GotoNext();                          
         }
         if (MultiSelectData.DisplayFieldValues.Count == 0) {
                   MultiSelectData.KeyValues.Clear();
         }
         SetAttribute(Window, 'KeyValues', MultiSelectData.KeyValues);
         SetAttribute(Window, 'DisplayFieldValues',
                   MultiSelectData.DisplayFieldValues);
         
         return MultiSelectData.KeyValues;  
}

Во вложении демонстрация работы (разархивировать и открыть браузером).

Хорошего дня!

Нравится

Поделиться

0 комментариев
Показать все комментарии

Здравствуйте!

В редакторе PVC создал новый раздел, в новом разделе создалась деталь "Напоминания". Записи в детали создаются и отображаются, но когда напоминание срабатывает, окошко напоминаний отображается пустым, будто и нет никаких напоминаний. Не знаю в какую сторону копать, проверил запрос sq_Remindings там каких-либо недочетов не нашел. Также проверил скрипты напоминаний, там где перечисляются все разделы, мой раздел тоже включен.

Нравится

2 комментария

Откройте сервис sq_Remindings и подправьте код последнего подзапроса в нем - вместо "<код раздела>Select" напишите просто название основной таблицы раздела

Спасибо. Помогло.

Показать все комментарии

Доброго времени суток!

Есть задача: при добавлении нового инцидента автоматически создавать напоминание группе пользователей (пока пытаюсь сделать хотя бы для всех пользователей).

Вопрос: при создании инцидента пытался присвоить полю ContactID датасета ds_Reminding ID группы "Все пользователи":

function CreateNewRemindings(Dataset) {
        var RemindingDataset = Services.GetNewItemByUSI('ds_Reminding');
        RemindingDataset.Open();
        RemindingDataset.Append();
        RemindingDataset.ValAsGUID('ContactID') = '{97490F89-2943-480D-9AFE-B1C95DE00010}';
        RemindingDataset.ValAsDateTime('RemindTime') = GetLocalDateTime();
        RemindingDataset.ValAsGUID('SubjectID') = Dataset.ValAsGUID('ID');
        RemindingDataset.ValAsGUID('SubjectTypeID') = '{8E742F80-1C1A-4657-8D46-F189F0640544}';
        RemindingDataset.Values('Description') = 'Добавлен новый инцидент!';
        RemindingDataset.Post();
        RemindingDataset.Close();
}

Но так не работает, выскакивает ошибка (прикрепил).
Как я понял, он пытается связать ID группы с ID контактов. Видимо все не так просто. :smile: Как это обойти?

Нравится

2 комментария

Обойти это не удастся. Нужно создавать напоминание каждому члену группы отдельно - посмотрите как это сделано например в scr_RemindingEdit при добавлении напоминания группе: формируется список контактов в группе и для каждого генерируется напоминание.
Можно оттуда функцию готовую и взять

Спасибо! Проблема решена.

Показать все комментарии