Beispielanwendungsfälle für die Anpassung von Alerts
Dieser Abschnitt enthält einige Anwendungsfälle für die Implementierung von Alerts, die durch Anpassung unterstützt werden.
Alertanzeigebeschreibungen für sofort einsatzfähige Alerttypen anpassen
- Sie können die sofort einsatzfähigen Alertbeschreibungen überschreiben, indem Sie
descBundleKeyin der Konfiguration angeben. - Informationen zum Hinzufügen neuer Übersetzungsliterale finden Sie unter Definieren eines Bundle-Eintrags für eine vorhandene Komponente oder ein vorhandenes Modul.
High priority in Hot
pick:static extensionAlertConfig: IAlertsConfig = {
alertConfigList: [
{
personaName: 'Order_Fulfillment',
alertTypes: [
{
tid: 'YCD_HOT_PICK',
exceptionType: 'YCD_HOT_PICK',
descBundleKey: 'alerts.LABEL_HighPick'
}
]
}
]
};Komponente für Alertanzeige für sofort einsatzfähige Alerttypen anpassen
- Alertdetails, die in der Alertliste angezeigt werden, werden von der in der
Persona-Alert-Konfiguration definierten Komponente wiedergegeben. Diese Komponente wird basierend auf dem Alerttyp dynamisch wiedergegeben. - Sie können die sofort einsatzfähige Alertkomponente überschreiben, indem Sie eine neue Komponente in der Eigenschaft
componentin der Konfiguration angeben.
CustomHotPickAlertComponent für den Alerttyp "Hot Pick" (YCD_HOT_PICK) verwenden:static extensionAlertConfig: IAlertsConfig = {
alertConfigList: [
{
personaName: 'Order_Fulfillment',
alertTypes: [
{
tid: 'YCD_HOT_PICK',
exceptionType: 'YCD_HOT_PICK',
component: CustomHotPickAlertComponent
}
]
}
]
};- Stellen Sie sicher, dass Sie die entsprechenden Alertkomponenten, Service-oder Providerklassen in
alert-extension.module.tsimportieren. - Stellen Sie sicher, dass Sie aus
store-extensions-srcimportieren und nicht aus dem Ordnerstore-app-build.
Alerts anzeigen, deren Eigner die Organisation des Benutzers ist
- Legen Sie
includeAlertsOwnedByUsersOrganizationalsResponseEnum.Yesin der EigenschaftextensionAlertConfigfest. - Definieren Sie die neue Alerttypkonfiguration für die Alerttypen, die Sie anzeigen möchten. Für neue Alerttypen haben Sie folgende Möglichkeiten:
- Erstellen Sie eine neue Alertanzeigekomponente und verwenden Sie den Komponentenklassennamen in der Alertkonfiguration.
- Verwenden Sie die generische Alertanzeigekomponente
GenericAlertComponent, die sofort einsatzbereit bereitgestellt wird. Es werden grundlegende Alertdetails wie Auftragsnummer, Versandnummer, Versandstatus und Alertaktion 'Entfernen' angezeigt. Verwenden Sie in diesem FallGenericAlertComponentals Komponentenklassennamen, der in der Alertkonfiguration definiert werden soll.
Hinweis: Es ist obligatorisch, bestimmte Alerttypen zu definieren, wenn die EigenschaftincludeAlertsOwnedByUsersOrganizationaktiviert wird. Nur die unterextensionAlertConfigdefinierten Alarmtypen werden auf der Benutzeroberfläche von Sterling Store Engagement angezeigt.
YCD_BACKORDER_NOTICE Alarme, die der Organisation des Benutzers gehören, in der Alarmliste in Sterling Store Engagement anzeigen können:static extensionAlertConfig: IAlertsConfig = {
alertConfigList: [
{
personaName: 'Order_Fulfillment',
alertTypes: [
{
tid: 'YCD_BACKORDER_NOTICE',
exceptionType: 'YCD_BACKORDER_NOTICE',
component: BackOrderNoticeAlertComponent, // Or GenericAlertComponent
descBundleKey: 'alerts.LABEL_BackorderNotice'
}
]
}
],
includeAlertsOwnedByUsersOrganization: ResponseEnum.Yes
}Zusätzliche Daten für Alerts füllen
Sie können angepasste Mashups für Ihre Geschäftsanforderungen erstellen und zusätzliche Daten übergeben, die in der Benutzerschnittstelle für jeden Alert angezeigt werden sollen. Sie können die angepassten Mashups aufrufen und benutzerschnittstellenspezifische Daten zurückgeben.
Der Wert MashupId wird in der Eigenschaft additionalDataMashupId angegeben. Diese Eigenschaft ist optional. Die Eigenschaft additionalDataMashupId wird für jeden Posteingangsdatensatz aufgerufen, der von der getExceptionList -API zurückgegeben wird. Wenn diese Eigenschaft nicht definiert ist, wird die für getExceptionList -API-Mashup definierte Vorlage an die Benutzerschnittstelle zurückgegeben.
- Erstellen Sie basierend auf Ihren Geschäftsanforderungen ein neues Mashup. Sie können ein XAPI-oder REST-basiertes Mashup erstellen. Weitere Informationen zum Erstellen neuer Mashups finden Sie unter „Erweitern von Mashups “.
- Wenn Sie ein XAPI-Mashup erstellen, gehen Sie wie folgt vor:
- Erstellen Sie eine neue Mashup-Implementierungsklasse, indem Sie
com.ibm.isf.common.mashups.ISFBaseMashuperweitern. - Überschreiben Sie die Methode
massageInput(Element inputEl, SCUIMashupMetaData mashupMetaData, SCUIContext uiContext). Dieser Schritt ist obligatorisch. - Das Posteingangselement, das die Ausnahmedetails enthält, wird als untergeordnetes Element an das Stammelement der Mashup-Eingabe angehängt.Wenn Sie beispielsweise Auftragsdetails für exceptionType
YCD_BACKORDER_NOTICEzurückgeben möchten, können Sie ein angepasstes Mashup (extn_isf.alerts.getOrderDetaits) zum Aufrufen der APIgetOrderDetailserstellen, wie in der folgendenalertType-Beispielkonfiguration gezeigt:{ tid: 'YCD_BACKORDER_NOTICE', exceptionType: 'YCD_BACKORDER_NOTICE', component: ExtnBackOrderNoticeAlertComponent, additionalDataMashupId: 'extn_isf.alerts.getOrderDetaits', descBundleKey: 'alerts.LABEL_BackorderNotice' }Das folgende Beispiel zeigt die Mashup-Eingabe, die in der MethodemassageInputempfangen wurde:<Order> <Inbox Description="" ExceptionType="" ExceptionTypeDescription="" GeneratedOn="" InboxKey="" OrderHeaderKey="" OrderNo="" Priority="" ShipmentNo="" ShipmentKey=""/> </Order> - Sie können die erforderlichen Attribute wie
OrderHeaderKeyundShipmentKeyaus dem ElementInboxverwenden, sie in der Mashup-Eingabe mit einem Stempel versehen und die Mashup-Eingabe in der MethodemassageInputzurückgeben. - Die Mashup-Eingabe darf nur die Attribute und Elemente enthalten, die im Element
Inputder Mashup-Definition definiert sind. Das ElementInbox, das ein zusätzliches Element ist, muss entfernt werden. Andernfalls kommt es zur Laufzeit zu Verstößen gegen die Mashup-Sicherheit.Im vorherigen Beispiel wird nach Ausführung der angegebenen Schritte die folgende Mashup-Eingabe von der MethodemassageInputzurückgegeben:<Order OrderHeaderKey=""/> - Optional können Sie die Methode
massageOutputabhängig von Ihren Geschäftsanforderungen überschreiben.
Die von dieser angepassten Mashup-Implementierungsklasse zurückgegebene Ausgabe wird als untergeordnetes Element an das Element
Inboxangehängt und an die Benutzerschnittstelle zurückgegeben.Gemäß dem Beispiel werden die Bestelldetails an jedes ElementInboxvonexceptionTypeYCD_BACKORDER_NOTICEangehängt und an die Benutzerschnittstelle zurückgegeben:<InboxList TotalNumberOfRecords="2"> <Inbox Description="Backorder notice" ExceptionType="YCD_BACKORDER_NOTICE" ExceptionTypeDescription="Backorder notice" InboxKey="098769" OrderHeaderKey="1234567" OrderNo="1244567" Priority="1" ShipmentNo="1234" ShipmentKey="1234"> <Order OrderHeaderKey="1234567" OrderNo="1234567" EnterpriseCode="Matrx-R"/> </Inbox> <Inbox Description="Backorder notice" ExceptionType="YCD_BACKORDER_NOTICE" ExceptionTypeDescription="Backorder notice" InboxKey="09876" OrderHeaderKey="123456" OrderNo="124456" Priority="1" ShipmentNo="123" ShipmentKey="123"> <Order OrderHeaderKey="123456" OrderNo="123456" EnterpriseCode="Matrx-R"/> </Inbox> </InboxList> - Erstellen Sie eine neue Mashup-Implementierungsklasse, indem Sie
- Führen Sie die folgenden Schritte aus, wenn Sie ein REST-Mashup erstellen:
- Erstellen Sie eine neue Mashup-Implementierungsklasse, indem Sie
com.ibm.isf.common.mashups.ISFRestBaseMashuperweitern. - Überschreiben Sie die Methode
massageInput(Element inputEl, SCUIMashupMetaData mashupMetaData, SCUIContext uiContext). Dieser Schritt ist obligatorisch. - Das Posteingangselement, das die Ausnahmedetails enthält, wird als untergeordnetes Element an das Stammelement der Mashup-Eingabe angehängt.
Beispiel: Sie möchten die Entnahmeanforderungsdetails nach Versandnummer für jeden Alert abrufen und diese Daten an die Benutzerschnittstelle übergeben. Wenn das Verkaufspersonal auf die Aktionen Auftrag entnehmen oder Fortfahren klickt, wird der Warenlagerentnahmeablauf durch Übergeben von
pickRequestIdgestartet.Die folgendealertType-Beispielkonfiguration veranschaulicht dieses Beispiel:{ tid: 'YCD_NEAR_SLA', exceptionType: 'YCD_NEAR_SLA, component: NearSLAAlertComponent, additionalDataMashupId: 'isf.alerts.getPickRequestByShipmentNo' }Das folgende Beispiel zeigt die Mashup-Eingabe, die in der MethodemassageInputempfangen wurde:<RESTData HTTPMethod="GET" RestURL="stores/Mtrx_Store_1" RestEndPointConfigProperty="yfs.sim.endpointurl" > <Inbox Description="" ExceptionType="" ExceptionTypeDescription="" GeneratedOn="" InboxKey="" OrderHeaderKey="" OrderNo="" Priority="" ShipmentNo="" ShipmentKey=""/> </RESTData> - Sie können die erforderlichen Attribute wie
OrderHeaderKey,ShipmentKeyundShipmentNoaus dem ElementInboxverwenden und als Abfrageparameter inRestURLübergeben. - Sie müssen die folgenden Attribute im Mashup-Eingabeelement festlegen.
HTTPMethodRestURLWenn für diese Attribute keine korrekten Werte festgelegt werden, führt dies zur Laufzeit zu einem Fehler bei der Mashup-Validierung.
- Sie müssen das Element
Inboxaus der Mashup-Eingabe entfernen, bevor Sie zur MethodemassageInputzurückkehren. - Die Mashup-Eingabe darf nur die Attribute und Elemente enthalten, die im Element
Inputin der Mashup-Definition definiert sind. Das Element 'Posteingang ', das ein zusätzliches Element ist, muss entfernt werden. Andernfalls kommt es zur Laufzeit zu Verstößen gegen die Mashup-Sicherheit.Um beispielsweise alle Kommissionieranfragen für ein bestimmtesShipmentNoabzurufen, müssen Sie die REST-API der Lagerbestandsverwaltung aufrufen: GETpick-requests. Dabei gilt:RestURL-stores/<NodeId>/pick-requests?shipmentNo=<ShipmentNo>HTTPMethod-GETMashupInputvon der MethodemassageInputzurückgegeben:<RESTData HTTPMethod="GET" RestURL="stores/<NodeId>/pick-requests?shipmentNo=<ShipmentNo>" RestEndPointConfigProperty="yfs.sim.endpointurl" > </RESTData>
- Optional können Sie die Methode
massageOutputabhängig von Ihren Geschäftsanforderungen überschreiben. - Die von dieser angepassten Mashup-Implementierungsklasse zurückgegebene Ausgabe wird als untergeordnetes Element an das Element "Inbox" angehängt und an die Benutzerschnittstelle zurückgegeben.Standardmäßig wird Rest Mashup
isf.alerts.getPickRequestByShipmentNofürYCD_HOT_PICKundYCD_NEAR_SLAexceptionType aufgerufen, um Entnahmeanforderungen für jede Sendung abzurufen. Dieses REST-Mashup ruft die GETpick-requestsAPI der Lagerbestandsverwaltung auf und gibt die Details der Kommissionieranfragen zurück, die für die Kommissionierung in Frage kommen, die an das ElementInboxangehängt sind. Das folgende Beispiel zeigt die Daten, die in der Benutzerschnittstelle empfangen werden:<InboxList TotalNumberOfRecords="2"> <Inbox Description="Near SLA" ExceptionType="YCD_NEAR_SLA" ExceptionTypeDescription="Near SLA" InboxKey="098769" OrderHeaderKey="1234567" OrderNo="1244567" Priority="1" ShipmentNo="1234" ShipmentKey="1234"> <PickRequest pickRequestId="1234567" status="NOT_STARTED" /> </Inbox> <Inbox Description="Hot pick" ExceptionType="YCD_HOT_PICK" ExceptionTypeDescription="Hot pick" InboxKey="09876" OrderHeaderKey="123456" OrderNo="124456" Priority="1" ShipmentNo="123" ShipmentKey="123"> <PickRequest pickRequestId="123456" status="IN_PROGRESS" /> </Inbox> </InboxList>
Weitere Informationen zum Schreiben von Mashups für Rest-APIs finden Sie unter Erweitern von Mashups.
- Erstellen Sie eine neue Mashup-Implementierungsklasse, indem Sie
Inbox aus der Mashup-Eingabe entfernen, bevor Sie zur Methode massageInput zurückkehren, um einen Mashup-Sicherheitsverstoß während der Laufzeit zu vermeiden. Dies gilt sowohl für XAPI-als auch für REST-Mashups.