Announcement

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

    Issue with FileItem

    Hello,
    I'm using SmartGWT Power 3.1p-2013-01-17 and I'm having issue with a FileItem.

    I have a field that I have declared as binary in the datasource:
    Code:
    <field name="anexo" title="Anexo NOC" type="binary" nativeName="IM_ANEXO"/>
    When I add to my DynamicForm a FileItem linked to this field and call saveData on the form I've got the following error, in DevMode, with IE and Firefox:

    Code:
    16:16:37.330 [ERROR] [br.gov.funasa.seminario.Empresas] Uncaught exception escaped
    
    com.google.gwt.event.shared.UmbrellaException: One or more exceptions caught, see full set in UmbrellaException#getCauses
        at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:129)
        at com.smartgwt.client.widgets.BaseWidget.fireEvent(BaseWidget.java:71)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
        at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
        at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
        at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
        at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
        at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
        at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
        at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
        at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
        at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
        at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
        at java.lang.Thread.run(Thread.java:662)
    Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError): _1 is undefined
        at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
        at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
        at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
        at com.smartgwt.client.widgets.form.DynamicForm.saveData(DynamicForm.java)
        at br.gov.funasa.seminario.client.HandlerSalvar.salvaFormulario(HandlerSalvar.java:78)
        at br.gov.funasa.seminario.client.HandlerSalvar.onClick(HandlerSalvar.java:67)
        at com.smartgwt.client.widgets.events.ClickEvent.dispatch(ClickEvent.java:101)
        at com.smartgwt.client.widgets.events.ClickEvent.dispatch(ClickEvent.java:1)
        at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)
        at com.google.web.bindery.event.shared.EventBus.dispatchEvent(EventBus.java:40)
        at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193)
        at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88)
        at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:127)
        at com.smartgwt.client.widgets.BaseWidget.fireEvent(BaseWidget.java:71)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
        at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
        at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
        at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
        at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
        at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
        at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
        at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
        at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
        at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
        at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
        at java.lang.Thread.run(Thread.java:662)
    No Request is send to the server (nothing on the server log and in Firebug console and network tabs).

    If I remove the FileItem from the form data is saved normally.

    After saving if I put the FileItem back and edit the record, all works normally. I'm able to save the data, even with the attached document.

    What could be wrong?

    Regards,
    Cédric.

    #2
    This is a JavaScript error, so please use the instructions in the FAQ to obtain a stack trace, then we'll have enough information to start troubleshooting.

    Comment


      #3
      I've found that I call explicity editNewRecord() the problem doesn't happen anymore.
      But when I call saveData the second time, with the same form still open update operation is not call and the record is duplicated in the database.
      I'm trying to get a StackTrace.

      Comment


        #4
        This is what I see in the Developer Console of IE 9:
        Code:
        HTML1113: Reinicialização de modo de documento de Padrões do IE9 para Quirks 
        Interno.html?gwt.codesvr=127.0.0.1:9997
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        SCRIPT5007: Não é possível obter valor da propriedade '$1118': o objeto é nulo ou não definido 
        ISC_DataBinding.js, linha 1490 Caractere 66
        In IE I see a lot of alerts saying that the property '$1118' is null or undefined. If I call editNewRecord() on the form the alerts don't show up.

        Comment


          #5
          Ah, we know what this is. It was patched a few days ago, probably right after you got your build, so just grab the latest patch build.

          Comment


            #6
            OK, I'm downloading the new version (2013-01-22).
            Will it resolve the add/update problem with editNewRecord or the FieldItem one? Or both?

            Comment


              #7
              I've just updated to 2013-01-22.
              I've clean the browser's cache, the GWT generated HTMLs.

              This version has another bug: the space between fields items became huge leaving a lot of lost space on the screen.

              The problem of not updating (I've disabled editNewRecord) after the first save is still happening.

              Comment


                #8
                It wil resolve at least the $1118 problem. If the other problem still persists, please post a stack trace for it.

                Comment


                  #9
                  We also need a way to reproduce the problem with forms being too large.

                  Comment


                    #10
                    There is no stack trace for the not updating problem.
                    When saving the second time the field containing the primary key is sent as null in the field values:

                    Code:
                    === 2013-01-22 18:55:23,905 [l0-0] DEBUG RPCManager - Request #1 (DSRequest) payload: {
                        values:{
                            ......
                            SQ_XXX_YYYY:null,
                            ......
                        },
                        operationConfig:{
                            dataSource:"myDS",
                            operationType:"add"
                        },
                        componentId:"isc_DynamicForm_36",
                        appID:"builtinApplication",
                        operation:"myDS_add",
                        oldValues:{
                        },
                        criteria:{
                        }
                    }
                    while the first time the field is not sent, as always.

                    Comment


                      #11
                      One more detail, this I what I see in the LOG after the SELECT that ocurrs after the insert:

                      Code:
                      === 2013-01-22 19:04:19,422 [0-17] INFO  DSResponse - [builtinApplication.publicoInterno_add] DSResponse: List with 1 items
                      === 2013-01-22 19:04:19,422 [0-17] DEBUG DataSource - In DS.forName() for 'sequence' with DSRequest: null
                      === 2013-01-22 19:04:19,422 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,422 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,422 [0-17] DEBUG DataSource - In DS.forName() for 'integer' with DSRequest: null
                      === 2013-01-22 19:04:19,422 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,422 [0-17] DEBUG DataSource - In DS.forName() for 'integer' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,423 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'integer' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'integer' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,424 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'integer' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'binary' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'integer' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'datetime' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'boolean' with DSRequest: null
                      === 2013-01-22 19:04:19,425 [0-17] DEBUG DataSource - In DS.forName() for 'boolean' with DSRequest: null
                      === 2013-01-22 19:04:19,426 [0-17] DEBUG DataSource - In DS.forName() for 'boolean' with DSRequest: null
                      === 2013-01-22 19:04:19,426 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      === 2013-01-22 19:04:19,426 [0-17] DEBUG DataSource - In DS.forName() for 'text' with DSRequest: null
                      The generated SELECT is OK, tested it against the database too.

                      Comment


                        #12
                        The problem with multiple adds in a row suggests that the server is not returning a value for the primaryKey field after the successful "add" request.

                        If you need help troubleshooting that, please post the complete log for the successful add request, and show the response as seen in the RPC tab of the Developer Console.

                        Comment


                          #13
                          In the RPC Log this is the DSRequest:
                          Code:
                          {
                              dataSource:"publicoInterno", 
                              operationType:"add", 
                              componentId:"isc_DynamicForm_36", 
                              data:{
                                  nomeEvento:"IV Seminário Internacional de Saúde Pública", 
                                  localEvento:"Brasília/DF", 
                                  periodoEvento:"18 a 22/03/2013", 
                                  nomeCandidato:"XXXXX YYYYYYYY", 
                                  matriculaSIAPE:"980980", 
                                  unidadeOrigem:"iuoioi", 
                                  unidadeLotacao:"uoiuoiuio", 
                                  unidadeExercicio:"iuoioiio", 
                                  cargo:"iouoiuoi", 
                                  classe:"oiuoiuoiuoi", 
                                  padrao:"iuoiuoiuoi", 
                                  email:"cedric.lamalle@ba.com", 
                                  nivel:2, 
                                  vinculoFunasa:2, 
                                  telefoneComercial:"6189989899", 
                                  fax:"6109090909", 
                                  identidade:"9897978", 
                                  orgaoExpedidor:"SSP/DF", 
                                  cpf:"12345", 
                                  telefoneResidencial:"6198989898", 
                                  telefoneCelular:"61090909090", 
                                  escolaridade:2, 
                                  formacao:"lklkkljlkjlk", 
                                  feira:true, 
                                  mesaRedonda:true, 
                                  discussaoTematica:47, 
                                  visitaTecnica:46, 
                                  SQ_PUBLICO_INTERNO:null, 
                                  enviado:null, 
                                  login:null, 
                                  descricaoVisita:null, 
                                  descricaoDiscussao:null
                              }, 
                              callback:{
                                  target:[DynamicForm ID:isc_DynamicForm_36], 
                                  methodName:"saveEditorReply"
                              }, 
                              showPrompt:true, 
                              prompt:"Salvando formulário...", 
                              oldValues:{
                              }, 
                              requestId:"publicoInterno$6276", 
                              clientContext:{
                              }, 
                              useStrictJSON:true, 
                              fallbackToEval:true, 
                              afterFlowCallback:"isc_DynamicForm_36.$49z(dsRequest, dsResponse, data)", 
                              directSubmit:true, 
                              submitForm:[DynamicForm ID:isc_DynamicForm_36], 
                              editor:[DynamicForm ID:isc_DynamicForm_36], 
                              bypassCache:true
                          }
                          And the DSReponse (SQ_PUBLICO_INTERNO is the primary key):
                          Code:
                          [
                              {
                                  data:[
                                      {
                                          visitaTecnica:46, 
                                          SQ_PUBLICO_INTERNO:82, 
                                          discussaoTematica:47, 
                                          telefoneComercial:"6189989899", 
                                          nomeCandidato:"XXXX YYYYY", 
                                          cargo:"iouoiuoi", 
                                          mesaRedonda:true, 
                                          feira:true, 
                                          unidadeExercicio:"iuoioiio", 
                                          escolaridade:2, 
                                          padrao:"iuoiuoiuoi", 
                                          login:"maria.matos", 
                                          cpf:"12345", 
                                          descricaoVisita:"ETE Arrudas - COPASA e Centro de Pesquisa e Treinamento em Saneamento UFMG/COPASA", 
                                          vinculoFunasa:2, 
                                          nivel:2, 
                                          identidade:"9897978", 
                                          orgaoExpedidor:"SSP/DF", 
                                          unidadeLotacao:"uoiuoiuio", 
                                          fax:"6109090909", 
                                          classe:"oiuoiuoiuoi", 
                                          unidadeOrigem:"iuoioi", 
                                          descricaoDiscussao:"Gestão De Desastres Naturais", 
                                          formacao:"lklkkljlkjlk", 
                                          matriculaSIAPE:"980980", 
                                          telefoneCelular:"61090909090", 
                                          telefoneResidencial:"6198989898", 
                                          email:"cedric.lamalle@ba.com.br"
                                      }
                                  ], 
                                  invalidateCache:false, 
                                  isDSResponse:true, 
                                  operationType:"add", 
                                  queueStatus:0, 
                                  status:0
                              }
                          ]
                          Looking at the development console I have this warning:
                          Code:
                          22:44:12.391 [ERROR] [br.gov.funasa.seminario.Empresas] 22:44:12.383:WARN:jsonEval:Attempt to parse strict formatted JSON response failed - falling back to eval()
                          
                          com.smartgwt.client.core.JsObject$SGWT_WARN: 22:44:12.383:WARN:jsonEval:Attempt to parse strict formatted JSON response failed - falling back to eval()
                              at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                              at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
                              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
                              at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
                              at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
                              at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
                              at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
                              at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
                              at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
                              at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
                              at java.lang.Thread.run(Thread.java:662)
                          I've added a DMI Handler and I was able to pick up the primaryKey:

                          Code:
                          DSResponse response = request.execute();
                          String primaryKey = request.getDataSource().getPrimaryKey();
                          request.setFieldValue(primaryKey, response.getFieldValue(primaryKey));
                          In the second save DSRequest is:
                          Code:
                          {
                              dataSource:"publicoInterno", 
                              operationType:"add", 
                              componentId:"isc_DynamicForm_36", 
                              data:{
                                  nomeEvento:"IV Seminário Internacional de Saúde Pública", 
                                  localEvento:"Brasília/DF", 
                                  periodoEvento:"18 a 22/03/2013", 
                                  nomeCandidato:"XXXX YYYY", 
                                  matriculaSIAPE:"980980", 
                                  unidadeOrigem:"iuoioi", 
                                  unidadeLotacao:"uoiuoiuio", 
                                  unidadeExercicio:"iuoioiio", 
                                  cargo:"iouoiuoi", 
                                  classe:"oiuoiuoiuoi", 
                                  padrao:"iuoiuoiuoi", 
                                  email:"cedric.lamalle@ba.com", 
                                  nivel:2, 
                                  vinculoFunasa:2, 
                                  telefoneComercial:"6189989899", 
                                  fax:"6109090909", 
                                  identidade:"9897978", 
                                  orgaoExpedidor:"SSP/DF", 
                                  cpf:"72926406134", 
                                  telefoneResidencial:"6198989898", 
                                  telefoneCelular:"61090909090", 
                                  escolaridade:2, 
                                  formacao:"lklkkljlkjlk", 
                                  feira:true, 
                                  mesaRedonda:true, 
                                  discussaoTematica:47, 
                                  visitaTecnica:46, 
                                  SQ_PUBLICO_INTERNO:null, 
                                  enviado:null, 
                                  login:null, 
                                  descricaoVisita:null, 
                                  descricaoDiscussao:null
                              }, 
                              callback:{
                                  target:[DynamicForm ID:isc_DynamicForm_36], 
                                  methodName:"saveEditorReply"
                              }, 
                              showPrompt:true, 
                              prompt:"Salvando formulário...", 
                              oldValues:{
                              }, 
                              requestId:"publicoInterno$6277", 
                              clientContext:{
                              }, 
                              useStrictJSON:true, 
                              fallbackToEval:true, 
                              afterFlowCallback:"isc_DynamicForm_36.$49z(dsRequest, dsResponse, data)", 
                              directSubmit:true, 
                              submitForm:[DynamicForm ID:isc_DynamicForm_36], 
                              editor:[DynamicForm ID:isc_DynamicForm_36], 
                              bypassCache:true
                          }
                          And the DSResponse is:
                          Code:
                          [
                              {
                                  data:[
                                      {
                                          visitaTecnica:46, 
                                          SQ_PUBLICO_INTERNO:83, 
                                          discussaoTematica:47, 
                                          telefoneComercial:"6189989899", 
                                          nomeCandidato:"XXXX YYYY", 
                                          cargo:"iouoiuoi", 
                                          mesaRedonda:true, 
                                          feira:true, 
                                          unidadeExercicio:"iuoioiio", 
                                          escolaridade:2, 
                                          padrao:"iuoiuoiuoi", 
                                          login:"maria.matos", 
                                          cpf:"12345", 
                                          descricaoVisita:"ETE Arrudas - COPASA e Centro de Pesquisa e Treinamento em Saneamento UFMG/COPASA", 
                                          vinculoFunasa:2, 
                                          nivel:2, 
                                          identidade:"9897978", 
                                          orgaoExpedidor:"SSP/DF", 
                                          unidadeLotacao:"uoiuoiuio", 
                                          fax:"6109090909", 
                                          classe:"oiuoiuoiuoi", 
                                          unidadeOrigem:"iuoioi", 
                                          descricaoDiscussao:"Gestão De Desastres Naturais", 
                                          formacao:"lklkkljlkjlk", 
                                          matriculaSIAPE:"980980", 
                                          telefoneCelular:"61090909090", 
                                          telefoneResidencial:"6198989898", 
                                          email:"cedric.lamalle@ba.com"
                                      }
                                  ], 
                                  invalidateCache:false, 
                                  isDSResponse:true, 
                                  operationType:"add", 
                                  queueStatus:0, 
                                  status:0
                              }
                          ]
                          As you can see a new primaryKey value has been generated.
                          Last edited by basis.cedric; 22 Jan 2013, 17:10. Reason: Typo

                          Comment


                            #14
                            OK, we see this issue. However, there is a general difficulty with using a FileItem in a form in "edit", as opposed to "add", mode: they cannot be programmatically populated (this is a browser security restriction over which we have no control). This means that we have no choice but to leave them blank when editing a record.

                            What this means right now is that fixing the issue causes the form to switch to "edit" mode, so you won't get additional records with new PKs generated when you save again. However, this also has the effect of clearing out the FileItem.

                            We are having discussions internally to see if we can come up with something more satisfactory. In the meantime, your best bet would be to call editNewRecord() in your saveData() callback, to prevent the situation from arising.

                            Comment

                            Working...
                            X