<div dir="ltr"><div>Hi all,</div><div>We are implementing MidPoint with HR source. Workday exports job codes (selected from a predefined list) and job titles (free text). Multiple job codes can share the same application entitlement collection.<br><br><b>Name    | JobCode | JobCodeName                    | Title               | OrgName | IsManager</b><br>John     | job01           | General Practitioner (GP)     | Junior Doctor | ER                                 | True<br>Jack      | job02          | Surgeon                               | Doctor            | Surgery Department      | True<br>Jill         | job03          | Radiologist                          | Radiologist     | ER                                 | false<br>Bob       | job01          | General Practitioner (GP)     | Junior Doctor | ER                                 | True<br><br>JobCode is selected from list in HR system</div><div>title is freeText<br></div><div><br></div><div>In traditional IGA, we fall into role explosion due to the role-condition : Job01-ER; Job02-ER ; job03-ER ,... And we manage via a flat file (RoleLookup.csv)<br><br></div><b>Firstly</b>, as documents recommend, we create businessrole , eg:<div><b>     </b>Doctor<br>           condition: jobcode is in (job01, job02, job03)<br>      Nurse:<br>            condition: jobcode is in (job11, job12, job13)<br>      .....<br><br>However, once conditions grown (both number of roles and complexity of conditions) as below :<br>   Doctor:<br>      <b>condition</b>:<br>              jobcode in (job01, job02) <br>                      OR<br>              Org in (Org001, Org003)<br>                       OR<br>              ( jobcode = job01 AND Org =  Org001)</div><div><br>   Surgeon doctor:<br>       <b>condition</b>: jobcode in (job02) and org(Surgery Department)</div><div><br></div><div>Secondly, then our question is how to effectively manage the role-logic-conditions ? We are evaluating two modeling approaches to centralize the mangement  the auto-assign rules logic but we are confused how to implement in Midpoint </div><div><br><br><b>Option 1:</b> Import one jobcode as a role (job01 -> RoleType)<br><br>NameofRole ; assignmentsOrder2</div><div>job01  ; Doctor<br>job02  ;  Doctor, Surgery <br><br></div><div>- Pro: Role catalog is fully visible and manageable via a flat CSV via generic import <br>- Con: Potential we will fall into role explosion again (hundreds of job codes to hundred of roles).</div><div><br><br><b>Option 2</b>: put the logic inside the user objectTemplate condition</div><div>   Condition: jobcode in ("job01","job02", "job03")<br>   Target: Doctor<br>  <br>- Pro: Fewer roles, cleaner hierarchy<br>- Con: Assignment logic is hidden inside object templates,  rules are not really easy to read and analyzed (like in flat file) <br><br><br>Question: What is the recommended MidPoint pattern for this scenario? Is there a third option we are missing, <br><br>Thanks</div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Bao Tran<div>Software developer</div></div></div></div>