HTML-Aktion
Einleitung
Diese Aktion können Sie nutzen, um in der Administration zusätzliche Informationen einzubinden, die Sie allen oder ausgewählten Benutzern und Business-Logins zur Verfügung stellen.
Beispiele
- Wenn ein Kunde sich im B2B-Portal anmeldet, soll automatisch ein Arbeitsbereich aufgerufen werden, in dem individuelle Informationen auf einer Seite dargestellt werden, die auf den Kunden zugeschnitten sind.
Diese Informationen ermitteln Sie im Rahmen einer HTML-Aktion, die Sie wiederum als zusätzlichen Inhalt definieren und nur für die betreffende Business-Login-Gruppe freigegeben haben.
Auslöser
Die HTML-Aktion selbst verfügt über keinen Auslöser. Sie wird ausgelöst, wenn ein definierter Inhalt aufgerufen oder aktualisiert wird, dem die HTML-Aktion selbst zugeordnet ist.
Eingabeparameter
Neben den allgemeinen werden zusätzlich diese Paramater übergeben:
| Key | Datentyp | Value |
|---|---|---|
| EntityKey | string | Der Schlüssel der Entität auf dem die Aktion ausgeführt wurde. |
| EntityType | string | Der Typ der Entität auf der die Aktion ausgeführt wurde. |
| DisplayAreaTechnicalKey | string | Der technische Schlüssel des Anzeigebereichs in der die Aktion ausgeführt wurde. (Zum Beispiel Kundendashboard). |
Im Kontext von Kunden werden zusätzlich folgende Parameter übergeben:
| Key | Datentyp | Value |
|---|---|---|
| ContactType | string | der Kontakttyp |
| AddressId | int | die Adressnummer (KHKAdressen.Adresse) |
| AccountId | string | die Kunden-/Lieferantennummer (KHKKontokorrent.Kto) |
| ContactPersonId | int | die Id des Ansprechpartners (KHKAnsprechpartner.Nummer) |
Kontakttypen:
- Adresse/Interessent (address)
- Ansprechpartner (contactPerson)
- Interessent (prospect)
- Kunde (customer)
- Lieferant (supplier)
Ausgabeparameter
Es werden die allgemeinen Rückmeldungen erwartet.
| Key | Datentyp | Value |
|---|---|---|
| Html | string | HTML-Code für die Anzeige in einem iFrame |
Beispiel
Codebeispiel
using System;
using System.Collections.Generic;
namespace Custom.TestAssembly.CustomInformation
{
public class Example
{
public Dictionary<string, object> Execute(Dictionary<string, object> parameter)
{
return new Dictionary<string, object>
{
{ "Prompt", new Dictionary<string, object>()
{
{ "Name", "HtmlCustomInformationAction" },
{ "Html", GetPromptHtml(parameter) }
}
}
};
}
private string GetPromptHtml(Dictionary<string, object> parameter)
{
var locationKey = parameter.TryGetValue("LocationKey", out var locationKeyObj) ? locationKeyObj as string : null;
var cultureId = parameter.TryGetValue("CultureId", out var cultureIdObj) && cultureIdObj != null ? cultureIdObj?.ToString() : "de-DE (Fallback)";
var entityKey = parameter.TryGetValue("EntityKey", out var entityKeyObj) ? entityKeyObj as string : null;
var entityType = parameter.TryGetValue("EntityType", out var entityTypeObj) ? entityTypeObj as string : null;
var displayArea = parameter.TryGetValue("DisplayAreaTechnicalKey", out var displayAreaTechnicalKeyObj) ? displayAreaTechnicalKeyObj as string : null;
return String.Format(@"<!DOCTYPE html>
<html>
<head>
<link
rel='stylesheet'
href='https://edev.4sellers.de/api/asset/64331/style.css'
/>
</head>
<body>
<h2>Custom Information - Metadata</h2>
<ul>
<li>Location Key: {0}</li>
<li>Culture Id: {1}</li>
<li>Entity Key: {2}</li>
<li>Entity Type: {3}</li>
<li>Display Area Technical Key: {4}</li>
</ul>
</body>
</html>
'", locationKey, cultureId, entityKey, entityType, displayArea);
}
}
}