在庫管理・倉庫管理(WMS)のお役立ちノウハウまとめ
TEL.045-472-0938(9〜12時/13〜17時半/土・日・祝休)

在庫管理ノウハウ集

在庫管理におけるPower Automate for Desktop CSV変換ツール活用

システム基礎知識

CSVファイルは、カンマ区切り等で複数の項目をあらわした、テキストファイルの一種です。
システム間のデータの受け渡しでよく用いられます。
ただし、受け渡すには、それぞれのシステムでCSVファイルの形式が異なるため、元のファイルを変換し相手側の形式に合わせる必要があります

当社が提供する実在庫管理・倉庫管理システム「在庫スイートクラウド」も、各種台帳(マスター)や入荷予定・出荷指示など、外部システムとのデータの受け渡しが必要となります。

相手側の形式に合わせる=「フォーマット変換」は、ExcelへのセルのコピーやEXCELマクロ、専用プログラムの開発など様々な方法がありますが、最近特に問い合わせが多いのがRPAを活用する方法です。

今回は、Windows10/11ユーザーなら無料で利用できる話題のRPA「Power Automate for Desktop」を使った変換方法を紹介します。
「Power Automate for Desktop」が、アプリ操作を自動化できることは広く認知されていますが、CSVファイルの変換ツールとしても優れています。
外部システムが出力した受注CSVファイルを、当社の「在庫スイートクラウド Pro」の出荷指示CSVファイルに変換する手順を題材に、具体的な設定方法をご覧いただきましょう。

※本コラムは変数やループといった、ローコード開発に必要となる基礎的なプログラミング知識をお持ちの方を前提としています。

Power Automate for DesktopによるCSVファイル変換(コンバート)

項目間の対応を確認する

変換元ファイル(受注ファイル)の確認

まず、変換元ファイル(受注ファイル)をテキストエディターとCSVエディターで確認してみます。
変換元CSVファイルをメモ帳で開く

変換元CSVファイルをcsvエディター(Cassava Editor)で開く
区切り文字はカンマで全部で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ファイルから読み取る」アクションを追加し、パラメーターを設定するだけです。

「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ファイル(項目行1行だけ)をcsvエディター(Cassava Editor)で開く

列名だけのファイルを用意できれば、同じく、「ファイル」アクショングループの中にある「CSVファイルから読み取る」アクションで変換後のデータテーブルに読み込みます。

「CSVファイルから読み取る」アクション

<パラメーター>
・ファイルパス:C:¥PAD¥Zsc出荷指示項目行.csv
・エンコード:システムの既定値
・フィールドのトリミング:オン
・最初の行に列名が含まれています:オン
・列区切り記号:定義済み
・区切り記号:システムの既定値
・生成された変数:CSVTableZsc
※変換元ファイルの場所は「C:\PAD」、ファイル名は「Zsc出荷指示項目行.csv」固定です。
※変換元ファイル用のデータテーブル変数は「CSVTableZsc」としています。



ステップ実行し、データテーブルを確認したのが以下の画面です。
データテーブル(CsvTableZsc)に列名だけが設定されていることが分かります。
変換後ファイル(項目行1行のみ)を読み込んだデータテーブルを内容確認

変換元から1行ずつ取得し、変換後データテーブルに追加する

変換元データテーブルから1行ずつ取得し、必要な変換=項目対応をした後に、変換後データテーブルに追加します。

行番号変数の用意

まず、行番号を示す変数(RowsNo)を用意し、初期値を0とします。
「変数」アクショングループの中にある「変数の設定」アクションを追加し設定します。

「変数の設定」アクション

ループの設定

次に、ループの設定です。
「ループ」アクショングループの中にある「For each」アクションを追加し、変換元データテーブルから1行ずつ変数(Line)にセットするループを設定します。

「For Each」アクション

ループ内の設定

ループ内では、変換元データテーブルから取得した1行を、変換し、変換後データテーブルに追加します。
以下の2アクションで実現します。

①変換後データテーブルに全項目が空の新規行を追加
「変数」アクショングループの中にある「データテーブル:行をデータテーブルに挿入する」アクションを追加し設定します。
行を挿入する際は、値も設定する必要があります。
まずは、変換後の項目数(95項目)分の空の配列値をセットします。
「行をデータテーブルに挿入する」アクション

<パラメーター>
・データテーブル:%CsvTableZsc%
・挿入場所:データテーブルの末尾
・新しい値:%[(項目数分の空の配列値)]%
項目数分の空の配列値を正しく記述できているかは、以下の方法で確認できます。
1.配列値をテキストファイルに保存
「項目数分の空の配列値」をメモ帳で確認
2.CSVエディターでテキストファイルを確認
「項目数分の空の配列値」をcsvエディター(Cassava Editor)で確認
※95項目であることが確認できます


②変換元データテーブルの必要項目を、変換後データテーブルの対応項目に上書き
「変数」アクショングループの中にある「データテーブル:データテーブル項目を更新する」アクションを追加し設定します。
「データテーブル項目を更新する」アクション

<パラメーター>
・データテーブル:%CsvTableZsc%
・列:伝票番号
・行:%RowsNo%
・新しい値:%Line[‘伝票番号’]%
※変更後データテーブル(CsvTableZsc)の指定の行・列に、新しい値を上書きします。

同様の処理を上書きする項目ごとに行います。
設定する項目ごとの「データテーブル項目を更新する」アクション

このように、どちらのファイルも項目行があれば、それぞれ列名を使い直感的に項目対応(マッピング)を設定できます
(列名がない場合は、列も番号で指定します)

処理が終われば行番号変数をインクリメント(+1)します。
「変数を大きくする」アクション


この処理を変換元ファイルの行数分繰り返し行います。

変換後CSVファイルを作成する

ループが終われば、最後に、変換後のCSVファイルの作成です。
「ファイル」アクショングループの中にある「CSVファイルに書き込む」アクションを追加し、パラメーターを設定します。

「CSVファイルに書き込む」アクション

<パラメーター>
・書き込む変数:%CsvTableZsc%
・ファイルパス:C:\PAD\Zsc出荷指示(変換後).csv
・エンコード:UTF-8
・列名を含めます:ON
・ファイルが存在する場合:既存の内容を上書きする
・区切り文字:システムの規定値
※変換後ファイルの場所は「C:\PAD」、ファイル名は「Zsc出荷指示(変換後).csv」固定です。

最後にCSVエディターで確認すると、2で設計した通りのファイルが出来ていることが分かります。
変更(コンバート)後のCSVファイルをCSVエディター(Cassava Editor)で確認する-1
変更(コンバート)後のCSVファイルをCSVエディター(Cassava Editor)で確認する-2
変更(コンバート)後のCSVファイルをCSVエディター(Cassava Editor)で確認する-3

さいごに

Power Automate for Desktopを使った、CSVファイルを相手側システムの形式に合わせる「フォーマット変換(コンバート)」の設定方法をご覧いただきました。
CSVファイルの内容は、データテーブル変数で簡単に扱えます。
項目行があれば「元ファイルの”商品コード” を 変換後の”Keyコード”とする」といった、列名を使った直感的な指定ができます。
今回の例だと、わずか12アクションで構築でき、その簡単さに私も驚きました。

Power Automate for Desktop はPC操作を自動化するためのローコード開発ツールです。
今回はフォルダーやファイル名を固定としましたが、実運用に向けて考えられる以下の様な対応も簡単に実現できます。

<受注ファイルを在SC Pro 出荷指示へ連携する際の応用例>
・データの加工や不要レコードの削除など、前処理にも対応する。
・変換が終われば、元ファイルを別のフォルダーに自動移動させる。
・画面操作を再現し、在庫スイートクラウドのファイル取り込みまで自動化する。



Power Automate for Desktopは、低コストかつ強力に、システム間データ連携を実現するツールです。
今後は、データ連携ツールとして有力な選択肢になっていくでしょう。
既存システムと在庫スイートクラウドの連携にも、ぜひご活用ください。

Power Automat for Desktopの設定一覧

  • faecbook
  • twitter
  • pocket
  • はてなブックマーク

こんな記事も読まれています

一覧に戻る