日付未入力時について

GaroonカスタマイズTipsのワークフローにある、 【Garoon ワークフロー REST API を使って承認済みワークフローを kintone に登録しよう】こちらのサンプルコードを試してるのですが、希望納品日の日付を未入力で、kintoneよりデータを取得すると、「入力内容が正しくありません」と表示されてしまいます。未入力でもkintoneに登録できる手順をご教授願います。

 * Garoon の申請データを kintone のレコード形式に整形する
   */
  const formatKintoneRecord = function(workflow) {
    const items = workflow.items;
    const record = {
      requestNumber: {value: workflow.number},
      subject: {value: items.subject.value},
      createdAt: {value: workflow.createdAt},
      status: {value: workflow.status.name},
      applicantCode: {value: workflow.applicant.code},
      applicantName: {value: workflow.applicant.name},
      totalPrice: {value: items.totalPrice.value},
      dueDeliveryDate: {value: items.dueDeliveryDate.value},
      goods: {value: []},
      attachments: {value: []}
    };

こんにちは。

お知らせの Tips の通りカスタマイズを設定してみると、
希望納品日が未入力の場合、フィールドコードが dueDeliveryDate の
日付フィールドに、“–” の値が設定されて POST 処理が実行されるみたいです。

日付フィールドは、“YYYY–MM-DD” 形式の値を設定する必要があるので、
データ形式が違うことでエラーが発生している状況ですね。

上記を回避するには、以下いずれかの対応が必要かと思います。

  • 事前に dueDeliveryDate の値をチェックして、“–” の場合には、null を設定する
  • ワークフローの申請フォーム側で、希望納品日の初期値に空欄以外を設定する

ご返答ありがとうございます。

  • 事前に dueDeliveryDate の値をチェックして、“–” の場合には、null を設定する
    こちらを適用する場合にはどこに代入すればよろしいのでしょうか・・・
    ご教授いただけれたら幸いです。

以下のように、record 変数の宣言前に条件式設定して、
適当な変数に値を代入してあげたらいいと思います。

  const formatKintoneRecord = function(workflow) {
    const items = workflow.items;
    const hoge = items.dueDeliveryDate.value == "--" ? null: items.dueDeliveryDate.value;
    const record = {
      requestNumber: {value: workflow.number},
      subject: {value: items.subject.value},
      createdAt: {value: workflow.createdAt},
      status: {value: workflow.status.name},
      applicantCode: {value: workflow.applicant.code},
      applicantName: {value: workflow.applicant.name},
      totalPrice: {value: items.totalPrice.value},
      dueDeliveryDate: {value: hoge},
      goods: {value: []},
      attachments: {value: []}
    };
1 Like

ko_ji
動作確認したところ正常に動作しました。
ありがとうございます!

1 Like

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。