Mehrfachfelder — Telefonnummern, E-Mails, Tags — speichern mehrere Werte auf einmal, und auch Roboter geben Listen zurück: etwa die Teile einer aufgeteilten Zeichenkette. Die eingebauten Aktionen der Geschäftsprozesse von Bitrix24 arbeiten schlecht mit Listen: das Einsetzen klebt alle Werte zu einer Zeichenkette zusammen, und das Schreiben in ein Mehrfachfeld überschreibt das, was darin lag. Fünf Roboter decken die Arbeit mit Arrays ab: Element per Index holen, Elemente zählen, das Vorhandensein eines Werts prüfen, einen Wert eines Mehrfachfelds hinzufügen und entfernen.

Woher kommen Arrays in einem Geschäftsprozess?

Drei Quellen. Mehrfache Felder von Entitäten: Telefonnummern und E-Mails eines Kontakts, Benutzerfelder mit dem Kennzeichen „mehrfach" — Tags, Kategorien, eine Liste von Filialen. Mehrfache Prozessvariablen, in denen sich Werte im Verlauf der Zweige ansammeln. Und die Ergebnisse anderer Roboter: das Aufteilen einer Zeichenkette nach einem Trennzeichen gibt eine Liste der Teile zurück, das Extrahieren per Muster — eine Liste der Treffer. Mit einer solchen Liste lässt sich mit Bordmitteln wenig anfangen: das Einsetzen in Text klebt die Werte mit Komma zusammen, eine Bedingung prüft das Vorkommen anhand der Zusammenklebung. Genau die zweite Telefonnummer zu nehmen, Tags zu zählen oder sauber einen Wert hinzuzuschreiben, ohne die übrigen anzutasten — das sind bereits Aufgaben für die Roboter unten.

Wie holt man das erste, letzte oder N-te Element?

Der Roboter „Array-Element per Index abrufen" nimmt ein Wertearray und einen Index entgegen: 0 — das erste Element, 1 — das zweite, −1 — das letzte, −2 — das vorletzte. Ausgabe: das Element und das Kennzeichen „Element existiert" (J/N); liegt der Index außerhalb des Arrays, wird ein leerer Wert und das Kennzeichen N zurückgegeben — der Prozess hält nicht an, sondern ein Bedingungszweig behandelt den fehlenden Datensatz. Typische Verkettungen: eine Zeichenkette mit einem Namen nach Leerzeichen aufgeteilt — das erste Element als Nachname genommen; eine Adresse nach Komma aufgeteilt — das letzte Element als Hausnummer genommen; aus einer Trefferliste eines regulären Ausdrucks das erste genommen. Das Ergebnis schreibt man in ein gewöhnliches Einzelfeld oder eine Variable für die folgenden Schritte.

Wie zählt man Elemente und prüft das Vorhandensein eines Werts?

Zwei Frage-Roboter. „Array-Größe / Anzahl der Elemente" gibt die Anzahl und das Kennzeichen „Array ist leer" (J/N) zurück; leere Zeichenketten werden standardmäßig nicht mitgezählt — eine zufällige leere Position in einem Mehrfachfeld verfälscht die Zählung nicht. „Vorhandensein eines Werts im Array prüfen" sucht eine exakte Übereinstimmung des Elements — keine Teilzeichenkette — ohne Berücksichtigung der Groß-/Kleinschreibung, per Option lässt sich ein strenger Vergleich aktivieren. Ausgabe: das Kennzeichen „Gefunden" (J/N) und der Index des ersten Treffers, minus eins, wenn es keine Treffer gibt. Anwendung in Prozessbedingungen: „der Deal hat bereits den Tag VIP — die Rabattvergabe überspringen", „der Kontakt hat null Telefonnummern — eine Aufgabe an den Mitarbeiter, die Karte vor der Übergabe in den Anrufbetrieb zu vervollständigen".

Wie fügt man einem Mehrfachfeld einen Wert hinzu, ohne die übrigen zu überschreiben?

Der Hauptschmerz der Mehrfachfelder: die eingebaute Dokumentänderung schreibt das Feld als Ganzes, und beim Hinzufügen eines einzelnen Tags löscht man leicht die bestehenden. Der Roboter „Wert zu Mehrfachfeld hinzufügen" schreibt den Wert sauber hinzu: er liest den aktuellen Inhalt des Entitätsfeldes und fügt den neuen zu den bestehenden hinzu. Eingabe: der Entitätstyp — Deal, Kontakt, Unternehmen oder Lead — die Entitäts-ID per Einsetzen aus dem aktuellen Dokument, der Feldcode (zum Beispiel UF_CRM_TAGS oder PHONE) und der Wert selbst. Die Option „nicht hinzufügen, wenn bereits vorhanden" ist standardmäßig aktiviert: ein wiederholter Start des Prozesses erzeugt keine Wertdubletten. Ausgabe: das Kennzeichen „Erfolgreich" (J/N) und die resultierende Anzahl der Elemente im Feld.

Wie entfernt man einen Wert aus einem Mehrfachfeld?

Die umgekehrte Operation — einen Tag entfernen, eine veraltete Telefonnummer löschen. Von Hand bedeutet das, die Karte zu öffnen und das Feld zu bearbeiten; mit der eingebauten Aktion — das Feld als Ganzes neu zu schreiben, mit allen Risiken. Der Roboter „Wert aus Mehrfachfeld entfernen" nimmt Entitätstyp, ID, Feldcode und den zu entfernenden Wert entgegen. Es werden alle Vorkommen dieses Werts entfernt, die übrigen Elemente bleiben an ihrem Platz. Ausgabe: das Kennzeichen „Erfolgreich" (J/N), wie viele Vorkommen entfernt wurden und die resultierende Anzahl der Elemente im Feld. Rezept: ein Deal erfolgreich abgeschlossen — der Prozess entfernt vom Unternehmen den Tag „in Bearbeitung" und schreibt mit dem benachbarten Hinzufügen-Roboter den Tag „Kunde" hinzu; die Karte spiegelt immer den aktuellen Status ohne manuelle Korrektur wider.

Fazit

Fünf Roboter decken den Lebenszyklus eines Arrays ab: Element holen — „Array-Element per Index abrufen", zählen — „Array-Größe / Anzahl der Elemente", prüfen — „Vorhandensein eines Werts im Array prüfen", Mehrfachfeld ändern — „Wert zu Mehrfachfeld hinzufügen" und „Wert aus Mehrfachfeld entfernen". Alle finden Sie im Roboteka-Katalog, kostenlos aus dem Bitrix24.Markt. Fehlt die benötigte Array-Operation — beschreiben Sie die Aufgabe, wir bauen den Roboter kostenlos.