Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beispiel

Dieses Beispiel demonstriert wie mit Hilfe des SDK eine Mail zu einer bestimmten Firma oder Kontakt abgelegt werden kann.

Code Block
languagevb
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.241.1

Note

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:

Verbesserung:

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:

Table of Contents
stylenone

Page Tree
root@self
expandCollapseAlltrue
spacesOUT
startDepth1