跳转至

通知#

🔒 Notification.Show

通知表示异步警报。

系统将使用发布/订阅机制将通知发送到GUI。GUI将在状态栏的通知图标中显示通知数量。不同的严重性、颜色和显示行为在通用表NotificationSeverity中配置。

这种通知严重性由用户定义,可以针对特定雇员、角色或每个人。可以过滤各通知对特定工厂设施车间资源步骤的可见性。GUI中的筛选是针对当前用户雇员工作组执行的。

此外,还可以配置跟踪和清除的类型,这可以是三种类型:

  1. ManualSingleUser - 清除警报的第一个雇员将关闭警报。
  2. ManualEveryUser - 每个雇员都必须清除警报。在这种情况下,必须设置失效日期
  3. 自动 - 一旦达到失效日期,系统将自动清除警报。

还可以配置每个通知,以便在收到特定类型的通知时自动展开通知边栏。可以通过编辑通知严重性通用表中的在新显示模式下字段来更改此行为,如下所示。

notifications_severity

Info

通知是“警报管理”的一部分,它是一个凯睿德制造软件可选模块。

notifications_resource

与Microsoft Teams集成#

可以在MES中创建通知,并通过使用webhook将通知发送给Microsoft Teams的实例,而且所需配置最少。有一个配置条目是正确使用此功能的关键:/Cmf/System/Notification/Integration/TeamsWebhook,其中必须包含MES将向其发送通知的webhook。要配置系统,请执行以下步骤:

  1. 打开Microsoft Teams,导航至要在其中发送通知的团队窗口。按该团队窗口的右上角(或左侧边栏中团队名称的右侧)的三个点,然后从上下文菜单中选择连接器

notifications_teams_webhook_step_one

  1. 选择传入Webhook并按配置

notifications_teams_webhook_step_two

  1. 在配置窗口中,选择webhook的名称,然后按创建

notifications_teams_webhook_step_three

  1. 复制所创建的webhook的URL。

notifications_teams_webhook_step_four

  1. 转至MES,打开管理组下的配置面板。搜索/Cmf/System/Notification/Integration/TeamsWebhook条目,对其进行编辑,使用在上一个点处检索到的值。保存配置条目。

notifications_teams_webhook_step_five

  1. 业务数据菜单下的通知部分中,创建一个新通知

notifications_teams_webhook_step_six

  1. 每当触发此通知时,它都会显示在Microsoft Teams内所配置的团队的主聊天窗口中。

notifications_teams_webhook_step_seven

Info

要删除集成,请从Microsoft Teams中删除webhook,或者从MES中清除配置条目。

另外还有一种方法将通知发送到特定webhook,即使用为此目的创建的DEE操作。这将允许用户调整通知、使用更多的条件和逻辑语句,以及收集更多数据以发送给用户。随后,IntegrationEntries系统将触发Microsoft Teams通知。Webhook配置过程在接收端应该是相同的,而在DEE内部,webhook将用作操作组BusinessObjects.NotificationCollection.Create.Pre的属性。下面是一个简单示例:

UseReference("Cmf.Navigo.BusinessObjects.dll", "Cmf.Navigo.BusinessObjects.AlarmManagement");
UseReference("Cmf.Foundation.BusinessObjects.dll", "Cmf.Foundation.BusinessObjects");
UseReference("Cmf.Navigo.BusinessObjects.dll", "Cmf.Navigo.BusinessObjects");
UseReference("Cmf.Foundation.BusinessOrchestration.dll", "");
UseReference("", "Cmf.Foundation.Common.Exceptions");
UseReference("", "Cmf.Foundation.Common");
UseReference("", "Cmf.Navigo.Common");
var serviceProvider = (IServiceProvider)Input["ServiceProvider"];
((INotificationCreateOptions)Input["NotificationCreateOptions"]).CanExecute = true;
((INotificationCreateOptions)Input["NotificationCreateOptions"]).TeamsEndpoint = "[INSERT_WEBHOOK_URL_HERE]";
INotification not = serviceProvider.GetService<INotification>();
not.Name = "TestNotification";

IMaterial material = null;
if (Input.ContainsKey("Material"))
{
    material = (IMaterial)Input["Material"];
}

not.Details = "Material " + material?.Name + " has been processed";

not.Create();