Plattform der nächsten GenerationVeraltet

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

Die folgende JSON-Spezifikation dient zum Überschreiben der Hot-Pick-Alerttypbeschreibung von 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 component in der Konfiguration angeben.
Die folgende JSON-Spezifikation zeigt, wie Sie eine neue angepasste Alertkomponente 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
                  }
                ]
            }
        ]
    };
Hinweis:
  • Stellen Sie sicher, dass Sie die entsprechenden Alertkomponenten, Service-oder Providerklassen in alert-extension.module.tsimportieren.
  • Stellen Sie sicher, dass Sie aus store-extensions-src importieren und nicht aus dem Ordner store-app-build .

Alerts anzeigen, deren Eigner die Organisation des Benutzers ist

Standardmäßig werden Alerts basierend auf dem momentan angemeldeten Benutzer sowie auf den Warteschlangen, die der Benutzer abonniert hat, angezeigt. Führen Sie die folgenden Schritte aus, um Alerts anzuzeigen, deren Eigner die Organisation des Benutzers ist:
  1. Legen Sie includeAlertsOwnedByUsersOrganization als ResponseEnum.Yes in der Eigenschaft extensionAlertConfig fest.
  2. 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 Fall GenericAlertComponent als Komponentenklassennamen, der in der Alertkonfiguration definiert werden soll.
    Hinweis: Es ist obligatorisch, bestimmte Alerttypen zu definieren, wenn die Eigenschaft includeAlertsOwnedByUsersOrganization aktiviert wird. Nur die unter extensionAlertConfig definierten Alarmtypen werden auf der Benutzeroberfläche von Sterling Store Engagement angezeigt.
Die folgende JSON-Spezifikation zeigt, wie Sie 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.

Führen Sie die folgenden Schritte aus, um benutzerdefinierte Mashups zu erstellen, die zum Füllen zusätzlicher Daten für Alerts verwendet werden können:
  1. 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 “.
  2. Wenn Sie ein XAPI-Mashup erstellen, gehen Sie wie folgt vor:
    1. Erstellen Sie eine neue Mashup-Implementierungsklasse, indem Sie com.ibm.isf.common.mashups.ISFBaseMashuperweitern.
    2. Überschreiben Sie die Methode massageInput(Element inputEl, SCUIMashupMetaData mashupMetaData, SCUIContext uiContext) . Dieser Schritt ist obligatorisch.
    3. 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 API getOrderDetails erstellen, wie in der folgenden alertType -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 Methode massageInput empfangen wurde:
      <Order>
             <Inbox Description="" ExceptionType="" ExceptionTypeDescription="" GeneratedOn=""
             InboxKey="" OrderHeaderKey="" OrderNo="" Priority="" ShipmentNo="" ShipmentKey=""/>
      </Order>
    4. Sie können die erforderlichen Attribute wie OrderHeaderKey und ShipmentKey aus dem Element Inbox verwenden, sie in der Mashup-Eingabe mit einem Stempel versehen und die Mashup-Eingabe in der Methode massageInput zurückgeben.
    5. Die Mashup-Eingabe darf nur die Attribute und Elemente enthalten, die im Element Input der Mashup-Definition definiert sind. Das Element Inbox , 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 Methode massageInput zurückgegeben:
      <Order OrderHeaderKey=""/>
    6. Optional können Sie die Methode massageOutput abhä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.

    Gemäß dem Beispiel werden die Bestelldetails an jedes Element Inbox von exceptionType YCD_BACKORDER_NOTICE angehä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>
  3. Führen Sie die folgenden Schritte aus, wenn Sie ein REST-Mashup erstellen:
    1. Erstellen Sie eine neue Mashup-Implementierungsklasse, indem Sie com.ibm.isf.common.mashups.ISFRestBaseMashuperweitern.
    2. Überschreiben Sie die Methode massageInput(Element inputEl, SCUIMashupMetaData mashupMetaData, SCUIContext uiContext) . Dieser Schritt ist obligatorisch.
    3. 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 folgende alertType -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 Methode massageInput empfangen 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>
    4. Sie können die erforderlichen Attribute wie OrderHeaderKey, ShipmentKeyund ShipmentNo aus dem Element Inbox verwenden und als Abfrageparameter in RestURLübergeben.
    5. Sie müssen die folgenden Attribute im Mashup-Eingabeelement festlegen.
      • HTTPMethod
      • RestURL

        Wenn für diese Attribute keine korrekten Werte festgelegt werden, führt dies zur Laufzeit zu einem Fehler bei der Mashup-Validierung.

    6. Sie müssen das Element Inbox aus der Mashup-Eingabe entfernen, bevor Sie zur Methode massageInput zurückkehren.
    7. Die Mashup-Eingabe darf nur die Attribute und Elemente enthalten, die im Element Input in 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 bestimmtes ShipmentNo abzurufen, müssen Sie die REST-API der Lagerbestandsverwaltung aufrufen: GET pick-requests. Dabei gilt:
      • RestURL - stores/<NodeId>/pick-requests?shipmentNo=<ShipmentNo>
      • HTTPMethod - GET
      • MashupInput von der Methode massageInput zurückgegeben:
        <RESTData HTTPMethod="GET"  RestURL="stores/<NodeId>/pick-requests?shipmentNo=<ShipmentNo>" RestEndPointConfigProperty="yfs.sim.endpointurl" >
        </RESTData>
    8. Optional können Sie die Methode massageOutput abhängig von Ihren Geschäftsanforderungen überschreiben.
    9. 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.getPickRequestByShipmentNo für YCD_HOT_PICK und YCD_NEAR_SLA exceptionType aufgerufen, um Entnahmeanforderungen für jede Sendung abzurufen. Dieses REST-Mashup ruft die GET pick-requests API der Lagerbestandsverwaltung auf und gibt die Details der Kommissionieranfragen zurück, die für die Kommissionierung in Frage kommen, die an das Element Inbox angehä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.

Hinweis: Sie müssen das Element 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.