This section aims to provide useful info in order to prepare, execute and review the evolution from previous versions to the current release.

1 Programming

1.1 Prevent fixing columns not get from parent

When accessing to a child form (In a parent/child forms context) the system used to lock all fields of those columns used in the query condition. So, when accessing a child form with the SQL condition column1 = 'A' AND column2 = 'B', the fields corresponding with the columns column1 and column2 were locked. This functionality was intended for preventing changing the values which defines the parent relation, so any change in the form not cause loosing or changing the parent. Taking this into account, it would not be necessary to lock those fields which not define the parent relation. only those fields involved in the parent relation will be locked. The fields which defines the relation with the parent are determined in two ways:

  • HARD: by the database definition of FOREIGN KEYS, or
  • SOFT: by the parameterization of wic_jrep_form_hide in the child object.
Recovering the previous example, in case of the primary table of the child object would have a foreign key to parent table by the column column1, only this column will be locked.

1.2 Import multiple JS functions

A form has been changed to allow multiple import of JS functions files. This functionality allows user import multiple JS files (with functions) stored in Form javascript (wic_jrep_form_import_js)

To import File, go to form, and click on the Import JS box. Now, you have to inform import order and import file.

  • Order: Order its important when you want to overload any function of previous files.
  • JS Code: Code of file to import. It has to be stored in the Form javascript (wic_jrep_form_import_js) of the same wise or in any custom work.

Old version, only allows import one JS functions file by form.

2 Application

2.1 SQL IMGLIST TO SQL BLOB

The SQL IMG List box is deprecated in this version. Use SQL BLOB box instead it. The upgrade process converts all the cases you have on your WIC. For more information, see SQL BLOB.

2.2 SQL TABLE RELATIONS TO BOX SUBSCRIPTIONS

SQL Table relation is deprecated in this version. Use Box subscriptions instead it. For more information, see Box Subscriptions.

In the other hand, conversion process converts SQL TABLE Relations to Box Subscriptions, however, there are two cases having to revised by the user. To revise it, go to menu Deployment > LIST OF DEPRECATED OPTIONS (wic_deprecated_list) of the wic_xxxx and filter by code 19005 Box subscriptions instead SQL Table Relation.

Execute verify button. Now, you have a list with all the SQL TABLE relations to revise. If you click on the value of column Condition, you will go to SQL TABLE configuration.

Here, there are two cases.

  • Conversion process can't complete the changes.
  • Conversion process can't do the change.

2.2.1 Conversion process can't complete the changes.

The changes have not been completed because process doesn't know how is the filter cond. Let's look one example:

  • We have the next statement on a SQL TABLE related after the conversion:
    Copy
    <select>
        <columns>
            *
        </columns>
        <from table='table_filter'/>
        <where>
            ${f?literal} AND
            $0
        </where>
    </select>

    Conversion process has replaced related filter table.campo IN (${field}) by ${f?literal}

  • Furthermore, conversion has added two rows on box subscriptions.
    • The first row is for the initial load of the component:
      • Box observed: NULL
      • Event observed: INITIAL (0)
      • Filter variable: f
      • Expression: NULL
      • Filter condition: 1=2
    • The second row is to subscribed to the select event of sql table relation box:
      • Box observed: 1234
      • Event observed: SELECT (2)
      • Filter variable: f
      • Expression: NULL
      • Filter condition: table.campo = ${field}
      The process wasn't completed because it can't decide if field is a string or is a number. If is a string, ${field} has to be enclosed in single quotes: table.fieldname = '${field_name}'.
  • Filter condition of box subscription has to be revised, conversion has added two rows on box subscriptions:

    If a field is a string, it has to be enclosed in a single quote at filter condition: table.fieldname = '${field_name}'

  • Test the relation. If it works well, check the row on Deployment > LIST OF DEPRECATED OPTIONS (wic_deprecated_list) and execute button Fix Issues.

2.2.2 Conversion process can't do the change.

In this scenario, add the subscription, manually:

  • First add a row for the initial load of the component:
    • Box observed: NULL
    • Event observed: INITIAL (0)
    • Filter variable: f
    • Expression: NULL
    • Filter condition: 1=2
  • Then, add a row to subscribe the event against another sql table, in relation box:
    • Box observed: XXXXX
    • Event observed: SELECT (2)
    • Filter variable: f
    • Expression: NULL
    • Filter condition: table.campo = ${field}
    If field value is a string, the ${field} has to be enclosed within single quotes table.fieldname = '${field_name}'.
  • This is a box subscription example:

  • Go to the sqltable configuration and replace relation filter by ${f:literal} as shown below:
    Copy
    <select>
            <columns>
                *
            </columns>
            <from table='table_filter'/>
            <where>
                ${f?literal} AND
                $0
            </where>
        </select>
  • Test the relation. If it works well, check the row on Deployment > LIST OF DEPRECATED OPTIONS (wic_deprecated_list) and execute button Fix Issues.

2.3 Formauto String Fields Simplified

The field types STRING ENCODED, STRING WITH LINKS and STRING PRESERVE for EJB-DATA-TABLE and EJB-DATA-FLOW are deprecated in this version. Use STRING CONVERTED instead it. The upgrade process converts all the cases you have on your WIC. For more information, see EJB DATA (Strings).

For each one of these fields, you can get the same result in the following way:

2.3.1 String Encoded

In this case you don’t have to make any change, because the field type STRING CONVERTED will encode the HTML result in order to be represented by the browser.


2.3.2 String With Links

In this case you don’t have to make any change, because the field types STRING CONVERTED and STRING VALUE will show the links of the result if you have defined them.


2.3.3 String Preserve

In this case, taking advantage of the field type STRING CONVERTED encode the HTML result in order to be represented by the browser, you can simulate the STRING PRESERVE type adding '<pre style=”white-space: normal;”>' at the beginning of the result and '</pre>' at the end of it.


2.4 Formauto Input Fields Simplified

The input field types FIELD INPUT MULTIPLE and FIELD PASSWORD for EJB-DATA-TABLE and EJB-DATA-FLOW are deprecated in this version. Use FIELD INPUT instead it, and create a Column Attribute for your column with Input Type as Multiple or Password.

Also, the format function COLOR is deprecated in this version. Use FIELD INPUT instead it, and create a Column Attribute for your column with Input Type as Color.

The upgrade process converts all the cases you have on your WIC. For more information, see EJB Data (Field Input).

2.5 Formauto Label Event Renamed

The label field type LABEL EVENT has been renamed to LABEL CODE to avoid confusion in its use.

2.6 TX Manager Simplified

The TX Manager component has been simplified to ease the use of this component and merge redundant functionalities.

Now, these are the types of Transaction Manager that you can use:

Type (trx_type) Execution moment (trx_exec_when) Execute always? (trx_call)
Insert Before and Continue null
Before, Commit and Not Continue null
After null
Delete Before and Continue null
Before, Commit and Not Continue null
After null
Update Before and Continue No
Yes
Before, Commit and Not Continue null
After null
Reset null null

After that, these are the deprecated implementations:

  • The Procedure type for trx_type has been deprecated, because you can call scripts or procedures in other ways, besides it wasn't in use practically.
  • The Rollback option for trx_when has been deprecated.
  • The Refresh cursor option has been deprecated, now the cursor only refresh when trx_type is Insert.
  • Now you can only set if a TX Manager is called always when the trx_type is Update and the trx_exec_when is Before and Continue

The upgrade process converts all the cases you have on your WIC. For more information, see Server Side (TX Manager).

2.7 JS functions executeButton and executeBoxButton deprecated

The service to execute buttons and box buttons from javascript code has been deprecated in the new version. The new implementation is doing using the new JS function executeFormAction, that execute an action identified by its mnemonic.

2.8 Icons from menu entries

The table wic_jmnu_icon is deprecated. To assign icons to the menu entries the table wic_image_object will be used.

In order not to lose the functionality of having a small image (for the side menu) and a large one (for the main one), the following columns of wic_jmnu_app and wic_jmnu_app will be used:

  • wic_jmnu_app
    • mnu_icon_small
    • mnu_icon_large
  • wic_jmnu_tab
    • tab_icon_small
    • tab_icon_large