Desktop Contract Data Model

 

Note that the DSP Group of a user is derived from this data via business logic that exists outside of the data model. The pseudocode is as follows:

if User->Fasit
  "CTS DSP Team FASIT"
else
  User->Org->Contract->DSPGroup.Name

 

Here is example SNow JS for obtaining the correct DSP Group for a given user in the absence of a denormalized field reference or store proc:

// if user is FASIT, use FASIT group, else use the org's group
// gr = user's GlideRecord 
if(gr.u_facit == true) {
    gs.addInfoMessage('Assigned to FASIT DSP Group');
    current.assignment_group = sys_user_group_by_name('CTS DSP Team FASIT');
} else {
    current.assignment_group = gr.u_organization.u_service_contract.u_assignment_group.sys_id;
}