2012-04-10 24 views
7

विफल रहा है मैं ट्रिडियन 200 एसपी 1 का उपयोग कर रहा हूं। जो कुछ मैं करने की कोशिश कर रहा हूं वह एक घटना को लात मारने के बाद एक घटक वर्कफ़्लो प्रक्रिया को पूरा करता है। सहजता से मैंने OnProcessInstanceFinishPost ईवेंट का उपयोग करने का प्रयास किया है, हालांकि, यह ईवेंट केवल तब ट्रिगर हो जाता है जब कोई उपयोगकर्ता (व्यवस्थापक) स्पष्ट रूप से "प्रक्रिया समाप्त करें" पर क्लिक करता है; जब सभी गतिविधियां समाप्त होने के बाद प्रक्रिया पूरी हो जाती है और "स्टॉप" साइन एंड मार्कर (जैसा कि Visio आरेख में) तक पहुंच जाता है, तो यह ईवेंट ट्रिगर नहीं होता है।TCMEventLog.NTEventLog.1 में एक त्रुटि हुई: ReportEvent

इसलिए मैंने इसके बजाय OnActivityInstanceFinishPost ईवेंट का उपयोग करने का प्रयास किया है। मुद्दा यह है कि OnActivityInstanceFinishPost ईवेंट में मुझे लॉगर मिल रहा है और एक आसान संदेश लॉग इन करने का प्रयास कर रहा है, उदाहरण के लिए "हैलो वर्ल्ड", लेकिन इवेंट व्यूअर हमेशा एक त्रुटि दिखाता है: "TCMEventLog.NTEventLog.1 में एक त्रुटि हुई: ReportEvent विफल।" और घटना निष्पादित नहीं है मिलता है।

ध्यान दें, OnProcessInstanceFinishPost घटना ठीक उसी कोड त्रुटियों के बिना काम करता है में।

मैं देख लिया है यह देखने के लिए कि क्या यह पहचान उपयोगकर्ता की अनुमतियों में कोई समस्या थी, लेकिन उपयोगकर्ता Tridion में एक व्यवस्थापक है, इसलिए यह नहीं हो सकता है। मैंने एसडीएलटीडियनवर्ल्ड फोरम की जांच की है, लेकिन वहां कोई भाग्य नहीं है, और निश्चित रूप से, मैंने यह सुनिश्चित करने के लिए कोड को एक लॉगिंग स्टेटमेंट में सरल कर दिया है कि यह मेरे कोड में कुछ नहीं है।

Log Name:  Tridion Content Manager 
Source:  Kernel 
Date:   4/9/2012 10:14:07 PM 
Event ID:  100 
Task Category: Logging 
Level:   Error 
Keywords:  Classic 
User:   SYSTEM 
Computer:  xxxxxxxxxxxxxx 
Description: 
An error occured in TCMEventLog.NTEventLog.1: 
ReportEvent failed. 
Event Xml: 
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
    <System> 
    <Provider Name="Kernel" /> 
    <EventID Qualifiers="49152">100</EventID> 
    <Level>2</Level> 
    <Task>9</Task> 
    <Keywords>0x80000000000000</Keywords> 
    <TimeCreated SystemTime="2012-04-10T03:14:07.000Z" /> 
    <EventRecordID>546126</EventRecordID> 
    <Channel>Tridion Content Manager</Channel> 
    <Computer>xxxxxxxxxxxxxxxxxxxxxxxxx</Computer> 
    <Security UserID="S-1-5-18" /> 
    </System> 
    <EventData> 
    <Data>An error occured in TCMEventLog.NTEventLog.1: ReportEvent failed.</Data> 
    </EventData> 
</Event> 
+2

मैंने अभी जवाब का पता लगाया। संक्षेप में, यदि यह त्रुटि आई है, तो इसका मतलब है कि एमएमसी स्नैप-इन में ईवेंट ट्रिगर स्थापित नहीं किया गया है। मैंने OnActivityInstanceFinishPost ईवेंट के लिए स्नैप-इन में कॉन्फ़िगरेशन को अनदेखा कर दिया। मैंने शुरुआत में केवल ऑनप्रोसेन्स इंस्टेंसफिनिशपोस्ट ईवेंट को स्नैप-इन में निकाल दिया था। फिर बाद में पूरे विकास पर मैंने नए कार्यक्रम को लागू किया, जबकि इसके लिए स्नैप-इन में ईवेंट ट्रिगर को अपडेट करना भूल गया। –

+0

यदि आप इसे एक उत्तर के रूप में जोड़ते हैं तो आप कुछ और अंक प्राप्त कर सकते हैं। इसके अलावा, क्या आप ट्रिडियन स्टैक एक्सचेंज प्रस्ताव के लिए प्रतिबद्ध हैं? http://area51.stackexchange.com/proposals/38335/tridion –

+0

स्नैप-इन में ईवेंट ट्रिगर को कॉन्फ़िगर करने में विफल होने से लॉग में कोई त्रुटि दिखाई नहीं देनी चाहिए। इसका मतलब यह होना चाहिए कि घटना आग नहीं होगी। –

उत्तर

2

त्रुटि इंगित करता है कि Tridion एक लॉगिंग संदेश लिखने के लिए विफल हो गई है:

public void OnActivityInstanceFinishPost(ActivityInstance ActivityInstance, string finishMessage, string nextActivity, string dynamicAssignee) 
{ 
    TDSE tdse = new TDSEClass() as TDSE; 
    tdse.Impersonate(_identity); 
    tdse.Initialize(); 

    Logging logger = tdse.GetLogging() as Logging; 

    logger.LogEvent("Entered event OnActivityInstanceFinishPost. nextActivity="+nextActivity, EnumSeverity.severityInfo, EnumEventCategory.EVENT_CATEGORY_EVENT_SYSTEM); 
} 

यहाँ पूर्ण त्रुटि है:

यहाँ कोड है। मुझे लगता है कि आपके पास पहले से ही कुछ सबूत हैं कि यह वर्कफ़्लो गतिविधि परिष्करण द्वारा ट्रिगर किया गया है।

मुझे नहीं पता कि त्रुटि क्या हो रही है, लेकिन लॉगिंग विफलताओं के साथ, यह अक्सर अनुमतियों के बारे में होता है।

यह आपके वर्कफ़्लो पर निर्भर करेगा जो उपयोगकर्ता वास्तव में OnActivityInstanceFinishPost ईवेंट को ट्रिगर करता है। यदि गतिविधि उपयोगकर्ता द्वारा मैन्युअल रूप से समाप्त की जाती है, तो वह उपयोगकर्ता ईवेंट को निष्पादित करने वाली विंडोज पहचान होगी (या यदि ट्रिडियन प्रतिरूपण कॉन्फ़िगर किया गया है, प्रतिरूपण उपयोगकर्ता)। यदि यह एक स्वचालित गतिविधि है, तो इसे वर्कफ़्लो एजेंट सेवा के लिए कॉन्फ़िगर की गई पहचान द्वारा निष्पादित किया जाएगा। मैं यह जांचने का सुझाव दूंगा कि इनमें से प्रत्येक खाता सही तरीके से लॉग इन कर सकता है या नहीं।

संबंधित मुद्दे