Sto utilizzando Tridion 2009 SP1. Quello che sto cercando di fare è dare il via ad un evento dopo che un componente ha completato un certo processo del flusso di lavoro. Intuitivamente ho provato a utilizzare l'evento OnProcessInstanceFinishPost, tuttavia, questo evento viene attivato solo quando un utente (admin) fa clic esplicitamente su "Termina processo"; quando il processo termina normalmente dopo aver completato tutte le attività e "raggiungendo il marcatore di fine" Stop "(come nel diagramma di Visio) questo evento non viene attivatoSi è verificato un errore in TCMEventLog.NTEventLog.1: ReportEvent non riuscito
Quindi ho fatto ricorso all'evento OnActivityInstanceFinishPost. problema è che nell'evento OnActivityInstanceFinishPost sto ricevendo il logger e provo a registrare un messaggio semplice, ad esempio "Hello World", ma il Visualizzatore eventi mostra sempre un errore: "Si è verificato un errore in TCMEventLog.NTEventLog.1: ReportEvent non riuscito." e l'evento non viene eseguito.
nota, nel caso in OnProcessInstanceFinishPost lo stesso codice esatto funziona senza errori.
ho controllato per vedere se questo era un problema con le autorizzazioni dell'utente identità, ma l'utente è un amministratore in Tridion, quindi non può essere questo. Ho controllato il forum SDLTridionworld, ma non ci sono fortuna e, naturalmente, ho semplificato il codice fino alla dichiarazione di registrazione per assicurarmi che non sia qualcosa nel mio codice.
Ecco il codice:
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);
}
Ecco l'errore completo:
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>
Ho appena capito la risposta. In sintesi, se si verifica questo errore, significa che l'attivazione dell'evento non è stata impostata nello snap-in MMC. Ho semplicemente trascurato la configurazione nello snap-in per l'evento OnActivityInstanceFinishPost. Inizialmente ho configurato solo l'evento OnProcessInstanceFinishPost da attivare nello snap-in. Successivamente, durante lo sviluppo, ho implementato il nuovo evento dimenticandomi di aggiornare il trigger dell'evento nello snap-in per esso. –
Se aggiungi questa risposta come risposta puoi ottenere altri punti. Inoltre, sei impegnato nella proposta di Scambio pila Tridion? http://area51.stackexchange.com/proposals/38335/tridion –
La mancata configurazione del trigger di evento nello snap-in non dovrebbe causare la visualizzazione di un errore nei log. Dovrebbe semplicemente significare che l'evento non sparerà. –