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 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