Project record not showing

Sironi
Kilo Sage

Hi,

can any one help me 

when i am create a stories for particular project that project record not showing in list

find_real_file.png

 

find_real_file.png

 

Script Include: ScrumSecurityManager 

var ScrumSecurityManager = Class.create();

// Constants available for the Scrum Security Manager classes. These are split into 3 categories:
// [1] Roles - these represent the Product Owner, Scrum Master and Team Member roles and combinations thereof.
// [2] Actions - these represent the the types of operations a user may need to perform on the Scrum tables.
// [3] Tables - these represent the names of the SQL tables used by the Scrum application.

ScrumSecurityManager.PRODUCT_OWNER = ["Product Owner"];
ScrumSecurityManager.SCRUM_MASTER = ["Scrum Master"];
ScrumSecurityManager.TEAM_MEMBER = ["Team Member"];
ScrumSecurityManager.SCRUM_MASTER_TEAM_MEMBER = [ "Scrum Master", "Team Member" ];
ScrumSecurityManager.PRODUCT_OWNER_SCRUM_MASTER = [ "Product Owner", "Scrum Master" ];
ScrumSecurityManager.ANY_TEAM_MEMBER = [ "Product Owner", "Scrum Master", "Team Member"];
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.CREATE = "Create";
ScrumSecurityManager.DELETE = "Delete";
ScrumSecurityManager.READ = "Read";
ScrumSecurityManager.WRITE = "Write";
//--------------------------------------------------------------------------------------------------
ScrumSecurityManager.USER_PERMISSIONS = "scrum_user_permissions";
ScrumSecurityManager.GROUP_PERMISSIONS = "scrum_group_permissions";
ScrumSecurityManager.PRODUCT_RELEASE = "m2m_product_release";
//ScrumSecurityManager.EPIC_RELEASE = "m2m_scrum_epic_release";
ScrumSecurityManager.PRODUCT = "cmdb_model";
ScrumSecurityManager.RELEASE = "rm_release_scrum";
ScrumSecurityManager.SPRINT = "rm_sprint";
ScrumSecurityManager.EPIC = "rm_epic";
ScrumSecurityManager.STORY = "rm_story";
ScrumSecurityManager.TASK = "rm_scrum_task";
ScrumSecurityManager.AGILE_TEAM = '1bff3b1493030200ea933007f67ffb6d';

// the ScrumSecurityManager implementation to be used
ScrumSecurityManager.DEFAULT_SMCLASSNAME = 'ScrumSecurityManagerDefault'; // the default
ScrumSecurityManager.SDLC_SCRUM_SMCLASSNAME = 'com.snc.sdlc.scrum.pp.smclass'; // sys_properties
ScrumSecurityManager.impl = function() {
var klass = ScrumSecurityManager._getClass(gs.getProperty(ScrumSecurityManager.SDLC_SCRUM_SMCLASSNAME, 'ScrumSecurityManagerDefault'));
var impl = new klass();
return impl;
};

//--------------------------------------------------------------------------------------------------
// can user create <x>?
//--------------------------------------------------------------------------------------------------

ScrumSecurityManager.canCreateProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateProductRelease(glideRecord);
};

ScrumSecurityManager.canCreateEpicRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateEpicRelease(glideRecord);
};

ScrumSecurityManager.canCreateGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateGroupPermissions(glideRecord);
};

ScrumSecurityManager.canCreateUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateUserPermissions(glideRecord);
};

ScrumSecurityManager.canCreateProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateProduct(glideRecord);
};

ScrumSecurityManager.canCreateRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateRelease(glideRecord);
};

ScrumSecurityManager.canCreateReleaseForProduct = function(product) {
return ScrumSecurityManager.impl().canCreateReleaseForProduct(product);
};

ScrumSecurityManager.canCreateSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateSprint(glideRecord);
};

ScrumSecurityManager.canCreateEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateEpic(glideRecord);
};

ScrumSecurityManager.canCreateStory = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateStory(glideRecord);
};

ScrumSecurityManager.canCreateStoryForProduct = function(product) {
return ScrumSecurityManager.impl().canCreateStoryForProduct(product);
};

ScrumSecurityManager.canCreateTask = function(glideRecord) {
return ScrumSecurityManager.impl().canCreateTask(glideRecord);
};

//--------------------------------------------------------------------------------------------------
// can user delete <x>?
//--------------------------------------------------------------------------------------------------

ScrumSecurityManager.canDeleteProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteProductRelease(glideRecord);
};

ScrumSecurityManager.canDeleteProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteProduct(glideRecord);
};

ScrumSecurityManager.canDeleteGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteGroupPermissions(glideRecord);
};

ScrumSecurityManager.canDeleteUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteUserPermissions(glideRecord);
};

ScrumSecurityManager.canDeleteRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteRelease(glideRecord);
};

ScrumSecurityManager.canDeleteSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteSprint(glideRecord);
};

ScrumSecurityManager.canDeleteEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteEpic(glideRecord);
};

ScrumSecurityManager.canDeleteStory = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteStory(glideRecord);
};

ScrumSecurityManager.canDeleteTask = function(glideRecord) {
return ScrumSecurityManager.impl().canDeleteTask(glideRecord);
};

//--------------------------------------------------------------------------------------------------
// can user read <x>?
//--------------------------------------------------------------------------------------------------

ScrumSecurityManager.canReadProductContents = function() {
return ScrumSecurityManager.impl().canReadProductContents();
};

ScrumSecurityManager.canReadProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canReadProductRelease(glideRecord);
};

ScrumSecurityManager.canReadEpicRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canReadEpicRelease(glideRecord);
};

ScrumSecurityManager.canReadGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canReadGroupPermissions(glideRecord);
};

ScrumSecurityManager.canReadUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canReadUserPermissions(glideRecord);
};

ScrumSecurityManager.canReadProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canReadProduct(glideRecord);
};

ScrumSecurityManager.canReadRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canReadRelease(glideRecord);
};

ScrumSecurityManager.canReadSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canReadSprint(glideRecord);
};

ScrumSecurityManager.canReadEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canReadEpic(glideRecord);
};

ScrumSecurityManager.canReadStory = function(glideRecord) {
return ScrumSecurityManager.impl().canReadStory(glideRecord);
};

ScrumSecurityManager.canReadTask = function(glideRecord) {
return ScrumSecurityManager.impl().canReadTask(glideRecord);
};

//--------------------------------------------------------------------------------------------------
// can user write to <x>?
//--------------------------------------------------------------------------------------------------

ScrumSecurityManager.canWriteStoryDotProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStoryDotProduct(glideRecord);
};

ScrumSecurityManager.canWriteAnyStoryOrTaskDotState = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteAnyStoryOrTaskDotState(glideRecord);
};

ScrumSecurityManager.canWriteStoryDotRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStoryDotRelease(glideRecord);
};

ScrumSecurityManager.canWriteStoryDotSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStoryDotSprint(glideRecord);
};

ScrumSecurityManager.canWriteProductRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteProductRelease(glideRecord);
};

ScrumSecurityManager.canWriteEpicRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteEpicRelease(glideRecord);
};

ScrumSecurityManager.canWriteGroupPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteGroupPermissions(glideRecord);
};

ScrumSecurityManager.canWriteUserPermissions = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteUserPermissions(glideRecord);
};

ScrumSecurityManager.canWriteProduct = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteProduct(glideRecord);
};

ScrumSecurityManager.canWriteRelease = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteRelease(glideRecord);
};

ScrumSecurityManager.canWriteSprint = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteSprint(glideRecord);
};

ScrumSecurityManager.canWriteEpic = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteEpic(glideRecord);
};

ScrumSecurityManager.canWriteStory = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteStory(glideRecord);
};

ScrumSecurityManager.canWriteTask = function(glideRecord) {
return ScrumSecurityManager.impl().canWriteTask(glideRecord);
};

//--------------------------------------------------------------------------------------------------
// methods that return a list of <x> that the user can access
//--------------------------------------------------------------------------------------------------

ScrumSecurityManager.getEpicReleases = function() {
return ScrumSecurityManager.impl().getEpicReleases();
};

ScrumSecurityManager.getGroupPermissions = function() {
return ScrumSecurityManager.impl().getGroupPermissions();
};

ScrumSecurityManager.getUserPermissions = function() {
return ScrumSecurityManager.impl().getUserPermissions();
};

ScrumSecurityManager.getProducts = function() {
return ScrumSecurityManager.impl().getProducts();
};

ScrumSecurityManager.getReleases = function(funcFilter) {
return ScrumSecurityManager.impl().getReleases(funcFilter);
};

ScrumSecurityManager.getReleasesForProduct = function(productId) {
return ScrumSecurityManager.impl().getReleasesForProduct(productId);
};

ScrumSecurityManager.getEpicsForProduct = function(productId, funcFilter) {
return ScrumSecurityManager.impl().getEpicsForProduct(productId, funcFilter);
};

ScrumSecurityManager.getProductsForUser = function() {
return ScrumSecurityManager.impl().getProductsForUser();
};

ScrumSecurityManager.getSprints = function() {
return ScrumSecurityManager.impl().getSprints();
};

ScrumSecurityManager.getSprintsForRelease = function(releaseId) {
return ScrumSecurityManager.impl().getSprintsForRelease(releaseId);
};

ScrumSecurityManager.getSprintsForUser = function() {
return ScrumSecurityManager.impl().getSprintsForUser();
};

ScrumSecurityManager.getEpics = function() {
return ScrumSecurityManager.impl().getEpics();
};

ScrumSecurityManager.getStories = function() {
return ScrumSecurityManager.impl().getStories();
};

ScrumSecurityManager.getTasks = function() {
return ScrumSecurityManager.impl().getTasks();
};

ScrumSecurityManager.getEncodedQuery = function(array) {
return 'sys_idIN' + array.join(',');
};

ScrumSecurityManager.getScrumUserIds = function () {
return ScrumSecurityManager.impl().getScrumUserIds();
};

//========================================================================

ScrumSecurityManager.getReleaseDotDefaultTeam = function (recRmReleaseScrum) {
return ScrumSecurityManager.impl().getReleaseDotDefaultTeam (recRmReleaseScrum);
};

ScrumSecurityManager.getStoryDotAssignedTo = function (recRmStory) {
return ScrumSecurityManager.impl().getStoryDotAssignedTo (recRmStory);
};

ScrumSecurityManager.getScrumTaskDotAssignedTo = function (recRmScrumTask) {
return ScrumSecurityManager.impl().getScrumTaskDotAssignedTo (recRmScrumTask);
};

ScrumSecurityManager.getScrumReleaseTeamMemberDotName = function (recScrumReleaseTeamMember) {
return ScrumSecurityManager.impl().getScrumReleaseTeamMemberDotName(recScrumReleaseTeamMember);
};

ScrumSecurityManager.getScrumSprintTeamMemberDotName = function (recScrumSprintTeamMember) {
return ScrumSecurityManager.impl().getScrumSprintTeamMemberDotName(recScrumSprintTeamMember);
};

ScrumSecurityManager.getScrumSprintTeamDotSprint = function (recScrumSprintTeam) {
return ScrumSecurityManager.impl().getScrumSprintTeamDotSprint(recScrumSprintTeam);
};

ScrumSecurityManager.getScrumReleaseTeamDotPoints = function (recScrumReleaseTeam) {
return ScrumSecurityManager.impl().getScrumReleaseTeamDotPoints(recScrumReleaseTeam);
};

ScrumSecurityManager.getScrumSprintTeamDotPoints = function (recScrumSprintTeam) {
return ScrumSecurityManager.impl().getScrumSprintTeamDotPoints(recScrumSprintTeam);
};

ScrumSecurityManager.getSprintDotTeam = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotTeam(recSprint);
};

ScrumSecurityManager.getSprintDotReleaseTeam = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotReleaseTeam(recSprint);
};

ScrumSecurityManager.getSprintDotStoryPoints = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotStoryPoints(recSprint);
};

ScrumSecurityManager.getSprintDotTeamPoints = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotTeamPoints(recSprint);
};

ScrumSecurityManager.validateSprintFields = function (sprintRecord) {
return ScrumSecurityManager.impl().validateSprintFields(sprintRecord);
};

ScrumSecurityManager.getEpicDotParentEpic = function (recEpic) {
return ScrumSecurityManager.impl().getEpicDotParentEpic(recEpic);
};

ScrumSecurityManager.getStoryDotEpic = function (recEpic) {
return ScrumSecurityManager.impl().getStoryDotEpic(recEpic);
};

ScrumSecurityManager.getSprintDotRelease = function (recSprint) {
return ScrumSecurityManager.impl().getSprintDotRelease(recSprint);
};

ScrumSecurityManager.getStoryDotProduct = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotProduct(recStory);
};

ScrumSecurityManager.getStoryDotRelease = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotRelease(recStory);
};

ScrumSecurityManager.getStoryDotSprint = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotSprint(recStory);
};

ScrumSecurityManager.getStoryDotTheme = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotTheme(recStory);
};

ScrumSecurityManager.getPhaseDotGroup = function (recPhase,column_name) {
return ScrumSecurityManager.impl().getPhaseDotGroup(recPhase, column_name);
};

ScrumSecurityManager.getEpicDotTheme = function (recEpic) {
return ScrumSecurityManager.impl().getEpicDotTheme(recEpic);
};

ScrumSecurityManager.getEpicDotProduct = function (recEpic) {
return ScrumSecurityManager.impl().getEpicDotProduct(recEpic);
};

ScrumSecurityManager.getThemeDotProduct = function (recScrumTheme) {
return ScrumSecurityManager.impl().getThemeDotProduct(recScrumTheme);
};

ScrumSecurityManager.getTeamMemberDotName = function (teamMember) {
return ScrumSecurityManager.impl().getTeamMemberDotName(teamMember);
};

ScrumSecurityManager.getStoryDotTeam = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotTeam(recStory);
};

ScrumSecurityManager.getStoryDotGroup = function (recStory) {
return ScrumSecurityManager.impl().getStoryDotGroup(recStory);
};

ScrumSecurityManager.getStoryDotPhases = function(recStory){
return ScrumSecurityManager.impl().getStoryDotPhases(recStory);
};

ScrumSecurityManager.getReleaseGroupAssignmentDotSprints = function(recReleaseGroupAssignment){
return ScrumSecurityManager.impl().getReleaseGroupAssignmentDotSprints(recReleaseGroupAssignment);
};

ScrumSecurityManager.getStoryDotProject = function(recStory){
return ScrumSecurityManager.impl().getStoryDotProject(recStory);
};

ScrumSecurityManager.isAgileGroup = function(recGroup){
return ScrumSecurityManager.impl().isAgileGroup(recGroup);
};

//========================================================================

ScrumSecurityManager._getClass = function(securityManagerClassName) {
var _outerScope = JSUtil.getGlobal();
var securityManagerClass = _outerScope[securityManagerClassName];
// check that securityManagerClassName is defined, and looks valid as a ScrumSecurityManager Class
if (!ScrumSecurityManager._isValidSMClass(securityManagerClass)) {
securityManagerClass = _outerScope[ScrumSecurityManager.DEFAULT_SMCLASSNAME];
securityManagerClassName = ScrumSecurityManager.DEFAULT_SMCLASSNAME;
}

return securityManagerClass;
};

ScrumSecurityManager._isValidSMClass = function(klass) {
if (typeof klass == 'undefined') {
return false;
}
// a sample of the necessary methods
var smClassMethods = [ 'canCreateProductRelease', 'canDeleteEpic', 'canReadTask', 'canWriteSprint', 'getReleases' ];
for (var i = 0; i < smClassMethods.length; i++) {
if (typeof klass.prototype[smClassMethods[i]] == 'undefined') {
return false;
}
}
return true;
};

ScrumSecurityManager.prototype = {
initialize: function() {

},


type: 'ScrumSecurityManager'
};

//--------------------------------------------------------------------------------------------------
//ScrumSecurityManager.THEME_RELEASE = "m2m_scrum_theme_release";
//ScrumSecurityManager.THEME = "scrum_theme";
//--------------------------------------------------------------------------------------------------
//ScrumSecurityManager.canCreateThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canCreateThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canCreateTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canCreateTheme(glideRecord);
//};
//ScrumSecurityManager.canCreateReleaseForTheme = function(theme) {
// return ScrumSecurityManager.impl().canCreateReleaseForTheme(theme);
//};
//ScrumSecurityManager.canCreateStoryForTheme = function(theme) {
// return ScrumSecurityManager.impl().canCreateStoryForTheme(theme);
//};
//ScrumSecurityManager.canDeleteThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canDeleteThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canDeleteTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canDeleteTheme(glideRecord);
//};
//ScrumSecurityManager.canReadThemeContents = function() {
// return ScrumSecurityManager.impl().canReadThemeContents();
//};
//ScrumSecurityManager.canReadThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canReadThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canReadTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canReadTheme(glideRecord);
//};
//ScrumSecurityManager.canWriteStoryDotTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canWriteStoryDotTheme(glideRecord);
//};
//ScrumSecurityManager.canWriteThemeRelease = function(glideRecord) {
// return ScrumSecurityManager.impl().canWriteThemeRelease(glideRecord);
//};
//ScrumSecurityManager.canWriteTheme = function(glideRecord) {
// return ScrumSecurityManager.impl().canWriteTheme(glideRecord);
//};
//ScrumSecurityManager.getThemes = function() {
// return ScrumSecurityManager.impl().getThemes();
//};
//ScrumSecurityManager.getReleasesForTheme = function(themeId) {
// return ScrumSecurityManager.impl().getReleasesForTheme(themeId);
//};
//ScrumSecurityManager.getEpicsForTheme = function(themeId, funcFilter) {
// return ScrumSecurityManager.impl().getEpicsForTheme(themeId, funcFilter);
//};
//ScrumSecurityManager.getThemesForUser = function() {
// return ScrumSecurityManager.impl().getThemesForUser();
//};
//--------------------------------------------------------------------------------------------------

 

1 ACCEPTED SOLUTION

sachin_namjoshi
Kilo Patron
Kilo Patron

You will see projects only which are NOT waterfall.

 

find_real_file.png

 

 

View solution in original post

11 REPLIES 11

at script side i can see execution_type is anything. then it should take any type right?

why it is not allowing waterfall???

 

 

getStoryDotProject: function(story){
			var projectId;
			var qualifier = 'sys_class_nameIN'+PPMRoleClassMapper.getClasses('project', gs.getUser());
			if(JSUtil.notNil(story.demand)){
				projectId = story.demand.project + '';
				qualifier = 'sys_idIN'+projectId;
			}
			qualifier += '^execution_typeANYTHING';
			return qualifier;
},

use below code, this code is working for me. 

You will have to also have to check if current user has project manager role

		getStoryDotProject: function(story){
			var projectId;
			var qualifier = 'sys_class_nameIN'+PPMRoleClassMapper.getClasses('project', gs.getUser());
// 			if(JSUtil.notNil(story.demand)){
// 				projectId = story.demand.project + '';
// 				qualifier = 'sys_idIN'+projectId;
// 			}
			qualifier += '^execution_typeANYTHING';
			return qualifier;
		},

 

i followed your steps working great.thanks a lot.

User has Project  manager role....

 

apologizes from my side, same question i am asking you again. 

Can you please help me this one .

if we take Waterfall that project record not showing at Stories side. can we see where we have that limitation ,  means the execution type should be agile/hybrid.

 

getStoryDotProject: function(story){
var projectId;
var qualifier = 'sys_class_nameIN'+PPMRoleClassMapper.getClasses('project', gs.getUser());
// if(JSUtil.notNil(story.demand)){
// projectId = story.demand.project + '';
// qualifier = 'sys_idIN'+projectId;
// }
qualifier += '^execution_typeANYTHING';
return qualifier;
},

Execution type limitation is in below code

 

qualifier += '^execution_typeANYTHING';

 

But, below code will execute first which calls getClasses() function from PPMRoleClassMapper script include.

var qualifier = sys_class_nameIN'+PPMRoleClassMapper.getClasses('project', gs.getUser());

 

if you see getClasses() function in PPMRoleClassMapper script include, it returns valid class name for project records if current user has it_project_manager role.

 

So, all below conditions will be used to return list of all projects

 

- Class Name should be pm_project

- Current user should have it_project_manager role

- List of all projects which satisfies above conditions.

 

I will suggest you to add debug log messages to print output of different functions to understand code.

 

Regards,

Sachin

 

 

 

 

Miguel Donayre
ServiceNow Employee
ServiceNow Employee

Change the Project in questions Executions type to Agile. Add the Execution type in the List view and change it from there 

find_real_file.png