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

FAQのNo.から検索


  • No : 24232
  • 公開日時 : 2016/05/13 19:15
  • 更新日時 : 2019/08/30 14:26
  • 印刷

【DataSpider Servista】 Mapper での、スクリプト変数に対する値の代入の仕様について

Mapper でスクリプト変数から取得してロジックで変換した値を、入力元のスクリプト変数と、別のスクリプト変数に代入しました。結果を確認すると、同一のロジックから値を代入していても、別のスクリプト変数にはロジックによって複数回変換された値が代入されました。この動作は仕様でしょうか。
 
例 : 
・数値の場合
スクリプト変数1 (値 : 0)
ロジックによる変更 : 入力値に 1 を足す
→ スクリプト変数1 (値 : 1)
→ スクリプト変数2 (値 : 2)
 
・文字列の場合
スクリプト変数1 (値 : A)
ロジックによる変更 : 入力値の最後に A を付与する
→ スクリプト変数1 (値 : AA)
→ スクリプト変数2 (値 : AAA)
 
・日付の場合
スクリプト変数1 (値 : 2016年)
ロジックによる変更 : 入力値に 1 年足す
→ スクリプト変数1 (値 : 2017年)
→ スクリプト変数2 (値 : 2018年)
カテゴリー : 

回答

■仕様説明
 
Mapper では、スクリプト変数に対する値の代入を、内部で決めた順番で実行しています。
 
このため、「スクリプト変数1」、「スクリプト変数2」があり、「スクリプト変数1」から取得した値をロジックで変換して、「スクリプト変数1」と「スクリプト変数2」の両方に代入するように設定している場合、以下のような順番で処理が実行されます。
  1. 「スクリプト変数1」から取得した値をロジックで変換して、「スクリプト変数1」に代入
  2. 「スクリプト変数1」から取得した値(※1. で変換済)をロジックで変換して、「スクリプト変数2」に代入
このため、「スクリプト変数2」には、二回変換処理が実行された値が代入されます。
 
■対応策
 
スクリプト変数から取得した値をロジックで変換した後で、元のスクリプト変数と別のスクリプト変数に代入したい場合には、元のスクリプト変数への代入と、別のスクリプト変数への代入を異なる Mapper で実行するように設定してください。
 
例にある「・数値の場合」の場合、スクリプト変数1の値 に 1 を足す処理と、その結果をスクリプト変数2 に代入する処理を、別々の Mapper で実行するように設定してください。
 
目的別で検索
仕様確認