|
|
| Line 1: | |||
| + | This report will prompt the user for a status to look for, and then search the anthill server for any results based upon that status. This report has to be used in conjunction with a report template such as the [[HTML Template]]. | ||
| + | ---- | ||
| + | ''Meta-Data Script:'' | ||
| + | <pre>import com.urbancode.anthill3.domain.reporting.*; | ||
| + | ReportMetaData rmd = new ReportMetaData(); | ||
| + | TextParamMetaData statusName = new TextParamMetaData(); | ||
| + | statusName.setName("statusName"); | ||
| + | statusName.setLabel("Status to Find"); | ||
| + | statusName.setDescription("Look up the latest build of each project that have achieved this status"); | ||
| + | statusName.setRequired(true); | ||
| + | rmd.addParameter(statusName); | ||
| + | rmd.addColumn("Project"); | ||
| + | rmd.addColumn("Build WF"); | ||
| + | rmd.addColumn("Latest Stamp"); | ||
| + | rmd.addColumn("Latest Status"); | ||
| + | return rmd;</pre> | ||
| + | ---- | ||
| + | ''Context Script:'' | ||
| + | <pre>import com.urbancode.anthill3.domain.buildlife.*; | ||
| + | import com.urbancode.anthill3.domain.profile.*; | ||
| + | import com.urbancode.anthill3.domain.project.*; | ||
| + | import com.urbancode.anthill3.domain.reporting.*; | ||
| + | import com.urbancode.anthill3.domain.security.*; | ||
| + | import com.urbancode.anthill3.domain.workflow.*; | ||
| + | import com.urbancode.anthill3.persistence.*; | ||
| + | import com.urbancode.anthill3.runtime.scripting.helpers.*; | ||
| + | import com.urbancode.codestation2.domain.artifacts.*; | ||
| + | import com.urbancode.codestation2.domain.buildlife.*; | ||
| + | import com.urbancode.codestation2.domain.project.*; | ||
| + | import com.urbancode.codestation2.server.*; | ||
| + | ReportOutput output = new ReportOutput(metaData); | ||
| + | buildFactory = BuildLifeFactory.getInstance(); | ||
| + | Project[] projects = ProjectFactory.getInstance().restoreAllActive(); | ||
| + | for (int i = 0; i < projects.length; i++) { | ||
| + | buildWorkflowArray = projects[i].getOriginatingWorkflowArray(); | ||
| + | for (int j = 0; j < buildWorkflowArray.length; j++) { | ||
| + | status = StatusLookup.getStatusForProjectByName(projects[i], statusName); | ||
| + | bl = null; | ||
| + | if (status != null) { | ||
| + | bl = buildFactory.restoreMostRecentForProfileAndStatusAndStampValue(buildWorkflowArray[j].getBuildProfile(), status, null); | ||
| + | } | ||
| + | |||
| + | //bl = BuildLifeLookup.mostRecentForProjectWorkflowAndStatus(projects[i], buildWorkflowArray[j].getName(), statusName); | ||
| + | |||
| + | if (bl != null) { | ||
| + | ReportRow row = new ReportRow(output, projects[i].getName()); | ||
| + | row.setColumnValue("Project", projects[i].getName()); | ||
| + | row.setColumnValue("Build WF", buildWorkflowArray[j].getName()); | ||
| + | row.setColumnValue("Latest Stamp", (bl.getLatestStamp() != null) ? bl.getLatestStamp().getStampValue() : "-"); | ||
| + | row.setColumnValue("Latest Status", bl.getLatestStatusName()); | ||
| + | output.addRow(row); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | return output;</pre> | ||
| + | ---- | ||
| + | '''Related Content''' | ||
| + | [[AnthillPro Template Reports]]<br/> | ||
| + | [[Report Templates]] | ||