GoAnywhere MFTのAPI機能を用いて、マスタ―データ管理の効率化

GoAnywhere MFTのAPI機能を用いて、マスタ―データ管理の効率化

Goanywhere2024.11.26

cover

はじめに

GoAnywhere MFT(以下、GoAnywhere)は、システム間、取引先相手間における多種多様なファイル転送を効率化するMFT(Managed File Transfer)ソリューションです。

GoAnywhereはクライアント機能のみならず、サーバ機能も提供し様々なサーバやシステムとの連携をサポートしております。

 

本コラムでは、GoAnywhereが提供するAPI機能とExcelのVBAを用いてマスターデータの更新作業を簡単かつ効率的に行う一例を説明いたします。

マスターデータとは

マスターデータとは組織内で共通して使用される「顧客情報」、「製品情報」、「従業員データ」などの重要な情報やデータの事で、業務プロセスにおいて複数のシステムや部門で横断的に利用されます。

マスターデータ管理(MDM:Master Data Management)とは

マスターデータ管理(MDM)とは、マスターデータを適切な状態に維持するためのプロセスや技術のことを指します。マスターデータ管理において、データの一貫性と正確性を確保することが重要になります。
そのため、不慣れな人が管理を行うとデータの重複や不整合など、多くの課題が生じやすいのですが、GoAnywhereのAPI機能を用いることで普段使い慣れているExcel上からマスターデータの更新が可能となり、そのリスクを最小にすることが期待できます。

GoAnywhereとVBAの連携方法

本コラムでは、GoAnywhereとExcelのVBAを連携させて、Excelシートに入力した検索条件に合致するマスターデータをExcelシートに読み込み、必要な編集を加えた上で、システム上のマスターデータに反映させる流れを説明します。

 

ちなみに、この方法を用いることで、直接マスターデータを編集することができないユーザーであっても、GoAnywhere経由でマスターデータの管理が可能になります。

 

GoAnywhereのAPIを用いて、マスタ―データ管理をするにあたっては、大きく2つのプロジェクトを作成する必要があります。

 

<2つのプロジェクトの概要>

  1. Excelシートに指定したマスターデータを読み込む
  2. Excelシート上で更新したデータをマスターデータに反映

 

以下、概略図になります。

 

<Project 1:Excelシートに指定したマスターデータを読み込む>

gaiyou1_new

 

(※1)指定する条件例

  • マスターデータのテーブル名
  • 抽出したい日付範囲

 

<Project 2:Excelシート上で更新したデータをマスターデータに反映>

 

gaiyou2

<Project 1の作成>

Step1:フォーム(※2)を作成

(※2)Secure Form:本来ユーザーに入力フォームのUIを提供し、個人-システム間のデータ・ファイル連携を実現する機能ですが、本コラムではExcelシートに記入された情報を入力フォームに受け渡して、条件に合わせてGoAnywhereのプロジェクト(マスターデータ連携等)を自動実行するために用います。

 

テキストフィールドを3つ用意したフォームを作成します。

各テキストフィールドには、任意の変数名を指定します。

 

<変数名:説明>

test1:Excel上で指定されたマスターデータのテーブル名を格納する変数名

test2:Excel上で指定された日付範囲の開始日を格納する変数名

test3:Excel上で指定された日付範囲の終了日を格納する変数名

 

form1

Step2:指定された条件のデータを取得

GoAnywhereのプロジェクトを編集していきます。

 

  • SQLタスク

 データを取得するためのSQL文を作成します。

query1

  • SQLステートメント:SQL文を指定します。「SELECT * FROM ${test1} WHERE CurrentDate BETWEEN '${test2}' AND '${test3}'」

 ※ ${test1},${test2},${test3}は、Secure Formで用意したテキストフィールド。

  • 出力変数:抽出されたデータが格納される配列名を指定します。

(例:data)

 

  • Write CSVタスク

 マスターデータから取得したデータをCSV形式で出力するための設定を行います。

write_csv

  • 入力行セット変数:SQLタスクの出力変数で指定した配列を指定します。

(例:${data})

  • 出力ファイル:CSVファイルの出力先ディレクトリとファイル名を指定します。ここではSecure Formを出力先に指定します。

${form:outputDirectory}\Output.csv

Step3:VBAの作成

Secure Formを用いてExcelシートにマスターデータを読み込むための機能を実行するVBAは、大きく分けて、以下の4つのステップで構成されます。

 

  1. 対象マスターデータと抽出条件をJSON形式で準備する
  2. 上記データをSecure Formにセットして実行
  3. Secure Formに返送(セット)された出力ファイル(CSV)をダウンロードする
  4. CSVファイルの中身をエクセルシートに書き出し

 

実際の画面がこちらです。

 

<マクロ実行前>

テーブル名と日付条件を指定し、実行ボタンを押します。

excel_before

 

<マクロ実行後>

指定した日付範囲のデータがシートに表示されます。

excel_after_new

<Project 2の作成>

Step1:フォームを作成

ファイルアップロードとテキストフィールドを配置したフォームを作成し、変数名を指定します。

 

<変数名:説明>

file:更新したExcelデータ(CSVファイル)のファイルパスを格納する変数名

test1:Excel上で指定されたマスターデータのテーブル名を格納する変数名

form2

Step2:Excel上で編集したデータをマスターデータに反映

GoAnywhereのプロジェクトを編集していきます。

 

  • Read CSVタスク

Excelから出力されたCSVファイルを読み込むためのタスクを設定します。

read_csv

  • 入力ファイル変数:Secure Formに添付されたファイルパスを指定します。

(${file}:Secure Formのファイルアップロードのフォームで指定した変数名)

  • 出力行セット変数:読み込んだCSVファイルのデータを格納する配列名を指定します。
  • エンコーディング:読み込むCSVファイルの文字コードを指定します。

 

  • SQLタスク(UPDATE)

編集されたデータをマスターデータに反映させます。

query2

  • SQLステートメント:UPDATE文を用いて、各フィールドに対してCSVから読み込んだデータを更新させます。
  • 出力変数:更新されたレコード数が格納される変数名を指定します。

 

  • SQLタスク(INSERT)

 Excel上で新しく作成されたデータをマスターデータに反映させます。

1つ前のSQLタスク(UPDATE)でレコードが更新されなかった場合に、SQLタスク(INSERT)は実行されます。

query3

  • SQLステートメント:INSERT文を用いて、マスターデータに追加データを挿入します。

Step3:VBAの作成

Excelから出力されたCSVファイルを、Secure Formを用いてGoAnywhereにアップロードするVBAは、大きく分けて、以下の2つのステップで構成されます。

 

  1. 更新したExcelデータをCSV形式で出力する
  2. 出力したCSVファイルをSecure Formにセットして実行

 

Secure Formが送信されると、Secure Formに紐づいているGoAnywhereのプロジェクトにCSVファイルが渡され、更新したデータをマスターデータに反映させます。

 

実際の画面がこちらです。

例として以下のようにデータを編集します。

 

変更: [ ID = “1000000001528” ] の [ Status ] を ”対応済” から ”未対応” に変更します

追加: [ ID = “1000000002067” ] 、 [ Current_Date = “2022-01-31” ] のデータを新規作成します

 

<マクロ実行前>

-Excel画面

excel

 

-マスターデータ画面

db_before

 

<マクロ実行後>

-マスターデータ画面

db_after_new 

 

まとめ

本コラムでは、実際のお客様の活用方法をもとに、より簡易化・抽象化したものをサンプルとして説明いたしました。

 

GoAnywhereで提供しているAPI機能を用いることで、専用の管理画面によるデータ転送のみならず、多様なアプリケーションと連携することができます。

 

また、逆に多様なサービスやシステムで提供されているAPIを活用して連携することもできます。

 

GoAnywhereをサーバーとしてもクライアントとしても活用することで、様々な連携や自動化などが可能となり、既存業務の効率化のみならず、ニーズに合わせた意外な活用法が見つかるかもしれません。