For the complete documentation index, see llms.txt. This page is also available as Markdown.

Beispiele für Skript-Verarbeitungen

Praxisbeispiele für Skript-Verarbeitungen zum Deaktivieren, Löschen und Anpassen von Tags in der Stapel-Verarbeitung.

Datensätze löschen/deaktivieren

In bestimmten Fällen kann es sinnvoll sein, Datensätze gezielt per Skript zu deaktivieren oder vollständig zu löschen – zum Beispiel bei Datenbereinigungen oder zur Pflege veralteter Datensätze.

Mit folgendem Skript kannst Du anhand einer Artikelnummer gezielt einen Artikel auswählen und entweder deaktivieren oder löschen:

Skript – Datensätze löschen/deaktivieren
Import-Skript – Datensätze löschen/deaktivieren
import batchAction from ‘batch_script’;

batchAction.setAction((ctx) => {
let articleService = ctx.services.articleService;
let article = articleService.readByNumber(‘Beispiel-Nummer’);
articleService.deactivate(article.id);

// oder

articleService.deleteById(article.id);
return true;
});

articleService.deactivate(…)Deaktiviert den Artikel – nützlich für Artikel, zu denen bereits weitere Datensätze bestehen. In solchen Fällen kann der Artikel nicht gelöscht werden.

articleService.deleteById(…)Löscht den Artikel endgültig aus dem System. Wenn bereits verknüpfte Datensätze existieren, schlägt der Löschvorgang beim Import fehl.

Das Skript kann flexibel für unterschiedliche Verwaltungen, Datensätze und Einsätze angepasst und erweitert werden – z. B. für die Massenbearbeitung mehrerer Datensätze, die Filterung nach bestimmten Eigenschaften oder die Kombination mit weiteren Prüfungen. Das Skript kann ebenfalls im Benutzerskript im Workflow verwendet werden, wenn es entsprechend angepasst wird.

Tags in Adressen anpassen

Mithilfe des folgenden Import-Skripts kannst Du in der Adressverwaltung einen bestimmten Tag bei allen Adressen, die diesen enthalten, durch einen neuen, vordefinierten Tag ersetzen.

Voraussetzung

Die im Skript angegebenen Tags müssen unter Einstellungen/Allgemein/Tags angelegt sein. In unserem Beispiel verwenden wir die TagsNeukunde” mit der ID “12345” und “Interessent”.

Skript – Tags ersetzen
import batchAction from ‘batch_script’;

const OLD_TAG_LABEL = ‘Interessent’;
const NEW_TAG_ID = 12345;

batchAction.setGuard((ctx) => {
const account = ctx.services.accountService.readById(ctx.importData.id);
return Boolean(account);
});

batchAction.setAction((ctx) => {
const accountId = ctx.importData.id;
const account = ctx.services.accountService.readById(accountId);
const tagService = ctx.services.tagService; 
if (!account || !Array.isArray(account.tags)) {
return false;
}
const oldTagIndex = account.tags.findIndex(tag => {
const resolvedTag = tagService.readById(tag.id);
return resolvedTag?.label === OLD_TAG_LABEL;
});
if (oldTagIndex === -1) {
ctx.services.logger.info(`Tag${OLD_TAG_LABEL}nicht vorhanden, kein Update nötig.`);
return true; 
}
const newTag = tagService.readById(NEW_TAG_ID);
if (!newTag) {
ctx.services.logger.warn(`Neues Tag mit ID ${NEW_TAG_ID} nicht gefunden.`);
return false;
}
account.tags[oldTagIndex] = newTag;
ctx.services.accountService.update(account);
ctx.services.logger.info(`Tag${OLD_TAG_LABEL}durch ID ${NEW_TAG_ID} ersetzt bei Adresse: ${accountId}`);
return true;
});

const OLD_TAG_LABELBezeichnung des bestehenden Tags, der ersetzt werden soll – z. B. “Interessent”

const NEW_TAG_IDInterne ID des neuen Tags, das zugewiesen werden soll. Die ID kann über die Spalte ID im Datagrid unter Einstellungen/Allgemein/Tags eingesehen werden.

Das Skript kann flexibel für unterschiedliche Verwaltungen, Datensätze und Einsätze angepasst und erweitert werden – z. B. können statt von Adressen die Tags mehrere Artikel oder Aufgaben geändert werden.

Zuletzt aktualisiert

War das hilfreich?