Automatische Opt-In Benachrichtigung/Bestätigung

Peter Brandt [Grutzeck Software GmbH]
11.05.2018 15:52

Vorwort:
Basierend auf dem Knowledgebaseartikel:
http://kb.grutzeck.de/index.php?sid=52200&lang=de&action=artikel&cat=15&id=297&artlang=de


Anforderung:
- AG-VIP SQL ab der 1.40 Version mit dem Datentyp "Tri-State" (logisches dreiwertiges Datenfeld: 0 = Nein; 1 = Ja; 2 = keine Angabe)
- Die Makros vom oben erwähnten Knowledgebaseartikel
- Umsetzung DSGVO


Beschreibung:
Dieser Artikel beschreibt eine Erweiterung des oben erwähnten Artikels um eine automatische Generierung eines Briefes bzw. einer E-Mail für den Kunden mit dessen Opt-In Bewilligungen, sofern sich diese geändert haben sollten.


Anpassung:
Hier werden die notwendigen Anpassungen beschrieben.
Änderungen werden im Makrotext (grau hinterlegt) durch das Textformat "Fett" hervorgehoben.

Felder:
Die notwenigen Opt-In Felder sind ab der AG-VIP SQL Version 1.40 als Systemfelder in jeder Adresstabelle vorhanden:

Internername Datentyp Vorbelegung
OptInLetter Tri-State 2 (keine Angabe)
OptInEmail Tri-State 2 (keine Angabe)
OptInFax Tri-State 2 (keine Angabe)
OptInPhone Tri-State 2 (keine Angabe)
OptInSMS Tri-State 2 (keine Angabe)


Die Sprachspezifische Bezeichung ist frei definierbar.


Feldliste:
Im Makroinclude "RecordChanges" in der Funktion "SetFieldsToCheck" müssen die gerade angelegten Felder mit deren internen Feldnamen ergänzt werden.

Function SetFieldsToCheck()
Application.GlobalData("changeWatch")=Array( _
"Name1", _
"Name2", _
"Name3", _
"NameSalutation", _
"NameTitle", _
"NameFirst", _
"NameLast", _
"Street", _
"Country", _
"ZipCode", _
"City", _
"CommEmail1", _
"CommPhoneCentral", _
"CommPhoneMobil", _
"CommPhoneOffice", _
"OptInLetter", _
"OptInEmail", _
"OptInFax", _
"OptInPhone", _
"OptInSMS")

End Function

Hilfsmittel:
Die dafür benötigten Hilfsmittel sind im Anhang dieses Knowledgebaseartikels und müssen nur noch importiert werden.
Eine Anpassung der Vorlagen ist bezüglich Ihrer Kopf-/Fußzeile notwendig sowie die Anpassung sonstigen Hilfsmitteleinstellungen wie zum Beispiel Pfad zur Vorlage, Zielpfad der neuen Datei etc.
Sofern Sie die Namen der Hilfsmittel umbenennen sollten, müssen Sie diese im folgenden Abschnitt "Aufruf" ebenfalls anpassen.


Aufruf:
Sie können entweder die in der ZIP-Datei bereits angepasste "RecordChanges.agminc" Datei importieren und dadurch Ihre evtl. bereits existierende ersetzen oder Sie können wie unten beschrieben die Änderungen auch manuell ergänzen.

Im Makroinclude "RecordChanges" in der Funktion "CheckValueDifference" wird der Aufruf des entsprechenden Hilfsmittel eingeleitet.
Notwendig ist eine boolische Variable welches als sogenanntes Flag eine Änderung eines Opt-In Feldes markiert.
Über dieses Flag wird dann am Ende der Funktion das entsprechende Hilfsmittel ausgeführt.

Function CheckValueDifference()
Dim n, line, oRelation, oEntry, bFirst, strNameZusatztabelle, bChangeOptIn
bChangeOptIn = False

' Hier wird der Name der Zusatztabelle hinterlegt, in der die Änderungen protokolliert werden sollen
strNameZusatztabelle = "Log-Datenänderungen" 

bFirst = True

' Die vordefinierte Feldliste wird durchgeschleift
For Each n In Application.GlobalData("changeWatch")
' Wenn sich die Werte der zuvor gesicherten Felder mit den aktuellen unterscheidet,
' werden die Daten dokumentiert
If Trim(Application.Globaldata(n))<>Trim(ActiveAddress.fields(n).value) Then
If bFirst Then
Set oRelation = ActiveAddress.Relations(strNameZusatztabelle)
bFirst = False
End If

Set oEntry = oRelation.Add
oEntry.Fields("Log_Datum") = FormatDateTime(Now(),2) & " " & FormatDateTime(Now(),4)
oEntry.Fields("Log_Feld") = ActiveAddress.Fields(n).NameLocale
oEntry.Fields("Log_User") = Application.ActiveUser.Name
oEntry.Fields("Log_WertAlt") = Trim(Application.Globaldata(n))
oEntry.Fields("Log_WertNeu") = Trim(ActiveAddress.Fields(n).value)

' Sofern ein Opt_In Feld verändert wurde, setzen wir eine Variable auf "True"
If bChangeOptIn = False AND Left(UCase(n),Len("OptIn")) = "OPTIN" Then
bChangeOptIn = True
End If

End If
Next

' Die "OptIn" Variable wird überprüft und sofern mit "True" gesetzt
' wird evtl. ein Hilfsmittel ausgeführt um automatisch einen Brief bzw. eine E-Mail zu erzeugen
If bChangeOptIn Then
If ActiveAddress.Fields("OptInEmail").value = 1 Then
Application.ExecuteTool("Opt-In Bestätigung Email")
ElseIf NOT ActiveAddress.Fields("OptInLetter").value = 0 Then
Application.ExecuteTool("Opt-In Bestätigung Brief")
End If
End If

End Function

angehängte Dateien: Opt-In Best

Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Kommentieren nicht möglich