Thursday, February 23, 2006

Issues No.3

3.1 - Performance degradation
Recently I have been noticing that the application has become slower and slower. Other applications that I am running such as OneNote and Outlook were not suffering the same performance degradation so naturally I assumed it was a Composer issue.

I started experimenting, turning network services off, removing extra projects in the projects folder, restarting the application, rebooting my laptop - nothing worked to make Composer faster. In the end I took a look at spare memory in the disc drive from which Composer is running and saw that it had only 1gig spare in the 10gig volume. I also found that this volume was also highly fragmented.

Since then I've removed a lot of data from the volume now have 2 or so gig free, de-installed Composer, defragged the drive and re-installed Composer.

The performance was initially excellent but now I am noticing it degrade again. It is particularly noticeable when trying to edit a text area. It would be great to be able to edit the value of a text area within the properties popup…



Currently when you change the name in the Text Area Properties it does not effect the text in the interface - another field here to enter the interface value would be great value I think.

We have already discussed the memory problem in a previous communication. We will look at adding another tab with rich text editor to enter this value.

3.2 - Modeling a shopping cart

I am in the process of modeling shopping cart functionality and am running into some issues. The following is snapshot of the activity flow…



The following is a simulation of the Shopping Cart interface...



a. I have disabled the links to the product detail (P900, P800) as this interface is covered in a different activity

b. I would very much like to enable user to change the "No." of units for each item and then with pressing of the "Update" button see the values for "Tax", "1x Amount", "Mthly Amount" and values in the total row to be recalculated and updated - is this possible and if so how do I do it?

c. The concept of a total row being supported by the repeating table control I think is very attractive - is this on the roadmap?

d. I have disabled the "Remove" link as currently I can't impact the test set from the simulation

At the moment, we don’t have any in-page actions or calculations. We also lack a true grid control where some of these calculations can be performed Both of these are on the roadmap for a future release.

3.3 - Adding repeating records into repeating table
The following is a snapshot of the activity manage saved shipping carts flow...



I would like user to be able to view an abridged list of items within a saved shopping cart. This requirement is part of the manage saved carts interface ...



I have created an Action output data model as such...



Note I have a repeating group inside the ShoppingCarts repeating group which contains three fields. In the Manage Cart interface I have added a repeating section to the "Content" column…



However for some reason when I drop the "Content" repeating table from the Activity Data for the LookUpSavedShoppingCarts activity nothing is added. Am I using the wrong approach to do this?

This is the same issue we already discussed, i.e. lack a local dataset and steps/controls to manipulate that data. Both are on the roadmap.

3.4 - Add current date as input I am modeling a function which allows users to save a shopping cart for later recall. As part of this process I would like to show the date stamp of the saved cart as part of the saving process…



Is it possible to assign the input to the current date? If not I believe this would be a useful addition.

It is possible to get current date/time by using Calculate step with Date or DateTime output. There is, however, a bug in conversion between local and universal time (GMT) so the date end up off by multiple of the time zone offset (depends on circumstances). Good news is that it is possible to work around it by using AddHours function:




Add calculate, change result type to DateTime or Date and use the function as described.

You can show the result in either TextBox or DateTime picker, since it is for viewing only, readonly TextBox is probably right option. Attached example.

Issues No.2

Currently I'm trying to model a catalogue browsing experience. This experience includes two levels of drill, search and compare functionalities. Here is the flow diagram...



2.1 - Using dynamic link in repeating table to specify branch in decision

This requires the user to select a category...



Then a subcategory…



However I am unable to work out how to pass the content in the hyperlink to the decision so I can mockup results for both "phones" and "Accessories". In the decision editor I can only define the hyperlink as the "next" button…



This means currently no matter whether you select "phones" or "accessories" you will always end up down the Phones branch.

Of course even this multi branch approach I am taking is a problem as soon as the number of Categories grows large and really mucks up the final process model - I would very much like to be able to pass the link name to dynamically pick a test data set. I suppose the question I'm asking is - what is the best way to model multi level drill downs in Serena Composer?

Currently the only way how we can get around this is to use “hidden” fields in the repeating table as we described in our previous communication. But rather than putting the controls in a single column, it is possible to set column width to 0 and effectively hide the column. We also implemented changes to the Button/Hyperlink control to allow text to be mapped directly if the button action is not POPUP, meaning you no longer have to use the vertical line symbol ( “” ) to have the actual string reflected.

2.2 - Passing variable to interface using dynamic link

After navigating categories and subcategories the user is presented with a list of products...



The user can select an individual product to view its picture and details using the dynamic link in the "Model" column. However currently I cannot find a way to bind the data from this interface to the product details view…



Note: the text items on this screen have been defined as inputs.

This is the same problem/limitation we addressed above. Put all the details into hidden fields placed in columns with the width set to “0.”

2.3 - Retaining a dynamic link name.

After navigating categories and subcategories the user is presented with a list of products...



Should the user can select multiple products and press the "Compare" button the following comparison view is presented…



Note that the word "Hyperlink" appears where the Model No. should appear - I cannot figure out how to fix this. The mapping for this column is exactly the same as the previous view but for some reason does not pass the variable the same way.

Right now, the only workaround is to use the “hidden” field trick described above. In 2.3 we have fixed this limitation by allowing hyperlinks to support output mapping to downstream controls (i.e., whenever control has the “Has Input” checkbox enabled).

2.4 - How do I dynamically display a picture?

Have noticed that there is a "has input" feature in the image control…



In the case where I want to dynamically define which image is displayed is it just a matter of passing a text variable which exactly matches the name of an image in the content manager?

The current product doesn’t have the ability to map images dynamically, so the only solution is to fake it by having multiple interfaces.
We have changed this in 2.3 to allow input mapping to image objects in exactly the way you describe.

Wednesday, February 22, 2006

Working through some issues No.1

Recently I have developing a webapplication model using Serena Composer. During this process I have come across issues which I have documented and sent through to David Ruiz for his comments. I thought it might be interesting to publish these for all to see.

The following is the first such "issues" documents including David's comments:
1.1 - I would very much like to get all the breadcrumbs working in my simulation.

My assumption is that the "GoTo" feature...



...would be the way to do this. However it seems to populate the Step variable only with interfaces that appear in the current interface activity context. This means for me to have fully functioning breadcrumbs I need to create my complete simulation in the one activity - which does seem to devalue the ability of nesting activities considerably.

Is there another approach to creating interface hyper links that I do not know about?

Not currently. We will look at this to see if we can enhance the Go To function so it can navigate to any step in the current or parent activities. I’m hoping to get this into the 2.3 release.

1.2 - I am looking for a way to pass hidden variables.

I have the following activity flow...



In this flow the user selects an promotion to edit by selecting the appropriate radio button and pressing the "Edit Promotion" button. Note the only fields presented in this list are: type, description and status...



The system then would present the details for that promotion, however promotions contain as you can see considerable more variables than those presented in the previous list table…



I am keen to pass the values for this other variables (asset, date scope and org scope) to this Interface from the list view - is this possible? And if so how do I do it? Currently I cannot see any way to create extra variables in the Test set that populates the repeating table in the List Promotions interface.

The only way to do this currently is to create the repeating table so it has all of the data contained within in it, but then hiding the fields/controls that you don’t want to see. An enhancement we are considering is allowing you to hide particular columns of a repeating table, so you don’t have to go through unnatural acts to get the prototype to work. Please see the attached project that Tomas (one of our engineers) put together that demonstrates this.


1.3 - I would like to make fully functioning simulations that would allow simulation users go through the process of adding, editing and deleting items and see the results of these actions on the system.

For example in the manage roles activity flow…



Let us take the case of a user adding a new role. The user would click on the "add new role" hyper link in the List Roles interface...



Then would be presented with a form to create a new role and enter all the relevant details...



Then submit it and check to make sure it is good before confirming...



If the user were to then press "confirm" I would like to update the data in the test set to now contain a new role "FunkyRole" with all the appropriate details. This role should then be able to be edited and deleted as per normal. Is it possible to do this? If so can you please let me know how.

No, this is not currently supported but is a planned enhancement for the Composer 3.1 release. This will allow you to define local datasets for the project and support record-level operations such as Add, Delete, Insert records, etc.

1.4 - I am looking to populate a repeating table with hyper links for the Browse, search and compare activity…



The list category screen contains a repeating table...



I use the standard approach of creating a repeating table adding a control (in this case a hyperlink with the has input check box checked)...



I have created a test data set...



And I have assigned this to a Browse scenario...



I make sure this "Browse" scenario is selected in the Activity before I simulate and I get the following result...



Obviously rather than get Hyperlink repeated four times I would like to see the values in the test set (Categories) appear. Is this a bug or am I missing something?

You can get this to work by inserting a vertical bar character ( ) in front of the value entered in the test set data (see below). This will have the value display correctly in the prototype.