Dynamische velden gebruiken in imports/exports in ReflexBlue
In ReflexBlue kan je bij het importeren en exporteren van gegevens gebruikmaken van dynamische velden, mits de entiteit deze ondersteunt. Dynamische velden geven je de flexibiliteit om extra gegevens toe te voegen en te verwerken bij bijvoorbeeld artikelen of relaties. In deze sectie lees je hoe je dynamische velden instelt in exports en imports, en waar je op moet letten.
Dynamische velden gebruiken bij exports
Bij het maken van exportdefinities in ReflexBlue kan je de waarden van dynamische velden meenemen in de export. Dit doe je met de functie Dynamic(), die als extensie op de entiteit beschikbaar is in het exportscript. De syntaxis is als volgt:
<entiteit>.Dynamic().<hoofdlocatie>.<locatie>.<identifier>
| Naam | Omschrijving |
|---|---|
<entiteit> | De variabele van de entiteit in het script. Dit moet een entiteit zijn die dynamische velden ondersteunt. |
<hoofdlocatie> | De naam van de hoofdlocatie. Meestal is dit Common. |
<locatie> | De naam van de locatie van het dynamische veld bij de entiteit. Je geeft deze op bij het aanmaken van het dynamische veld. Elke entiteit heeft specifieke locaties. Bekijk het overzicht op Dynamische velden ondersteuning in ReflexBlue. |
<identifier> | De Identificatie die is opgegeven bij het aanmaken van het dynamische veld. |
Voorbeeld:
Je wilt in het exportscript voor artikelen een dynamisch veld met identifier OPNEMEN_IN_DE_WEBSHOP exporteren. De locatie van het dynamische veld is Verkoop. Je haalt de waarde van dat veld op met:
article.Dynamic().Common.Sales.OPNEMEN_IN_DE_WEBSHOP In een volledig exportscript kan dat er zo uitzien:
@using ReflexNG.Articles.Domain;
@using ReflexNG.ImportsExports.Domain.Templating.Articles
@using ReflexNG.ImportsExports.Domain.Templating.Formatters
@inherits ReflexNG.ImportsExports.Domain.Templating.Articles.ArticlesExportTemplate
@{
var csvOptions = CsvOptions.Default.WithSeparator(';');
var query = ArticlesQuery.Create();
await foreach (var article in GetArticlesAsync(query))
{
WriteCsv(
csvOptions,
Formatter.Create(article.Code),
Formatter.Create(article.Name),
Formatter.Default(article.Dynamic().Common.Sales.OPNEMEN_IN_DE_WEBSHOP)
);
}
} Je kan ook Formatter.Create() gebruiken met een cast naar het juiste type, in plaats van Formatter.Default(). Het type moet dan overeenkomen met het type van het dynamische veld:
Formatter.Create((string)article.Dynamic().Common.Sales.OPNEMEN_IN_DE_WEBSHOP) Dynamische velden gebruiken bij imports
Bij het maken van importdefinities in ReflexBlue krijg je voor entiteiten die dynamische velden ondersteunen, automatisch importopties voor elk dynamisch veld. In het Import Definitie detailscherm, op het Velden koppelen tabblad, zijn de dynamische velden zichtbaar voor koppeling. De sleutel van een dynamisch veld is als volgt opgebouwd:
<entiteit>_DYNAMIC_<locatie>_<hoofdlocatie>_<identifier>
| Naam | Omschrijving |
|---|---|
<entiteit> | De naam van de entiteit. |
<locatie> | De naam van de locatie van het dynamische veld bij de entiteit. Je geeft deze op bij het aanmaken van het dynamische veld. Elke entiteit heeft specifieke locaties. Bekijk het overzicht op Dynamische velden ondersteuning in ReflexBlue. |
<hoofdlocatie> | De naam van de hoofdlocatie, meestal COMMON. |
<identifier> | De Identificatie die is opgegeven bij het aanmaken van het dynamische veld. |
Voorbeeld:
Je wilt in de importdefinitie voor artikelen een dynamisch veld met identifier OPNEMEN_IN_DE_WEBSHOP importeren. De locatie van het dynamische veld is Verkoop.
Op het Velden koppelen tabblad koppel je dan het veld ARTICLE_DYNAMIC_SALES_COMMON_OPNEMEN_IN_DE_WEBSHOP.