IFrame erstellen

Erstellen Sie einen IFrame, um schreibgeschützte Daten von Drittanbietern in Ihre Coupa-Instanz einzubetten.

Mit IFrames können Sie Inhalte von Drittanbietern in Ihre Coupa-Instanz einbetten. Es gibt zwei Arten von IFrame-Apps: 

  • Schwimmende IFrames: IFrame ist persistent und befindet sich unten rechts oder auf der Seite, zu der der Benutzer navigiert. Beim Konfigurieren eines IFrame wird der Speicherort auf „Floating“ gesetzt. Siehe Floating IFrames unten. 
  • Eingebettete IFrames: IFrame ist in eine bestimmte Seite eingebettet. Beim Konfigurieren eines IFrame wird der Speicherort auf eine bestimmte Seite festgelegt.

Schwimmende IFrames

IFrames enthalten eine Art schwebenden IFrame, der auf jeder Seite im Coupa-Kern erscheint. Mit schwebenden IFrames können Coupa-Administratoren jetzt ihre Tools von Drittanbietern wie Chat oder andere Hilfe-Widgets für jede Seite in Coupa hinzufügen, auf die ihre Benutzer zugreifen können. Benutzer müssen Coupa nicht verlassen, während sie Hilfe von Ihrer IT oder Ihrem Support-Team erhalten.

Coupa platziert eine kleine schwebende IFrame-Registerkarte unten rechts auf der Core-Web-Benutzeroberfläche. Die Registerkarte bleibt nicht auf einer Seite, sondern folgt dem Benutzer, wo auch immer er sich in Coupa befindet. Die Daten in der Registerkarte folgen auch dem Benutzer und verlieren keine Informationen, wenn der Benutzer wegklickt. Wenn der Benutzer auf die kleine Registerkarte klickt, wird die Registerkarte geöffnet, um den Chat-Client oder das Hilfe-Widget anzuzeigen, das der Administrator konfiguriert hat. Zu den schwebenden IFrames, die das Erweitern und Einklappen ermöglichen, gehört eine interaktive Schaltfläche zum Erweitern und Einklappen des Fensters.

Einen schwebenden IFrame erstellen

Erstellen Sie mit diesen Schritten einen schwebenden IFrame. Administratoren können bis zu drei schwebende IFrames erstellen, die rechts unten im Fenster nebeneinander angezeigt werden und sich mit jedem neuen Tab nach links bewegen. 

  1. Wählen Sie „Konfiguration“ > „ IFrames und Panels“ und klicken Sie auf „Create“.
  2. Setzen Sie den Speicherort auf Floating und füllen Sie die URL aus.
  3. Legen Sie das Feld Kunden-ID fest. Dies ist eine eindeutige ID, die von der Drittpartei verwendet wird, um sicherzustellen, dass sie mit der richtigen Coupa Embedded App kommuniziert. Es kann jede eindeutige Zeichenfolge sein. Gleitende IFrames dürfen nicht dieselbe Client-ID aufweisen.
  4. Füllen Sie das Feld Deskriptor aus. Dies sind JSON-Daten, die Parameter und Daten enthalten, die mit dem Drittanbieter geteilt werden sollen. Beispiel:
    {
    
       "properties": {
    
          "App_key": {
    
             "type": "Zeichenfolge"
    
          },
    
          "App_Secret": {
    
             "type": "Zeichenfolge"
    
          }
    
       }
    
    }

    Im obigen Beispiel gibt es zwei benutzerdefinierte Eigenschaften,app_key undapp_secret, beide vom Typ string. Nach dem Hinzufügen zum Deskriptorfeld werden die von Ihnen erstellten Eigenschaften dem Abschnitt App-Eigenschaften hinzugefügt.

  5. Legen Sie die Anwendungs-URL fest. Dies ist die URL des Drittanbieters, die in der Embedded App angezeigt wird.
  6. Speichern Sie den Vorgang. Wenn Sie den IFrame-Eintrag erneut öffnen, können Sie den Eigenschaften, die Sie dem Abschnitt App-Eigenschaften hinzugefügt haben, Werte hinzufügen. 

Um einen Demo-Floating-IFrame zu erstellen, geben Sie diese Feldwerte ein. Dadurch wird ein Beispiel-IFrame mit einer Schaltfläche zum Erweitern und Reduzieren des Fensters erstellt. 

Datenaustausch zwischen schwebendem IFrame und Chatbot

Dritte können mit Coupa über die Javascript Postmessage API kommunizieren.  In diesem Beispiel legt der Benutzer den Namen der Eigenschaft app_secret mit dem Wert 123456 fest.

Beispiel für eine IFrame-App-Konfiguration

Der untenstehende Code bietet dem Dritten Zugriff auf diese eingebettete App.

// A function to send a postmessage call from your chatbot to Coupa Core and get the property value

const getSecret = () => {

  const propertyName = "App_Secret";

  window.parent.postMessage(

    {

      action: "getSecret", // Nachrichtentyp.

      client_id: "Kunden-ID für den schwebenden Iframe",

      iframe_id: "Iframe-ID für den schwebenden Iframe",

      daten: {

        key: "app_secret" // Eigenschaftsname, den Sie in diesem Fall von Floating Iframe.app_secret abrufen möchten.

      }

    }, "*"

  );

}



// This is the listener event which will listen to the incomming postmessage events

// von Coupahost zu Ihrem Chatbot.

window.addEventListener("Nachricht", Funktion(Ereignis){

  var eventData = event.data;

  switch(eventData.action) {

    fall „returnSecret“:

      console.log(eventData.data) // Dadurch wird der Eigenschaftswert auf der Konsole des Browsers gedruckt

      pause;

  }

});



getSecret(); // Aufruf zum Auslösen des Postnachrichtenaufrufs, um das Geheimnis aus dem Coupa-Kern abzurufen.

Ändern der Größe eines schwebenden IFrame

Sie können die Größe von schwebenden IFrames mithilfe der JavaScript Postmessage-API ändern.  Beispiel:

// Eine Funktion zum Senden eines Postnachrichtenanrufs von Ihrem Chatbot an Coupa Core, um die Größe zu ändern.

funktion Größe ändern(Optionen = {}){

  window.parent.postMessage(

    {

      action: "Größe ändern",

      client_id: "Client-ID für den schwebenden iframe",

      iframe_id: "IFrame-ID für den schwebenden iframe",

      daten: {

        höhe: 300, // Höhe in px

        breite: 300, // Breite in px

        initial: options.initial // Setzen Sie dies zum Zeitpunkt des Ladens der Seite auf true, andernfalls auf false

      }

    }, "*" // ersetzen * durch die Coupahost-URL für mehr Sicherheit

  );

}



resize({ initial: true }) // Rufen Sie diese Funktion mit initial: true zum Zeitpunkt des Neuladens der Seite auf.

größenänderung({ initial: false }) // Rufen Sie diese Funktion mit initial: false zum Zeitpunkt des Tastenklicks auf, um die Größe zwangsweise zu ändern.

In diesem Beispiel sind die Parameter wie folgt definiert: 

  • client_id: Wie die Client-ID, die als Floating-IFrame-Seite konfiguriert ist.
  • Iframe_id: IFrame-ID des von Ihnen erstellten schwebenden IFrame. Diesen Wert erhalten Sie über die IFrame-URL.

Bild der Iframe-ID, die bei der Inspektion einer Webseite erhalten wurde

Mit dem folgenden Code wird die ID der eingebetteten App für den Drittanbieter abgerufen:

// Auf Ihrer Chatbot-Seite hilft Ihnen der folgende Code, die Iframe-ID zu erhalten.

let urlParams = new URLSearchParams(document.location.search);

urlParams.get("floating_iframe_id") // erhält iframe id

urlParams.get("coupahost") // erhält Coupahost, der zur Verbesserung der Postnachrichtensicherheit verwendet werden kann

Parameter

  • höhe: Höhe, die der IFrame in px haben soll.
  • breite : Breite, die der IFrame in px haben soll.
  • initial : Das anfängliche Flag kann entweder wahr oder falsch sein:
    • True: Um die neueste Größe Ihres IFrame zu speichern und anzuwenden, übergeben Sie initial: true. Wenn Ihr IFrame beispielsweise 300 x 300 beträgt und Sie die Seite neu laden, behält das System nach dem Neuladen der Seite die gleiche Größe des IFrame bei. Wenn es keine aktuelle Größe gibt und Ihr Chatbot zum ersten Mal geladen wird, übernimmt das System die übergebene Höhe und Breite für das Größenänderungsereignis.
    • False: Um die Größe eines IFrame beim Klicken auf die Schaltfläche zu ändern, übergeben Sie initial: false. Dadurch wird die Größe des IFrame unabhängig von der zuletzt gespeicherten IFrame-Größe zwangsweise an die übergebene Höhe und Breite angepasst.

Größenbeschränkungen

Es gibt ein Größenlimit, bis zu dem Sie die Größe Ihres IFrame ändern können.

Maximallimits

  • MAX_IFRAME_HEIGHT = 600px
  • MAX_IFRAME_WIDTH = 565px

Untergrenze

  • MIN_IFRAME_HEIGHT = 20px
  • MIN_IFRAME_WIDTH = 20px

Eingebettete IFrames

Embed IFrames anywhere Coupa unterstützt Panel-Apps und stellt spezifische Coupa-Attribute für Ihre IFrame-Callout-Abfrage bereit. Eingebettete Apps fügen bestimmten Seiten wie der Startseite, der Lieferantenseite, dem Warenkorb usw. Kontext hinzu.  

IFrame einbetten

  1. Wählen Sie „Konfiguration“ > „Plattform“ > „Installierte Apps“.
  2. Klicken Sie auf Erstellen“ und wählen Sie „Neue IFrame-App erstellen“.  
  3. Geben Sie im Dropdown-Menü Standort den Standort der App an. Wenn Sie das Slot-Feld leer lassen, wird es auf keiner bestimmten Seite angezeigt und Sie müssen wie zuvor einen Menüpunkt für die IFrame-App erstellen. Wenn Sie einen Slot auswählen, verschwindet die Option In neuem Fenster öffnen.
Hinweis

Derzeit werden IFrame-Apps auf Seiten, die die neue React-Benutzeroberfläche verwenden, nicht unterstützt. Dazu gehören Spesen und Rechnungsstellung.

Verfügbare Standorte

Coupa unterstützt die folgenden Standorte:

Slot Seite Position auf der Seite
leer Dedizierte Seite* Geben Sie einen Speicherort mithilfe der konfigurierbaren Menüfunktion an
projects.show Spezifische Projektzielseite Zwischen den Abschnitten Projektfelder und zusätzliche Felder und dem Abschnitt Kommentare
angebote/Anfragen.show Landingpage für spezifische Sourcing-Events Zwischen dem Abschnitt Ereignistyp-Einstellung und dem Abschnitt Kommentare
requisition_headers.edit Coupa Einkaufswagen Zwischen dem Abschnitt „Artikel im Einkaufswagen“ und dem Abschnitt „Genehmiger“
suppliers.show Individuelle Lieferantendatens Zwischen dem Abschnitt Coupa Supplier Portal und dem Abschnitt Supplier Contacts
user.home Die Coupa-Homepage Erscheint am Seitenende nach konfigurierbaren Startseite-Elementen
invoices.edit Bestimmte Rechnung Zwischen dem Zahlungsabschnitt und dem Verlaufsabschnitt
receipts.full_receipt Spezifische Seite mit detaillierten Belegen Nach dem Abschnitt Asset-Tags (Optional)
asn/headers.show Seite mit spezifischen Lieferavis-Details Zwischen dem Zeilenabschnitt und dem Verlaufsabschnitt
items.show Individueller Positionssatz Zwischen dem Abschnitt Lieferanten und dem Abschnitt Historie
variabel Bleibt auf jeder Seite bestehen, zu der der Benutzer navigiert Unten rechts
Hinweis

*Wenn In neuem Fenster öffnen ausgewählt ist, wird die IFrame-App auf keiner Seite angezeigt und stattdessen in einer neuen Registerkarte des Browsers geöffnet. Dieses Feld steht nicht zur Auswahl, wenn Sie einen Slot für Ihre App auswählen.

IFrame-App-Abfragezeichenfolgen

Da IFrame-Apps eine externe Website oder einen externen Dienst aufrufen, fügt Coupa der Anwendungs-URL einige Abfrageparameter hinzu. Sie können diese Felder verwenden, um den Benutzer zu identifizieren und ihm eine personalisierte Erfahrung zu bieten.

Feld Wert Beispiel Bedingungen
coupahost Der Name Ihrer Instanz coupahost=demo.coupahost.com Wird immer sowohl für Floating- als auch für Embedded-Apps gesendet.
user_id Coupa-ID für den aktuellen Benutzer user_id=94 Wird immer sowohl für Floating- als auch für Embedded-Apps gesendet.
object_type Kleinbuchstaben unterstrichen Singularform des ausgewählten Objekts object_type=requisition_header Wird nur für eingebettete Apps gesendet. 

object_id

Coupa-ID für das aktuelle Objekt object_id=21 Wird nur für eingebettete Apps gesendet. 
Hinweis

Während Coupa Benutzer- und Objektdetails im Callout bereitstellt, sind IFrame-Apps schreibgeschützt.

Überlegungen

  • Für IFrame-Apps in Coupa wird nur das HTTPS-Protokoll unterstützt
  • Der Kunde muss ein SSO oder angemessene Sicherheitseinschränkungen für seine IFrame-Anwendung einhalten
  • Da ein IFrame einen Anwendungsdaten-/Inhaltsfluss eines Drittanbieters nutzt, kann er auf Coupa-Seite nicht gesteuert werden. Dies kann das Risiko erhöhen, eine potenzielle Schwachstelle in der Anwendung zu haben oder einfach mit einer schlechten Benutzererfahrung (wie einer automatischen Videowiedergabe) umgehen zu müssen. Es wird empfohlen, dass Kunden die IFrame-Funktionen auf die Bedürfnisse ihrer Benutzer beschränken.
  • Nicht alle Anwendungen unterstützen die IFrame-Funktionen. Kunden müssen überprüfen, ob ihre Anwendung IFrames zulässt, um sie in Coupa zu verwenden
    • Kunden sollten auch sicherstellen, dass die von ihnen verwendeten Webbrowser IFrames unterstützen
  • Das Laden der Kundenanwendungsseiten sollte nicht länger dauern, da dies die Benutzerleistung/-erfahrung beeinträchtigen kann
  • Wenn eine Anwendung eines Drittanbieters eine "X-Frame-Optionen" sendet: SAMEORIGIN" Antwortheader, diese Option verhindert, dass der Webbrowser IFrames anzeigt, die nicht auf derselben Domain wie die übergeordnete Seite gehostet werden