|
要件
|
避けるべきこと
|
推奨される解決策
|
|
複数フォームで同じ項目を扱う場合
|
同じデータのために、フォームごとに別の項目を追加しないでください。
|
ルックアップ項目を使ってフォーム間のリレーションを構成してください。
|
|
比較処理
|
バックエンドでの計算量が多くなり、パフォーマンス低下につながるため、'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 側で直接計算を行うことができます。これにより、重いスクリプト処理を避け、API コールの回数も削減できます。 |
|
タイムアウト
|
時間制限
|
説明
|
|
データロック タイムアウト
|
30 秒
|
リクエストがデータロックの解放を待機できる最大時間。この制限を超えると、リクエストは失敗します。 |
|
バッチ ワークフローのトランザクション タイムアウト
|
1 分
|
バッチ ワークフローが実行できる最大時間。この制限を超えると、トランザクション全体がロールバックされます。
|
|
通常ワークフローのトランザクション タイムアウト
|
5 分
|
その他すべてのワークフロータイプが実行できる最大時間。この制限を超えると、トランザクション全体がロールバックされます。
|
|
外部 API 呼び出しの読み取りタイムアウト
|
40 秒
|
API 呼び出しがタイムアウトする前にレスポンスを返すことができる最大時間。
|
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。