Microsoft Dynamics AX 2009 で顧客とベンダーをインポートする方法
この記事では、Microsoft Dynamics AX 2009 の顧客を Microsoft Office Excel スプレッドシートからインポートする方法について説明します。 これらの手順では、顧客をインポートする方法について説明します。 ただし、次の手順に従って仕入先をインポートすることもできます。
適用対象: Microsoft Dynamics AX 2009
元の KB 番号: 960729
Microsoft Dynamics AX 2009 で顧客をインポートするには、次の手順に従います。
ナビゲーション ウィンドウで、[ 管理] を選択し、[ 定期的] を展開し、[ データのエクスポート/インポート] を展開し、[ Excel スプレッドシート] を展開して、[ テンプレート ウィザード] を選択します。
Excel テンプレート ウィザードで、[ 次へ] を選択します。
[ ファイル名 ] フィールドに、使用するファイルの名前を入力し、[ 次へ] を選択します。
ウィザードの [テーブルの選択] ページで、[使用可能なオブジェクト] 領域で [CustTable] を選択し、ボタンを>選択してオブジェクトを [選択したオブジェクト] 領域に挿入し、[次へ] を選択します。
注:
仕入先の場合は、[利用可能なオブジェクト] 領域で [VendTable] を選択します。
ウィザードの [ フィールドの生成] リスト ページで、[ 次へ] を選択します。
ウィザードの [ フィールドの選択 ] ページで、[ 顧客] を展開し、Microsoft Dynamics AX にインポートするフィールドを選択します。 CustTable インポートに必要なフィールドは次のとおりです。
- 顧客アカウント
- 顧客グループ
- 通貨
- 言語
- アドレス帳の種類
- アドレス帳 ID 名
- Address
- 支払条件
- 国/地域
- 郵便番号
- 状態
- 郡
- 検索名
- 市区町村
- Street name
- 国/地域
- 状態
- Company
[次へ] を選択します。
ウィザードの手順に従ってインポートを完了します。
ナビゲーション ウィンドウで、[ 基本] を選択し、[ セットアップ] を展開し、[ グローバル アドレス帳] を展開して、[パラメーター] を選択 します。
[ 番号順序 ] タブを選択し、アドレス帳 ID に番号シーケンスが選択されていることを確認します。
注:
選択した番号シーケンスを連続として設定することはできません。
手順 3 で作成したファイルを見つけます。 インポートするデータを含む Excel スプレッドシートが設定されます。
[アドレス帳 ID] フィールドは空のままにします。 [アドレス帳 ID] フィールドは、手順 10 で設定した番号シーケンスを使用して Excel スプレッドシートをインポートするときに設定されます。
ナビゲーション ウィンドウで、[ 管理] を選択し、[ 定期的] を展開し、[ データのエクスポート/インポート] を展開して、[ 定義グループ] を選択します。
[ データのエクスポート/インポート ] ダイアログ ボックスで、Excel テンプレート ウィザードを使用して作成した定義グループを選択し、[ テーブルの設定] を選択します。
[ テーブルのセットアップ ] ダイアログ ボックスで、[ 変換 ] タブを選択し、ウィンドウの既定の行の後にインポート用の次のコードを CustTable テーブルに追加します。
str dirId; ; // Check that the custtable table is not associated to Party. if (!custTable.PartyId || custTable.PartyId == "") { // Create a Party entry for the customer. dirId = DirParty::createPartyFromCommon(custTable).PartyId; custTable.PartyId = dirId; } else { DirParty::updatePartyFromCommonInsert(custTable.PartyId,custTable); }
ベンダーをインポートするには、次のコードを追加します。
str dirId; ; // Check that the vendtable table is not associated to Party. if (!vendTable.PartyId || vendTable.PartyId == "") { // Create a Party entry for the vendor. dirId = DirParty::createPartyFromCommon(vendTable).PartyId; vendTable.PartyId = dirId; } else { DirParty::updatePartyFromCommonInsert(vendTable.PartyId,vendTable); }
[変換チェック実行] ボックスを選択し、[コンパイル] ボタンを選択します。
この手順では、コードが正しく入力されているかどうかを判断します。
[ プレビュー ] タブを選択し、フィールドが Excel スプレッドシートに入力されている正しい値と一致することを確認し、[ テーブル設定 ] ダイアログ ボックスを閉じます。
[ データのエクスポート/インポート ] ダイアログ ボックスで、作成した定義グループを選択し、[ インポート] を選択します。
[ Excel インポート] ダイアログ ボックスで、手順 3 で作成した Excel スプレッドシートを選択し、[ OK] を選択します。
顧客が CustTable テーブルにインポートされていること、および対応するレコードが DirPartyTable テーブルに作成されていることを確認します。
顧客をインポートした後、顧客の追加の住所をインポートできます。 これを行うには、次の手順を実行します。
ナビゲーション ウィンドウで、[ 管理] を選択し、[ 定期的] を展開し、[ データのエクスポート/インポート] を展開し、[ Excel スプレッドシート] を展開して、[ テンプレート ウィザード] を選択します。
Excel テンプレート ウィザードで、[ 次へ] を選択します。
[ ファイル名 ] フィールドに、使用するファイルの名前を入力し、[ 次へ] を選択します。
ウィザードの [テーブルの選択] ページで、[すべてのテーブルを表示] オプションを選択し、[使用可能なオブジェクト] 領域で [アドレス] を選択し、選択したオブジェクト領域にオブジェクトを挿入するボタンを選択>し、[次へ] を選択します。
ウィザードの [ フィールドの生成] リスト ページで、[ 次へ] を選択します。
ウィザードの [ フィールドの選択 ] ページで、[ Alt. address] を展開し、Microsoft Dynamics AX にインポートするフィールドを選択します。
注:
メイン テーブルのレコード ID とテーブル ID を選択する必要があります
現在使用していない文字列である追加のフィールドを選択します。 たとえば、[運送業者のアカウント番号チェック] ボックスを選択します。
[次へ] を選択します。
ウィザードの手順に従ってインポートを完了します。
手順 3 で作成した Excel スプレッドシートを見つけて、インポートするデータを入力します。
注:
CustTable の場合は 77、VendTable の場合は 505 で、メイン テーブルの列テーブル ID を設定します。
[参照] フィールドを 0 に設定します。
スプレッドシートに追加した追加の [運送業者勘定番号 ] フィールドに、顧客アカウント番号を入力します。
アプリケーション オブジェクト ツリー (AOT) で、次の
importData
オブジェクトの メソッドを見つけます。Classes\SysDataImportDefBase
メソッドで
importData
、コードを次のように変更します。既存のコード
_curcommon.doInsert();
置換コード
if (SysExpImpGroup::find(groupId).Type == SysExpImpType::Excel && _curCommon.TableId == tablenum(Address)) { _curcommon.Insert(); } else { _curcommon.doInsert(); }
クラスを保存してコンパイル
SysDataImportDefBase
します。ナビゲーション ウィンドウで、[ 管理] を選択し、[ 定期的] を展開し、[ データのエクスポート/インポート] を展開して、[ 定義グループ] を選択します。
[ データのエクスポート/インポート ] ダイアログ ボックスで、Excel テンプレート ウィザードを使用して作成した定義グループを選択し、[ テーブルの設定] を選択します。
[ テーブルのセットアップ ] ダイアログ ボックスで、[ 変換 ] タブを選択し、ウィンドウの既定の行の後にインポート用の次のコードを CustTable テーブルに追加します。
str account; ; // If the address is for a customer and the recid for the customer is not specified if (address.AddrTableId == tablenum(CustTable) && address.AddrRecId == 0) { account = address.ShipCarrierAccount; // The additional field is added to the spreadsheet. // Fetch the recid of the customer. address.AddrRecId = CustTable::find(account).RecId; address.ShipCarrierAccount = ''; }
ベンダーをインポートするには、次のコードを追加します。
str account; ; // If the address is for a vendor and recid for the vendor is not specified if (address.AddrTableId == tablenum(VendTable) && address.AddrRecId == 0) { account = address.ShipCarrierAccount; // The additional field is added to the spreadsheet. // Fetch the recid of vendor. address.AddrRecId = VendTable::find(account).RecId; address.ShipCarrierAccount = ''; }
[変換チェック実行] ボックスを選択し、[コンパイル] ボタンを選択します。
この手順では、コードが正しく入力されているかどうかを判断します。
[ プレビュー ] タブを選択し、フィールドが Excel スプレッドシートに入力されている正しい値と一致することを確認し、[ テーブル設定 ] ダイアログ ボックスを閉じます。
[ データのエクスポート/インポート ] ダイアログ ボックスで、作成した定義グループを選択し、[ インポート] を選択します。
[ Excel インポート] ダイアログ ボックスで、手順 3 で作成した Excel スプレッドシートを選択し、[ OK] を選択します。
顧客またはベンダーの住所がインポートされていることを確認します。