Version 2
Beispiel
Dieses Beispiel demonstriert wie mit Hilfe des SDK eine Mail zu einer bestimmten Firma oder Kontakt abgelegt werden kann.
Option Explicit
Dim oCLMailActionEvent
On Error Resume Next
Set oCLMailActionEvent = GetObject("Cosmolink.CLMailActionEvent")
If Err.Number <> 0 Then
cRM.DialogMessageBox "Der Vorgang wird beendet." & vbCrLf & "Es ist ein unerwartetes Verhalten beim Laden des 'Cosmolink.CLMailActionEvent' aufgetreten." & vbCrLf & vbCrLf & "Ursprung: " & Err.Source & vbCrLf & "Code: " & Err.Number & vbCrLf & "Beschreibung: " & Err.Description, "(c) " & Year(Date) & " cosmolink", vbExclamation
Err.Clear
Beenden()
End If
On Error GoTo 0
Dim oCurrentMailItem
Set oCurrentMailItem = oCLMailActionEvent.CurrentMailItem
if oCurrentMailItem is Nothing Then
cRM.DialogMessageBox "Der Vorgang wird beendet." & vbCrLf & "Die synchronisierende E-Mail konnte nicht ermittelt werden", "E-Mail Daten konnten nicht ermittelt werden", vbExclamation
Beenden()
End If
Dim oBlacklistEntry, oSender
Set oSender = oCurrentMailItem.Sender
if oSender is Nothing Then
cRM.DialogMessageBox "Der Vorgang wird beendet." & vbCrLf & "Der Absender konnte nicht ermittelt werden", "E-Mail Daten konnten nicht ermittelt werden", vbExclamation
Beenden()
End If
'Präfen ob eine E-Mail Adresse auf der Blacklist steht
Set oBlacklistEntry = oCLMailActionEvent.ProjectConfiguration.GetBlacklistElement(oSender.Address)
Dim bIsBlacklisted
if oBlacklistEntry is Nothing Then
bIsBlacklisted = false
Else
bIsBlacklisted = oBlacklistEntry.IsMail OR oBlacklistEntry.IsDomain
End If
Dim sDetails
sDetails = "Absender: " & oSender.Address & vbCrLf & _
"Absender Blacklisted: " & bIsBlacklisted & vbCrLf & _
"Betreff: " & oCurrentMailItem.Subject & vbCrLf & _
"Versendet: " & oCurrentMailItem.SentAt & vbCrLf & _
"Empfangen: " & oCurrentMailItem.ReceivedAt & vbCrLf & _
"Priorität: " & oCurrentMailItem.PriorityName & vbCrLf & _
"Richtung: " & oCurrentMailItem.DirectionName & vbCrLf & _
"Anhänge: " & oCurrentMailItem.Attachments.Count
Dim nResult
nResult = cRM.DialogChoiceMessageBox("Mächten Sie die nachfolgende E-Mail als Aktivität speichern?" & vbCrLf & vbCrLf & sDetails, "Aktivität anlegen", "Keine Aktivität erfassen" & vbTab & "Aktivität mit Firma verknäpfen" & vbTab & "Aktivität mit Kontakt verknäpfen", vbQuestion, false)
if nResult = 101 Then
oCLMailActionEvent.Result.Successful = true
oCLMailActionEvent.Result.AdditionalExecutionAllowed = true
Beenden()
End If
Dim sDialogSelectRecordTitle, sViewName, sContactRecordId, sCompanyRecordId
sContactRecordId = ""
sCompanyRecordId = ""
Select Case nResult
Case 102
sDialogSelectRecordTitle = "Bitte wählen Sie die Firma aus"
sViewName = "Firmen"
Case 103
sDialogSelectRecordTitle = "Bitte wählen Sie den Kontakt aus"
sViewName = "Kontakte"
End Select
Dim oProject, oListViewConfigs, oViewConfig, oViewRecordSet, oViewRecord
Set oProject = cRM.CurrentProject
Set oListViewConfigs = oProject.ViewConfigs
Set oViewConfig = oListViewConfigs.ItemByName(sViewName)
If oViewConfig is Nothing Then
cRM.DialogMessageBox "Der Vorgang wird beendet." & vbCrLf & "Es konnte nicht auf die Ansicht '"&sViewName&"' zugegriffen werden.", "Zugriff auf Ansicht fehlgeschlagen", vbExclamation
Beenden()
End If
Set oViewRecordSet = oViewConfig.CreateRecordSet()
If oViewRecordSet is Nothing Then
cRM.DialogMessageBox "Der Vorgang wird beendet." & vbCrLf & "Beim Zugriff auf das RecordSet ist ein unerwartetes Verhalten aufgetreten.", "Unerwartetes Verhalten festgestellt", vbExclamation
Beenden()
End If
If NOT oViewRecordSet.MoveFirst Then
cRM.DialogMessageBox "Der Vorgang wird beendet." & vbCrLf & "Der Filter hat keine Daten im RecordSet zuräckgeliefert.", "Keine Datensätze gefunden", vbExclamation
Beenden()
End If
Set oViewRecord = oViewRecordSet.DialogSelectRecord(sDialogSelectRecordTitle, true)
If oViewRecord is Nothing Then
'Benutzer hat die Abbrechen Schaltfläche betätigt
Beenden()
End If
Select Case nResult
Case 102
sCompanyRecordId = oViewRecord.GetContentsByName("ID")
Case 103
sContactRecordId = oViewRecord.GetContentsByName("ID")
End Select
Dim oActivity
'CreateActivityCurrentMail(string companyRecordid, string contactRecordid) -> Nutzt das CurrentMailItem (nur in VBS verfägbar)
Set oActivity = oCLMailActionEvent.CreateActivityCurrentMail(sCompanyRecordId, sContactRecordId)
'Zeigt cRM an
oCLMailActionEvent.CombitCrmHelper.ShowMainWindow()
'Zeit die angegebene Aktivität
oCLMailActionEvent.CombitCrmHelper.OpenViewInCrmByActivity(oActivity)
'Markieren der Aktion als erfolgreich -> wichtig!!!!
oCLMailActionEvent.Result.Successful = true
'Erlaubt eine erneute Ausfährung des Skriptes. Default: false
'Sollte nur in Fällen genutzt werden, wo das explizit notwendig ist. Z.b. Filtern von allen Aktivitäten des absenders
oCLMailActionEvent.Result.AdditionalExecutionAllowed = true
Sub Beenden()
Set oViewRecord = Nothing
Set oViewRecordSet = Nothing
Set oViewConfig = Nothing
Set oListViewConfigs = Nothing
Set oProject = Nothing
Set oSender = Nothing
Set oBlacklistEntry = Nothing
Set oCurrentMailItem = Nothing
Set oCLMailActionEvent = Nothing
WScript.Quit
End Sub
Â
Changelog
Version 12.24.282.1
Neue Features:
Neue Funktion ForwardMail im CLMailItem Objekt ergänzt, um eine Mail weiterzuleiten.
Version 12.24.241.1
Diese Version enthält Breaking Changes!
Breaking Change:
Skripte welche die Funktionen CreateActivityCurrentMail und CreateActivity des CLMailActionEvent Objekt verwenden sollten um ErrorHandling erweitert werden, da diese nun einen Error erzeugen, wenn eine Aktivität nicht angelegt werden konnte. Über diesen Error kann die Ursache der fehlgeschlagenen Erstellung ausgelesen werden.
Neue Features:
Neuer Parameter in den Funktionen CreateActivityCurrentMail und CreateActivity des CLMailActionEvent Objekt ergänzt, um die Prüfung auf eine bereits erfolgte Synchronisation zu deaktivieren.
Neue Funktionen GetActivities und CheckIfActivityAlreadyExists im CLMailActionEvent Objekt.
Neue Funktionen LogDebug, LogInformation, LogWarning und LogError im CLCrmLinkIt Objekt zum Erstellen von Log Einträgen in der CRMLinkIT Log Datei.
Verbesserung:
Die Funktionen CreateActivityCurrentMail und CreateActivity des CLMailActionEvent Objekt erzeugen nun einen Fehler, wenn eine Aktivität nicht erstellt werden kann.
Bugfix:
Das Aktualisieren der Aktivitäten Liste einer Mail hat nicht alle Daten korrekt zurückgegeben.
Â
Version 11.24.078.1
Verbesserung:
Beim Objekt CLMailActionEvent wurden die Funktionen ‘CreateActivity’ und ‘CreateActivityCurrentMail’ angepasst. Die Parameter für CompanyID und ContactID sind nun optional. Dadurch wird der Standard Kontakte/Firmen Auswahl Dialog geöffnet. Wenn eine bestimmte Firma gesetzt werden soll, kann dies weiterhin über das befüllen der Parameter passieren.
Das Objekt CLActivity wurde um ein Property für den PrimaryKed Feldnamen der Aktivität erweitert.
Das Objekt CLAttachment wurde um ein Property für die Dateiendung erweitert.
Das Objekt CLCombitCrmHelper wurde um die Funktion 'OpenViewInCrmByActivities' zum Anzeigen von mehreren Aktivitäten erweitert.
Das Objekt CLMailitem lädt nun wie vorgesehen die bereits erstellten Aktivitäten in das Property Activities.
Das Öffnen einer Aktivität im CRM zeigt die Aktivität nun entweder in der Übersersichtsliste (mehrere Aktvitäten) oder in der Eingabemaske (eine Aktivität) an.
Version 11.24.073.1
Verbesserung:
Das SDK CLAttachment Objekt wurde um eine neue Eigenschaft für den Index des Objektes erweitert
Version 11.24.061.1
Verbesserung:
Das Objekt CLConfigurationProject wurde um eine GetAdditionalOutgoingAddressElement Funktion erweitert diese erlaubt es zu Prüfen ob eine E-Mail Adresse als ausgehende Adresse behandelt werden sollte.
Â