注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
これらのケースでは、ベストプラクティスは、問題のデータセットを更新して、Postgresのデフォルトに準拠した行識別子を使用するようにすることです。これは一般的には、スペースをアンダースコアで置き換えた小文字の文字を使用します。それ以外の場合は、識別子が正しく二重引用符で囲まれていることを確認してください。
より高度なユーザーが、データの書き戻しを Foundry データセットに行う複雑なアプリケーションを作成する場合、Phonograph サービスを使用します。ユーザーの Foundry インスタンスで Phonograph Reference Application が利用可能であることを確認してください。
最も一般的な質問は、例のクエリとウィジェットパターンを使用してそこで回答されています。さらに、リファレンス例の内容の大部分は How To: Writeback to Foundry で確認できます。
トラブルシューティングを行うには、以下の手順を実行します:
文書を注意深く読むことで、最も一般的な問題はカバーされていますが、これは深くて複雑な機能です。特定の質問や問題がある場合は、Palantir のサポートチームにご連絡ください。
エッジケースの設定では、一つまたは複数の Text Area
ウィジェットを参照する書き戻しクエリが、部分的なテキストだけで Phonograph リクエストを送信することが観察できます。たとえば、ユーザーが This is a test message for writeback
のような長いテキストを入力し、書き戻しクエリをトリガーするためにすぐに Submit
ボタンを押すと、 This is a te
だけが含まれることがあります。
根底にある原因は、Text Area ウィジェットがウィジェット入力の各キープレスで Dependency Graph を再評価するのを防ぐために使用される 0.5s のデバウンス遅延です。この遅延は、クエリが以下の場合に限り、全文なしで送信されることを意味します:
トラブルシューティングを行うには、以下の手順を実行します:
最も簡単な解決策は、ユーザーエクスペリエンスを微調整して、長いテキストを入力してから 0.5s 以内に送信オプションを使用することができないようにすることです。たとえば、クエリを送信する前に確認ダイアログを追加するか、単にフォーム要素を再順序付けして、テキストエリアウィジェットの後に完成する別のフィールドがあるようにします。
他の解決策としては、テキストエリアウィジェットを Text Input
ウィジェットと交換することで、これにはデバウンス遅延が含まれていません。また、Toast ウィジェットを送信ボタンの押下とクエリ実行の間の遅延バッファとして使用することも可能で、全文が含まれるために十分な時間が経過することを確認します。
Slate の関数は基本的な JavaScript で、アプリケーションの残りの部分からサンドボックスで実行されます。これらは純粋にユーザーが生成したコードであるため、関数に関連する問題の大部分は、基本的には、JavaScript で所望の機能を正しく実装することを誤解したり、それ以外の方法で失敗したりする問題です。
トラブルシューティングを行うには、以下の手順を実行します:
デバッグの基本的な手順は、関数を簡略化して期待通りの動作をするようにし、その後、予期しない動作が再発するまで少しずつ複雑さを追加することです。この時点で、所望の動作を実装する正しい方法を理解するために必要な更なる研究を特定しました。
デバッグのための追加ツールとして Chrome DevTools Debugger ↗ があります。また、Debug using DevTool の関連セクションも参照してください。関数に debugger;
ステートメントで "ブレークポイント" を追加します。
その後、Chrome DevTools パネルを開いた状態で、関数ウィンドウの Test
ボタンをクリックします。関数の実行はブレークポイントで一時停止し、関数コードをステップスルーして変数の値を表示できます。
関数は、通常の使用では呼び出されず、代わりに入力と出力が最新でなく、出力が下流の依存関係によって JSON にレンダリングされるときに、Dependency Graph によって実行されるため、Events フレームワークと非直感的な方法で相互作用します。
トラブルシューティングを行うには、以下の手順を実行します:
関数が予期しない方法で動作している場合は、Dependency Graph と Event Framework /documentation/product/slate/application-functionality#best-practices-and-common-patterns-for-javascript-functions
の中でどのように関連しているかを再確認してください。
Event が [f_myFunction].run
アクションを呼び出す必要があるパターンは非常に稀です。このパターンに依存しようとするアプリケーションは、依存性グラフの通常の解決を使用するようにリファクタリングするべきです。関数を直接トリガーする代わりに、上流の依存性を更新します。たとえば、クエリをトリガーするか、参照される変数の値を設定します。
マップウィジェットは、適切に定義された geojson
マップフィーチャー、たとえばポイントやジオメトリをレンダリングすることをサポートしています。これらは動的に生成されたり、データベースから取得されたりすることができますが、フォーマットは特定のものであり、手作業で作成したり、新しいアルゴリズムを通じて作成したりする場合は達成が難しいことがあります。
トラブルシューティングを行うには、以下の手順を実行します:
GeoJSON in the Map Widget
リファレンス例を見直します。あなたの Foundry インスタンスでそれを検索してみて、もし利用できない場合は、問題を提出してください。
[x]
をどのように上書きしますか?Slate のすべてのスタイリングは最終的に CSS に変換されます。あなたは Chrome Inspector ツールを使ってアプリケーションの任意の要素を調査することができます(右クリック > Inspect on any element)それにより、その要素に適用されているクラスを確認し、ドキュメントの階層を理解することができます。
トラブルシューティングを行うには、以下の手順を実行します:
Style の文書部分を見直して、スタイルがどのように定義され、適用され、Slate でレンダリングされるかをより深く理解します。
一部の設定では、ウィジェットを “動的” 幅と高さに設定しようとすると、代わりにページが読み込まれたときにウィジェットが小さなボックスでレンダリングされることがあります。[w_myWidget.resize]
アクションをトリガーすると、ウィジェットは期待したサイズにレンダリングされます。
この挙動は、CSS が各ウィジェット要素の幅と高さをパーセンテージで指定している(通常は 100%)と、親コンテナの一つ以上に Flex
プロパティがあるという衝突によって引き起こされます。これらの衝突により、Slate はレンダリング時にウィジェットを囲む要素の正確な寸法を決定することができず、その結果、ウィジェットが小さくレンダリングされます。
トラブルシューティングを行うには、以下の手順を実行します:
レスポンシブなウィジェット寸法を実装するための適切なパターンは、親コンテナと子ウィジェットの Flex
設定だけを使用することです。他の width
や height
プロパティを手動で CSS で設定しないでください。解決するためには、ルートの子ウィジェットから始めて、すべての親ウィジェットを通じて移動し、位置指定や寸法の CSS ルールをすべて削除します。
margin
や padding
プロパティを使用して子ウィジェットをインセットしたり、それ以外の方法で整列したりすることができます。もし Flexbox CSS ルールに精通しているなら、Chrome Inspector を使ってどの要素やクラスをターゲットにし、オーバーライドや追加の Flexbox ルールを提供して、正確な期待する動作を達成することができます。
Slate は迅速なアプリケーション開発に最適化されています。基礎となるフレームワークはレイアウトやスタイリングの設定可能性にほとんど制限を課しません。その結果、Slate は全てのアプリケーションを印刷媒体やエクスポートに適した方法で一般的にレンダリングすることができません。アプリケーション開発者はアプリごとに印刷をサポートするための時間を投資する必要があります。
トラブルシューティングを行うには、以下の手順を実行します:
最初の最良の選択肢は、あなたのアプリを印刷する必要性やリクエストがなぜあるのかを考えることです。ユーザーは単に作成したビューを保存し、後で参照したり、プレゼンテーションで使用したりする方法が必要なのでしょうか?
この場合は、組み込みの Get Shareable Link 機能を使用する(またはユーザーに使用するように強調する)ことを検討してみてください。"View" モードでは、Action メニューの下にあります。このリンクは、リンクがロードされるたびに、ページのすべてのウィジェットをリンクが生成されたときの状態に戻す ID を持つ一意の URL を作成します。これは、たとえば、一連の入力ウィジェットがユーザーによって設定された入力にデフォルトで設定され、クエリなどにフィードされることを意味します。
本当に印刷したりエクスポートしたりしなければならない場合は、あなたのアプリケーションが適切にレンダリングされるように追加のメディア CSS スタイルを定義する必要があります。
最初に、少なくとも Global Styles にこれを追加する必要があります: