Hallo,
ich habe das Event-Objekt bzw. das gesamte Skript innerhalb des cRM’s über einen Skript-Direkt Button angelegt, von daher verstehe ich den Fehler mit dem Event-Objekt bei mir nicht.
Mein Skript, welches so auch wunderbar funktioniert nur eben OHNE Datensatz Verweis, schaut wie folgt aus:
dim meldung
meldung = msgbox („Speichern und Aufgabe an Mitarbeiter senden? Der Restpunkt kann danach nicht mehr bearbeitet werden.“, vbOKCancel, „Achtung“)
if meldung = „2“ then wscript.quit
set oWshShell = WScript.CreateObject(„WScript.Shell“)
’ Datensatz > Speichern aufrufen
cRM.CurrentProject.ActiveViews.ActiveView.InvokeMenu 32806, True
If not cRM.CurrentProject.ActiveViews.ActiveView.Editmode Then
Dim b, oProjecta, oActiveView, oCurrentRecordSet, oCurrentRecord, bFound, oViewConfigs, oViewConfig, a
’ Aktives cRM Projekt:
Set oProjecta = cRM.CurrentProject
Set oActiveView = oProjecta.ActiveViews.ActiveView
set oCurrentRecordSet = oActiveView.CurrentRecordSet
set b = oCurrentRecordSet.currentrecord
’ globale Konstante
dim DatumBeginn, DatumEnde
DatumBeginn = b.getcontentsbyname(„Erfassungsdatum“)
DatumEnde = b.getcontentsbyname(„Fertigstellung“)
’ globale Variablen
Dim otm, oTermin, oProject
’ Erstellen der benötigten Objekte
Set oProject = cRM.CurrentProject
Set otm = oProject.timemanager
Set oTermin = otm.ToDos.Add()
’ Überprüfen, ob relevante Felder ausgefüllt sind
If b.getcontentsbyname(„Fertigstellung“) ="" then msgbox „Bitte Fertigstellung angeben“
If b.getcontentsbyname(„Fertigstellung“) ="" then wscript.quit
If b.getcontentsbyname(„Techniker“) ="" then msgbox „Bitte Techniker angeben“
If b.getcontentsbyname(„Techniker“) ="" then wscript.quit
If b.getcontentsbyname(„Bemerkung“) ="" then msgbox „Bitte Bemerkung eingeben“
If b.getcontentsbyname(„Bemerkung“) ="" then wscript.quit
’ Häkchen setzen
Set oCurrentInputForm = oActiveView.CurrentInputForm(0)
oCurrentInputForm.SetContentsByName „Gespeichert“, „ja“
oCurrentInputForm.SetContentsByName CStr(„AufgabeErstellt“), CStr(„T“)
’ Setzen der Eigenschaften der Aufgabe
With oTermin
.Subject b.getcontentsbyname(„Techniker“) & „: " & b.getcontentsbyname(„AbnahmeID.Abnahmeprotokoll.ID.Ansprechpartner“) & " - Abnahmeprotokoll - offener Restpunkt“
.Body b.getcontentsbyname(„Bemerkung“)
.Start DatumBeginn
.User b.getcontentsbyname(„Techniker“)
.End DatumEnde
End With
’ Erinnerung 24h vorher
oTermin.Reminder = True
oTermin.ReminderMinutesBeforeStart = 2880’ Angabe in Minuten
’ Speichern des angelegten Termins
oTermin.Save
’ Ansicht aktualisieren
otm.UpdateViews
End If
set oWshShell = Nothing
Set oTermin = Nothing
Set otm = Nothing
Set oProject = Nothing
Set oProjecta = Nothing
cRM.CurrentProject.ActiveViews.ActiveView.InvokeMenu 32806, True
Meine Versuche den Datensatz Verweis zu integrieren habe ich jetzt nicht übernommen hier.