在庫管理におけるPower Automate for Desktop CSV変換ツール活用
目次
CSVファイルとデータの変換
CSVファイルは、カンマ区切り等で複数の項目をあらわした、テキストファイルの一種です。
システム間のデータの受け渡しでよく用いられます。
ただし、受け渡すには、それぞれのシステムでCSVファイルの形式が異なるため、元のファイルを変換し相手側の形式に合わせる必要があります。
当社が提供する実在庫管理・倉庫管理システム「在庫スイートクラウド」も、各種台帳(マスター)や入荷予定・出荷指示など、外部システムとのデータの受け渡しが必要となります。
相手側の形式に合わせる=「フォーマット変換」は、ExcelへのセルのコピーやEXCELマクロ、専用プログラムの開発など様々な方法がありますが、最近特に問い合わせが多いのがRPAを活用する方法です。
今回は、Windows10/11ユーザーなら無料で利用できる話題のRPA「Power Automate for Desktop」を使った変換方法を紹介します。
「Power Automate for Desktop」が、アプリ操作を自動化できることは広く認知されていますが、CSVファイルの変換ツールとしても優れています。
外部システムが出力した受注CSVファイルを、当社の「在庫スイートクラウド Pro」の出荷指示CSVファイルに変換する手順を題材に、具体的な設定方法をご覧いただきましょう。
項目間の対応を確認する
変換元ファイル(受注ファイル)の確認
まず、変換元ファイル(受注ファイル)をテキストエディターとCSVエディターで確認してみます。
区切り文字はカンマで全部で39項目、1行目が列名を示す項目行となっていることが分かります。
変更後ファイル(在庫スイートクラウド 出荷指示)の確認
在庫スイートクラウドProのファイルフォーマット(形式)は、マニュアル「在庫スイートクラウドPro 別紙:ファイルフォーマット」に記載されています。
出荷指示には複数のフォーマット(形式)がありますが、今回は「2[6] 出荷指示伝票(拡張)」を使用します。
こちらのフォーマットは、全部で95項目あります。
必須項目は「Keyコード」と「数量」です。
複数のオーダーが1つのファイルに入る時、在庫スイートクラウドProは「伝票番号」が変わった行がオーダーの区切りと判断します。
今回の受注ファイルは複数オーダーが含まれるので、伝票番号も設定する必要があります。
項目対応(マッピング)の決定
「伝票番号」「Keyコード」「数量」のほかにも、必要に応じて設定する項目を決定します。
今回はシンプルに、送り先名(直送先名称1)も含めた4項目を対応(マッピング)させることとします。
桁数も使用可能文字も問題なく、単純にファイル形式を合わせる(=列を並び替える)だけでの受け渡しです。
変換元ファイル | 変更後ファイル (在SC Pro 出荷指示伝票形式) |
|
13.伝票番号 | → | 1.伝票番号 |
4.送り先名 | → | 27.直送先名称1 |
32.商品コード | → | 76.Keyコード |
34.受注数 | → | 82.数量 |
・変更後ファイル(在庫スイートクラウドPro 出荷指示)で品目名が空だと、取込時に台帳の品目名が設定されます。
変換元のCSVファイルを読み込む
変換元ファイル(受注ファイル)をPower Automaete for Desktop で読み込んでみます。
読み込みは実に簡単で、「ファイル」アクショングループの中にある「CSVファイルから読み取る」アクションを追加し、パラメーターを設定するだけです。
・ファイルパス:c:\PAD\変換前出荷指示.csv
・エンコード:システムの既定値
・フィールドのトリミング:オン
・最初の行に列名が含まれています:オン
・列区切り記号:定義済み
・区切り記号:システムの既定値
・生成された変数:CSVTableOrg
※変換元ファイルの場所は「C:\PAD」、ファイル名は「変換前出荷指示.csv」固定です。
※変換元ファイル用のデータテーブル変数は「CSVTableOrg」としています。
これで、データテーブルへ格納されます。
ステップ実行し、データテーブルを確認したのが以下の画面です。
「最初の行に列名が含まれています:オン」としたので、ファイルの1行目がデータテーブル(変数名:CsvTableOrg)の列名になっていることが分かります。
変換後の列名だけのCSVファイルを読み込む
次に、変換後のCSVファイル用のデータテーブルを作成しましょう。
その為に、変換後の列名を示す項目行1行だけのCSVファイルを用意します。
ご自身で作成することも可能ですが、「2[5] 出荷指示伝票」形式は95項目あり、すべての列名を入力するのは大変です。
列名だけのファイルを用意していますので、今回はこちらからダウンロードして利用します。
【ダウンロードのリンク(zipファイル、PWは0000)】
「Zsc出荷指示項目行.csv」をCSVエディターで確認すると以下の通りです。
列名だけのファイルを用意できれば、同じく、「ファイル」アクショングループの中にある「CSVファイルから読み取る」アクションで変換後のデータテーブルに読み込みます。
・ファイルパス:C:¥PAD¥Zsc出荷指示項目行.csv
・エンコード:システムの既定値
・フィールドのトリミング:オン
・最初の行に列名が含まれています:オン
・列区切り記号:定義済み
・区切り記号:システムの既定値
・生成された変数:CSVTableZsc
※変換元ファイルの場所は「C:\PAD」、ファイル名は「Zsc出荷指示項目行.csv」固定です。
※変換元ファイル用のデータテーブル変数は「CSVTableZsc」としています。
ステップ実行し、データテーブルを確認したのが以下の画面です。
データテーブル(CsvTableZsc)に列名だけが設定されていることが分かります。
変換元から1行ずつ取得し、変換後データテーブルに追加する
変換元データテーブルから1行ずつ取得し、必要な変換=項目対応をした後に、変換後データテーブルに追加します。
行番号変数の用意
まず、行番号を示す変数(RowsNo)を用意し、初期値を0とします。
「変数」アクショングループの中にある「変数の設定」アクションを追加し設定します。
ループの設定
次に、ループの設定です。
「ループ」アクショングループの中にある「For each」アクションを追加し、変換元データテーブルから1行ずつ変数(Line)にセットするループを設定します。
ループ内の設定
ループ内では、変換元データテーブルから取得した1行を、変換し、変換後データテーブルに追加します。
以下の2アクションで実現します。
①変換後データテーブルに全項目が空の新規行を追加
「変数」アクショングループの中にある「データテーブル:行をデータテーブルに挿入する」アクションを追加し設定します。
行を挿入する際は、値も設定する必要があります。
まずは、変換後の項目数(95項目)分の空の配列値をセットします。
・データテーブル:%CsvTableZsc%
・挿入場所:データテーブルの末尾
・新しい値:%[(項目数分の空の配列値)]%
1.配列値をテキストファイルに保存
2.CSVエディターでテキストファイルを確認
※95項目であることが確認できます
②変換元データテーブルの必要項目を、変換後データテーブルの対応項目に上書き
「変数」アクショングループの中にある「データテーブル:データテーブル項目を更新する」アクションを追加し設定します。
・データテーブル:%CsvTableZsc%
・列:伝票番号
・行:%RowsNo%
・新しい値:%Line[‘伝票番号’]%
※変更後データテーブル(CsvTableZsc)の指定の行・列に、新しい値を上書きします。
同様の処理を上書きする項目ごとに行います。
このように、どちらのファイルも項目行があれば、それぞれ列名を使い直感的に項目対応(マッピング)を設定できます。
(列名がない場合は、列も番号で指定します)
処理が終われば行番号変数をインクリメント(+1)します。
この処理を変換元ファイルの行数分繰り返し行います。
変換後CSVファイルを作成する
ループが終われば、最後に、変換後のCSVファイルの作成です。
「ファイル」アクショングループの中にある「CSVファイルに書き込む」アクションを追加し、パラメーターを設定します。
・書き込む変数:%CsvTableZsc%
・ファイルパス:C:\PAD\Zsc出荷指示(変換後).csv
・エンコード:UTF-8
・列名を含めます:ON
・ファイルが存在する場合:既存の内容を上書きする
・区切り文字:システムの規定値
※変換後ファイルの場所は「C:\PAD」、ファイル名は「Zsc出荷指示(変換後).csv」固定です。
最後にCSVエディターで確認すると、2で設計した通りのファイルが出来ていることが分かります。
さいごに
Power Automate for Desktopを使った、CSVファイルを相手側システムの形式に合わせる「フォーマット変換(コンバート)」の設定方法をご覧いただきました。
CSVファイルの内容は、データテーブル変数で簡単に扱えます。
項目行があれば「元ファイルの”商品コード” を 変換後の”Keyコード”とする」といった、列名を使った直感的な指定ができます。
今回の例だと、わずか12アクションで構築でき、その簡単さに私も驚きました。
Power Automate for Desktop はPC操作を自動化するためのローコード開発ツールです。
今回はフォルダーやファイル名を固定としましたが、実運用に向けて考えられる以下の様な対応も簡単に実現できます。
<受注ファイルを在SC Pro 出荷指示へ連携する際の応用例>
・データの加工や不要レコードの削除など、前処理にも対応する。
・変換が終われば、元ファイルを別のフォルダーに自動移動させる。
・画面操作を再現し、在庫スイートクラウドのファイル取り込みまで自動化する。
Power Automate for Desktopは、低コストかつ強力に、システム間データ連携を実現するツールです。
今後は、データ連携ツールとして有力な選択肢になっていくでしょう。
既存システムと在庫スイートクラウドの連携にも、ぜひご活用ください。
大学卒業後、ハンディターミナルメーカーでプロジェクトマネージャーとして従事。2001年インフュージョンを設立。2003年よりパッケージ化したバーコード在庫管理システムを提供開始。2014年にクラウド/SaaS化した「在庫スイートクラウド」をリリースし、1,855拠点以上に導入されるサービスに成長。20年以上の経験と専門知識を活かし、コンサルティングを行っている。
こんな記事も読まれています
-
システム基礎知識
-
システム基礎知識
-
システム基礎知識
倉庫管理の基礎知識
在庫管理の基礎知識
倉庫管理の基礎知識