2016-04-18 21 views
1

Ich versuche, eine externe Klassenbibliothek Methodenaufruf AddValidationErrors zu verwenden, um die Datenüberprüfungsfehler in Business Rule Composer zu beheben. Ich habe eine FactCreator-Klasse erstellt, die auch die IFactCreator-Schnittstelle implementiert. Dies funktioniert, wenn ich versuche, meine Richtlinie in Business Rule Composer zu testen. Aber wenn ich in der Orchestrierung versuche, wird die Regel nicht ausgelöst. Kann mir jemand dabei helfen? Unten ist mein Code für ValidierungsfehlerBizTalk BRE - Methode in .Net-Klasse funktioniert nicht in Orchestrierung Call Rule Shape

public void AddValidationError(TypedXmlDocument activeDoc, string err) 
{ 
    XmlDocument doc = activeDoc.Document.OwnerDocument; 
    XmlNode errorRoot = doc.SelectSingleNode("//ValidationErrors"); 
    XmlElement newError = doc.CreateElement("Error"); 
    newError.InnerText = err; 
    errorRoot.AppendChild(newError); 
} 

FactCreator Klasse:

private object[] objs; 

    public FactCreator() 
    { 

    } 
    public object[] CreateFacts(RuleSetInfo ruleSetInfo) 
    { 
     objs = new object[1]; 
     objs[0] = new ValidationErrors.ValidationErrors(); 
     return (objs); 
    } 

    public Type[] GetFactTypes(RuleSetInfo ruleSetInfo) 
    { 
     return null; 
    } 

Antwort

2

aktiviert haben Sie BRE statische Unterstützung für .NET?

32-Bit-Windows-

HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0\ 

64:

Um diese Methoden, fügen Sie einen REG_DWORD Schlüssel StaticSupport genannt, mit einem Wert von 1 den folgenden Registrierungspfad BRE Unterstützung für statische .NET-Methoden zu ermöglichen -Bit Windows

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\BusinessRules\3.0\ 

Dies ist eine einmalige Aktivität.

Die obigen Informationen stammen von this Blog.

MSDN-Extrakt zusätzlich:

Eine weitere Option ist StaticSupport im BTNTsvc zu setzen [64] .exe.config Datei, da alle Einstellungen hier außer Kraft setzen, was in der Registry ist. Ferner kann das Argument, dass diese Option bevorzugt wird, da es die Änderung des Standardverhaltens auf BizTalk nur isoliert, während Registrierungseinstellungen global für das Betriebssystem sind.

+0

Gibt es einen Weg, ohne die Registrierung zu bearbeiten? –

+0

MSDN besagt, dass es auch über die Konfigurationsdatei aktualisiert werden kann: https://msdn.microsoft.com/en-us/library/aa950269.aspx. Ich werde meine Antwort aktualisieren. –

+0

Ist das eine einmalige Aktivität? –