Announcement

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

    SimpleType: can DataSourceField inherit from it?

    I've defined some SimpleType (to format currency and to trim text), and as in 'customSimpleType' sample I'd like to use them in the DataSourceFields (SqlDataSource).
    But if I do like that, in the case of a 'trimmed_text' type which inherits from "text" and it's stored in varchar columns, I got a warning:
    Code:
    === 2012-01-16 12:09:52,625 [ec-8] WARN  Validation - [builtinApplication.I18N_update] No such type 'ttext', not processing field value at /I18N/MESSAGE_ID
    and in the case of a 'currency_float' type which inherits from "float" and it's stored in decimal columns, I got an error:
    Code:
    === 2012-01-16 12:13:44,078 [ec-4] DEBUG RPCManager - Processing 1 requests.
    === 2012-01-16 12:13:44,078 [ec-4] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
            ID_REC:5227
        },
        values:{
            ID_REC:5227,
            VALORE_SERVIZIO:5.5
        },
        operationConfig:{
            dataSource:"LISTINO",
            operationType:"update"
        },
        componentId:"vociListinoGrid",
        appID:"builtinApplication",
        operation:"LISTINO_update",
        oldValues:{
            CODICE_TIPO_SERVIZIO:"A",
            TIPO_SERVIZIO_FK:85,
            ID_REC:5227,
            FORMA_SERVIZIO:"S",
            ID_REC_CATEGORIA:821,
            VALORE_SERVIZIO:11,
            CODICE_SERVIZIO:"sprova2",
            UM_SERVIZIO:"N",
            DESCRIZIONE_SERVIZIO:"semplice prova 2",
            CODICE_CATEGORIA:"CTR",
            CATEGORIA_SERVIZIO_FK:821,
            CODICE_LISTINO_FK:4961,
            CODICE_SERVIZIO_FK:3915,
            COMPOSTO:false,
            expanded:false
        }
    }
    === 2012-01-16 12:13:44,078 [ec-4] INFO  IDACall - Performing 1 operation(s)
    === 2012-01-16 12:13:44,078 [ec-4] DEBUG AppBase - [builtinApplication.LISTINO_update] No userTypes defined, allowing anyone access to all operations for this application
    === 2012-01-16 12:13:44,078 [ec-4] DEBUG AppBase - [builtinApplication.LISTINO_update] No public zero-argument method named '_LISTINO_update' found, performing generic datasource operation
    === 2012-01-16 12:13:44,078 [ec-4] WARN  Validation - [builtinApplication.LISTINO_update] No such type 'i18nFloat', not processing field value at /LISTINO/VALORE_SERVIZIO
    === 2012-01-16 12:13:44,094 [ec-4] INFO  SQLDataSource - [builtinApplication.LISTINO_update] Performing update operation with
    	criteria: {ID_REC:5227}	values: {ID_REC:5227,VALORE_SERVIZIO:5.5}
    === 2012-01-16 12:13:44,094 [ec-4] DEBUG PoolableSQLConnectionFactory - [builtinApplication.LISTINO_update] Returning pooled Connection
    === 2012-01-16 12:13:44,094 [ec-4] DEBUG SQLTransaction - [builtinApplication.LISTINO_update] Started new dbEleven transaction "7380899"
    === 2012-01-16 12:13:44,094 [ec-4] INFO  SQLDriver - [builtinApplication.LISTINO_update] Executing SQL update on 'dbEleven': UPDATE DBELEVEN.LISTINO SET VALORE_SERVIZIO='5.5' WHERE (LISTINO.ID_REC='5227')
    === 2012-01-16 12:13:44,125 [ec-4] WARN  RequestContext - dsRequest.execute() failed: 
    java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
    since it's trying to store the string '5.5' in a decimal column.

    so, server-side, the DataSourceField is not inheriting the type that the SimpleType inherits from.

    is it possible for a DataSourceField actually inherit that type server-side?

    #2
    Currently the server is not aware of SimpleType definitions, so if the field.type has significance for server behavior, you need to use the base type in the .ds.xml file and then switch the type to your SimpleType client-side once the DataSource is loaded.

    We plan an enhancement to allow server-side definition of SimpleTypes, but there's no ETA for this yet. It would be eligible for sponsorship.

    Comment

    Working...
    X