Oracle Waveset 8.1.1 Deployment Guide

Conflict Results Objects

Conflicts, if any, are returned in the WavesetResult returned by WorkflowServices#reProvision() in a named GenericObject called conflicts. This is normally further returned in the GenericObject result from the call to view checkin. This object contains an attribute named accounts which is a list, by account, of attribute conflicts for that account.

For each such conflict detected, a GenericObject representing the conflict is created whose name is the name of the attribute.

The following example shows a set of conflicts.

<Object>
   <Attribute name='accounts'>
     <List>
       <Object name='SimRes1'>
         <Attribute name='conflicts'>
           <List>
             <Object name='attr1'>
               <Attribute name='local' value='Safari Attr1'/>
               <Attribute name='original' value='Orig Attr1'/>
               <Attribute name='remote' value='Firefox Attr1'/>
             </Object>
             <Object name='idmManager'>
               <Attribute name='local' value='Mr. Safari'/>
               <Attribute name='original' value='Mr. Orig'/>
               <Attribute name='remote' value='Mr. Firefox'/>
             </Object>
             <Object name='email'>
               <Attribute name='local' value='safari_email'/>
               <Attribute name='original' value='orig_email'/>
               <Attribute name='remote' value='firefox_email'/>
             </Object>
           </List>
         </Attribute>
       </Object>
       <Object name='Lighthouse'>
         <Attribute name='conflicts'>
           <List>
             <Object name='idmManager'>
               <Attribute name='local' value='Mr. Safari'/>
               <Attribute name='original' value='Mr. Orig'/>
               <Attribute name='remote' value='Mr. Firefox'/>
             </Object>
             <Object name='email'>
               <Attribute name='local' value='safari_email'/>
               <Attribute name='original' value='orig_email'/>
               <Attribute name='remote' value='firefox_email'/>
             </Object>
             <Object>
               <Attribute name='roleInfos'>
                 <List>
                   <Object name='IT Role1'>
                     <Attribute name='local'>
                       <GenericAttribute>
                         <Object>
                           <Attribute name='attribute'>
                             <Object name='IT Role1'>
                               <Attribute name='assignedBy'>
                                 <List>
                                   <String>Business Role 2</String>
                                 </List>
                               </Attribute>
                               <Attribute name='assignmentType' value='required'/>
                               <Attribute name='state' value='assigned'/>
                               <Attribute name='type' value='ITRole'/>
                             </Object>
                           </Attribute>
                         </Object>
                       </GenericAttribute>
                     </Attribute>
                     <Attribute name='original'/>
                     <Attribute name='remote'>
                       <GenericAttribute>
                         <Object>
                           <Attribute name='attribute'>
                             <Object name='IT Role1'>
                               <Attribute name='assignedBy'>
                                 <List>
                                   <String>BusinessRole1</String>
                                 </List>
                               </Attribute>
                               <Attribute name='assignmentType' value='required'/>
                               <Attribute name='state' value='assigned'/>
                               <Attribute name='type' value='ITRole'/>
                             </Object>
                           </Attribute>
                         </Object>
                       </GenericAttribute>
                     </Attribute>
                   </Object>
                 </List>
               </Attribute>
             </Object>
           </List>
         </Attribute>
       </Object>
     </List>
   </Attribute>
 </Object>

In this example, conflicts have been detected in two accounts: SimRes1 and Lighthouse. The attributes on SimRes1 for which conflicts have been detected are attr1, idmManager, and email. For Lighthouse, the attributes in conflict are idmManager, email, and roleInfos. For each conflict the original, remote, and local changed values are listed. The original value is the value of the attribute at the time the view was checked out. The remote value is the value of the attribute present in the repository (or on the resource) at the time reprovisioning started. The local value is the changed value of the attribute made by the currently executing task.

The idmManager attribute had a value of Mr. Orig when the currently running task checked out the User view (the original attribute value). The current task changed that value to Mr. Safari (the local attribute value). However, in the interim, one or more other changes have been committed which changed the attribute value to Mr. Firefox (the remote attribute value). This constitutes a conflict because the remote changes (Mr. Safari) would be lost if the local changes were committed.