+49 (0)7531 906010| service@combit.net

Benachrichtigung bei Ablauf von Virenschutz

Hallo zusammen,

ich möchte per E-Mail benachrichtigt werden, wenn der Virenschutz bei einem Kunden droht, auszulaufen.
Das ganze sollte ein Monat im Voraus geschehen.

Bespiel:

Ablaufdatum: 21.12.11
Benachrichtigung: 21.11.11

Ich hab leider keine Ahnung ob es im cRM solch eine Funktion schon gibt, wenn ja bitte ich um einen kleinen Tipp, wenn nicht, hat jemand eine Idee wie ich meine Vorstellung in die Tat umsetzen kann?

Danke schon mal!

Hi Christoph,

äh - wer hat jetzt den cRM? Du oder der Kunde?

Der Kunde:

wenn du in einem Script herausfinden kannst, wann der Virenschutz abläuft (z.B. durch Hinterlegen in der Registry), dann könntest du ein Script als „Projekt wird beendet“ Ereignis definieren, das das Datum checkt und dann per SendMAPIMail (siehe cRM COM Referenz) eine email an dich auslöst. Der Check passiert also immer dann, wenn irgendein Anwender den cRM beendet. (Ich würd es nicht beim Start reinmachen, weil das den Start ja unnötig verzögert, beim Beenden ist das ja eh egal, ob da noch ein OVerhead von ein paar Sekunden dazukommt.)

Voraussetzung: der Kunde hat lokal einen MAPI-MailClient und ist damit ausdrücklich einverstanden, dass hier die Anwender „hinterrücks“ unter ihrem Namen eine email an dich schicken werden.

Ich würde mir dann noch merken, dass du die email geschickt hast, sonst kriegst du ja von allen Anwendern solange bei jedem Beenden des cRM immer eine email, bis du ein neues Ablaufdatum irgendwo hinerlegst. :slight_smile:

Schau mal in der COM Referenz unter „GlobalProperty“ nach, darüber könntest du dir merken, dass du für dieses Ablaufdatum bereits benachrichtigt hast.

Du:

Ich würde mir in meiner Terminverwaltung für meinen Kunden einfach einen Termin setzen. Keep it simple! :wink: Du kannst übrigens auch eine Aktion definieren (siehe Handbuch „Aktion“ bei Terminen), das könnte z.B. ein Script sein (was dann bei dir die email an dich selbst schickt) oder direkt email-Versand (weiß ich grad nicht pb es da so eine Aktion gibt)

Gruß

Alex.

Also den cRM hab ich, aber die erste Variante gefällt mir besser.
Es soll nichts mit der Terminverwaltung zu tun haben.

Es ist so, dass wir das Ablaufdatum händisch in eine Maske eingeben.
Der Script soll mir alle Masken mit diesem Ablaufdatum durchsuchen und dann mir eine E-Mail schicken, kurz bevor (ein Monat vorher oder 2 Wochen das ist noch unklar) das Datum abläuft.

Kannst du mich auf die richtige Spur bringen?
Ein lauffähiger Script wird bevorzugt :slight_smile:

Spaß beiseite, aber wo soll ich den Script hinterlegen?
Von meinem Wissen her, würde ich jetzt einen Script auf der Maske machen, auf der wir das Datum hinterlegen.
Aber dann kommt mir sofort das Problem in den Kopf, mit den bereits vorhandenen Datensätzen.
Werden die dann auch überprüft?

Gruß Chris

Also ich hab jetzt mal einen Script erstellt, der an sich schon läuft.
Das Problem bei der Geschichte ist, dass er die Erinnerungszeit nicht übernimmt.
Erstmal der Script:

[i]Option Explicit
’ Speichern des Datensatzes
cRM.CurrentProject.ActiveViews.ActiveView.InvokeMenu 32806, True

’ Definieren der Variablen:
Dim b, oProjecta, oActiveView, oCurrentRecordSet, sPKFieldName, sDSLink, oCurrentRecordSeta

’ Aktives cRM Projekt:
Set oProjecta = cRM.CurrentProject
Set oActiveView = oProjecta.ActiveViews.ActiveView
set oCurrentRecordSet = oActiveView.CurrentRecordSet
set b = oCurrentRecordSet.currentrecord

’ Datensatzverweis der Aufgabe hinzufügen mit HostDatabase später:
sPKFieldName = oActiveView.Config.PrimaryKeyFldName
sDSLink = CStr(oProjecta.ID) & „|“ & _
CStr(oActiveView.Name) & „|“ & _
CStr(oActiveView.Config.FamilyName) & „|“ & _
CStr(sPKFieldName) & „|“ & _
CStr(b.GetContentsByName(CStr(sPKFieldName)))

’ globale Konstante:
Dim Start1, Start2, Start3, Start4, Start5, Ende1, Ende2, Ende3, Ende4, Ende5, User, DatumBeginn
User = b.getcontentsbyname(„Benutzer1“)
DatumBeginn = b.getcontentsbyname(„Ablaufdatum“)

’ globale Variablen:
Dim otm, oTermin, oProject, oTermin1, oTermin2, oTermin3, oTermin4, oTermin5

’ Erstellen der benötigten Objekte:
Set oProject = cRM.CurrentProject
Set otm = oProject.timemanager
Set oTermin1 = otm.Appointments.Add()

’ Setzen der Eigenschaften der Aufgabe und der Termine:

oTermin1.Subject „Virenschutz läuft aus!“
oTermin1.Body b.GetContentsByName(„Bemerkungen“)
oTermin1.Contact b.GetContentsByName(„PersonenID.Personen.ID.CompanyID.Firmen.ID.Company“) & ", " & b.GetContentsByName(„PersonenID.Personen.ID.Firstname“)& " " & b.getcontentsbyname(„PerseonenID.Personen.ID.Name“)
oTermin1.Start DateAdd(„n“,0, DatumBeginn)
oTermin1.User User

oTermin1.HostDatabase = sDSLink

’ Erinnerung 30 Minuten vorher

oTermin1.Reminder = False
oTermin1.ReminderMinutesBeforeStart = 30’ Angabe in Minuten

’ Speichern der angelegten Aufgabe / Termine:

otermin1.Display(True)

’ Ansicht aktualisieren:
otm.UpdateViews

’ Variablen löschen
Set oCurrentRecordSeta = Nothing
Set oTermin = Nothing
Set otm = Nothing
Set oProject = Nothing
Set oProjecta = Nothing
Set b = Nothing
Set oActiveView = Nothing
Set oCurrentRecordSet = NOthing
Set sPKFieldName = Nothing
Set sDSLink = Nothing
Set oTermin1 = Nothing[/i]

Desweiteren müsste ich die Aktion > Benachrichtigung> per E-Mail selbst wieder eintragen, was einen zu hohen Aufwand hat.

durch oTermin1.Subject, kann ich meine Betreffszeile definieren,
gibt es noch weitere Methoden, die NICHT in der Objekt-Referenz stehen?

Bzw. vielleicht hab ichs übersehen und es gibt eine Methode um die Aktion zu definieren.

Wenn das so nicht funktioniert, bin ich für deine erste Variante.
Wie ich aber den Script in der Regestry hinterlege, musst du mir dann noch genauer erläutern.

Gruß Chris

Muss ich meinen Script wohl verbessern, habe das mit der Erinnerungszeit hinbekommen.
Da hat einfach unter dem „30 Minuten“ ein oTermin1.Save gefehlt.

Jetzt aber immer noch die Frage, kann ich die Aktion ändern, damit ich nicht händisch die Aktion > Benachrichtigung> per E-Mail eintragen muss?

Danke für die Hilfe!

Hi Christoph,

schau mal die Eigenschaften „ActionID“ und „ActionData“ an. Am besten gibst du dir mal in einem Testscript die beiden Eigenschaften aus, und zwar für einen Termin, bei dem du das manuell auf „email“ gesetzt hast. Dann weißt du, auf was du das dann zukünftig per Script setzen musst.

Gruß

Alex

© combit GmbH