CodeDataProvider
Der CodeDataProvider liefert die Daten eines Object bzw. einer ObjectCollection über ein JavaScript-Snippet, anstatt sie aus einer externen Quelle (CSV, Excel, SQL, HTTP) zu laden. Er eignet sich, um Einträge berechnet, aus den eingegebenen Suchparametern oder aus dem Connect-Datenkontext bereitzustellen.
Der CodeDataProvider nutzt denselben Mechanismus wie die übrigen DataProvider und steht sowohl im primedocs Desktop Client als auch in primedocs Web zur Verfügung.
Konfiguration
<ObjectCollection Id="Positions" Label="Positionen">
<Schema>
<Text Id="Article" Label="Artikel" />
<Text Id="Amount" Label="Betrag" />
</Schema>
<DataProviders>
<CodeDataProvider DisplayName="Aus Connect-Daten">
<SearchParameters>
<Text Id="Category" Label="Kategorie" field-Value="Data.Category" />
</SearchParameters>
<Code>
function main() {
var category = $("Category");
return [
{ Article: "Beispiel " + category, Amount: "100.00" }
];
}
</Code>
</CodeDataProvider>
</DataProviders>
</ObjectCollection>
Im Gegensatz zu den dateibasierten oder HTTP-Providern benötigt der CodeDataProvider kein Mapping: Die Eigenschaften der vom Snippet zurückgegebenen Objekte werden direkt anhand ihres Namens den Schema-Feldern zugeordnet. Verschachtelte Objekte werden mit Punktnotation abgeflacht (z.B. Address.City).
Attribute
| Attribut | Beschreibung |
|---|---|
DisplayName / translate-DisplayName (optional) | Anzeigename des Providers in der Oberfläche. |
ReadOnly (optional) | Wenn true: Die über diesen Provider geladenen Felder sind schreibgeschützt. |
AutoAddAllEntries (optional) | Wenn true: Alle vom Snippet gelieferten Einträge werden automatisch zur Sammlung hinzugefügt. |
Elemente
| Element | Beschreibung |
|---|---|
Code (erforderlich) | JavaScript mit einer main()-Funktion, die ein Array von Objekten zurückgibt. Jedes Objekt entspricht einem Eintrag; seine Eigenschaften werden zu Feldern. |
SearchParameters (optional) | Suchmaske mit Text, Date, YesNo, Choice (wie in Forms). Mit field-Value (Wert aus dem Connect-Datenkontext) bzw. parent-Value (Feld des übergeordneten Objekts) lassen sich Parameter vorbelegen. |
JavaScript-API
Innerhalb des Code-Snippets steht das $-Objekt zur Verfügung:
| Aufruf | Beschreibung |
|---|---|
$.parameter("Id") bzw. $("Id") | Wert eines konfigurierten Suchparameters. |
$("Data.Key") | Wert aus dem Connect-Datenkontext. |
$.parent("FeldId") | Wert eines Feldes des übergeordneten Objekts (in verschachtelten Object-/ObjectCollection-Strukturen). |
Der CodeDataProvider nimmt nicht am Loading-Pfad der ProviderPipeline teil, da er keinen flachen Such-Schritt besitzt, der beim Laden neu zugeordnet werden könnte.