|
要件
|
避けるべきこと
|
推奨される解決方法
|
|
複数フォームで同じ項目を扱う場合
|
同じデータのために、重複する項目を追加しないでください。
|
ルックアップ項目を使ってフォーム間のリレーションを構成してください。
|
|
比較処理
|
バックエンドでの計算量が多くなり、パフォーマンス低下につながるため、可能な限り「contains」演算子の使用は避けてください。「equals」組み込み関数の方が比較的高パフォーマンスです。
|
Deluge の組み込み関数「equalsIgnoreCase」を使用してください。
|
|
複数レコードの更新
|
すべてのデータを取得し、コレクションをループして各レコードを個別に更新する方法は避けてください。各更新は個別のトランザクションとして扱われるため、オーバーヘッドが増え、利用可能なトランザクション数をすぐに消費してしまいます。
|
一括更新Deluge タスクを使用し、1 回のトランザクションで複数の項目を更新してください。
|
|
データコレクションに対する処理
|
すべてのデータを取得してからループして処理を行ったり、すべてのデータを取得した後に IF 条件で絞り込む方法は避けてください。
|
取得条件を指定し、必要なデータのみを取得するようにしてください。 |
|
データをループして項目値を取り出し、計算を行う方法は避けてください。
|
||
|
大量のデータを処理する際に、レポート上のカスタムアクションボタンを使用することは避けてください。これらは同期的に実行されるため、通常の利用時のアプリケーションパフォーマンスに影響を与える可能性があります。
|
そのようなスクリプトは、代わりに スケジュール機能を使用して、営業時間外に実行するようにしてください。
|
|
|
API コールの実行
|
コードブロック内に API スクリプトが含まれている場合、ワークフローは次のステートメントに進む前に API レスポンスを待機します。このような API コールをユーザー操作中に実行すると、ユーザーにとって目に見える遅延が発生する可能性があります。 |
API コールを含むワークフローは、営業時間外に実行されるようスケジュールしてください。
メモ: レスポンスを待たずにスクリプトを実行できる非同期タスクも開発中です。リリース状況を確認することができます。
|
|
既に用意されている Deluge タスクで実行できる処理に、API を使用しないでください。
|
API コールに依存するのではなく、Deluge タスクを使用し、その後に Function を呼び出して実行後のロジックを処理してください。
|
|
|
ページ内での計算
|
ページスクリプトなど、リアルタイムでユーザーの同時アクセスが多くなる可能性が高い場面で計算処理を行うことは避けてください。これらはページ処理中に実行されます。
|
そのような計算はワークフロー側に移し、ページでは計算済みの値を表示するだけにしてください。
|
|
同一フォーム内の項目に対する計算・連結
|
必要な項目がすべて同じフォーム内にある場合、スクリプトで計算や文字列連結を行うことは避けてください。
|
数式項目を使用してください。入力中にフォーム内で計算が行われるため、フォーム送信後に同じデータを再取得して計算・値の設定を行う方法よりも効率的で、不要なオーバーヘッドを避けられます。 |
|
データ更新用スケジュールの設定
|
「追加日時」などの項目を基準に実行されるフォームベースのスケジュールでは、フォーム内のすべてのデータを更新しないでください。複数ユーザーが同時にデータを追加したり、データをインポートしたりすると、複数のスケジュールが並行して実行され、一括更新を試みることでタイムアウトが発生する可能性があります。この問題は、複数のスケジュールが同時にトリガーされる可能性があるあらゆるシナリオで起こり得ます。
|
一括更新ではなく、現在対象となるデータのみを更新するようにしてください。
|
|
他サービスの API 利用
|
複数の API コールを組み合わせて複雑なロジックを実装するのではなく、必要な計算を 1 回、または少ない回数の API コールで処理できる専用キーが用意されている場合は、それを利用してください。 | 例えば Zoho Books では、複数の API を呼び出してデータをループし、請求書の総数や合計金額を計算する代わりに、response_option キーを使用して直接計算を行うことができます。これにより、重量級のスクリプトを避け、API コールの回数も削減できます。 |
|
タイムアウト
|
時間制限
|
説明
|
|
データロック タイムアウト
|
30 秒
|
リクエストがデータロックの解除を待機できる最大時間。この制限を超えると、リクエストは失敗します。 |
|
バッチ ワークフローのトランザクション タイムアウト
|
1 分
|
バッチ ワークフローが実行できる最大時間。この制限を超えると、トランザクション全体がロールバックされます。
|
|
通常ワークフローのトランザクション タイムアウト
|
5 分
|
その他すべてのワークフロータイプが実行できる最大時間。この制限を超えると、トランザクション全体がロールバックされます。
|
|
外部 API コールの読み取りタイムアウト
|
40 秒
|
API コールがタイムアウトする前にレスポンスを返すことができる最大時間。
|
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。