ステートレスフォームで既存レコードを更新する方法

ステートレスフォームで既存レコードを更新する方法

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

要件  

ステートレスフォームで指定された詳細を使用して、メインフォームのデータを更新します。

ユースケース  

注文管理システムで、顧客が注文を行い、その注文をキャンセルしたいとします。管理者は、キャンセル理由を受け取り、それを既存データに更新することでキャンセルを許可します。 しかし、その他の項目は更新できません。そのため、キャンセルに必要な項目の値のみを取得し、メインの注文データを更新します。

手順  

1. フォームを作成 し、次の 詳細を設定します。
フォーム
フォームリンク名
項目タイプ
項目名
項目リンク名
新規注文
New_Order
メール
連絡先メール
Contact_Email
日付
注文日
Order_Date
サブフォーム
  • 一行テキスト
  • 数値
  • 通貨
  • 通貨
商品
  • 商品名
  • 数量
  • 単価
  • 小計
商品
  • Product_Name
  • 数量
  • 単価
  • Sub_Total
 
通貨
合計
合計
ドロップダウン
  • 保留中
  • 出荷準備完了
  • 納品済み
  • キャンセル済み
注文ステータス
Order_Status
日付
キャンセル日
Cancellation_Date
複数行テキスト
理由
理由
キャンセル
キャンセル(このフォームを 複製 して、 「キャンセルリクエスト」という名前のステートレスフォームを作成)
日付( 初期値 : Zoho.currentdate
キャンセル日
Cancellation_Date
番号
注文 ID
Order_ID
複数行
理由(必須)
 
理由

注文ステータス 」項目を 管理者のみ に設定します。ここでは、 次の項目を追加します。
  • キャンセル日  
  • 理由 項目
これらを「 新規注文 」フォームの「 キャンセル」というセクションに追加します。
 
2. 「新規注文 」フォームの読み込み時に実行されるワークフローを作成し、「 キャンセル 」セクションを非表示にします。
 
3. 次のコードを Deluge エディターに追加します:
  1. hide Cancellation;

4. 顧客が登録済みの注文をキャンセルする場合に、「 キャンセルリクエスト 」フォームを表示します。したがって、このフォームをセクションから非表示にしておきます
 
5. 注文をキャンセルできるのは、その注文を行ったユーザーのみです。 そのため、ログイン中のユーザーが作成した注文のみを一覧表示するレポートを作成します。 新規注文 」フォームからリストレポートを作成し、名前を「 あなたの注文」とします。
 
6. 「フィルター」を追加 し、「 あなたの注文 」レポートに、現在ログインしているユーザーの有効な注文のみが表示されるようにします。具体的には、「 注文ステータス 」の値が 保留中 出荷準備完了 、または 納品済みのいずれかである注文のみを表示します。
 
7. 次に、顧客が注文をキャンセルできるように、レポートワークフローを レポート ワークフロー 追加します。「 My 注文 」レポートをクリックします。「 クイック表示 > 項目を追加 > 新しいボタンを追加」に移動します。操作項目の名前を「 キャンセルする 順番」とします。
 
8. 注文は、ステータスが「納品済み」と等しくない場合にキャンセルできます。 そのため、注文ステータス 順番 ステータス の値が「 納品済み」と等しくない場合に操作項目を表示するよう、条件を設定します。
 
9. この操作項目は、確認後に実行されるようにします。 下図のように、適切な確認メッセージを追加します。
 
10. ワークフロー名を「 'cancelOrder' とし、「 作成 ワークフロー」をクリックします。
 
11. 「 新しい操作を追加 > Deluge Script > 独自に作成」をクリックします。以下の Deluge コードを追加して、ステートレスフォーム「 キャンセルする Request 」を、現在のレコードの 順番 IDの値を渡してポップアップウィンドウで開きます。これにより、ユーザーが正しい注文のみをキャンセルできるようにします。
  1. openUrl( '#Form:Cancel_Request?Order_ID=' + ID, 'popup window', 'height=300px,width=300px');

12. 「 作成」をクリックします。これで操作項目が作成されます。

レポートワークフローの設定が完了したので、次にステートレスフォーム「 キャンセルする Request 」の動作を設定します。
 
13. 「'キャンセルする Request 」フォームの読み込み時に、ワークフローを作成して、 キャンセル日 を無効にし、 順番 ID 順番 ID 項目を隠して、これらが更新されないようにします。
 
14. 「 新しい操作を追加 」をクリックし、以下のスクリプトを追加して、 キャンセル日 を無効にし、 順番 ID 順番 ID 項目を隠します。
  1. 無効にする Cancellation_Date;
  2. 隠す Order_ID;

15. このキャンセルリクエストフォームに入力して送信すると、対応する 新規注文 データも更新される必要があります。キャンセルリクエストフォームの 送信 ボタンがクリックされたときに実行されるワークフローを作成します。
 
16. [新しいアクションを追加]>[Deluge Script]をクリックします。エディターに次の Delugeスクリプト を追加します。
  1. //キャンセルリクエストのステートレスフォームのポップアップを閉じる
  2. openUrl('#Script:page。parent。更新する ','parent window');

  3. //対応する新規注文データを取得
  4. 順番 = New_Order[ID == input。Order_ID];

  5. //理由項目を更新
  6. 順番。理由=input。理由;

  7. //キャンセル日項目を更新
  8. 順番。Cancellation_Date=input。Cancellation_Date;

  9. //注文ステータスを「キャンセル済み」に更新
  10. 順番。Order_Status = 'キャンセル済み';

17. さらに、キャンセル済みの注文のみを表示するレポートを作成することもできます。[キャンセル済み注文] という名前の一覧レポートを、 新規注文 フォームから作成します。
 
18. フィルターを追加 して、 Your 注文 レポートにキャンセル済みの注文のみを表示します。

動作を確認する                

注意事項  

  • 必要な詳細を取得するためにステートレスフォームを使用する代わりに、 新規注文 データを開き、他の項目を無効化または非表示にすることもできます。同様に、データの編集時にワークフローを作成して、キャンセル セクション以外のすべての項目を無効化または非表示にすることができます。次のように設定します。
 
そして、Delugeエディターに次のコードを追加します。
  1. 無効にする Contact_Email;
  2. 無効にする Order_Date;
  3. 無効にする Delivery_Date;
  4. 無効にする 合計;
  5. 無効にする 税金;
  6. 無効にする Net_Total;
  7. 無効にする Order_Status;

  8. //サブフォームを非表示にする
  9. 隠す 商品;

  10. //キャンセルセクションを表示する
  11. 表示 Cancellation;