Announcement

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

    [9.1 -> 10.0] DataSourceField.length changed behavior

    SmartClient Version: v10.0p_2014-09-30/EVAL Deployment (expires 2014.11.29_06.38.33) Licensed to: Isomorphic Software (#ISC_EVAL_NIGHTLY)

    I've just found another difference in behavior from 9.1 to 10.0, regarding to DataSourceField.length
    I've got a field definition like this:
    Code:
            <field sqlType="varchar" sqlLength="1" name="SUPER_ADMIN" type="boolean" required="true"
     length="1" hidden="true" sqlStorageStrategy="singleCharTF"/>
    And I'm trying to insert a record. The operationBinding for add is:
    Code:
            <operationBinding operationType="add" serverMethod="add" requiresRole="ROLE_ADMIN,ROLE_USERADMIN">
                <values fieldName="ID_APP" value="$httpParameters.appID"/>
                <values fieldName="SUPER_ADMIN" value="false"/>
                <serverObject lookupStyle="spring" bean="gruppiDMI"/>
            </operationBinding>
    The documentation says, about DataSourceField.length:
    "Applicable only to fields of text type."

    So I think that previously it was ignored, in my case.
    Now I got a validation error:
    Code:
    2014-10-02 16:25:45,330 DEBUG RPCManager Request #1 (DSRequest) payload: {
        values:{
            NOME_GRUPPO:"dmk",
            DES_GRUPPO:"Marketing Director",
            DES_GRUPPO_EN:"Marketing Director"
        },
        operationConfig:{
            dataSource:"GRUPPI",
            operationType:"add",
            textMatchStyle:"exact"
        },
        componentId:"gestioneGruppi_Grid",
        appID:"builtinApplication",
        operation:"GRUPPI_add",
        oldValues:{
            NOME_GRUPPO:"dmk",
            DES_GRUPPO:"Marketing Director",
            DES_GRUPPO_EN:"Marketing Director"
        },
        criteria:{
        }
    } 
    2014-10-02 16:25:45,330 INFO  IDACall Performing 1 operation(s) 
    2014-10-02 16:25:45,330 DEBUG DeclarativeSecurity Processing security checks for DataSource null, field null 
    2014-10-02 16:25:45,330 DEBUG DeclarativeSecurity DataSource GRUPPI is not in the pre-checked list, processing... 
    2014-10-02 16:25:45,334 DEBUG ValidationContext Adding validation errors at path '/GRUPPI/SUPER_ADMIN/SUPER_ADMIN': {errorMessage=Must be no more than 1 characters long} 
    2014-10-02 16:25:45,335 INFO  Validation Validation error: [
        {
            SUPER_ADMIN:{
                errorMessage:"Must be no more than 1 characters long"
            }
        }
    ]
    obviously, removing the unnecessary length="1" fixes the problem.

    Now my question: is it a permanent change, or is something you may return to previous behavior?

    #2
    Per docs, what you have there is basically an invalid setting - we don't guarantee any particular future behavior for an invalid setting, so you should remove it, both because it's behavior is undefined, and because if that setting ever did become valid for a boolean field, you'd probably get a behavior you didn't expect.

    Comment


      #3
      ok, thanks for the clarification.

      Comment

      Working...
      X