<!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: Users in task server
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/rushproject">Alex Pavlov</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/590132#590132">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Hi Mauricio,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Thanks for prompt reply.</p><blockquote class="jive-quote"><p>Mauricio Salatino wrote:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Hi Alex, inside jBPM5 you only need to keep a small representation of what an user or a group represent for you, in order to be able to do the look up to your external data source like LDAP. What jBPM5 stores is only a way to retrieve that reference in your external system.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Yes, task server stores only user or group id, which is supposed to be a "small representation". Unfortunately, the way it interprets this id assumes the server "knows" if any given id is valid, thus it keeps whole lot much more info than just a handle to lookup external data source.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>If task server kept merely IDs (for users and groups), adding a task would never fail assuming Task.createdBy.id contains any non empty string.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>But the above transaction fails the very moment server encounters an id, which is not yet in its local database.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>It's also good to notice that if you describe your business processes and assign tasks to different groups and users, you will have the information about the users and groups that will need to be available in the mappings. </p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>So what?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>First, I like the (much advocated) idea of decoupling bpm engine and task server. Ideally, decoupling means that I can use any 3rd party task server (assuming, it complies to jBPM task server protocol). As a matter of fact, now I use jBPM demo task server and my implementation (that uses MySQL database) interchangeably, assuming user id is krisv. But unfortunately(?) the protocol does not allow pushing user and group id's to the task server.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Second, I can't afford offering solution that uses unnecessary data replication.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p> We can think a way to automate that mappings.</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Yes, I know you did <span> :) </span> I have seen the org.jbpm.userprofile package. Unfortunately I see no way how it could be used at the moment...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Well, as long as I need solution rather quickly, I am going to either patch the TaskServiceSession or build "addTask" rules to automatically create missing users and groups prior to persisting the task. Any comments on this approach (do you see any side effects?) or any alternate workarounds are highly appreciated.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Thank you,</p><p>Alex</p></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/590132#590132">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>