Tuesday, 23 July 2013

Expanding & Contracting Group Boxes

A new feature added to Rapide is the ability for desktop and browser applications to have expanding/contracting group boxes. These allow infrequently used fields to be hidden away and free up space on the browser window, which is especially useful when designing for smaller browser sizes like mobile and tablet devices.

The example below comes from the Rapide Controls demo which has been updated to use this new feature.

Note how the group box has an image on the top left and expand/contract control on the top right. The layout management has also been updated to allow control positions to be relative to other controls. In this example the second and third group boxes are positioned vertically relative to the group box above so that when the group box expands or contracts, the group boxes below it are re-positioned.

Take a look at the live demo (navigate to the Text Controls page): http://80.177.61.42:81/demo


Monday, 22 July 2013

Images from BLOBs

Gen 8.5 introduces the ability to define BLOB (binary large object) attribute views and to store and retrieve them from the database. Rapide has been enhanced to allow images stored in blob views to be displayed on the window design, either as single images or as columns in a listbox.

A future enhancement to our mobile API will allow a picture taken on the device camera to be stored in a BLOB view as well.

How would your application benefit from the ability to dynamically display graphical and image data with the images stored in the database or dynamically loaded from image resource files? Let us know!

Monday, 15 July 2013

Moving to the Browser - what about those OCX controls?

Since announcing Rapide a few weeks ago, we have already had some very interesting discussions with Gen sites who are keen to migrate their Gen Windows GUI client applications to browser and mobile applications.

Rapide has been designed to provide a high level of support for existing Gen client applications, and this includes support for OCX controls for desktop based clients, but it is generally accepted that using ActiveX controls in a browser is not a good idea because they are only properly supported in Internet Explorer.

So, what are the options?

To start with, Rapide already provides native widget support for some of the controls that you may have used an OCX for. Examples include using bitmaps in tables, date and time 'picker' controls, tabs, timers, progress bars and other stylised number controls like sliders, spinners, etc.

We plan to enhance listboxes to support tree views and more sophisticated layouts, and additional controls can be added based on customer requirements.

In addition, we are researching options for adding custom JavaScript based controls into a Rapide UI design.

If you are planning to convert a Windows GUI based application to the web or mobile and have used OCX controls, then we would like to hear from you. Having a good understanding of what controls have been used in Gen GUI applications and typical customer requirements will hep us plan and prioritise our roadmap for extending the range of controls that we offer.

Friday, 5 July 2013

Demo Apps Updated

The Rapide demo apps have been updated to show the use of resizeable sashes. The Booking App now uses a vertical sash for the Booking Detail to allow the user to change how much space is allocated to the detail panel.

The Controls Demo now uses a horizontal sash in the Multi Frame demo.

Thursday, 27 June 2013

Tabbed Frames and Resizeable Sashes

Initially on the roadmap for early next year, we have brought forward the implementation of tabbed and resizeable frames to the first release so that these can be used in the port of GuardIEn WebCR to Rapide.

Tabbed Frames are an easy method of implementing tabs. The parent window contains a frame which is designated as 'Fixed Tab' Each tab is then designed either as a separate procedure step or as a secondary dialog in the same p-step.

A primary window or dialog can also have a single horizontal or vertical resizeable frame called a Sash. The user can resize the sash to adjust the relative size of the parent dialog and the dialog embedded inside the sash.

Migrating GuardIEn WebCR to Rapide

We have started to re-write the web front-end to GuardIEn (WebCR) using Rapide. Not only will this enable us to deliver a much better user interface for WebCR and also provide a mobile interface, it will also provide valuable input to the development and testing of Rapide.

If you would be interesting in beta testing WebCR on a browser or mobile interface (iOS or Android) or have any suggestions for enhancements to the functionality, please get in touch.

Thursday, 6 June 2013

First Presentation for Rapide

Just back from the Finnish Gen user group meeting in a very warm Helsinki (well actually the CA offices in Espoo) where Rapide was presented for the first time. Despite a (not too serious I hope) comment that an IET product should have an 'IE' in the name, the product seemed to be very well received.

Talking about iOS and Android in the land of Nokia raised the obvious question about support for Windows Phone 8, and we shall have to see what the demand is, though Windows Phone apps can still be supported via the browser, but not yet as a native app.

Monday, 3 June 2013

Rapide Announcement

Today we have announced a new product called Rapide. This is a very exciting new development for CA Gen and we will be using this blog to provide regular updates and seek feedback from the Gen community.

Friday, 26 October 2012

PStep USE and Stubs

We were recently asked to help a customer diagnose a runtime problem with their Gen application. They have a server p-step (server1) that calls an action block which in turn performs a USE of a p-step in another server load module (server2).

pstep1 --> ab --> pstep2

This worked fine until one day they re-generated the server manager for server1 and when the action block attempted the use of server2, there was a runtime failure.

The reason was because at some point they had converted the action block in this model to a 'stub' (it is developed in a different model). A p-step USE is implemented in the generated code by a runtime function call that references the called server details which resides in a table that is generated into the server manager. The Gen server manager generator needs to know about all of the servers that are called by the p-steps and subordinate action blocks. If some of these subordinate action blocks are 'stubs', then the generators will not detect that the action block calls a server and that server will not be added to the table.

However the code is still generated and the load module build will succeed. The code will also run until the point when the p-step use is invoked, at which point a runtime error will result.

This can be difficult to detect, and so we will develop a new VerifIEr check to detect these conditions.

Thursday, 7 June 2012

Checking Data Integrity

In supporting our customers, we occasionally come across problems with data integrity in the GuardIEn database, specifically rows with orphan foreign keys.

An orphan foreign key is a foreign key value (for a simple or compound key) where the parent row does not exist.

For example, in the case of table PARENT has many CHILD, the key of PARENT exists as a foreign key in the CHILD table. If the CHILD FK_PARENT_CODE has a value where the PARENT row does not exist with the same code, then the CHILD foreign key is an orphan.

This situation can arise from errors in the RI trigger runtime routines, use of SQL to delete the parent rows without deleting / nullifying the child rows, incorrectly generated RI triggers or incorrectly implemented DBMS RI rules. In the case of GuardIEn, the most common causes are use of SQL to (incorrectly) load rows or delete rows, and on some platforms, issues with the RI trigger runtimes.

To help identify and fix these integrity issues, we have added a new genIE function that generates the SQL to firstly identify orphan rows and then to perform a cleanup.

We will be distributing the SQL to GuardIEn users so that they can check the integrity of the database, and the new function will be available in 8.1.4 so that customers can generate the SQL to check their own application databases.