Use Top Task to Identify All Project Tasks Associated With A Particular Project
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-21-2025 11:59 AM - edited ‎05-21-2025 12:02 PM
I am writing a business rule for table pm_project that will use a GlideRecord query to identify all project tasks associated with a project. I am trying to use a field called top_task because both pm_project and pm_project_task include a top_task field. Top_task is a reference to the parent of both pm_project and pm_project_task. I know all records have the same top task value because I have logged via gs.info the top_task values for both the project and tasks. The values all match. Nonetheless, it seems as if pm_project cannot query pm_project_task via a business rule, and I do not know why, or how to get around it. Below is my business rule attached to pm_project. The rule fires OK. It just does not read anything from pm_project_task. I have even tried printing getRowCount() and always get 0, even though there were twelve tasks associated with the project. Please advise.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-21-2025 12:50 PM - edited ‎05-24-2025 12:44 PM
try:
var project_task = new GlideRecord('pm_project_task');
project_task.addQuery('top_task', current.top_task);
project_task.query();
while (project_task.next()) {
gs.info('Project Task: ' +project_task.number + ' Project: ' + current.number);
}
provided there is a field named 'top_task' present on each table. Why not use 'parent'? Using top_task I have:
var pmprj = new GlideRecord('pm_project');
pmprj.query();
while (pmprj.next()) {
var project_task = new GlideRecord('pm_project_task');
project_task.addQuery('top_task', pmprj.top_task);
project_task.query();
while (project_task.next()) {
gs.info('Project Task: ' +project_task.number + ' Project: ' + pmprj.number);
}
}
which seems to show what your looking for when run in scripts background. The BR script I posted should work