Yap. Neste momento está tudo a funcionar a 100%. Nada de getters/setters só
para fazer a manipulação de dados. Passei a ter models limpinhos (só
variáveis).

Já está a funcionar tanto em SQL Server como MySQL. Por uma questão de
evitar situações de check e fazer o escape de palavras reservadas, optei
por fazer outros ajustes como usar a entidade Person no lugar de User (user
é reservado em MySQL apesar de não ser em SQL Server). O campo Interval foi
substituído por Period (Interval é reservado pelo MySQL). Ou seja, optei
por evitar palavras reservadas entre os 3 sistemas, excepto campos com o
nome Date. Estou a usar * e está a funcionar.

Com ORM podia-se fazer o escape mas o objectivo é a performance em primeiro
lugar.


No dia 9 de Março de 2014 às 15:36, João Fernandes <
[email protected]> escreveu:

> O que deverias de fazer seria usar send( arguments ) que funciona tanto
> como send() ou send( array de argumentos ) e é o comportamento pretendido.
>
> A forma mais "correcta" de aceder ao abstractOperation seria fazeres
> remoteObject.getOperation(service).send( arguments)
>
> Apesar da forma como definiste esta ok, o arguments no abstractOperation
> normalmente servia para caso usasses bindings via MXML para definir esses
> valores inline
> <RemoteObject>
>     <Operation blablabla>
>          <argumentXPTO> {}</......>
>
>
> 2014-03-08 20:35 GMT+00:00 Hugo Ferreira <[email protected]>:
>
>> Boas,
>>
>> Já resolvi o meu problema e para o caso de alguém também vir a ter o
>> mesmo problema (apesar de ser tão específico), poderá ter aqui uma
>> referência, uma vez que não encontrei nada relacionado na net.
>>
>> Na minha framework, eu estava a invocar o remote object da seguinte
>> maneira:
>>
>> if (arguments.length > 0)
>>
>> remoteObject[service].arguments = arguments;
>>
>> return remoteObject[service].send();
>>
>>
>> arguments é um array de parâmetros. Isto está a funcionar há anos !
>>
>>
>> Acontece que existe um bug (a meu ver) na classe
>> mx.rpc.remoting.Operation pois o método send, invoca a função
>> convertParametersHandler com os parâmetros opcionais recebidos como
>> parâmetro e mais à frente verifica se não recebeu parâmetros mas foi
>> preenchido directamente a variável arguments, passando a usar o arguments
>> no lugar do parâmetro. Um desenho muito mal feito (eventualmente para
>> manter a compatibilidade com algo do passado).
>>
>> A solução é passar a enviar os argumentos no send e a função já vai
>> devolver os dados para manipular.
>>
>>
>>
>> Cumps,
>>
>> Hugo.
>>
>>
>>
>>
>>
>> No dia 8 de Março de 2014 às 16:52, Hugo Ferreira <[email protected]
>> > escreveu:
>>
>> Por alguma razão (parâmetro no compilador por exemplo) a mim surge o erro
>>> quando faço Date:Date no entanto como workaround passei a deixar como
>>> Date:* e os problemas de compilação desapareceram.
>>>
>>> Passei a usar convertResultHandler no remote object e funciona
>>> impecavelmente. Capturo os resultados e faço todos os tratamentos de dados
>>> que pretendo.
>>>
>>> No entanto comigo a função oposta convertParametersHandler (para fazer o
>>> tratamento no envio) não funciona bem, ou seja, o seu único parâmetro que é
>>> o array de dados vem sempre vazio !
>>>
>>>
>>> Cumps,
>>> Hugo.
>>>
>>>
>>> No dia 7 de Março de 2014 às 20:44, Hugo Ferreira <
>>> [email protected]> escreveu:
>>>
>>> Depois de remover os erros (retirar os getters), o Date:Date, passou a
>>>> dar erro.
>>>>
>>>> Estou a usar Fb 4.7 e Flex 4.11.
>>>>
>>>> Testei num projecto de testes isolado e foi o mesmo.
>>>>
>>>> Enviado do meu Galaxy Tab 2
>>>> Em 07/03/2014 15:30, "Hugo Ferreira" <[email protected]> escreveu:
>>>>
>>>> João,
>>>>>
>>>>> Muito obrigado. Esta é a solução. Não só vai resolver o meu problema
>>>>> como vai evitar o uso destes getters que não gosto muito e como vai 
>>>>> retirar
>>>>> o trabalho extra dos bindings.
>>>>>
>>>>> Vou implementar isto na minha framework para lidar de forma automático.
>>>>>
>>>>> Gracias.
>>>>>
>>>>>
>>>>> No dia 7 de Março de 2014 às 15:23, João Fernandes <
>>>>> [email protected]> escreveu:
>>>>>
>>>>>> Hugo errado, podes muito bem fazer na resposta do servidor para
>>>>>> efectuar o dito trabalho.
>>>>>>
>>>>>> Implementei na nossa app exactamente esse trabalho na função
>>>>>> http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/remoting/RemoteObject.html#convertResultHandlere
>>>>>> http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/remoting/RemoteObject.html#convertParametersHandlerpara
>>>>>>  lidar exactamente com o tratamento de informação na receção ou envio
>>>>>> de dados para o backend. No nosso caso foi para o ajuste automático dos
>>>>>> objectos Date para acertar os valores por causa dos fusos horários.
>>>>>>
>>>>>> Só temos o código num único sitio que trata da informação e acaba por
>>>>>> ser mais leve pois o processo só ocorre 1x, ao receber e ao enviar os 
>>>>>> dados
>>>>>> enquanto que se fizesse no getter, se tivesse que fazer bindings à
>>>>>> propriedade, o código seria executado para cada binding existente o que
>>>>>> torna um processo mais "pesado".
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2014-03-07 14:38 GMT+00:00 Hugo Ferreira <[email protected]>:
>>>>>>
>>>>>>> Miguel,
>>>>>>>
>>>>>>>
>>>>>>> As queries são feitas a nível do backend e este é responsável por
>>>>>>> lidar com qualquer conflito de nomes entre motores de BDs e funciona
>>>>>>> impecavelmente, inclusivé palavras reservadas.
>>>>>>> Os dados são devolvidos em AMF, sendo que os campos data (são sempre
>>>>>>> especíais entre BDs), são devolvidos no formato caracter pelo backend.
>>>>>>>
>>>>>>> Do lado do frontend uso getter/setter para trabalhar directamente
>>>>>>> com o tipo de dados Date.
>>>>>>>
>>>>>>> Posso sempre fazer coisas como não ter este getter no model e
>>>>>>> trabalhar o valor fora dele mas é algo que me vai obrigar a repetir esse
>>>>>>> código, o que não quero.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> No dia 7 de Março de 2014 às 13:21, Miguel Vaz 
>>>>>>> <[email protected]>escreveu:
>>>>>>>
>>>>>>> Já é mais alguma coisa, hugo. :-)
>>>>>>>>
>>>>>>>> Os queries são feitos do teu lado? Se sim, podes mascarar (alias)
>>>>>>>> os field names, independentemente do nome original. É básico e 
>>>>>>>> certamente
>>>>>>>> já consideraste isso, tanto que imagino que não te resolva o problema.
>>>>>>>> Estou a assumir que queres criar um VO e atribuir facilmente os dados, 
>>>>>>>> sem
>>>>>>>> reatribuições.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2014-03-07 13:15 GMT+00:00 Hugo Ferreira <[email protected]>:
>>>>>>>>
>>>>>>>> Miguel: Eu percebi. No entanto como indicado é uma propriedade de
>>>>>>>>> uma classe (tal como o João mostrou) e queria que nos abstraímos da 
>>>>>>>>> origem
>>>>>>>>> dos dados. Neste caso é um webservice e por detrás deste 2 bds 
>>>>>>>>> possíveis
>>>>>>>>> (sql server e mysql) mas lá está é irrelevante para o caso. Se é 
>>>>>>>>> possível
>>>>>>>>> alterar na origem com uma série de implicações, é (podia não ser) mas 
>>>>>>>>> lá
>>>>>>>>> está como indiquei no primeiro e-mail, esse será o último cenário.
>>>>>>>>>
>>>>>>>>> João: É verdade. Não há qualquer com a criação de uma propriedade
>>>>>>>>> em si. O problema está num getter.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> public class MyCustomClass
>>>>>>>>>
>>>>>>>>> {
>>>>>>>>>
>>>>>>>>> public var Date:*;
>>>>>>>>>
>>>>>>>>> [Transient]
>>>>>>>>>
>>>>>>>>>  public function get dateAS():Date
>>>>>>>>>
>>>>>>>>>  {
>>>>>>>>>
>>>>>>>>>  return Dates.toDate(Date);
>>>>>>>>>
>>>>>>>>>  }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> É usado * porque a origem dos dados não é DateTime e pode vir de
>>>>>>>>> uma BD SQL Server ou MySQL, etc ...
>>>>>>>>>
>>>>>>>>> O problema acontece no dateAS():Date.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Obrigado desde já,
>>>>>>>>> Hugo.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> No dia 7 de Março de 2014 às 10:20, João Fernandes <
>>>>>>>>> [email protected]> escreveu:
>>>>>>>>>
>>>>>>>>> Hugo tens a certeza que não podes criar
>>>>>>>>>>
>>>>>>>>>> public class CustomClass
>>>>>>>>>> {
>>>>>>>>>>      public function CustomClass
>>>>>>>>>>      {
>>>>>>>>>>      }
>>>>>>>>>>      public var Date:Date;
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> Acabei de adicionar esta variável a um VO meu e compilou sem
>>>>>>>>>> qualquer problema.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2014-03-07 10:18 GMT+00:00 Miguel Vaz <[email protected]>:
>>>>>>>>>>
>>>>>>>>>>  Hugo: A minha pergunta não estava envolvida em teorias sobre se
>>>>>>>>>>> devias ou não utilizar palavras reservadas, mas era relativa ao teu
>>>>>>>>>>> problema específico, se está/vem em um xml, se vem de uma bd, etc. 
>>>>>>>>>>> para que
>>>>>>>>>>> pudesse tentar ajudar a encontrar uma alternativa para contornar a
>>>>>>>>>>> limitação.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2014-03-07 10:07 GMT+00:00 Hugo Ferreira <[email protected]
>>>>>>>>>>> >:
>>>>>>>>>>>
>>>>>>>>>>> Bom dia,
>>>>>>>>>>>>
>>>>>>>>>>>> Miguel: Não me leves a mal, mas a questão não é se devia de
>>>>>>>>>>>> usar mas sim como usar. Devemos evitar o uso de palavras 
>>>>>>>>>>>> reservadas quando
>>>>>>>>>>>> possível (embora eu não concorde pois se o campo ou classe é Date, 
>>>>>>>>>>>> porque é
>>>>>>>>>>>> que devo inventar um nome que retira o significado do classe ou
>>>>>>>>>>>> propriedade). Posso te arranjar mil e uma razões para o uso de 
>>>>>>>>>>>> palavras
>>>>>>>>>>>> reservadas como a integração com outro sistema que usa essa 
>>>>>>>>>>>> variável mas
>>>>>>>>>>>> não quero disperçar a razão deste e-mail.
>>>>>>>>>>>>
>>>>>>>>>>>> APintex: Obrigado. Não encontrei na net como fazer o escape de
>>>>>>>>>>>> situações como esta e não me importo de andar com escape atrás 
>>>>>>>>>>>> porque temos
>>>>>>>>>>>> de mesmo de distinguir o que é código nosso da framework.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> No dia 7 de Março de 2014 às 10:03, APintex Gmail <
>>>>>>>>>>>> [email protected]> escreveu:
>>>>>>>>>>>>
>>>>>>>>>>>> Bom dia Hugo,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Tive um problema parecido na importação de um xml, o qual
>>>>>>>>>>>>> tinha um elemento com o nome 'country-code'.
>>>>>>>>>>>>> No itemRenderer que utiliza esse informação, ainda consegui
>>>>>>>>>>>>> com data.['country-code'], mas utilizando data.country-code dava 
>>>>>>>>>>>>> erro na
>>>>>>>>>>>>> designação 'code'.
>>>>>>>>>>>>> Não consegui outra forma, depois de perder um dia, alterei
>>>>>>>>>>>>> para 'countrycode' e ponto final. Mais tarde investigo.
>>>>>>>>>>>>> António Pinto
>>>>>>>>>>>>>
>>>>>>>>>>>>> No dia 07/03/2014, às 09:48, Hugo Ferreira <
>>>>>>>>>>>>> [email protected]> escreveu:
>>>>>>>>>>>>>
>>>>>>>>>>>>>  Bom dia,
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Necessito de criar um campo com o nome "Date" numa classe AS3.
>>>>>>>>>>>>> Sendo uma palavra reservada para o tipo de dados de data, como é 
>>>>>>>>>>>>> que posso
>>>>>>>>>>>>> contornar este problema. Alterar o nome Date não está nos meus 
>>>>>>>>>>>>> planos e
>>>>>>>>>>>>> será o último dos últimos recursos.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Obrigado,
>>>>>>>>>>>>> Hugo.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List
>>>>>>>>>>>>> da Comunidade Portuguesa de Rich Internet Applications -
>>>>>>>>>>>>> www.riapt.org" do Grupos do Google.
>>>>>>>>>>>>> Para anular a subscrição deste grupo e parar de receber emails
>>>>>>>>>>>>> do mesmo, envie um email para
>>>>>>>>>>>>> [email protected].
>>>>>>>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>>>>>>>> [email protected].
>>>>>>>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>>>>>>>> Para obter mais opções, visite
>>>>>>>>>>>>> https://groups.google.com/d/optout.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>  --
>>>>>>>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List
>>>>>>>>>>>>> da Comunidade Portuguesa de Rich Internet Applications -
>>>>>>>>>>>>> www.riapt.org" do Grupos do Google.
>>>>>>>>>>>>> Para anular a subscrição deste grupo e parar de receber emails
>>>>>>>>>>>>> do mesmo, envie um email para
>>>>>>>>>>>>> [email protected].
>>>>>>>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>>>>>>>> [email protected].
>>>>>>>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>>>>>>>> Para obter mais opções, visite
>>>>>>>>>>>>> https://groups.google.com/d/optout.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>  --
>>>>>>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List
>>>>>>>>>>>> da Comunidade Portuguesa de Rich Internet Applications -
>>>>>>>>>>>> www.riapt.org" do Grupos do Google.
>>>>>>>>>>>> Para anular a subscrição deste grupo e parar de receber emails
>>>>>>>>>>>> do mesmo, envie um email para
>>>>>>>>>>>> [email protected].
>>>>>>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>>>>>>> [email protected].
>>>>>>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>>>>>>> Para obter mais opções, visite
>>>>>>>>>>>> https://groups.google.com/d/optout.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List
>>>>>>>>>>> da Comunidade Portuguesa de Rich Internet Applications -
>>>>>>>>>>> www.riapt.org" do Grupos do Google.
>>>>>>>>>>> Para anular a subscrição deste grupo e parar de receber emails
>>>>>>>>>>> do mesmo, envie um email para [email protected]
>>>>>>>>>>> .
>>>>>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>>>>>> [email protected].
>>>>>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>>>>>> Para obter mais opções, visite
>>>>>>>>>>> https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> João Fernandes
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>>>>>>>>>> Comunidade Portuguesa de Rich Internet Applications -
>>>>>>>>>> www.riapt.org" do Grupos do Google.
>>>>>>>>>> Para anular a subscrição deste grupo e parar de receber emails do
>>>>>>>>>> mesmo, envie um email para [email protected].
>>>>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>>>>> [email protected].
>>>>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>>>>> Para obter mais opções, visite https://groups.google.com/d/optout
>>>>>>>>>> .
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>>>>>>>>> Comunidade Portuguesa de Rich Internet Applications -
>>>>>>>>> www.riapt.org" do Grupos do Google.
>>>>>>>>> Para anular a subscrição deste grupo e parar de receber emails do
>>>>>>>>> mesmo, envie um email para [email protected].
>>>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>>>> [email protected].
>>>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>>>> Para obter mais opções, visite https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>>>>>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>>>>>> do Grupos do Google.
>>>>>>>> Para anular a subscrição deste grupo e parar de receber emails do
>>>>>>>> mesmo, envie um email para [email protected].
>>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>>> [email protected].
>>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>>> Para obter mais opções, visite https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>>>>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>>>>> do Grupos do Google.
>>>>>>> Para anular a subscrição deste grupo e parar de receber emails do
>>>>>>> mesmo, envie um email para [email protected].
>>>>>>> Para publicar neste grupo, envie um email para
>>>>>>> [email protected].
>>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>>> Para obter mais opções, visite https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> João Fernandes
>>>>>>
>>>>>> --
>>>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>>>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>>>> do Grupos do Google.
>>>>>> Para anular a subscrição deste grupo e parar de receber emails do
>>>>>> mesmo, envie um email para [email protected].
>>>>>> Para publicar neste grupo, envie um email para [email protected]
>>>>>> .
>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>> Para obter mais opções, visite https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>
>>  --
>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do
>> Grupos do Google.
>> Para anular a subscrição deste grupo e parar de receber emails do mesmo,
>> envie um email para [email protected].
>> Para publicar neste grupo, envie um email para [email protected].
>> Visite este grupo em http://groups.google.com/group/riapt.
>> Para obter mais opções, visite https://groups.google.com/d/optout.
>>
>
>
>
> --
>
> João Fernandes
>
> --
> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do
> Grupos do Google.
> Para anular a subscrição deste grupo e parar de receber emails do mesmo,
> envie um email para [email protected].
> Para publicar neste grupo, envie um email para [email protected].
> Visite este grupo em http://groups.google.com/group/riapt.
> Para obter mais opções, visite https://groups.google.com/d/optout.
>

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para anular a subscrição deste grupo e parar de receber emails deste grupo, 
envie um email para [email protected].
Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Visite este grupo em http://groups.google.com/group/riapt.
Para mais opções, consulte https://groups.google.com/d/optout.

Responder a