はじめに
NetSuiteのCSVインポート機能を使用すると、トランザクションデータ(請求書、受注、発注など)の明細(ラインアイテム)を一括で追加・更新することが可能です。しかし、既存の明細を更新する際に「ラインID」を指定しないと、新しい明細行が追加される場合があります。
本記事では、CSVインポート時の「ラインID」の役割と、正しく更新するための設定方法について解説します。
1. CSVインポートで発生する問題:「ラインID」なしの場合
NetSuiteのトランザクションには、ヘッダー情報(メイン・ラインの情報)と明細行(ラインアイテムの情報)があります。
CSVを使用して既存のトランザクションの明細を変更する際、NetSuiteは以下のルールで行を識別します。
- ラインIDがある場合 → 指定されたラインIDの行を更新する。
- ラインIDがない場合
- アイテム名が既存の明細と一致する場合 → その行が更新される。
- アイテム名が一致しない場合 → 新しい明細行が追加される。
例:発注書(Purchase Order)の明細を更新したい場合
【更新前】
発注書番号 | 品目 | 数量 | 単価 | ラインID |
|---|
PO1001 | 商品A | 10 | 1,000円 | 12345 |
PO1001 | 商品B | 5 | 2,000円 | 12346 |
【ラインIDなしで更新(アイテム名がマッチする場合)】
発注書番号 | 品目 | 数量 | 単価 |
|---|
PO1001 | 商品A | 20 | 1,000円 |
PO1001 | 商品B | 10 | 2,000円 |
→ 結果:既存の「商品A」「商品B」の明細が更新される
発注書番号 | 品目 | 数量 | 単価 | ラインID |
|---|
PO1001 | 商品A | 20 | 1,000円 | 12345 |
PO1001 | 商品B | 10 | 2,000円 | 12346 |
【ラインIDなしで更新(アイテム名がマッチしない場合)】
発注書番号 | 品目 | 数量 | 単価 |
|---|
PO1001 | 商品A | 20 | 1,000円 |
PO1001 | 商品C | 15 | 3,000円 |
→ 結果:「商品A」は更新され、「商品C」は新規追加される
発注書番号 | 品目 | 数量 | 単価 | ラインID |
|---|
PO1001 | 商品A | 20 | 1,000円 | 12345 |
PO1001 | 商品B | 5 | 2,000円 | 12346 |
PO1001 | 商品C | 15 | 3,000円 | (新規追加) |
※このように、ラインIDを指定しない場合は、エラーにならずアイテム名のマッチングによって更新または追加が決まるため、注意が必要です。
2. 正しく明細を更新する方法:「ラインID」を必ず含める
NetSuiteのCSVインポートで既存の明細行を更新するためには、「ラインID」をCSVに含める必要があります。
【正しいCSVデータ】(ラインIDあり)
発注書番号 | 品目 | 数量 | 単価 | ラインID |
|---|
PO1001 | 商品A | 20 | 1,000円 | 12345 |
PO1001 | 商品B | 10 | 2,000円 | 12346 |
→ 結果:既存のラインIDと一致する行が更新される
発注書番号 | 品目 | 数量 | 単価 | ラインID |
|---|
PO1001 | 商品A | 20 | 1,000円 | 12345 |
PO1001 | 商品B | 10 | 2,000円 | 12346 |
これで、明細を適切に更新できました!
3. CSVインポート時の設定ポイント
NetSuiteでCSVを使ってトランザクションの明細を更新する際には、以下のポイントを押さえましょう。
(1) 「更新(Update)」を選択する
インポートウィザードの設定で、「追加(Add)」ではなく「更新(Update)」を選択してください。
「追加」は新規トランザクションになります。
(2) 「キーのマッピング」を適切に設定
「内部 ID(トランザクション)」と「ラインID(明細)」の両方をマッピングしましょう。
マッピング例:
- 内部IDのキー →
Internal ID - 明細のキー →
ラインID
(3) ラインIDを取得する方法
ラインIDをCSVで取得するには、以下の手順を実行します。
- 保存検索(Saved Search)を作成
- レコードタイプ:発注書(Purchase Order)、請求書(Invoice)など
- 結果フィールドに
Internal ID、ラインID、品目(Item) を追加
- 検索結果をCSVエクスポート
- エクスポートしたラインIDを編集用CSVに追加
4. よくある質問(FAQ)
Q1. ラインIDを手動で設定できますか?
いいえ、ラインIDはNetSuiteが自動生成するため、手動で変更や追加はできません。
既存の明細を更新するには、事前に検索して取得したラインIDを使用してください。
Q2. 明細を削除したい場合は?
CSVインポートでは明細の削除はできません。明細を削除したい場合は、以下の方法が必要です:
- 手動で明細行を削除
- SuiteScriptを使用して自動削除
- トランザクション全体を削除し、再作成
Q3. すべてのトランザクションでラインIDを使えますか?
いいえ、一部のトランザクション(受領書など)では、NetSuiteの仕様上、CSVで明細の更新ができません。
その場合はSuiteScriptを活用する必要があります。
5. まとめ
- CSVインポートで明細を更新する場合、「ラインID」を指定しないと新しい明細行として追加される。
- 既存の明細を更新するには、「Internal ID(トランザクション)」+「ラインID(明細)」をCSVに含めることが必須。
- 「更新(Update)」モードを選択し、キーのマッピングを適切に設定する。
- ラインIDはNetSuiteが自動生成するため、保存検索を活用して取得する。
これらのポイントを押さえれば、CSVインポートで明細の更新を正しく行うことができます!