全国オンライン対応受付 平日 9:00-18:00
お問い合わせ

開発記録 / 現場の実装ノート / Vol.44 現場の実装ノート Vol.2 見えないところの、ほころび

記事 02

住所は知っているのに、都道府県だけ空欄だった——足りない一項目を、自分で補う

出荷伝票を自動で作る処理を組んでいた。注文のデータから、宛先や品名を伝票の形に並べ替えて出す。出てきた伝票を、指定のフォーマットに通そうとしたら、弾かれた。

2026-07-04 公開

出荷伝票を自動で作る処理を組んでいた。注文のデータから、宛先や品名を伝票の形に並べ替えて出す。出てきた伝票を、指定のフォーマットに通そうとしたら、弾かれた。

理由は、都道府県の欄が空だから、だという。宛先の住所はちゃんと入っている。市も、町名も、番地も。なのに、都道府県だけが、ぽっかり空いていた。

「無い」のではなく、「分かれていない」

はじめは、データが欠けているのだと思った。

けれど、元の住所を見ると、そこにはちゃんと「県」から始まる完全な住所が入っていた。都道府県は、無いわけではなかった。住所という一つの文字列の中に、溶け込んでいただけだ。

伝票のフォーマットは、都道府県を独立した欄として求めていた。こちらは、住所をひとかたまりで持っていた。求められている形と、持っている形が、違っていた。

相手の欄に、こちらの持ち物を合わせる

必要だったのは、新しい情報を集めることではなかった。

すでに持っている住所の先頭から、都道府県にあたる部分を切り出して、独立した欄へ移す。それだけだ。都道府県は、全部で四十七しかない。しかも住所は、必ずその中のどれかで始まる。先頭がどれに当たるかを見て、一致したぶんを取り出せばいい。

端から順に、当てはめていく

判定は、素直に作った。

四十七の名前を用意しておいて、住所の先頭がそのどれで始まるかを順に確かめる。「北海道」で始まればそれ、「東京都」で始まればそれ。府や県も同じ要領だ。当たったら、その部分を都道府県の欄に入れ、残りを市町村以下として扱う。

一件ずつ、端から当てはめていく。派手さはないが、確実だった。伝票は、それで問題なく通るようになった。

変換は、作るより「取り出す」ことが多い

この作業を通して、腑に落ちたことがある。

データを別の形に変えるとき、足りない項目を、どこかから新しく調達しなければ、と身構えてしまう。けれど実際には、答えはもう手元にあることが多い。ただ、必要な粒度に分かれていないだけだ。

「無い」と「分かれていない」は、まったく違う。前者は集めるしかないが、後者は取り出せば済む。目の前のデータが、本当に足りないのか、それとも形が違うだけなのか。まずそこを見分けるようになった。

つなぎ目には、翻訳がいる

システムとシステムをつなぐとき、双方が同じ形でデータを持っていることは、まずない。

片方は住所をひとかたまりで、片方は項目ごとに分けて持つ。どちらが正しいという話ではない。それぞれの都合で、そういう形になっている。だからつなぎ目には、いつも小さな翻訳が要る。

その翻訳を、面倒なものと思わなくなった。形の違いを吸収する一段こそ、二つの世界を無理なくつなぐ、いちばん現場らしい仕事だと思うようになった。