EPC - 802
Date : 26 February 2007
EPC802 Highlights
EPC802 delivers enhancements and corrections primarily to the shipped set of LANSA for the Web weblets.
EPC802 is the first stage in a series of updates that improve the performance of LANSA's Web Application Modules (WAMs).
A core set of weblets, including the grid, standard layouts and default visualizations, has been revamped or replaced. The performance of all of these new or amended weblets has been greatly improved.
EPC 802 introduces improvements in the way CSS stylesheets and JavaScript files are handled. If your WAM layouts use the LANSA supplied std_style and std_script weblets, then you should experience no problems after installing this EPC. If you have created your own style and script weblets that do not call the standard weblets, then you may have problems after installing this EPC. In this case, you should make the modifications detailed below before applying this EPC.
Script
Std_script.xsl has changed in a number of ways. It loads a new JavaScript file (std_script_v2.js) as well as the original (std_script.js) and it generates a number of JavaScript variables that are used by other weblets to improve performance.
If your custom script weblet currently calls std_script, then you will get this new functionality automatically. If it doesn’t, then it is likely that you have implemented the original std_script functionality yourself. We recommend that you remove this code and replace it with a call to the script template in std_script:
<xsl:import href="std_script.xsl" />
<xsl:template name="my_script">
<xsl:call-template name="script">
<xsl:with-param name="javascript_files"/>
<xsl:with-param name="trap_script_errors"/>
</xsl:call-template>
<!-- Custom script functionality here -->
</xsl:template>
Notice the new javascript_files property. If the purpose of your custom script weblet is to load some extra JavaScript files, you may be able to use this new property and avoid the need for the custom weblet. See the documentation for more details.
Be careful with the template name. If you named the template of your custom weblet “script”, then you will need to rename it to avoid an infinite loop. You will then need to update your layouts to make sure they call the new name (otherwise they will call “script” in std_script.xsl bypassing your custom code).
Style
The std_style.css/std_style_base.css mechanism used prior to EPC802 is no longer used. This mechanism allowed for localization by placing all the required styles in std_style_base.css and locale specific styles in std_style.css. Std_style.css also contained an @import instruction to load std_style_base.css. Locale specific versions of std_style.css (such as std_style_jpn.css) could be created, each one importing std_style_base.css and then adding it’s locale specific styles.
The new mechanism consists of a single std_style.css file which the style weblet always loads first and a locale specific overlay (std_style_jpn.css) which the style weblet then loads is required. In other words, instead of linking CSS files together with @import instructions, the style weblet takes care of loading the CSS files required in the right order.
The new std_style_v2.xsl weblet extends this mechanism further providing a number of properties for specifying extra CSS files to load. The std_style weblet is deprecated but has been modified internally to map the old properties into the new mechanism, ensuring backwards compatibility.
If you have created your own CSS file and supplied it to the std_style weblet via the relative_css_link_filename property, then your application should continue to work without problem after installing this EPC. If you have created a custom style weblet that does not call std_style.xsl, then you may experience problems after installing this EPC.
As with the script weblet, it is likely that you have implemented the original std_style functionality yourself. We recommend that you remove this code and replace it with a call to the style template in std_style_v2.xsl:
<xsl:template name="my_style">
<xsl:call-template name="style">
<xsl:param name="theme_css_filename"/>
<xsl:param name="css_files"/>
</xsl:call-template>
<!-- Custom style functionality here -->
</xsl:template>
Be careful with the template name. If you named the template of your custom weblet “style” then you will need to rename it to avoid an infinite loop. You will then need to update your layouts to make sure they call the new name (otherwise they will call “style” in std_style_v2.xsl bypassing your custom code).
| Product | Visual LANSA and LANSA for iSeries |
|---|
| Version | 11.3 |
|---|
| Pre-Requisite Details | EPC800 |
|---|
| Related Products | LANSA for the Web |
|---|
| Full Distribution In | Next Cumulative EPC or next version |
|---|
| Special Notes | Requires EPC801 for WAM development and IIS web serving.
All Version 11.3 Visual LANSA EPCs include updates that must be applied to Windows and iSeries systems (Independent Visual LANSA development environments only require the Windows updates). Failure to upgrade both sides of a development environment will render the Host Monitor and Super Server applications inoperable. Attempting to use the Host Monitor and Super Server applications without having applied the EPC to both sides of a development environment will generate an EPC mismatch error.
Make a full backup of your LANSA environment on each platform to which this EPC will be applied. |
|---|
| Compatibility Notes | To avoid object versioning issues on any target LANSA runtime environment after applying this EPC to your LANSA development environment (Windows and iSeries), you must also apply this EPC to the target LANSA runtime environment before deploying any objects built and compiled at this EPC level. This ensures that all required runtime routines are present in the target runtime environment to support any new or altered facilities introduced by the EPC. Failure to apply this EPC to such target environments before deploying any objects built and compiled at this EPC level will produce unpredictable results at runtime. |
|---|
| iSeries Specific Special Notes | The iSeries instructions are expedited procedures that assume a sound knowledge of OS/400.
You should use a user profile that is QSECOFR, part of the QSECOFR group, or, has *ALLOBJ and *SECADM special authorities.
You must end the web server and run the LANSA for the Web cleanup program before applying this EPC.
You must end the Listener and Host Monitor if active.
You must end the LANSA Integrator server if it has been used with the LANSA system to be updated. |
|---|
| User Actions | Import the standard weblets into your Web enabled RDMLX partitions: - On Windows, the imports will be automatically performed if the database is started. If your database is not started, the imports will not complete and must be performed manually using *Limport from the \lansa\imports directories listed in the Windows Components list of Affected Objects. On completion, check your EPC log in Help -> Product Information to see if the imports have completed.
- On iSeries, import the WEBLETS export save file found in the LANSA program library
If you will be serving very large lists using LANSA for the Web, you need to set appropriate timeouts accordingly: - Response timeout (LANSA for the Web Administrator - Data/Application server configuration)
- IBM HTTP server (powered by Apache) TimeOut directive.
|
|---|
| Document Updates | Updates to these guides are provided: - lansa012.chm Visual LANSA User Guide
- lansa087.chm Web Application Modules (WAMs)
The guides updated by EPC are only placed in the default LANSA documentation location as installed with Visual LANSA. This default location is ...\x_win95\x_lansa\execute\eng directory. If you installed the LANSA documentation (default folder ...\lansadoc\) from the LANSA Windows CD-ROM, you should manually copy the updated guides to those folders. |
|---|
| Hotfixes | The following Hotfixes will be replaced by this EPC: If you have applied a hotfix to your environment that is not listed above, contact your local LANSA vendor for instructions before applying the EPC. |
|---|
Instructions to install the EPC
EPC802 includes software to be installed on an iSeries machine and on a Windows machine. These instructions describe the installation and use of all delivered items.
- Download EPC802.EXE file from the Web site or email.
- Unzip (double click) EPC802.EXE. These files will be extracted:
- EPC802.htm - this document
- EPC802 - iSeries Save file
- EPC802w.exe - Windows install executable
Instructions provided for:
| Yes | LANSA for iSeries |
| Yes | iSeries Web Server (multi-tier) |
| Yes | Visual LANSA |
Detailed changes
EPC802 includes these changes: [Click here to Show table...]
| CCS id. | Description |
|---|
| 122593 | Improved handling of word wrapping and line breaks in std_list_textarea weblet.
The current std_list_textarea weblet chops the user's text into fixed size pieces, filling each row of the working list with as much data as possible. In some circumstances, it will also lose and manually entered line breaks.
A new weblet, std_list_textarea_v2, now performs proper word wrapping at a user definable character boundary and properly preserves line breaks by putting each line into a new row of the working list. The reason for creating this new weblet (and deprecating the old one) is to prevent any backwards compatibility issues with existing applications that have been written to expect the pre-EPC802 behavior. |
| 125354 | Improved XSLT performance and browser compatibility of WAMs.
As part of an ongoing program to improve WAM performance and browser compatibility, a number of weblets have been revamped or rewritten.
Revamped weblets include std_anchor, std_boolean, std_button, std_char, std_checkbox, std_click_image, std_date, std_datetime, std_float, std_hidden, std_input, std_integer, std_messages, std_time, std_varchar, std_script and std_style. These weblets all have improved XSLT transformation times and now work on all supported browsers.
The work on a number of other weblets has resulted in changes that may have backwards compatibility issues. To avoid any such issues, new "v2" versions of the weblets have been created. Existing application will need to be updated to take advantage of these new weblets.| std_style_v2 | The mechanism through which CSS style sheets are loaded has been redesigned to make them easier to modify and to make better use of the power of CSS. It is no longer necessary to maintain multiple copies of the styles in std_style_base.css or create your own style weblet (std_style_grass and std_style_royal are now deprecated). Now, a single std_style.css file is always loaded and modifications are then loaded over it. It is also possible to add multiple style sheets to a layout or to an individual WEBROUTINE.
The new mechanism can co-exist with the old. So existing layouts that use std_style (or your own style weblet) will still work. | std_layout_v2 std_layout[1-5]_v2 | All the standard layouts have been modified to utilize the new style mechanism. For performance reasons, some of the customization features have been removed as this can be better done using CSS. | | std_menu_item_v2 | The standard menu item has been simplified to achieve better performance. Most visual customization has been removed in favor of using CSS. Support for left/right images in the menu item has been removed. Std_click_image and std_image_button are better tools for that task. | | std_list_textarea_v2 | The "Memo using a list" weblet now performs proper word wrapping (at a word boundary instead of fixed character position) on the text returned to the server. It also preserves user entered line breaks. A "_v2" version of the weblet has been created because existing back-end code may have special processing to handle the incorrect behavior of the previous weblet which could be broken by the new weblet. | | std_grid_v2 | The grid has been completely rewritten. It now has significantly improved XSLT transformation performance, improved browser rendering times and works on all supported browsers. | | Default List Visualization | The default list visualization has been updated to utilize some of the new grid code. This includes support for alternating row colors, sorting and column resizing. |
Differences exist between browsers. Therefore, each customer should verify all target browsers on which their application will run to ensure the full range of functionality required is supported on those browsers |
| 126869 | Enhance button weblet to prevent accidental double clicks
The button weblet now ignores double clicks (two clicks within one second), preventing accidental double submissions |
| 127142 | Improved range of date_mask values.
The Date, Time and DateTime weblets now support an improved date_mask mechanism. Instead of a predefined set of masks, you can now create your own masks using a set of format specifiers. See section 8 of the WAMs documentation for more details. |
| 127201 | Std_List_textarea was not passing data back correctly.
Several problems with the std_list_textarea weblet have been resolved. - It no longer sends an extra blank line to the webroutine
- It no longer sends corrupted data to the webroutine after it has deleted more than one line of text.
- Setting a custom onChange script no longer suppresses the default onChange processing. If you still want to suppress the default processing, you should return false from your custom script.
Note that this weblet has been deprecated. A new std_list_textarea_v2 weblet includes all the above fixes as well as better handling of line breaks and word wrapping. |
| 127364 | JavaScript was working incorrectly on PocketPC.
A certain character sequence in the std_script_lansa_ppc_xhtml.js JavaScript file caused the PocketIE JavaScript parser to fail. This resulted in most JavaScript functionality to work incorrectly. This issue has been resolved. |
| 127550 | XSL Editor image selector could make further image selections impossible
When using the image selector in the XSL Editor, it is no longer possible to select a folder which is above the root folder for image selection. |
| 127642 | XSLEditor leaks leaking GDI Objects in Outline and Weblets Views
Some GDI leaks in the XSL Editor have been addressed. The most critical applies to loading weblets list and then exiting the XSL Editor and opening it again and reloading the weblets list again (The Weblets view was leaking). There are still some GDI objects leaked in the XSL Editor and it is therefore suggested that the VL IDE is restarted periodically throughout the day. |
| 127665 | XSL Editor: Allow apply-templates to have parameters as call-templates do
Apply-templates can now have parameters and they can be updated using the XSL Editor |
| 127669 | Weblet: Date picker was not always working correctly over month boundaries.
If the currently selected date was greater than the number of days in the next month, then clicking the "next month" button was causing a month to be skipped. If the currently selected date was greater than the number of days in the previous month, then clicking the "previous month" button was not changing the month.
This incorrect behavior has been fixed. |
| 127895 | XSL Editor: Image chooser for DYNSRC attribute was slow and unstable
The image chooser used for the DYNSRC attribute of the IMG tag now only displays valid media files, improving speed and stability. |
| 127988 | XSL Editor Base URLs will only be tested on demand in the Options Dialog
Testing of the URLs (Base URL, Application Base URL and Web Service Base URL) only happens when pressing the corresponding Test button immediately to the right of the setting in the XSL Editor's Options Dialog.
If an http scheme is used (http://...) then the testing of the URL determines if the Web Server (host and port) is running and that the XSL Editor can make a connection to it. E.g., the virtual folder for Web Service Base URL might not yet exist, but as long as the Web Server is responding the test will be successful. The same applies to the other two URLs.
If a file scheme is used (file:///...) for Base URL, then the testing determines if the specified folder exists. |
| 128162 | WAM crashes when trying to display a Grid containing '--' or '-' in a Cell
An error in the std_grid was causing the LIBXSLT transformation engine to fail when rendering a grid if the grid data contained a '-' or '--'. This has been fixed. |
| 128286 | Multilingual text captions in weblets crashed libxslt on iSeries
Using multilingual text or system variables as captions in pick lists or weblets was causing libxslt to fail to transform.
The LWEB_JOB was ending abnormally and this libxslt error was being displayed in the joblog: "element value-of only allowed within a template, variable or param".
This defect has been fixed.
To correct existing WAMs: 1. For pick-lists, use the XSL Editor design option to "auto synchronize picklists for visualized fields". 2. For weblets, edit the weblet property and click OK. |
| 128395 | Weblet: std_char and std_varchar (as memo) sizing was incorrect
When type is set to 'memo', the std_char and std_varchar weblets calculate the height of the input field (up to a maximum of 10 lines) based on the maximum length of the field and the display width. This calculation was incorrect resulting in erratic behaviour of the weblet height as these two values are changed. This calculation has be fixed. The height is now calculated as round(max length / display width) + 1. The maximum height of 10 lines remains unchanged. |
| 128453 | Date fields with some attributes was causing JavaScript failures
Under certain conditions, a DateTime field in a grid was causing a JavaScript error which then have assorted knock-on effects. The most obvious was that the pop-up calendar did not work. The following conditions needed to be true for this to occur:- The field type is DateTime.
- The field has std_date, std_datetime or std_time weblets set as default visualizations.
- The field is used in a grid.
- The ASQN or DUTC attributes are NOT set.
This has been fixed. |
| 128896 | Time visualization message was incorrect if bad value entered
This has been fixed to indicate that an invalid time has been entered instead of an invalid date. |
| 129330 | Dragging weblet onto design view was causing a Microsoft JScript runtime error.
The XSL Editor used functions provided by the Microsoft Scripting Runtime DLL (scrrun.dll) during the drag/drop process. Sometimes this can cause an error if the DLLs registry entries become corrupt or Windows security settings limit access to the DLL. The XSL Editor no longer uses these external functions. |
Affected objects
Windows Components: [Click here to Show table...]
| Object Name | Folder |
|---|
| liiosrv.dll | \lansa |
| liiv.dll | \lansa |
| XSLEditorFrame.dll | \lansa |
| XSLEditorFrameFRA.dll | \lansa |
| XSLEditorFrameJPN.dll | \lansa |
| lxxdir.del | \lansa\imports\std_weblets |
| lxxf02.asc | \lansa\imports\std_weblets |
| lxxfcr.asc | \lansa\imports\std_weblets |
| lxxfwe.asc | \lansa\imports\std_weblets |
| lxxfwl.asc | \lansa\imports\std_weblets |
| lxxfws.asc | \lansa\imports\std_weblets |
| lxxfwx.asc | \lansa\imports\std_weblets |
| lxxdir.del | \lansa\imports\TechServices |
| lxxfts.asc | \lansa\imports\TechServices |
| PreviewBrowser.dll | \lansa\XSLEditor |
| PreviewBrowserFRA.dll | \lansa\XSLEditor |
| PreviewBrowserJPN.dll | \lansa\XSLEditor |
| XSLEditor.dll | \lansa\XSLEditor |
| XSLEditorFRA.dll | \lansa\XSLEditor |
| XSLEditorJPN.dll | \lansa\XSLEditor |
| XSLHTMLEditor.dll | \lansa\XSLEditor |
| XSLHTMLEditorFRA.dll | \lansa\XSLEditor |
| XSLHTMLEditorJPN.dll | \lansa\XSLEditor |
| XSLTextEditor.dll | \lansa\XSLEditor |
| XSLTextEditorFRA.dll | \lansa\XSLEditor |
| XSLTextEditorJPN.dll | \lansa\XSLEditor |
| EmptyLayoutWeblet.xsl | \lansa\XSLEditor\Extensions\LANSA_XHTML\NewDocument |
| EmptyWebroutine.xsl | \lansa\XSLEditor\Extensions\LANSA_XHTML\NewDocument |
| lansa012.chm | \x_win95\x_lansa\execute\eng |
| lansa087.chm | \x_win95\x_lansa\execute\eng |
iSeries Components: [Click here to Show table...]
| Object Name | Folder |
|---|
| weblets.savf | LANSA pgmlib |
| epc802img.savf (images) | Web server (Installs new images and script files. Updates standard script and CSS files) |
| tspdef.savf | |
Install Instructions
Instructions for installing on iSeries
- These instructions have been abridged for experienced LANSA users. If you need further assistance to install the EPC, full instructions are available in the Technical Resources of the LANSA website, www.lansa.com.
- Recommend a backup be done of all the LANSA folders, system libraries and ALL the LANSA IFS objects (LANSA_pgmlib/x_lansa) before applying this EPC
- You need exclusive use of the LANSA system before applying the EPC. To check for active users refer to Appendix C How to check for Active Users in the LANSA Online documentation for instructions.
- End the Listener, Host Monitor and web server for the LANSA system and run the LANSA for the Web cleanup program.
- Move the unzipped file EPC802 to a shared folders on the iSeries.
- Use the XFLRTOSAVF command to convert the folder to a save file (LANSA program library must be on your library list) - press F4 for command details. A save file will be created by this command.
- You now have a save file.
- Sign on as a user profile that is QSECOFR, part of the QSECOFR group, or, has *ALLOBJ and *SECADM special authorities.
- Use the RSTOBJ command to restore all objects from library QTEMP into library QTEMP, eg.
RSTOBJ OBJ(*ALL) SAVLIB(QTEMP) DEV(*SAVF) SAVF(<save file name>) RSTLIB(QTEMP) - Display your current library list. If QTEMP is not shown, add it to your library list by using the ADDLIBLE (add library list entry) command.
- Install the EPC using the command:
LOADEPC802 PGMLIB(<pgmlib>) COMLIB(<comlib>)
<pgmlib> is the name of the LANSA program library, often DC@PGMLIB but it may be different on your system.
<comlib> is the name of the LANSA Communications library, often DC@COMLIB but it may different on your system.
- Save and then delete the backout library (iiiEPCnn where iii = 1st three characters of the LANSA pgm library and nn is sequence number) created by the install. The contents of the library may be used to backout this EPC and return your system to its previous state.
- Sign off and then on again before commencing the next installation, eg:
- to apply this EPC on another LANSA system
- to apply another EPC on the same LANSA system
- Import the standard weblets into your RDMLX partitions from the save file found in the LANSA program library.
- The import job TSPDEF will be submitted by this EPC load
Special Instructions for users of iSeries web server (multi-tier)
To apply EPC802 on the Web Server tier of your LANSA for the Web system, follow these steps:
- End the web server and run the LANSA for the Web cleanup program. Refer to 13.5.6 Clean Up Systems in the LANSA Online documentation for cleanup instructions.
- If you haven't installed or upgraded LANSA for the Web on the Web Server, do so before proceeding with step 2.
- Restore the EPC objects into QTEMP (Perform the same steps you used to restore the objects in your LANSA for the Web application/data server system).
- Display your current library list. If QTEMP is not shown, then add it to your library list using the ADDLIBLE (add library list entry) command.
- Install the EPC for the Web Server by using the command:
LOADE802MT ADMLIB(<adminlib>) COMLIB(<comlib>)
where <admin> is the name of the LANSA for Web Administration library.
where <comlib> is the name of the LANSA Com/Share library. This is often DC@COMLIB but it may different on your system
- Press enter to continue processing.
- Save, and then delete, the backout library (iiiEPCMBnn where iii = 1st three characters of the LANSA pgm library and nn is sequence number) created by the install. The contents of this library may be used to backout this EPC and return your system to its previous state.
- Sign off and sign on again if you want to run the configuration program.
Instructions for installing on Windows
- Recommend that a backup be done of all LANSA folders and your LANSA database before applying this EPC.
- Stop using the LANSA development environment and stop all currently executing LANSA applications.
- Double-click on EPC802w.exe.
- Select the "Setup" button or "Cancel" if you do not want to proceed.
- If you have multiple configurations installed, Select the configuration to which the EPC is to be applied.
- If you are prompted to reboot your pc - please reboot.
- To view details of the installed EPCs:
- sign into LANSA
- view the Help menu
- Product Information option
- then select the Installation Details tab
- expand the Installation/ EPC Summary
- review the last entries
© 2007 LANSA