Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

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 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:


  • No labels