Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    SQLExpressions warnings in 13.1

    Hello, In the more recent 13.1 builds, I’ve noticed WARN messages like the following:

    Code:
    WARN  SQLExpressions SQLExpression for field 'EMAIL' already exists, skip.
    These seem harmless, but I’d like to understand more about their meaning.

    Then, there are others like:

    Code:
    WARN SQLExpressions Missing expression for the 'ID_ROLE_FK' field of the 'AUTH_MENU_ROLES_PERMISSIONS' DataSource.
    In some cases, these seem related to a regression in at least one specific operationBinding. After this warning, the criteria for that field doesn’t appear in the WHERE clause, whereas previously it did.

    The field is defined as:

    Code:
     <field name="ID_ROLE_FK" type="integer" customSelectExpression="MENU_ROLES.ID_ROLE_FK" customSQL="true"/>
    And the operationBinding includes it in the customCriteriaFields:

    Code:
           <operationBinding operationType="fetch" operationId="fetchMenuPerGestioneUtenti"
                              serverMethod="fetchMenuPerGestioneUtenti"
                              requiresRole="ROLE_ADMIN, ROLE_USERADMIN, ROLE_ADMIN_SCOUT, ADMIN"
                              customFields="IS_MENU_FROM_ROLE,IS_MENU_FROM_PERMISSION,ID_ROLES,ROLE_NAMES,ID_PERMISSIONS,PERMISSION_NAMES"
                              customCriteriaFields="ID_PERMISSION_FK,ID_ROLE_FK">
                <serverObject lookupStyle="new" className="com.juve.auth.menu.FetchMenuPerGestioneUtenti"/>
                <tableClause>
                    $defaultTableClause
                    LEFT JOIN DBJFRAME.AUTH_MENU_ROLES MENU_ROLES ON TREE_MENU.ID_REC = MENU_ROLES.ID_MENU_FK
                    LEFT JOIN DBJFRAME.AUTH_ROLES ROLES ON MENU_ROLES.ID_ROLE_FK = ROLES.ID_REC
                    LEFT JOIN DBJFRAME.AUTH_MENU_PERMISSIONS MENU_PERMISSIONS ON TREE_MENU.ID_REC = MENU_PERMISSIONS.ID_MENU_FK
                    LEFT JOIN DBJFRAME.AUTH_PERMISSIONS PERMISSIONS ON MENU_PERMISSIONS.ID_PERMISSION_FK = PERMISSIONS.ID_REC
                </tableClause>
                <whereClause>
                    $defaultWhereClause
                    #if ($sessionAttributes.appID != 'JcaAuth')
                        and TREE_MENU.ID_APP = $sessionAttributes.appID
                    #end
                </whereClause>
                <groupBy>ID_REC</groupBy>
                <groupBy>ID_APP</groupBy>
                <groupBy>VOCE_MENU</groupBy>
                <groupBy>VOCE_MENU_EN</groupBy>
                <groupBy>ID_FUNZIONE</groupBy>
                <groupBy>ORDINAMENTO_PER_LIVELLO</groupBy>
                <groupBy>ID_VOCE_PADRE</groupBy>
                <groupBy>ICONA</groupBy>
                <groupBy>ICONA_SVG</groupBy>
                <groupBy>IS_MENU_FROM_ROLE</groupBy>
                <groupBy>IS_MENU_FROM_PERMISSION</groupBy>
                <groupBy>ID_MENU_FK</groupBy>
                <summaryFunctions>
                    <ID_ROLES>concat</ID_ROLES>
                    <ROLE_NAMES>concat</ROLE_NAMES>
                    <ID_PERMISSIONS>concat</ID_PERMISSIONS>
                    <PERMISSION_NAMES>concat</PERMISSION_NAMES>
                    <IS_DASHBOARD_VISIBLE>max</IS_DASHBOARD_VISIBLE>
                    <MOBILE_PHONE_VISIBLE>max</MOBILE_PHONE_VISIBLE>
                    <TABLET_VISIBLE>max</TABLET_VISIBLE>
                    <MOBILE_PHONE_DEFAULT>max</MOBILE_PHONE_DEFAULT>
                    <MOBILE_PHONE_ONLY>max</MOBILE_PHONE_ONLY>
                </summaryFunctions>
                <orderClause>ORDINAMENTO_PER_LIVELLO</orderClause>
            </operationBinding>
    There’s one caveat: the DMI is actually calling dsRequest.addToCriteria() to add the criteria for the ID_ROLE_FK field.

    Please let me know if this sheds some light, or if I should try to create a test case (though that might be difficult).
Working...
X