Step 1 - add collection
CreateDrillFormCollection "/Root/OrgPath"
Step 2 - add brands - CreateDrillFormBrand [path] [shortId] [displayName] [displayOrder]
Recommend putting brands in alphabetical order and applying displayOrder to match
CreateDrillFormBrand "/Root/OrgPath" "OrgName" "OrgName" 1
Step 3 - add vessels to brands - CreateDrillFormVessel -- Usage: CreateDrillFormVessel [brandId | path;brandShortId] [shortId] [displayName] [displayOrder]
Recommend putting vessels in alphabetical order within each Brand
CreateDrillFormVessel "/Root/OrgPath;OrgPath" "OrgName" "OrgName" 1
Step 4 - create group Drill-Assessor. The app users membership of this specific group name to determine which users can login
createGroup /Root/OrgPath "Drill-Assessors"
Step 5 - add following permissions to Org Page.
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormInstances" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanCreateDrillFormInstances" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormCollections" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormTemplates" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewUsers" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewOrgProfileField" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanUpdateClientApplicationData" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewAttributes" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormVersions" "OrgAdmin : ALLOW : IsInGroup(DrillAppClient)"
Step 6 - add app customization attributes to OrgPage. This allows certain settings and terminology to be configured in the app.
addNavPageAttribute "/Root/OrgPath" "System.Customer.DrillAppTerms.OrganizationUnit" "Assessment Group" - sets what field name the Brands from Step 3 will appear as
addNavPageAttribute "/Root/OrgPath" "System.Customer.DrillAppTerms.Location" "Location" - sets what field name the Vessels from Step 2 will appear as
addNavPageAttribute "/Root/OrgPath" "System.Customer.DrillAppProfileFields" "Assessment Group"- sets which profile fields appear on user lists in the app
addNavPageAttribute "/Root/OrgPath" "System.Customer.OrgProfileFieldMapping" "Assessment Group"- sets what org profile field is used to filter users against when the app syncs. It only pulls down users who have (or recently had) this profile field. It usually makes sense for this to be the same as the Vessel/OrganizationUnits that have been chosen.
Step 7 - add OrgProfileFieldMapping that is being used in Step 6 if it doesn't already exist.
CreateOrgProfileField /Root/OrgPath "Assessment Group" scs false false "None\OrgName"
Step 8 - add DrillAppClient and test users, an assessor and participant
addUser /Root/OrgPath/ SG Client password "" SGClient
addUserToGroup /Root/OrgPath DrillAppClient SGClient
EditUserProperty SGClient InteractiveLogon false
addUser /Root/OrgPath/ OrgPath Assessor 4@ssess "" OrgPathAssessor
addUserToGroup /Root/OrgPath Drill-Assessors OrgPathAssessor
addUser /Root/OrgPath OrgPath Participant OrgPath2P@rt "" OrgPathParticipant
EditOrgProfileValue /Root/OrgPath MSGParticipant "Assessment Group" OrgName
Step 9 - create a folder in the org file repo called SkillGrader. You need to add config.json and any files associated with the config (see example attached below)
Step 10 - add hard-coded tagset for current scoring algorithm
addTagSet /Root/OrgPath DrillFormImportanceLevels DrillFormImportanceLevels
addTag /Root/OrgPath DrillFormImportanceLevels Critical Critical
addTag /Root/OrgPath DrillFormImportanceLevels Important Important
addTag /Root/OrgPath DrillFormImportanceLevels Mastery Mastery
Step 11 - Setup SEAL Restrictions for report
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:Organizations.Id/Equal/@Organizations" -organization
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:UserDrillResults.AssessmentDate/Between/"
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:UserDrillResults.AssessorId/Equal/@DrillFormAssessors"
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:UserDrillResults.DrillFormVersionId/Equal/@AssessmentName"
EnableSealRestriction "/Root/OrgPath" "SkillGrader Assessment Detail.srex" "tag:restrictions.seal.marinels.com,2020:DrillFormResultDetails.DrillResultId/Equal/"
All Commands together:
CreateDrillFormCollection "/Root/OrgPath"
CreateDrillFormBrand "/Root/OrgPath" "OrgName" "OrgName" 1
CreateDrillFormVessel "/Root/OrgPath;OrgPath" "OrgName" "OrgName" 1
createGroup /Root/OrgPath "Drill-Assessors"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormInstances" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanCreateDrillFormInstances" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormCollections" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
ddLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormTemplates" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewUsers" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewOrgProfileField" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanUpdateClientApplicationData" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewAttributes" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormVersions" "OrgAdmin : ALLOW : IsInGroup(Drill-Assessors)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormInstances" "OrgAdmin : ALLOW : IsInGroup(OrgPath-Administrators)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanCreateDrillFormInstances" "OrgAdmin : ALLOW : IsInGroup(OrgPath-Administrators)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormCollections" "OrgAdmin : ALLOW : IsInGroup(OrgPath-Administrators)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewDrillFormTemplates" "OrgAdmin : ALLOW : IsInGroup(OrgPath-Administrators)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewUsers" "OrgAdmin : ALLOW : IsInGroup(OrgPath-Administrators)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanViewOrgProfileField" "OrgAdmin : ALLOW : IsInGroup(OrgPath-Administrators)"
addLinkAttribute "/Root/OrgPath" "System.Capability.CanUpdateClientApplicationData" "OrgAdmin : ALLOW : IsInGroup(OrgPath-Administrators)"
addNavPageAttribute "/Root/OrgPath" "System.Customer.DrillAppTerms.OrganizationUnit" "Assessment Group" - sets what field name the Brands from Step 3 will appear as
addNavPageAttribute "/Root/OrgPath" "System.Customer.DrillAppTerms.Location" "Location" - sets what field name the Vessels from Step 2 will appear as
addNavPageAttribute "/Root/OrgPath" "System.Customer.DrillAppProfileFields" "Assessment Group"- sets which profile fields appear on user lists in the app
addNavPageAttribute "/Root/OrgPath" "System.Customer.OrgProfileFieldMapping" "Assessment Group"- sets what org profile field is used to filter users against when the app syncs. It only pulls down users who have (or recently had) this profile field. It usually makes sense for this to be the same as the Vessel/OrganizationUnits that have been chosen.
CreateOrgProfileField /Root/OrgPath "Assessment Group" scs false false "None\OrgName"
addUser /Root/OrgPath/ OrgPath Assessor OrgPath@ssessor 4@ssess false OrgPathAssessor@test.com OrgPathAssessor
addUserToGroup /Root/OrgPath Drill-Assessors OrgPathAssessor
addUser /Root/OrgPath OrgPath Participant OrgPath2P@rt false OrgPathPart@test.com OrgPathParticipant
EditOrgProfileValue /Root/OrgPath MSGParticipant "Assessment Group" OrgName
addTagSet /Root/OrgPath DrillFormImportanceLevels DrillFormImportanceLevels
addTag /Root/OrgPath DrillFormImportanceLevels Critical Critical
addTag /Root/OrgPath DrillFormImportanceLevels Important Important
addTag /Root/OrgPath DrillFormImportanceLevels Mastery Mastery
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:Organizations.Id/Equal/@Organizations" -organization
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:UserDrillResults.AssessmentDate/Between/"
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:UserDrillResults.AssessorId/Equal/@DrillFormAssessors"
EnableSealRestriction "/Root/OrgPath" "SkillGraderAssessmentReport.srex" "tag:restrictions.seal.marinels.com,2020:UserDrillResults.DrillFormVersionId/Equal/@AssessmentName"
EnableSealRestriction "/Root/OrgPath" "SkillGrader Assessment Detail.srex" "tag:restrictions.seal.marinels.com,2020:DrillFormResultDetails.DrillResultId/Equal/"