• 文字サイズ変更
  • S
  • M
  • L

FAQのNo.から検索


  • No : 35691
  • 公開日時 : 2024/04/22 11:56
  • 印刷
DSServistaDSCloud

DataSpider活用事例~【DataSpider】営業日を取得する

翌営業日や前営業日を取得したいのですが
DataSpider の Mapperロジックを組み合わせることで対応可能でしょうか。
カテゴリー : 

回答

CSVファイルでカレンダー情報を作成いただき、対象の CSV ファイルを読み取って
Mapperロジックで条件を指定して抽出することで翌営業日や前営業日を取得することが可能です。
 
以下に翌営業日を出力する場合の一例をご紹介いたします。
 
1.次のようなカレンダー代わりのデータをCSVに用意する
 =========
 日付,営業日OR休日
 2021年02月18日(木),営業日
 2021年02月19日(金),営業日
 2021年02月20日(土),休日
 2021年02月21日(日),休日
 2021年02月22日(月),営業日
 2021年02月23日(火),休日
 2021年02月24日(水),営業日
 =========
 
2.翌営業日を出力したい日付データを読み取り、スクリプト変数「day」に格納する。
 
3.[CSVファイル読み取り] 処理でカレンダーデータを読み取り、
 [CSVファイル書き込み] 処理にプロセスフローとデータフローを引いて、
 ドキュメント Mapper を追加する。
 
4.ドキュメント Mapper で [以後] ロジック、[日を増減] ロジックを使用して、
 カレンダーデータの 1カラム目が「day」より後の日付かどうか判定する。
 ・[以後] ロジック
 
 ・[日を増減] ロジック
 ・[数値定数] ロジック
 
 ※[以後]ロジックでは同一日付の場合は true を返すため、
  「day」の翌営業日以降を取得するには、
  あらかじめ [日を増減] ロジックを使用して
  「day」の日付データを 1日増加させる必要があります。
 
5.[同じ] ロジック、[単一行文字列定数] ロジックを使用して
 カレンダーデータの 2カラム目が「営業日」かどうかを判定する。
 ・[同じ] ロジック
 ・[単一行文字列定数] ロジック 
 
6.[And演算] ロジックを使用して、
 カレンダーデータの 1カラム目が「day」より後の日付、
 かつ「営業日」であるかの判定を行い、
 該当データを [条件による抽出] ロジックで抽出し、CSVファイルに出力する。
 ・[And演算] ロジック
 ・[条件による抽出] ロジック
 
※4~6でロジックを組み合わせると実際に以下のようになります。
 
 
例として、2021年02月18日(木) を「day」に格納した場合は、
以下の日付がCSVファイルに出力されます。
 =========
 2021年02月19日(金)
 2021年02月22日(月)
 2021年02月24日(水)
 =========
 
7.上記 6 でCSVファイルに出力したデータの1行目が翌営業日となるため、
 想定されている処理にあわせて再度データを読み取って
 使用する等の設定を作成いただくことでご要望に沿う処理を実現可能かご確認ください。
 
■補足
 [以後]ロジックを[以前]ロジックに変更し、
 [日を増減] ロジックで「day」の日付データを 1日減少させることで、
 前営業日も抽出することが可能です。
 
 ※抽出したデータの最終行が直前の営業日となるため、
  必要に応じて[ソート]処理で降順に入れ替える処理を
  設定することで、翌営業日と同じようにデータを取得することが可能です。
 ・[以前] ロジック
 ・[ソート]
目的別で検索
設定