Callout PreCreate

Ich habe sichtlich Probleme mit dem PreCreate -Ereignis


Laut SDK sollte PreCreate "abgefeuert" werden, wenn ein neuer Datensatz erstellt wird (is created).


D. h. Felder die im PreCreate-Callout beeinflusst werden, sollten bereits im geöffneteneFormular angezeigt werden, ohne dass ein Klick auf Speichern notwendig ist.


Leider ist das bei mir nicht der Fall - bei mir wird der PreCreate-Callout  erst nach einem Klick auf Speichern einwandfrei durchgeführt. Eigentlich ein klassischer PostCreate oder?


Bitte um kurze Aufklärung, ob ich das so richtig verstanden habe.


- Callout ist in VB unter VS 2003 geschrieben
- NETZWERKDIENST hat Vollzugriff auf crm\server\bin\assembly
- Version von Callout.Base im GAC ist: 3.0.5300.0
- iisreset wurde bereits mehrfach ausgeführt.


Ich danke bereits jetzt schon jeden, der mir in dieser Sache weiterhelfen kann.


Hier meine callout.config.xml


xml version="1.0" encoding="utf-8"
callout.config version="2.0"
callout entity="account" event="PreCreate"
subscription assembly="AutoNumberCallout.dll" class="AutoNumberCallout.AutoNumberCallout.GetNumber"
subscription
callout
callout.config


Hier die ersten Zeilen aus meiner Assembly (vielleicht liegt da der Hund begraben):


Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Xml
Imports Microsoft.Crm.Callout
Imports AutoNumberCallout.CrmSdk


Namespace AutoNumberCallout


Public Class GetNumber


Inherits CrmCalloutBase


Public Overrides Function PreCreate(ByVal userContext As CalloutUserContext, ByVal entityContext As CalloutEntityContext, ByRef entityXml As String, ByRef errorMessage As String) As PreCalloutReturnValue


Mit freundlichen Grüssen


Martin Lederer



AW: Callout PreCreate

Hallo Martin,


ich benutze auch das PreCreate-Ereignis, auch für eine AutoNumber und das Verhalten, welches du schilderst ist bei mir ganz genauso. Und es ist auch richtig so. Wenn du beispielsweise ein Formular öffnest um eine neue Firma anzulegen, heißt es ja noch lange nicht, das du diese Firma auch tatsächlich anlegst. Also wie im SDK beschrieben, den Datensatz erstellst. Das Ereignis wird beim Speichern einer neuen Firma erst ausgelöst und PreCreate deshalb, weil du noch Einfluß auf die anderen zuspeichern Daten vor dem Speichern/Anlegen nehmen kannst.


Wenn du das Feld beim Öffnen des Formulars gefüllt haben möchtest, solltest du einen anderen Weg (eventuell JavaScript) wählen.


Ich hoffe es hilft weiter.


Grüße


Beate


 



AW: Callout PreCreate

Hallo Beate,


vielen Dank für die Aufklärung.


Dann ist alles klar - ich habe gedacht, dass es eventuell irgendwo hakt.


D.h. PreCreate wird ausgeführt, bevor die Daten in der DATENBANK gespeichert werden, nach dem "Speichern" angeklickt wurde.


Tja, wenn man aus der Navision-Welt kommt, denkt man da etwas anders.



Re: AW: Callout PreCreate

Das könnte man aber einfach mit JScript und dem OnLoad-Ereignis (mit FormType = 1) erhalten.