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.
