Richtlinien für die Verwendung benutzerdefinierter Makros

Beachten Sie beim Erstellen bzw. Verwenden von Makros die folgenden Richtlinien:

*
*
Wenn eine Datenquelle mit der Eigenschaft ENABLE_SELECT_SORT_BY = TRUE konfiguriert wurde, müssen Sie benutzerdefinierte SQL‑Makros mit einer ORDER BY (SORTIEREN NACH)-Klausel versehen. Nur so werden die zurückgegebenen Datensätze anhand der Zielgruppenschlüsselfelder der Zielgruppenebene sortiert, auf der Sie arbeiten. Andernfalls wird für das Makro bei einem Snapshot-Prozess in einem abgeleiteten Feld und bei nicht erwartungsgemäßer Reihenfolge eine Fehlermeldung ausgegeben.
*
*
Greift ein benutzerdefiniertes Makro auf temporäre Tabellen zurück, wird der Datenbank zwangsläufig eine temporäre Tabelle übermittelt, damit der Code ordnungsgemäß ausgeführt werden kann.
Wird ein benutzerdefiniertes Makro in einem SELECT-Befehl höchster Ebene verwendet, stehen keine Verlaufsinformationen zur Verfügung, mit deren Hilfe Campaign der Datenbank eine temporäre Tabelle übergeben könnte. Folge ist, dass der Code nicht ordnungsgemäß ausgeführt werden kann.
Das bedeutet für Sie, dass Sie beim Erstellen eines benutzerdefinierten Makros mit direktem SQL unter Umständen zwei Versionen des gleichen benutzerdefinierten Makros erstellen müssen. Eines davon verwendet Tokens temporärer Tabellen, das andere nicht.
Das benutzerdefinierte Makro, das ohne Tokens von temporären Tabellen auskommt, sollte auf der obersten Hierarchieebene verwendet werden (z. B. im ersten SELECT-Befehl). Das Makro mit Tokens temporärer Tabellen lässt sich an jeder anderen Stelle der Struktur einsetzen, an der solch ein Einsatz vorteilhaft erscheint.
*
Wenn Sie z. B. ein auf direktem SQL basierendes, benutzerdefiniertes Makro verwenden, das einen Wert zurückgibt (z. B. in einem Snapshot-Prozess), und Sie das benutzerdefinierte Makro sowie ein anderes Feld aus der Tabelle ausgeben, auf dem das benutzerdefinierte Makro basiert, nimmt Campaign eine eigenständige Verknüpfung der Tabelle vor. Wenn die Tabelle nicht normalisiert wurde, erhalten Sie ein kartesisches Produkt (d. h. die Anzahl der angezeigten Datensätze ist größer als erwartet).
*
Zur Ausführungszeit wird das benutzerdefinierte Makro aufgelöst, indem seine Definition in der Systemtabelle UA_CustomMacros (dort sind die Definitionen gespeichert) ermittelt und das Makro anschließend eingesetzt/ausgeführt wird.
*
Campaign unterstützt gespeicherte Abfragen aus früheren Versionen. Jedoch müssen Sie bei Verweisen auf nicht eindeutige gespeicherte Abfragen die alte Syntax verwenden.
gespeicherteAbfrage(<Abfragename>)
*
*
*
*
*
TestCM( {STRING_CONCAT(UserVar.Test1, UserVar.Test2) } )

In den folgenden Tabellen wird erläutert, wie Campaign benutzerdefinierte Makros in Abfragen und abgeleiteten Feldern behandelt.

Benutzerdefinierte Makros in Abfragen und abgeleiteten Feldern (Prozesse "Auswählen", "Segmentieren" und "Zielgruppe")

Wird als eigenständige Abfrage ausgeführt. Die ID-Liste wird mit anderen Ergebnissen zusammengeführt.

Wenn ein benutzerdefiniertes Makro andere benutzerdefinierte Makros und direktes SQL enthält, werden zuerst die benutzerdefinierten Makros aufgelöst und ausgeführt. Anschließend wird der direkte SQL-Code ausgeführt.

Es wird erwartet, dass der zurückgegebene Wert in einem Ausdruck oder Vergleich verwendet wird.

Wird der Wert nicht auf diese Art eingesetzt, wird ein Wert ungleich Null von Campaign bei einer ID-Auswahl als TRUE ausgewertet; ein Wert gleich Null oder eine Zeichenkette ergeben FALSE.

Der Ausdruck wird aufgelöst, und die Syntax wird überprüft. Es wird eine Abfrage pro Tabelle unterstützt, und die IDs werden verglichen / zusammengeführt.

In einer direkten SQL-Abfrage (Prozesse "Auswählen", "Segmentieren" und "Zielgruppe")

Das benutzerdefinierte Makro wird aufgelöst und die Abfrage ausgeführt.

Der Ausdruck wird aufgelöst, aber es findet keine Überprüfung der Syntax statt. Ist der Ausdruck nicht korrekt, wird er als solcher vom Datenbankserver bei der Ausführung erkannt.



IBM Unica Campaign
 
8.5.0
For more information, see our support and community site: Customer Central