はじめに
こんにちは。NetSuiteの保守・開発を担当している新人エンジニアのTです。
以前、ChatGPTの力を借りて「SuiteScriptで顧客画面に「Hello World」ボタンを配置し、ボタンを押すと「Hello World」と表示」をなんとか完成させました。
しかし、現場に「平和」の二文字はありません。 今回は、上司からの「一見簡単そうだけど、実は地獄」な無茶振りにどう立ち向かったのか、その記録をお届けします。
上司、突然の襲来
ある日の午後、CTO(あるいは上司)がデスクにやってきました。
Tくん、例のNetSuite連携ツールさ。あれ便利なんだけど、いちいちシートにデータをコピペするの面倒じゃない?
あ、以前からAleaのナレッジとして開発・検証を進めていた、GAS(Google Apps Script)を活用したNetSuite連携ソリューションのことですね!
APIでダウンロード・アップロードを自動化する仕組みですが……確かに、手作業でのコピペが残っていると完全な自動化とは言えませんね。
だよね。だからさ、『GoogleドライブのフォルダにCSVファイルを置くだけ』で、あとはGASが自動でNetSuiteにアップロードして送ってくれるようにしといてよ。あ、送り終わったファイルは自動で『送信済み』フォルダに移動するようにね。明日の朝の会議で見せたいから。よろしく!
(……え、明日!? そもそも今のスプレッドシートから直接アップロードの仕組みも残さないとダメですよね!?)
既存のアップロード・ダウンロード機能を活かしつつ、Googleドライブ連携をねじ込んだ「ハイブリッド型NetSuite連携ツール」を構築した記録を共有します。
またしても、僕とGeminiの長い夜が始まりました。
※例のNetSuite連携ツールとは?
Alea Technologyが実務で培ったノウハウを凝縮し、GoogleスプレッドシートをインターフェースにしてNetSuiteのデータを操作可能にする連携基盤です。通常はRESTletを用いたセキュアなAPI通信を行っており、今回はその「入力インターフェース」をさらに拡張する試みです。
今回のミッション:3つの要求
- 既存機能の維持:今ある「シートからの直接アップロード」は潰さない。
- フォルダ一括送信:指定フォルダのCSVを全スキャンしてNetSuiteへ。
- 送信済み管理:送り終わったファイルは自動で「送信済み」へ移動。
Geminiに相談する:ハイブリッド連携への道
「既存機能を壊さずに、新しい『フォルダ監視機能』を追加する」
……頭の中がこんがらがってきたので、今の全コードをGeminiに見せながら相談しました。
Gemini、助けて!
既存のシートアップロードを活かしたまま、特定のフォルダからCSVを読んで送信し、終わったら別フォルダへ移動させる機能を追加したいんだ。
ついでにメニュー名も分かりやすく整理して!既存はこんな感じだよ。


Geminiの回答:


おお……! 私の意図を汲み取り、既存コードを活かしたスマートな「増築プラン」を提案してくれました。
【新人Tの気づき】実はこれ、ただの効率化じゃない?
Geminiとコードを組んでいる最中、あることに気づきました。
「スプレッドシートを介さない」ことは、実は絶大なメリットがあるのでは!!!
外部システムとの親和性:
RPAや他システムが吐き出したCSVをフォルダに置くだけで連携できる「ハブ」になれる。
「5万行の壁」を突破:
スプレッドシートだと動作が重くなる大量データも、CSV直接処理ならメモリ制限を気にせず安全に送れる。
データのガバナンス向上:
人間がシート上で「こっそり手修正」する余地を無くし、データの整合性を保ったままNetSuiteへ繋げられる。
単なる「時短」ではなく、システムの信頼性を高めるアップデートなんだ!!
NetSuiteで動かしてみる:襲いかかるエラーの罠
早速デプロイして動かしてみると……

うわあああ! なんで! Geminiが教えてくれた通りに書いたのに!
すかさずGeminiにエラーメッセージをそのまま伝えます。

なるほど。エラーログから即座に正解を導き出すGemini。まるで隣に座っているベテラン先輩のような安心感です。
最終テスト:フォルダにファイルを放り込む
ついに完成。configシートにフォルダIDをセットし、送信待ちフォルダにCSVを3つ放り込みました。 メニューから 「アップロード:Googleドライブ (CSV)」 をポチり。





……勝った。
ドライブを見ると、送信待ちフォルダは空になり、隣の『送信済み』フォルダにファイルが並んでいました。


CTOへ報告
CTO、できました。フォルダ連携機能、追加完了です。既存のシート直送ボタンも残してあります!
お、早いね。……おぉ、ちゃんとフォルダ移動までしてる。やるじゃないか。
エラーになったりはしなかったのかい?
はい、途中でメソッドの引数エラーが出ましたが、Geminiと対話しながらデバッグして即座に解決しました。
ほう、即座にね。頼もしくなったじゃないか。
ありがとうございます!
あ、CTO、ついでにアップロードだけじゃなく、ダウンロードも『指定のフォルダ』に自動でCSVを吐き出すようにしておきましたよ!
お、気が利くね。スプレッドシートをいちいち開かなくても、そのフォルダを見に行けば最新のデータがCSVで転がってるってわけか。
いいね。AIを単なるコピペ元じゃなく、デバッグのパートナーとして使いこなせている。これからのエンジニアに必須のスキルだよ。じゃあ、次のステップとして……(続く)
今回のまとめ:AIとの対話が生んだ「一歩先」のシステム
今回の開発を通して、単に「無茶振りに応える」だけでなく、システムの拡張性が大きく広がりました。
双方向のハブ化
「指定フォルダからNetSuiteへ」「NetSuiteから指定フォルダへ」という、スプレッドシートを介さないデータの高速道路が開通。
エラーは成長の糧msgBox の引数エラーのような細かい仕様も、AIと一緒に解決することで自分の知識として定着。
「守り」から「攻め」の提案へ
作業時間が短縮されたことで、「ダウンロードもフォルダに吐き出しませんか?」という付加価値の高い提案ができる余裕が生まれた。
新人Tの挑戦はまだまだ続きます。次はどんな『自動化の魔法』が飛び出すのか……ご期待ください!
(本記事は実話を元にしたフィクションです)
お問い合わせ
NetSuiteのデータ連携、もっと効率化しませんか?
「CSVのコピペ作業をなくしたい」
「外部システムから届くファイルを自動でNetSuiteに取り込みたい」
そんな現場の「あと一歩」の効率化こそが、DXの第一歩です。
Alea Technologyでは、NetSuiteのポテンシャルを引き出すカスタマイズや、GASを活用した外部連携を強力にサポートしています。
今回の仕組みを自社でも導入したい、あるいはさらに高度な自動化を実現したい方は、ぜひお気軽にご相談ください。


