TOP>製品/サービス>カテゴリから探す>品質強化対策>UFT One>事例>明細が「1対n」の場合にデータ登録作業を自動化する方法

UFT One

明細が「1対n」の場合にデータ登録作業を自動化する方法

UFT Oneを機能テストツールとしてではなく、データ自動入力ツールとしてご利用頂いているお客様が多数いらっしゃいます。

Web、SAP R3、Oracle EBS等で構築した社内業務システムに対して、UFT Oneを活用し、画面上からのデータ登録作業を自動化されている方も多いのですが、アプリケーションの処理が複雑でスクリプト作成が困難となり、自動化処理について諦めたことはありませんか?
例えば、「会社名と購入物品を登録していくのだが、会社毎に購入物品の項目数が変わるので、自動化し難く、どうにかできないか」
というように、会社名(ヘッダ)と購入物品項目数(明細)が、「1 対 1」の関係ではなく、「1 対 n」の関係のデータ登録処理を自動化したいという要件があります。

UFT Oneで「1 対 n」処理のデータ登録作業を自動化するには、スクリプトを編集することが必要です。
なぜなら、UFT Oneは記録した操作をそのまま実行するという特性がある為、入力値をパラメータ化して自動実行する際に項目数が記録時と違うと、UFT Oneは実行エラーを返してしまうからです。

今回は「1 対 n」処理のデータ登録作業を自動化する方法についてUFT Oneのデータテーブル(入力データを用意したデータシート)の操作を制御する関数のご説明を交えて、スクリプト作成方法をご紹介します。

サンプルスクリプトで使用する関数の説明

(1) Datatable.GetCurrentRow 関数

[概要]
Excelの現在の行数を取得します。

[使用方法]
現在実行中の行数を取得して、変数に格納し、後続の処理で使用する場合などに使用できます。

[記述方法]
DataTable.GetCurrentRow

[戻り値]
数値で行数を取得した値、「1」のように返ります。

(2) Datatable.SetCurrentRow(SetPrevRow)関数

[概要]
使用するデータテーブルの行数を制御します。

[使用方法]
次行のデータ値や前行のデータ値を取得して、その値を基に分岐処理をする場合などに使用できます。

[記述方法]
DataTable.SetPrevRow  (単体関数で使用可能)
DataTable.SetCurrentRow (行数または変数を指定)


サンプルスクリプト

今回は以下の例をとりあげ、サンプルスクリプトをご紹介します。

商品番号(ヘッダー)に対して任意の数の商品明細(明細)があり、親(商品番号)と子(商品明細)の関係が「1対n」の場合の登録処理を自動化したい。

サンプルスクリプト

'現在の行数をカウントして、変数 CurrRow に格納
CurrRow = DataTable.GetCurrentRow

'現在のデータ値を取得して、変数 CurrDataValue に格納
CurrDataValue = DataTable("商品番号", dtGlobalSheet )
msgbox CurrRow

'データテーブルの行を次行に変更
DataTable.SetPrevRow

'データテーブルの次行のデータ値を取得し、変数 PrevDataValue に格納
PrevDataValue = DataTable("商品番号", dtGlobalSheet )

'使用行を元の行数に戻す
DataTable.SetCurrentRow CurrRow

' 現在の商品番号と前の行の商品番号が異なる場合の結果で、処理を条件分岐
If CurrDataVale <> PrevDataValue Then

'~新規商品番号の入力処理を記録 ~

else

'~商品明細情報の入力処理を記録 ~

End If


スクリプトビュー画面
(クリックで拡大します)


サンプルデータシート

まとめ

  • 複雑な処理でもデータテーブルへのデータの用意の仕方を工夫し、データテーブルを制御する関数を使用してスクリプトをカスタマイズすることで、自動化を実現できます。
  • UFT Oneの使用範囲と利用用途が増えることで、業務の自動化の範囲も広がり、大幅な工数の削減と人件費の削減が実現できます。

お求めの情報は見つかりましたでしょうか。

資料請求/お問い合わせはこちら(専門の担当者が確認し、ご対応します。)

お客様の状況に合わせて詳しい情報をお届けできます。お気軽にご相談ください。

ページの先頭へ戻る