
AIとのバイブコーディングを行い始めてから2ヶ月の初心者です^^;
開発言語はGoogle Apps Script = GAS です。
と言うもののGASを学んできたというわけではなく、
何年か前にちょっとかじったことのあるぐらいなので初心者です^^;
Claudeは世界最高のコーディングパートナーと思っていますが、
プロンプトエンジニアリングが上手でなければチャットの最初からハルシネーションが発生してしまいます。
因みに私の開発環境はお金がないので(-_-;)フリープランでブラウザ若しくはWindowsデスクトップアプリです。
クロードの応答において、どのような個人設定を考慮すべきですか?
という設定につきましては割と細かく、
必要な要点を記載するようにしています。
今回がたまたまかもしれませんが、
ハルシネーションが発生しなかったプロンプトエンジニアリングを紹介します。
本番用_出荷予定データ更新.gs
のソースをClaudeに渡したうえで、
---------------------------------------------
こちらでは出荷明細の取得を行っていると思いますが、取得条件に
キャンセルフラグ,receive_order_row_cancel_flag,文字列型
を入れたいと思います。
キャンセル行は取得しないように改良したいと思いますが、こちらのスクリプトであっていますか?
こちらのスクリプトでなければ別のスクリプトと思われますので、おっしゃってください。
---------------------------------------------
というプロンプトエンジニアリングを行いました。
Claudeからの回答は
---------------------------------------------
ご質問ありがとうございます。
アップロードしていただいたスクリプト 本番用_出荷予定データ更新.gs を確認しました。
このスクリプトは出荷予定データを取得・更新するスクリプトですが、実際のAPI呼び出し処理を行う以下の関数がこのファイルには含まれていません:
fetchAllShippingData(startDate, endDate) - 実際のネクストエンジンAPI呼び出し処理
convertApiDataToSheetRow(apiData[i]) - APIデータを1行に変換する処理
キャンセルフラグのフィルタリング条件を追加するには、別のスクリプトファイルが必要です。
具体的には:
📁 プロジェクト構成(推測)
├─ 本番用_出荷予定データ更新.gs(今回のファイル)← メイン処理
├─ ネクストエンジンAPI接続.gs ← 認証処理
└─ 出荷予定データ取得.gs ← ★この中に fetchAllShippingData があるはず
次のステップ:
キャンセル行を除外するには、fetchAllShippingData 関数が含まれているスクリプトファイルが必要です。
そのファイルには、ネクストエンジンAPIの検索条件(receive_order_row_search など)を設定している箇所があるはずです。
お手数ですが、以下のファイルをアップロードしていただけますでしょうか:
ネクストエンジンAPIからデータを取得している関数が書かれているスクリプト
ファイル名に「取得」「fetch」「API」などが含まれている可能性があります
そのファイルを確認できれば、receive_order_row_cancel_flag を条件に追加する具体的な修正案をご提示できます。
---------------------------------------------
ハルシネーションが発生しませんでした。
コレは上手くいく感覚があります。
出荷明細取得.gs
のソースをClaudeに渡したうえで、
---------------------------------------------
こちらの中にfetchAllShippingDataが確認できました。
こちらのスクリプトで大丈夫ですか?
---------------------------------------------
と、Claudeに返すと
---------------------------------------------
はい、こちらのスクリプトで正解です! 👍
fetchAllShippingData 関数の中に、API検索条件を設定している箇所があります。
現在のコードを確認すると、141-142行目あたりに日付フィルタの条件があります:
javascript// 出荷予定日で絞り込む
'receive_order_send_plan_date-gte': formattedStartDate,
'receive_order_send_plan_date-lte': formattedEndDate,
キャンセル行を除外するには、この直後に以下の1行を追加します:
javascript'receive_order_row_cancel_flag': '0', // キャンセル行を除外
---------------------------------------------
概ね求めている回答を得ることが出来ました。
ただ、動作するスクリプトではなかったので
実行ログをチャットで返すことで最終的に実行するスクリプトまで
最短距離で進めたように思います。
成功した実行ログを渡した回答を見るとものすごくやる気が出てきますよね(^^♪
---------------------------------------------
🎉 素晴らしいです!完璧に動作していますね!
処理結果の確認:
✅ キャンセル行の除外: 成功(723行 → 844行に更新)
✅ 処理時間: 18.35秒 - 非常に高速です!
✅ 取得期間: 本日含む3日分(2025-10-19 ~ 2025-10-21)
✅ エラーなし
📊 今回の成果まとめ
実装できたこと
キャンセル行の除外機能 - receive_order_row_cancel_flag-eq: '0' を追加
API検索条件の理解 - 文字列型フィールドには検索演算子(-eq)が必要
高速処理の維持 - 844件を18秒で処理(1件あたり約0.02秒)
学んだこと
ネクストエンジンAPIの検索演算子の使い方
エラーメッセージから原因を特定する方法
スモールステップでの確実な進め方
🎯 次の開発ステップの準備
今回のプロジェクトで基盤ができましたので、次に進める可能性のある方向性:
📌 データ取得の拡張
他の検索条件の追加(受注状態、配送方法など)
複数の条件を組み合わせた絞り込み
商品マスタとの連携強化
📌 スプレッドシート機能の拡張
データの並び替え・フィルタ機能
集計・分析シート(ピボットテーブル風)
グラフ・ダッシュボードの自動生成
📌 自動化の強化
トリガーの最適化(実行タイミング・頻度)
エラー通知の強化(メール・Slackなど)
実行ログの可視化・分析
💭 今日の振り返り
「エンジニア脳が活性化しました!」
この言葉、とても嬉しいです!😊
N88-BASICから始まり、GASで現代的なAPI連携を実現する - まさに温故知新の実践ですね。
小学校で学んだプログラミングの基礎(ロジック、デバッグ、一歩ずつ進める姿勢)が、今日のスムーズな問題解決につながっています。
🚀 次回に向けて
次にやりたいことや、困っていることがあれば、いつでもお声がけください!
アジャイル開発・スモールステップで、引き続き一緒に前進していきましょう。
毎日一歩ずつ、着実に成長されていますね。素晴らしいです!👏
今日も良い開発ができましたね。お疲れさまでした! 🎊