<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Re: Creating an audit trail
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/alex.guizar%40jboss.com">Alejandro Guizar</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/565312#565312">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><blockquote class="jive-quote">I'm trying to construct an audit mechanism for my JBPM processes.&#160; When I first saw the event section in the user guide, I thought it would be perfect, but, after looking at the example, it seems that events are almost completely worthless.&#160; The reason for this is that you a) have to explicitly scatter events in your processes (a real nightmare if you have a lot of them) and b) have to explicitly tell it which class is a listener.&#160; I thought the whole point of events was that you didn't need to know what or how many listeners were listening.&#160; You could just generate an event and every listener who had registered would know about it.&#160; Am I missing something here?</blockquote><p>In the <a class="jive-link-external-small" href="http://www.research.ibm.com/designpatterns/example.htm">observer pattern</a>, it is the event source or observable subject the one who is unaware of the observers. However, observers still have to register themselves, otherwise the source cannot possibly know about them! In this case jBPM will notify as many listeners as you want to put in place, but you still have to declare them.</p><blockquote class="jive-quote">In any case, here's what I would like to do.&#160; I would like have an audit class which is notified on every step of a process.&#160; The audit class may choose to record these steps and some of the variables which would allow reconstruction of the "flow" of a specific execution of a process.&#160; I welcome any ideas about how to best implement this since it doesn't seem to be provided by default.</blockquote><p>If notified<em> on every step</em> means each time an activity<em> ends</em> then you can leverage <a class="jive-link-external-small" href="http://docs.jboss.com/jbpm/v4/userguide/html_single/#d0e4640">event propagation</a> and, with a single event tag,&#160; receive a notification each time an activity ends.</p><pre class="jive-pre"><code class="jive-code jive-xml"><span class="jive-xml-tag">&lt;process name='Insurance claim' key='ICL'&gt;</span>
&#160; <span class="jive-xml-tag">&lt;on event='end'&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;event-listener propagation='enabled' class='org.example.EventListener' /&gt;</span>
&#160; <span class="jive-xml-tag">&lt;/on&gt;</span>
&#160; <span class="jive-xml-tag">&lt;start&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;transition to='a' /&gt;</span>
&#160; <span class="jive-xml-tag">&lt;/start&gt;</span>
&#160; <span class="jive-xml-tag">&lt;state name='a'&gt;</span>
&#160;&#160;&#160; <span class="jive-xml-tag">&lt;transition to='b' /&gt;</span>
&#160; <span class="jive-xml-tag">&lt;/state&gt;</span>
&#160; <span class="jive-xml-tag">&lt;end name='b' /&gt;</span>
<span class="jive-xml-tag">&lt;/process&gt;</span>
</code></pre></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/565312#565312">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>