Wednesday, May 28, 2008
Methods that operates on sets of objects on the metaverse
Problem statement
There are a number of methods that operate on sets of objects e.g. Strategic Value calculations.
In Troux Architect these can be invoked to operate a set of selected objects and the resulting calculated properties can a stored in local properties and then displayed (or used for other analysis).
In Troux Metaverse these properties perhaps be calculated during reporting. What we also need to do is be able to display them (e.g. via the port).
At present it is unclear how these properties can be calculated and displayed in Troux Metaverse.
Looking at the example of SV - the objects that have SV, and have properties for SV in Troux Semantics Architect - don't have properties for these dynamically calculated fields in Troux Semantics Metaverse.
Solution
Tuesday, April 22, 2008
Net future state
How can you see the net future state i.e. the some of the set of future states from all Initiatives (this would require that for each Initiative a preferred State is recorded).
Monday, April 21, 2008
Synchronise Accordion Panes
The problem: If you use accordion panes and display the Relationship map, the Property pane does not remain sychronised if you navigate to another object.
Browser - tree model browser accordion bridge
Allows an accordion container to use children that depend on ShowFrameEvents for display. This listens for and captures ShowFrameEvents. After a Child of an accordion pane is loaded, this publishes the last ShowFrameEvent captured for consumption by the accordion pane children.
If you do this in explorer, it does. Why ? Because explorer uses a bit of code to glue the events together. I.E. Here is the description from the HTMLFragment object that explorer uses:
Allows an accordion container to use children that depend on ShowFrameEvents for display. This listens for and captures ShowFrameEvents. After a Child of an accordion pane is loaded, this publishes the last ShowFrameEvent captured for consumption by the accordion pane children.
Fortunately it is easy to replicate this functionality. Simply add the Explorer's HTMLFragment object as another SolutionElement into the DocumentShell that contains the accordion pane. i.e. Search for "Browser - tree model browser accordion bridge" and add it to the list. That is it !
If you were energetic you could make your own by copying the HTMLFragment object so it does not reply on the Explorer - which could change in a future version.
How do you search using description fields
How do you search using description fields (i,.e. without changing the metamodel to have a text field that holds a duplicate copy of the description).
Layout display objects of a specific type and relationship
How do you restrict object types - displayed in a layout (i.e. by relationship type AND object type)
Select objects (based on an property) displayed in a tree
How do you restrict the objects displayed in a Tree browser (i.e. to only display objects with specified property values) e.g. to allow for moderated views. How do you do a query and display the results in a tree browser?
Composer: Launch report from context menu

I have been looking into integrating a Composer solution with COGNOS. This note discusses how you launch a report from the context (right mouse button) menu of say a list of objects in a Query List. See the picture above.
There are two parts to this:
[Model].[Applications].[Application Component ID] = ?PromptID?
This filters the report for only the Application Components with ID equal to my parameter, PromptID. This was the parameter that is inserted into the Composer generated report URL above by the Javascript.
1. How to create a Report Service that registers in the context menu, and passes the correct parameters to COGNOS;
2. How to create a COGNOS report that accepts a parameter so that it reports on the one object.
Create the Report service
Lets assume that you have a split pane with a TQLQueryDefinition at the top and a TabularModelBrowser to display the results. You have created some buttons (like View or Edit) as ComponentServices under the parent DocumentShell, and these ComponentServices can be simply displayed at the bottom of the TabularModelBrowser and/or registered to appear in the context menu for a selected object. You now want to add a report into the Context menu so that you can fire off COGNOS to report on the specific object selected.
Steps:
1. Add a ReportListProvider under the document shell and set it to provide the report as a service
2. Add a ReportList under this. These reports will come up on the Context menu
3. Add reports to the report list as ReportInfo Objects
4. Configure the ReportInfo objects with the correct report URL to launch COGNOS. The way to do this is to go into the report properties in COGNOS and display the URL. Copy the URL from the start of the parameters onwards
2. How to create a COGNOS report that accepts a parameter so that it reports on the one object.
Create the Report service
Lets assume that you have a split pane with a TQLQueryDefinition at the top and a TabularModelBrowser to display the results. You have created some buttons (like View or Edit) as ComponentServices under the parent DocumentShell, and these ComponentServices can be simply displayed at the bottom of the TabularModelBrowser and/or registered to appear in the context menu for a selected object. You now want to add a report into the Context menu so that you can fire off COGNOS to report on the specific object selected.
Steps:
1. Add a ReportListProvider under the document shell and set it to provide the report as a service
2. Add a ReportList under this. These reports will come up on the Context menu
3. Add reports to the report list as ReportInfo Objects
4. Configure the ReportInfo objects with the correct report URL to launch COGNOS. The way to do this is to go into the report properties in COGNOS and display the URL. Copy the URL from the start of the parameters onwards
e.g. ?b_action ...
Remove the final parameter &cv.ccurl=1 and replace it with &nl=1
5. Put the correct javascript into the function fields.
For Is Valid Function use this:
return context.components && context.components.length==1;
var cID = context.components && context.components[0]? context.components[0].id : null;
var paramMap = {"p_blueprint": context.blueprint.name, "p_ShowProps2": "Yes"};
if (cID) {
paramMap["p_PromptID"] = cID;
paramMap["run.prompt"] = "false";
}
return paramMap;
Create the COGNOS report
Remove the final parameter &cv.ccurl=1 and replace it with &nl=1
5. Put the correct javascript into the function fields.
For Is Valid Function use this:
return context.components && context.components.length==1;
This checks that one object (only) is selected
For Is Available Function use the same code.
For the Get Parameters Function use this:
var cID = context.components && context.components[0]? context.components[0].id : null;
var paramMap = {"p_blueprint": context.blueprint.name, "p_ShowProps2": "Yes"};
if (cID) {
paramMap["p_PromptID"] = cID;
paramMap["run.prompt"] = "false";
}
return paramMap;
This code gets the object id and forms a parameter to add onto the URL sent to COGNOS. It adds this:
&p_PromptID=myID&run.prompt=false
The PromptID parameter is the object's ID (myID, e.g. 220), and must match a COGNOS report parameter that filters the report to this object ID.
The other parameter tells COGNOS not to prompt the user for this parameter.
Create the COGNOS report
Create the COGNOS report in Report Studio, but provide a filter query that depends on a parameter. In this case I was reporting on Applications, so I use a filter query like this:
[Model].[Applications].[Application Component ID] = ?PromptID?
This filters the report for only the Application Components with ID equal to my parameter, PromptID. This was the parameter that is inserted into the Composer generated report URL above by the Javascript.
In the case of this report I also provided a prompt page to ask for this parameter so that the report could be run standalone, or used for a drill through. The URL parameter run.prompt=false suppresses this prompt page.
Wednesday, March 26, 2008
How can you specify reflection state for a class of objects
How do set a reflection state for a class of objects (rather than instances) e.g. I want all Compliance requirements to reflect forward (including those I will add in future)
Associate a policy with a state
How do you associate a policy with a state e.g. future state objects may have different policies
Restricting Tree Browsers
How can you restrict values in a Tree browser display i.e. to only display objects with properties with a specific values
How can you specify a state
How can you specify a state (i.e. in an application) without needing the use to select it (using a BP selector).
Component Services to create specific types
How do ensure that a component service creates a specific type. If you create a CS that creates a type - it also seems to prompt for sub-types.
Subscribe to:
Comments (Atom)