• No : 35894
  • 公開日時 : 2024/05/20 07:27
  • 印刷
DSServistaDSCloud

DataSpider活用事例 ~【DataSpider】Excelアダプタを使用して条件によって異なるセルへ書き込みたい~

読み取ったデータを条件によって異なるセルへ書き込みたいです。どのような方法がありますか。
 
カテゴリー : 

回答

[繰り返し(データ件数)] 処理、[条件分岐] 処理、スクリプト変数を組み合わせる方法が考えられます。
 
以下に具体的なスクリプトの作成例をご紹介します。
 
▼スクリプト例
 
▼入力データ例
 
▼出力データ例
 
【前提】
入力データの「Country」が日本の場合は「Total」の値を B2 セルに、米国の場合は「Total」の値を B3 セルに書き込みます。
それ以外の場合はデータの書き込みは行いません。
 
1.ツールパレットより、[CSVファイル読み取り] 処理をデザイナ上に配置し、プロパティにて以下の設定を行います。
 
2.ツールパレットより、[繰り返し(データ件数)] 処理、[変数代入] 処理をデザイナ上に配置し、「▼スクリプト例」のようにフローを繋ぎます。
 
 この時、[CSVファイル読み取り] 処理と [繰り返し(データ件数)] 処理の間はプロセスフローとデータフローを引きます。
 
3.スクリプト変数「Country」を作成します。
 
4.[変数代入] 処理をダブルクリックして Mapperエディタを開き、スクリプト変数「Country」に対して以下のようにマッピングリンクを引きます。
 
5.ツールパレットより、[条件分岐] 処理をデザイナ上に配置し、必須設定で「追加」ボタンを押下して追加された「条件」項目をダブルクリック → 右の▼ボタンを押下して、以下のように条件を設定します。
 
6.[条件分岐] 処理の「条件分岐開始」アイコン上で右クリックし、メニューから「条件の追加」を選択して、以下のように条件を設定します。
 
7.ツールパレットより、[マッピング] 処理を 2つデザイナ上に配置し、「▼スクリプト例」のように、[condition] 処理と [condition(1)] 処理からそれぞれフローを引きます。
 また、[繰り返し(データ件数)] 処理と [マッピング] 処理の間にはそれぞれデータフローのみを引きます。
 
8.ツールパレットより、[セル指定書き込み] 処理を 2つデザイナ上に配置し、プロパティにて以下の設定を行います。
 
9.[マッピング] 処理と [セル指定書き込み] 処理の間にプロセスフローとデータフローをそれぞれ引きます。
 
10.[マッピング] 処理をダブルクリックして Mapperエディタを開き、どちらも以下のようにマッピングリンクを引きます。
 
11.[セル指定書き込み] 処理から [end] 処理までを「▼スクリプト例」のようにフローを繋ぎます。
 
12.スクリプトを実行し、出力ファイルに想定通りのデータが書き込まれることを確認します。
 
■参考情報
 ▼DataSpider Servista
  ・[繰り返し(データ件数)]
  
  ・[条件分岐]
 
 ▼DataSpider Cloud
  ・[繰り返し(データ件数)]
  
  ・[条件分岐]
目的別で検索
設定