私はTridion 2009 SP1を使用しています。私がしようとしているのは、コンポーネントが特定のワークフロープロセスを完了した後にイベントを開始することです。直感的に私はOnProcessInstanceFinishPostイベントを使用しようとしましたが、このイベントはユーザ(admin)が明示的に "Finish Process"をクリックしたときにのみトリガされます。すべてのアクティビティが終了し「Visio図のように」「終了」記号終了マーカーに達した後にプロセスが正常に完了すると、このイベントはトリガーされません。問題はOnActivityInstanceFinishPostイベントでロガーを取得していて、単純なメッセージ(「Hello World」など)をログに記録しようとしているが、イベントビューアには常に「エラーが発生しています:TCMEventLog.NTEventLog.1:ReportEventが失敗しました。イベントは実行されません。TCMEventLog.NTEventLog.1でエラーが発生しました:ReportEventが失敗しました
注意を、OnProcessInstanceFinishPostイベントに正確に同じコードがエラーなしで動作します。
私がチェックしましたこれが身元確認ユーザーのアクセス許可に問題があるかどうかを確認するために、ユーザーはTridionの管理者であるため、これはできません。私はSDLTridionworldフォーラムをチェックしましたが、そこには不運があります。もちろん、私のコードではないことを確認するために、コードを1つのloggingステートメントに単純化しました。ここで
はコードです:ここでは
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);
}
は完全なエラーです:
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>
私は答えを見つけました。要約すると、このエラーが発生した場合、イベントトリガーがMMCスナップインに設定されていないことを意味します。 OnActivityInstanceFinishPostイベントのスナップインの設定を見落としただけです。 最初は、スナップインで起動するOnProcessInstanceFinishPostイベントのみを設定しました。その後、開発のたびに、新しいイベントを実装しましたが、スナップインでイベントトリガーを更新するのを忘れてしまいました。 –
これを回答として追加すると、より多くのポイントを得ることができます。また、Tridion Stack Exchangeの提案にコミットしていますか? http://area51.stackexchange.com/proposals/38335/tridion –
スナップインでイベントトリガを設定しないと、ログにエラーが表示されません。それは単にイベントが発生しないことを意味するはずです。 –