tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Lightning開発と戻り値ラッパークラス

Lightning ComponentからApexクラスの処理を実行したとき、戻り値にsObject型を利用することができます。

f:id:tyoshikawa1106:20150602220558p:plain


console.logでデバッグしてみるとレコードの情報が正しく取得できていることを確認できます。

f:id:tyoshikawa1106:20150602220642p:plain

f:id:tyoshikawa1106:20150602220315p:plain


ところが、自作したラッパークラスを戻り値として返すとsObjectのときのようにレコード情報として渡すことができません。

f:id:tyoshikawa1106:20150602220841p:plain


console.logでデバッグしてみると結果がsObject型のときと異なることを確認できます。

f:id:tyoshikawa1106:20150602221013p:plain

f:id:tyoshikawa1106:20150602221135p:plain


ということでLightning Componentの開発を行うときは戻り値ラッパークラスではなく別の方法を考える必要があるみたいです。
戻り値ラッパークラス大丈夫でした。追記にまとめてあります。


参考になりそうなのがこちら。

追記

戻り値にラッパークラスを使用する方法ですが、『Salesforce1 Lightning Advent Calendar 2014』で紹介されていることを教えてもらいました。


まず、ラッパークラス内の使用した変数に@AuraEnabledを宣言する必要があります。
(ここの宣言ができていませんでした。。)
f:id:tyoshikawa1106:20150602224842p:plain


上記の宣言をきちんと行えば、次のようにComponent内で利用することができます。
f:id:tyoshikawa1106:20150602225545p:plain


無事に画面に表示することができました。
f:id:tyoshikawa1106:20150602225704p:plain:w400


先ほどconsole.logでデバッグしたときにレコード情報が表示されませんでしたが、上記宣言をきちんと行えば次のように表示されることも確認できました。
f:id:tyoshikawa1106:20150602225852p:plain


ということでLightning開発でも戻り値ラッパークラスは問題なく使用できるみたいです!