[OutSystems]Reactive Web AppのAggregate最適化
Reactive Web Appで、Aggregateの最適化が効かずに、サーバからクライアントへの通信時に使用されない属性まで送られてしまうという問題について、改善がEAP(2021/3/20時点)に来ていたので動作確認してみます。
ちなみに、以前Qiitaに書きました。記事はReactive Web AppのAggregateは全データが露出するです。
また、EAPの詳細ページは、以下になります。
Technical Preview - Server-to-client data transfer optimization
環境
Personal Environment(Version 11.10.0 (Build 22910))
Service Studio(Version 11.10.13)
EAPの機能を有効化
EAPの機能を試すためには、LifeTimeから該当機能を有効にしなければなりません。
LifeTimeを開き、Environments > 右上の「Options」ドロップダウンリスト > Technical Preview。
「Client-side optimizations for Reactive Web Apps」を有効にして、「Save」ボタンをクリック。
ドキュメントによると、この設定後対象モジュールをPublishする必要があります。
動作確認用セットアップ
簡単なEntityを用意し、2レコードだけ登録しておきました。
それをテスト用画面のAggregateで全件取得しています。
Aggregateの結果をTableに表示した場合
Aggregateを画面にドラッグ&ドロップしてTableに全列を表示するようにした場合の通信キャプチャは以下の通り。
{"versionInfo":{"hasModuleVersionChanged":false,"hasApiVersionChanged":false},"data":{"List":{"List":[{"LogRecordSample":{"Id":"0","Message":"AsynchronoulsLoggingAPIテスト - LogRecord","Instant":"2020-12-31T13:37:39Z","Severity":3}},{"LogRecordSample":{"Id":"0","Message":"AsynchronoulsLoggingAPIテスト - LogRecord","Instant":"2020-12-31T13:52:09Z","Severity":3}}]},"Count":2}}
わかりにくいのでブラウザの開発者ツールでeval()してみます。
表示している全列が通信データに載っていますね。
Aggregateの結果を画面で使用しない場合
Aggregateを定義するだけしておいて、画面では全く使わない場合です。
通信キャプチャは以下の通り。
{"versionInfo":{"hasModuleVersionChanged":false,"hasApiVersionChanged":false},"data":{"List":{"List":[{"LogRecordSample":{"Id":"0","Message":"","Instant":"1900-01-01T00:00:00","Severity":0}},{"LogRecordSample":{"Id":"0","Message":"","Instant":"1900-01-01T00:00:00","Severity":0}}]},"Count":-1}}
eval()した結果。本来であれば、属性ごと落ちてほしいところですが、属性は残り、OutSystemsにおける型のデフォルト値として返ってくるようです。
Aggregateの1レコードの1列だけ使った場合
画面にExpressionをおいて、GetLogRecordSamples.List.Current.LogRecordSample.MessageをValueに設定した場合。
{"versionInfo":{"hasModuleVersionChanged":false,"hasApiVersionChanged":false},"data":{"List":{"List":[{"LogRecordSample":{"Id":"0","Message":"AsynchronoulsLoggingAPIテスト - LogRecord","Instant":"1900-01-01T00:00:00","Severity":0}},{"LogRecordSample":{"Id":"0","Message":"AsynchronoulsLoggingAPIテスト - LogRecord","Instant":"1900-01-01T00:00:00","Severity":0}}]},"Count":-1}}
Author And Source
この問題について([OutSystems]Reactive Web AppのAggregate最適化), 我々は、より多くの情報をここで見つけました https://qiita.com/jyunji_watanabe/items/e6541e7c833671a096cf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .