Advertisement
Guest User

Untitled

a guest
Mar 29th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 42.61 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <MapConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.           xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  4.   <DataProviders>
  5.       <!--<CsvProvider Name="CsvProvider"  DBPath="c:\Users\HP\Dropbox\Exquance Dev Desktop\Client Data Import\Tapiola\Migration source files\31.12.2017" Delimiter=";"/>-->
  6.       <CsvProvider Name="CsvProvider"  DBPath="c:\Users\maxwave\Dropbox\Exquance Dev Desktop\Client Data Import\Tapiola\Migration source files" Delimiter=";"/>
  7.       <CsvProvider Name="TsvProvider" DBPath="c:\Users\maxwave\Dropbox\Exquance Dev Desktop\Client Data Import\Tapiola\Migration source files\" Delimiter="&#009;" CacheData="true"/>
  8.       <!--<XQDataProvider Name="XqProvider" ConnectionString="data source=(localdb)\v12.0;Database=xqdb_tapiola_import_8;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"  />-->
  9.       <XQDataProvider Name="XqProvider" ConnectionString="data source=xq-dev-mssql.exquance.com, 1414;Database=maxwave_tapiola;MultipleActiveResultSets=True;App=EntityFramework;User=sa;Password=tRsD]kZ70ydO"  />
  10.       <!--<XQDataProvider Name="XqProvider" ConnectionString="data source=188.117.31.20,1433;Database=xqdb_tapiola_import_8;MultipleActiveResultSets=True;App=EntityFramework;User=tapiola;Password=btZU3V8Mai5Gi8Y3jabn"  />-->
  11.   </DataProviders>
  12.  
  13.   <MapActions>
  14.     <MapAction MapDataBaseName="MainPart"
  15.           DefaultSourceProviderName="CsvProvider"
  16.           DefaultTargetProviderName="XqProvider"
  17.           DoMapping="true">
  18.     </MapAction>
  19.   </MapActions>
  20.  
  21.  
  22.   <TransitionGroups>
  23.     <TransitionGroup  TraceLevel="ObjectSet">
  24.  
  25.       <GlobalObjectTransition Name="GlobalObject">
  26.         <ValueTransition From="{ 71 }" To="asset_country_id"/>
  27.         <ValueTransition From="{ 49 }" To="main_currency_id"/>
  28.         <ValueTransition From="{ 'c:\\Users\\maxwave\\Dropbox\\Exquance Dev Desktop\\Client Data Import\\Tapiola\\Migration source files' }" To="source_files_path"/>
  29.       </GlobalObjectTransition>
  30.  
  31.       <ObjectSetTransition Name="Asset segments" Enabled="false" QueryToSource="segments.txt"  SourceProviderName="TsvProvider"   SaveCount="200">
  32.         <ObjectTransition TargetDataSetId="segment">
  33.           <KeyTransition SourceKey="name" TargetKey="name"/>
  34.           <ValueTransition From="name" To="name"/>
  35.           <ValueTransition From="fullname" To="fullname" />
  36.           <ValueTransition From="default_ppe_category" To="default_ppe_category" DataType="int" />
  37.         </ObjectTransition>
  38.       </ObjectSetTransition>
  39.  
  40.       <ObjectSetTransition Name="Asset grades" Enabled="false" QueryToSource="asset_grades.txt" SourceProviderName="TsvProvider"  SaveCount="200">
  41.         <ObjectTransition TargetDataSetId="asset_grade">
  42.           <KeyTransition SourceKey="name" TargetKey="name"/>
  43.           <ValueTransition From="name" To="name" />
  44.           <ValueTransition From="fullname" To="fullname" />
  45.           <LookupValueTransition From="segment_name" To="segment" LookupDataSetId="segment" LookupKeyExpr="name"/>
  46.         </ObjectTransition>
  47.       </ObjectSetTransition>
  48.      
  49.  
  50.       <ObjectSetTransition Name="Master analyses" Enabled="false" QueryToSource="master_analyses.csv" SourceProviderName="TsvProvider">
  51.  
  52.         <ConditionUnit Expression="{SRC[migrate]=='false'}" OnTrue="SkipObject"/>
  53.  
  54.         <GlobalObjectTransition Name="GlobalObject">
  55.           <ValueTransition From="{ SRC[uuid] }" To="ma_uuid"/>
  56.         </GlobalObjectTransition>
  57.  
  58.         <ObjectTransition TargetDataSetId="master_analysis">
  59.           <KeyTransition SourceKey="uuid" TargetKey="uuid"/>
  60.  
  61.           <ValueTransition From="uuid" To="uuid" />
  62.           <ValueTransition From="name" To="name" />
  63.           <ValueTransition From="{ GLOBAL[main_currency_id] }" To="value_currency_id" DataType="int" />
  64.           <ValueTransition From="{ 13 }" To="owner_user_id" />
  65.           <!--some already created user in db-->
  66.           <ValueTransition From="valuation_date" To="valuation_date" DataType="DateTime" />
  67.           <ValueTransition From="project_id" To="project_id" DataType="int" />
  68.          
  69.           <UseTypeAssumptionsTransition  AssumptionType="IdleTime">
  70.             <LookupValueTransition
  71.                              From="name"
  72.                              LookupDataSetId="use_types_assumptions.csv"
  73.                              ProviderName="TsvProvider"
  74.                              LookupKeyExpr="Use Type"
  75.                              DataType="double"
  76.                              Return="Idle Time (mths)" />
  77.           </UseTypeAssumptionsTransition>
  78.  
  79.           <UseTypeAssumptionsTransition  AssumptionType="TiCostPerSqm">
  80.             <LookupValueTransition
  81.                              From="name"
  82.                              LookupDataSetId="use_types_assumptions.csv"
  83.                              ProviderName="TsvProvider"
  84.                              LookupKeyExpr="Use Type"
  85.                              DataType="double"
  86.                              Return="TI Cost/sqm" />
  87.           </UseTypeAssumptionsTransition>
  88.  
  89.         </ObjectTransition>
  90.  
  91.         <ObjectTransition TargetDataSetId="analysis_currency">
  92.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{GLOBAL[main_currency_id]}" TargetKey="{Field(VALUE[master_analysis],'uuid')}/{VALUE[currency_id]}"/>
  93.           <LookupValueTransition From="{ GLOBAL[ma_uuid] }" LookupDataSetId="master_analysis" LookupKeyExpr="uuid" To="master_analysis"/>
  94.           <ValueTransition From="{GLOBAL[main_currency_id]}" To="currency_id" />
  95.         </ObjectTransition>
  96.        
  97.       </ObjectSetTransition>
  98.  
  99.       <ForEachTransition Name="Master analyses Assets data"  QueryToSource="master_analyses.csv" SourceProviderName="TsvProvider">
  100.         <CsvProvider DBPath="{ GLOBAL[source_files_path] }" Query="master_analyses.csv" Delimiter="&#009;"/>
  101.        
  102.         <ConditionUnit Expression="{SRC[migrate]=='false'}" OnTrue="SkipObject"/>
  103.  
  104.         <GlobalObjectTransition Name="GlobalObject">
  105.           <ValueTransition From="{ SRC[uuid] }" To="ma_uuid"/>
  106.           <ValueTransition From="{ SRC[prev_ma_uuid] }" To="prev_ma_uuid" />
  107.           <ValueTransition From="{ SRC[valuation_date] }"  To="valuation_date" />
  108.           <ValueTransition From="{ SRC[valuation_date] }"  To="file_postfix" >
  109.             <TypeConvertTransitUnit DataType="DateTime"/>
  110.             <TransitUnit Expression="{((DateTime)VALUE).ToString('yyyyMM')}"/>
  111.           </ValueTransition>
  112.           <ValueTransition From="{ SRC[default_acquisition_date] }" DataType="DateTime" To="default_acquisition_date"/>
  113.         </GlobalObjectTransition>
  114.  
  115.    
  116.  
  117.       <ObjectSetTransition Name="Growth Rates" Enabled="false"  QueryToSource="growth_rates_template.csv" SourceProviderName="TsvProvider" >
  118.         <ObjectTransition TargetDataSetId="rate_growth">
  119.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{SRC[Name]}" TargetKey="{Field(VALUE[master_analysis],'uuid')}/{VALUE[name]}"/>
  120.  
  121.           <ValueTransition From="Name" To="name" />
  122.           <LookupValueTransition From="{ GLOBAL[ma_uuid] }" LookupDataSetId="master_analysis" LookupKeyExpr="uuid" To="master_analysis"/>
  123.           <ValueTransition From="{GLOBAL[asset_country_id]}" To="country_id" />
  124.  
  125.           <ValueTransition From="value_y9999" To="value_y9999" DataType="float" />
  126.           <ValueTransition From="value_y1" To="value_y1" DataType="float" />
  127.           <ValueTransition From="value_y2" To="value_y2" DataType="float" />
  128.           <ValueTransition From="value_y3" To="value_y3" DataType="float" />
  129.           <ValueTransition From="value_y4" To="value_y4" DataType="float" />
  130.           <ValueTransition From="value_y5" To="value_y5" DataType="float" />
  131.           <ValueTransition From="value_y6" To="value_y6" DataType="float" />
  132.           <ValueTransition From="value_y7" To="value_y7" DataType="float" />
  133.           <ValueTransition From="value_y8" To="value_y8" DataType="float" />
  134.           <ValueTransition From="value_y9" To="value_y9" DataType="float" />
  135.           <ValueTransition From="value_y10" To="value_y10" DataType="float" />
  136.           <ValueTransition From="value_y11" To="value_y11" DataType="float" />
  137.           <ValueTransition From="value_y12" To="value_y12" DataType="float" />
  138.           <ValueTransition From="value_y13" To="value_y13" DataType="float" />
  139.           <ValueTransition From="value_y14" To="value_y14" DataType="float" />
  140.           <ValueTransition From="value_y15" To="value_y15" DataType="float" />
  141.           <ValueTransition From="value_y16" To="value_y16" DataType="float" />
  142.           <ValueTransition From="value_y17" To="value_y17" DataType="float" />
  143.           <ValueTransition From="value_y18" To="value_y18" DataType="float" />
  144.           <ValueTransition From="value_y19" To="value_y19" DataType="float" />
  145.           <ValueTransition From="value_y20" To="value_y20" DataType="float" />
  146.  
  147.         </ObjectTransition>
  148.       </ObjectSetTransition>
  149.  
  150.  
  151.       <ObjectSetTransition Name="Cities" Enabled="false"  QueryToSource="{SRC[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv"   SaveCount="200">
  152.         <ObjectTransition TargetDataSetId="city" >
  153.           <KeyTransition SourceKey="Postitoimipaikka" TargetKey="name"/>
  154.           <ValueTransition From="Postitoimipaikka" To="name" />
  155.           <ValueTransition From="{ 71 }" To="country_id" DataType="int"/> `
  156.         </ObjectTransition>
  157.       </ObjectSetTransition>
  158.  
  159.       <ObjectSetTransition Name="Tenants" Enabled="false" QueryToSource="{SRC[valuation_date]}\\Rentroll_{GLOBAL[file_postfix]}.csv" SaveCount="500">
  160.         <ObjectTransition TargetDataSetId="tenant">
  161.           <KeyTransition SourceKey="VUOKRALAINEN" TargetKey="name"/>
  162.           <ValueTransition From="{ CapitalizeWordLetters(SRC[VUOKRALAINEN])}" To="name"/>
  163.         </ObjectTransition>
  164.       </ObjectSetTransition>
  165.      
  166.  
  167.       WARNING: After REIMPORTING ASSETS NEED TO IMPORT 'Asset actuals' and 'Repair budget timeseries' transitions
  168.       <ObjectSetTransition Name="Assets" Enabled="false" QueryToSource="{SRC[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv"  SaveCount="10">
  169.         <AssetTransition TargetDataSetId="asset">
  170.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}" TargetKey="external_id"/>
  171.           <ValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}"  To="external_id" />
  172.           <ValueTransition From="Kitunnus"  To="cost_center" />
  173.           <ValueTransition From="{ 10 }" To="forecasting_period_years"/>
  174.  
  175.           <LookupValueTransition From="{ GLOBAL[ma_uuid] }" LookupDataSetId="master_analysis" LookupKeyExpr="uuid" To="master_analysis"/>
  176.  
  177.           Set cash_flow_template and market_value_currency_id before calling InitAsset method!
  178.          
  179.           <LookupValueTransition From="{ 3 }" LookupDataSetId="cash_flow_template" LookupKeyExpr="id"
  180.                                   To="{ THIS.SetCashFlowTemplate(TARGET,VALUE) }"/>
  181.          
  182.           Important to write in asset.currency (not in market_value_currency_id)
  183.           <LookupValueTransition From="{ GLOBAL[main_currency_id] }" LookupDataSetId="currency" LookupKeyExpr="id" To="currency"/>
  184.  
  185.           Copy all cash flow values from previous asset. Important to do it before InitAsset method
  186.           WARNING: After REIMPORTING ASSETS NEED TO IMPORT 'Asset actuals' NODE (wollowing node erase it)
  187.           <LookupValueTransition From="{GLOBAL[prev_ma_uuid]}/{SRC[Kitunnus]}"
  188.                         To="cash_flow_model"
  189.                         LookupDataSetId="asset"
  190.                         LookupKeyExpr="external_id"
  191.                         OnNotFound="Continue"
  192.                         Return="{VALUE !=null ? VALUE[cash_flow_model] : null }" />
  193.          
  194.           <ValueTransition To="{ THIS.InitAsset(TARGET) }"/>
  195.  
  196.           <ValueTransition From="{ CapitalizeWordLetters(SRC[Kohteen nimi])}"  To="name" Replace="@empty=Asset" />
  197.           <ValueTransition From="{TARGET[name]}"  To="fullname" />
  198.           <ValueTransition From="{ CapitalizeWordLetters(SRC[Osoite])}"  To="address" Replace="@empty={null}" />
  199.           <ValueTransition From="Postinumero" Replace="@any={ Format('\{0:#####\}', VALUE)}"  To="zip" />
  200.           <ValueTransition From="{ GLOBAL[asset_country_id] }" To="country_id" DataType="int"/>
  201.  
  202.           <LookupValueTransition From="Postitoimipaikka" To="city" LookupDataSetId="city" LookupKeyExpr="name" OnNotFound="SkipValue"/>
  203.           <LookupValueTransition From="Pääkäyttötarkoitus" To="segment" LookupDataSetId="segment" LookupKeyExpr="name">
  204.             <ConditionUnit Expression="{IsNullOrEmptyString(VALUE)}" OnTrue="SkipValue"/>
  205.           </LookupValueTransition>
  206.  
  207.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{'Consumer Price Index'}" LookupDataSetId="rate_growth" LookupKeyExpr="{Field(VALUE[master_analysis],'uuid')}/{VALUE[name]}" To="rate_growth_market_rent"/>
  208.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{'Consumer Price Index'}" LookupDataSetId="rate_growth" LookupKeyExpr="{Field(VALUE[master_analysis],'uuid')}/{VALUE[name]}" To="rate_growth_opex"/>
  209.  
  210.           <ValueTransition From="{ true }" To="is_holdsell_applied"/>`
  211.           <ValueTransition From="{ 0.06 }"  DataType="float" To="holdsell_irr_criteria"/>
  212.           <ValueTransition From="{ 0.3 }"  DataType="float" To="holdsell_irr_scale"/>
  213.           <ValueTransition From="{ 0.1 }"  DataType="float" To="valuation_accuracy"/>
  214.           <ValueTransition From="{ 1 }"  To="investment_type_id"/>
  215.           <ValueTransition From="{ CapitalizeWordLetters(SRC[KOHDEPÄÄLLIKKÖ])}" To="asset_manager_name"/>
  216.  
  217.           -- COORDINATES--
  218.           <LookupValueTransition From="Kitunnus"
  219.                                 To="longitude"
  220.                                 LookupDataSetId="asset_coordinates.csv"
  221.                                 OnNotFound="SkipValue"
  222.                                 LookupKeyExpr="cost_center"
  223.                                 ProviderName="TsvProvider"
  224.                                 DataType="float"
  225.                                 Return="longitude" />
  226.  
  227.           <LookupValueTransition From="Kitunnus"
  228.                                To="latitude"
  229.                                LookupDataSetId="asset_coordinates.csv"
  230.                                OnNotFound="SkipValue"
  231.                                LookupKeyExpr="cost_center"
  232.                                ProviderName="TsvProvider"
  233.                                DataType="float"
  234.                                Return="latitude" />
  235.  
  236.           <ValueTransition  From="{VALUE[Pääkäyttötarkoitus]}/{VALUE[Postitoimipaikka]}"  To="rate_growth_sale_price">
  237.             <LookupValueTransition LookupDataSetId="growth_sale_price_lookup.csv"
  238.                                   LookupKeyExpr="{VALUE[segment_name]}/{VALUE[city.name]}"
  239.                                   ProviderName="TsvProvider"
  240.                                   OnNotFound="Continue"
  241.                                   Return="{VALUE !=null ? VALUE[growth_name] : 'Consumer Price Index'}"/>
  242.             <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE}"
  243.                                   LookupDataSetId="rate_growth"
  244.                                   LookupKeyExpr="{Field(VALUE[master_analysis],'uuid')}/{VALUE[name]}"/>
  245.           </ValueTransition>
  246.  
  247.  
  248.           -- ASSUMPTIONS --
  249.           WARNING: After REIMPORTING ASSETS NEED TO IMPORT 'Repair budget timeseries' NODE (wollowing node erase it)
  250.           <ValueTransition From="Peruskorjaus (d)"  DataType="double" To="{ THIS.SetAssumptionValue(TARGET,'RepairCost',VALUE) }" />
  251.           <ValueTransition From="{0.15}"  DataType="double" To="{ THIS.SetAssumptionValue(TARGET,'LeasingCommissions',VALUE) }"/>
  252.  
  253.           <ValueTransition From="VAC oletus %" DataType="double" To="{ THIS.SetAssumptionValue(TARGET,'ExitVacancyRate',(double)VALUE*0.01) }">
  254.             <ConditionUnit Expression="{(int)Field(TARGET[cash_flow_template],'id')!=1}" OnTrue="SkipValue"/>
  255.             <ConditionUnit Expression="{IsNullOrEmptyString(VALUE)}" OnTrue="SkipValue"/>
  256.           </ValueTransition>
  257.  
  258.           <ValueTransition From="Pääomituskorko" DataType="double" To="{ THIS.SetAssumptionValue(TARGET,'ExitCapRate',(double)VALUE*0.01) }">
  259.             <ConditionUnit Expression="{(int)Field(TARGET[cash_flow_template],'id')!=1}" OnTrue="SkipValue"/>
  260.             <ConditionUnit Expression="{IsNullOrEmptyString(VALUE)}" OnTrue="SkipValue"/>
  261.           </ValueTransition>
  262.  
  263.           <ValueTransition From="VAC oletus %" DataType="double" To="{ THIS.SetAssumptionValue(TARGET,'GeneralVacancyRate',(double)VALUE*0.01) }">
  264.             <ConditionUnit Expression="{IsNullOrEmptyString(VALUE)}" OnTrue="SkipValue"/>
  265.           </ValueTransition>
  266.  
  267.      
  268.           --DEPEND FROM PREVIOUS MASTER ANALYSIS VALUES--
  269.           acquisition date/price importing logic
  270.           <LookupValueTransition From="{GLOBAL[prev_ma_uuid]}/{SRC[Kitunnus]}"
  271.                                 To="acquisition_price"
  272.                                 LookupDataSetId="asset"
  273.                                 LookupKeyExpr="external_id"
  274.                                 OnNotFound="Continue"
  275.                                 DataType="long"
  276.                                 Return="{VALUE !=null ? VALUE[acquisition_price] : SRC[Käypäarvo] }" />
  277.  
  278.           <LookupValueTransition From="{GLOBAL[prev_ma_uuid]}/{SRC[Kitunnus]}"
  279.                                 To="uuid"
  280.                                 LookupDataSetId="asset"
  281.                                 LookupKeyExpr="external_id"
  282.                                 OnNotFound="Continue"
  283.                                 Return="{VALUE !=null ? VALUE[uuid] : TARGET[uuid] ?? Guid()}" />
  284.          
  285.             <LookupValueTransition From="{GLOBAL[prev_ma_uuid]}/{SRC[Kitunnus]}"
  286.                                 To="acquisition_date"
  287.                                 LookupDataSetId="asset"
  288.                                 LookupKeyExpr="external_id"
  289.                                 OnNotFound="Continue"
  290.                                 Return="{VALUE !=null ? VALUE[acquisition_date] : GLOBAL[default_acquisition_date]}"
  291.                                 DataType="DateTime" />
  292.  
  293.           Get previous market values (and other actuals) from previous assets
  294.           <LookupValueTransition From="{GLOBAL[prev_ma_uuid]}/{SRC[Kitunnus]}"
  295.                         To="cash_flow_model"
  296.                         LookupDataSetId="asset"
  297.                         LookupKeyExpr="external_id"
  298.                         OnNotFound="Continue"
  299.                         Return="{VALUE !=null ? VALUE[cash_flow_model] : null }" />
  300.  
  301.           New logic of importing Market Value. In this case Tapiola must provide source data for migration each month!
  302.           Otherwise Market Value actuals will be not fully-filled
  303.           <ValueTransition From="Käypäarvo" >
  304.             <TypeConvertTransitUnit DataType="decimal" />
  305.             <AssetActualMarketValueTransitUnit/>
  306.           </ValueTransition>
  307.  
  308.  
  309.           <ValueTransition From="Myyntipvm" To="exit_date">
  310.             <ConditionUnit Expression="{IsNullOrEmptyString(VALUE)}" OnTrue="SkipValue"/>
  311.             <TypeConvertTransitUnit DataType="DateTime"/>
  312.             <TransitUnit Expression="{ (DateTime)VALUE &lt;= (DateTime)Field(TARGET[master_analysis],'valuation_date') ? VALUE : null }"/>
  313.           </ValueTransition>
  314.  
  315.         </AssetTransition>
  316.       </ObjectSetTransition>
  317.  
  318.       <ObjectSetTransition Name="Asset valuations" Enabled="false" QueryToSource="{SRC[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv"  SaveCount="400" >
  319.         <ObjectTransition  TargetDataSetId="asset_valuation">
  320.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}" TargetKey="{Field(VALUE[asset],'external_id')}"/>
  321.  
  322.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}" To="asset" LookupDataSetId="asset" LookupKeyExpr="external_id" OnEmpty="SkipObject"/>
  323.  
  324.           <ValueTransition From="Diskonttauskorko"  To="dcf_discount_rate" DataType="float" >
  325.             <TypeConvertTransitUnit DataType="float"/>
  326.             <TransitUnit Expression="{ VALUE != null ? (float)VALUE * 0.01: null}"/>
  327.           </ValueTransition>
  328.  
  329.           <ValueTransition From="Pääomituskorko"  To="dcf_terminal_caprate" DataType="float">
  330.             <TypeConvertTransitUnit DataType="float"/>
  331.             <TransitUnit Expression="{ VALUE != null ? (float)VALUE * 0.01: null}"/>
  332.           </ValueTransition>
  333.  
  334.           <ValueTransition From="Käyttämätön rakoik markarvo"  To="dcf_other_value" DataType="float"/>
  335.  
  336.           <ValueTransition From="VAC oletus %"  To="dcf_terminal_vacancy_rate" DataType="float">
  337.             <TypeConvertTransitUnit DataType="float"/>
  338.             <TransitUnit Expression="{ VALUE != null ? (float)VALUE * 0.01: null}"/>
  339.           </ValueTransition>
  340.  
  341.           <ValueTransition From="{ 7 }"  To="valuation_method_id" />
  342.          
  343.           <ValueTransition From="{100}"  To="relevance" DataType="int" />
  344.  
  345.           <ValueTransition From="{TARGET[valuation_method_id]}" Replace="!7={SRC[Käypäarvo]}; @any={null}" To="market_value" DataType="int64"  />
  346.         </ObjectTransition>
  347.       </ObjectSetTransition>
  348.  
  349.       <ObjectSetTransition Name="Asset actuals" Enabled="false" QueryToSource="{SRC[valuation_date]}\\actuals_{GLOBAL[file_postfix]}.csv" SaveCount="100">
  350.         <AssetActualsTransition  TargetDataSetId="asset" TransitMode="OnlyExistedObjects">
  351.           <ConditionUnit Expression="{GLOBAL[prev_ma_uuid]=='0'}" OnTrue="SkipObjectSet"/>
  352.            <!--don't need to import actuals for this MA because Tapiola decided to start all analysis from scratch-->
  353.          
  354.           <ConditionUnit Expression="{GLOBAL[ma_uuid]=='78a1239d-574e-408e-af4b-5f82dde13584'}" OnTrue="SkipObjectSet"/>
  355.  
  356.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}" TargetKey="external_id"/>
  357.  
  358.           <ValueTransition To="{ THIS.SetActualsValue(TARGET, HISTORY('cf_item_transition'),(DateTime)HISTORY('date_transition'), SRC[EUROT], HISTORY('previous_acquisition_price')) }">
  359.             <LookupValueTransition From="{SRC[TILIRYHMA]}/{TARGET[cf_template_id]}"
  360.                                  LookupDataSetId="accounts_lookup.csv"
  361.                                  LookupKeyExpr="{VALUE[ACCOUNT]}/{VALUE[cf_template_id]}"
  362.                                  ProviderName="CsvProvider"
  363.                                  Return="asset.actual.cf_item_id"
  364.                                  OnNotFound="SkipObject" />
  365.             <LookupValueTransition Name="cf_item_transition"
  366.                                   LookupDataSetId="cash_flow_item"
  367.                                   LookupKeyExpr="id" />
  368.            
  369.             <ConditionUnit Expression="{IsNullOrEmptyString(SRC[RAPPVM])}" OnTrue="RaiseError" Message="Date for actuals value is required!"/>
  370.             <ValueTransition Name="date_transition" From="{SRC[RAPPVM]}" DataType="DateTime" />
  371.            
  372.             <LookupValueTransition From="{GLOBAL[prev_ma_uuid]}/{SRC[KITUNNUS]}"
  373.                                 Name="previous_acquisition_price"
  374.                                 LookupDataSetId="asset"
  375.                                 LookupKeyExpr="external_id"
  376.                                 OnNotFound="Continue"
  377.                                 DataType="decimal"
  378.                                 Return="{VALUE != null ? TARGET[acquisition_date] : null}" />
  379.           </ValueTransition>
  380.         </AssetActualsTransition>
  381.       </ObjectSetTransition>
  382.  
  383.         <ObjectSetTransition Name="Asset pictures" Enabled="false" QueryToSource="{SRC[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv"  SaveCount="400" >
  384.           <ObjectTransition  TargetDataSetId="assetPicture">
  385.             <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}/true" TargetKey="{Field(VALUE[asset],'external_id')}/{VALUE[is_main]}"/>
  386.  
  387.             <LookupValueTransition From="{GLOBAL[prev_ma_uuid]}/{SRC[Kitunnus]}/true"
  388.                            To="picture_id"
  389.                            LookupDataSetId="assetPicture"
  390.                            LookupKeyExpr="{Field(VALUE[asset],'external_id')}/{VALUE[is_main]}"
  391.                            TraceWarnings="false"
  392.                            OnNotFound="SkipObject"
  393.                            Return="{VALUE != null ? VALUE[picture_id] : null}"/>
  394.  
  395.             <LookupValueTransition From="{GLOBAL[ma_uuid]}/{SRC[Kitunnus]}"
  396.                                   To="asset"
  397.                                   LookupDataSetId="asset"
  398.                                   LookupKeyExpr="external_id" />
  399.  
  400.             <ValueTransition From="{ true }" DataType="bool"  To="is_main" />
  401.  
  402.           </ObjectTransition>
  403.         </ObjectSetTransition>
  404.  
  405.        <ObjectSetTransition Name="Asset opexes" Enabled="false" QueryToSource="{SRC[valuation_date]}\\actuals_{GLOBAL[file_postfix]}.csv"  SaveCount="300" >
  406.        
  407.         <ObjectTransition TargetDataSetId="asset_opex" TransitMode="OnlyExistedObjects">
  408.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}/{VALUE[TILIRYHMA]}"
  409.                         TargetKey="{Field(VALUE[asset],'external_id')}/{VALUE[external_code]}"/>
  410.  
  411.           <ValueTransition From="{ GLOBAL[main_currency_id] }" To="currency_id" DataType="int"/>
  412.  
  413.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{'Consumer Price Index'}"
  414.                                 LookupDataSetId="rate_growth"
  415.                                 LookupKeyExpr="{Field(VALUE[master_analysis],'uuid')}/{VALUE[name]}" To="rate_growth"/>
  416.  
  417.  
  418.           <ValueTransition From="BUDJETTIV">
  419.             <TypeConvertTransitUnit DataType="float" DecimalSeparator=","/>
  420.             <AssetOpexValueTransition/>
  421.           </ValueTransition>
  422.         </ObjectTransition>
  423.       </ObjectSetTransition>
  424.  
  425.       <ObjectSetTransition Name="Not existed Ppes" Enabled="false"  QueryToSource="{SRC[valuation_date]}\\Rentroll_{GLOBAL[file_postfix]}.csv" SaveCount="200">
  426.         <ObjectTransition  TargetDataSetId="ppe">
  427.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[RATUNNUS]}" TargetKey="external_id"/>
  428.           <ValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[RATUNNUS]}"  To="external_id" />
  429.  
  430.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}" To="asset" LookupDataSetId="asset"
  431.                                 LookupKeyExpr="external_id" OnNotFound="SkipObject" TraceWarnings="false"/>
  432.  
  433.           <ValueTransition From="New building ({SRC[RATUNNUS]})" To="name"  />
  434.           <ValueTransition From="{TARGET[name]}"  To="fullname" />
  435.           <ValueTransition From="{ 12 }"  To="ppe_type_id"  DataType="int" />
  436.           <ValueTransition From="{ 39 }"  To="ppe_category_id" DataType="int" />
  437.           <ValueTransition From="{ Guid() }" To="uuid"/>
  438.         </ObjectTransition>
  439.       </ObjectSetTransition>
  440.  
  441.       <ObjectSetTransition Name="Ppes" Enabled="false" QueryToSource="{SRC[valuation_date]}\\buildings_{GLOBAL[file_postfix]}.csv"  SaveCount="200" >
  442.         <ObjectTransition TargetDataSetId="ppe">
  443.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[Ratunnus]}" TargetKey="external_id"/>
  444.           <ValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[Ratunnus]}" To="external_id"/>
  445.  
  446.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}" To="asset" LookupDataSetId="asset"
  447.                                 LookupKeyExpr="external_id" OnNotFound="SkipObject" TraceWarnings="false"/>
  448.  
  449.           <ValueTransition From="{ CapitalizeWordLetters(SRC[Rakennuksen Nimi])}" To="name" Replace="@empty=New building ({SRC[Kitunnus]})" />
  450.           <ValueTransition From="{TARGET[name]}"  To="fullname" />
  451.           <ValueTransition From="Bruttoala (m2)"  To="area_size" DataType="float" DecimalSeparator="," />
  452.           <ValueTransition From="{ 12 }"  To="ppe_type_id"  />
  453.           <ValueTransition From="{ 39 }"  To="ppe_category_id"  />
  454.           <ValueTransition From="{ TARGET[uuid] ?? Guid() }" To="uuid"/>
  455.         </ObjectTransition>
  456.       </ObjectSetTransition>
  457.  
  458.       <ObjectSetTransition Name="Land plots" Enabled="false" QueryToSource="{SRC[valuation_date]}\\sites_{GLOBAL[file_postfix]}.csv" SaveCount="200">
  459.         <ObjectTransition TargetDataSetId="ppe">
  460.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[Hmtunnus]}" TargetKey="external_id"/>
  461.           <ValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[Hmtunnus]}" To="external_id"/>
  462.  
  463.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}" To="asset" LookupDataSetId="asset"
  464.                                 LookupKeyExpr="external_id" OnNotFound="SkipObject" TraceWarnings="false"/>
  465.  
  466.           <ValueTransition From="Kiinteistörekisteritunnus"  To="name"/>
  467.           <ValueTransition From="{TARGET[name]}"  To="fullname" />
  468.           <ValueTransition From="{ 1 }"  To="ppe_type_id" />
  469.           <ValueTransition From="{ 1 }"  To="ppe_category_id" />
  470.           <ValueTransition From="{ TARGET[uuid] ?? Guid()  }" To="uuid"/>
  471.         </ObjectTransition>
  472.       </ObjectSetTransition>
  473.  
  474.       <ObjectSetTransition Name="Floors" Enabled="false" QueryToSource="{SRC[valuation_date]}\\Rentroll_{GLOBAL[file_postfix]}.csv"  SaveCount="100">
  475.         <ObjectTransition TargetDataSetId="floor">
  476.           <ConditionUnit Expression="{ IsNullOrEmptyString(SRC[KERROS]) }" OnTrue="SkipObject"/>
  477.  
  478.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[RATUNNUS]}/{VALUE[KERROS]}"
  479.                         TargetKey="{Field(VALUE[ppe],'external_id')}/{VALUE[label]}"/>
  480.  
  481.           <ValueTransition From="KERROS"  To="label"/>
  482.            
  483.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[RATUNNUS]}" To="ppe" TraceWarnings="true"
  484.                                 LookupDataSetId="ppe" LookupKeyExpr="external_id" OnNotFound="SkipObject"/>
  485.          
  486.           <ValueTransition From="{ TARGET[uuid] ?? Guid()  }" To="uuid"/>
  487.         </ObjectTransition>
  488.       </ObjectSetTransition>
  489.  
  490.       <ObjectSetTransition Name="Legals" Enabled="false" QueryToSource="{SRC[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv"  SaveCount="300">
  491.         <ObjectSetTransition FetchMode="SourceObject" QueryToSource="Pivot OMISTAJA\d$ as Owner">
  492.           <ObjectTransition TargetDataSetId="legal_entity">
  493.             <ConditionUnit Expression="{ IsNullOrEmptyString(SRC[Owner]) }" OnTrue="SkipObject"/>
  494.             <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[Owner]}" TargetKey="{Field(VALUE[master_analysis], 'uuid')}/{VALUE[name]}"/>
  495.             <ValueTransition From="{ CapitalizeWordLetters(SRC[Owner])}" To="name" />
  496.             <ValueTransition From="{TARGET[name]}"  To="fullname" />
  497.             <ValueTransition From="{ TARGET[uuid] ?? Guid()  }" To="uuid"/>
  498.             <LookupValueTransition From="{ GLOBAL[ma_uuid] }" LookupDataSetId="master_analysis" LookupKeyExpr="uuid" To="master_analysis"/>
  499.           </ObjectTransition>
  500.  
  501.         </ObjectSetTransition>
  502.       </ObjectSetTransition>
  503.  
  504.       <ObjectSetTransition Name="Legal relations" Enabled="false" QueryToSource="{SRC[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv" SaveCount="300">
  505.         <ObjectSetTransition FetchMode="SourceObject" QueryToSource="Pivot OMISTAJA\d$ as Owner and OMISTAJA\d OSUUS as OwnerShare">
  506.           <ObjectTransition TargetDataSetId="legal2asset_relation">
  507.             <ConditionUnit Expression="{ IsNullOrEmptyString(SRC[Owner]) }" OnTrue="SkipObject"/>
  508.             <KeyTransition SourceKey="{VALUE[Owner]}/{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}"
  509.                           TargetKey="{Field(VALUE[legal_entity],'name')}/{Field(VALUE[asset],'external_id')}"/>
  510.  
  511.             <LookupValueTransition From="{GLOBAL[ma_uuid]}/{SRC[Kitunnus]}" To="asset" LookupDataSetId="asset" LookupKeyExpr="external_id"/>
  512.             <LookupValueTransition From="{GLOBAL[ma_uuid]}/{SRC[Owner]}" To="legal_entity" LookupDataSetId="legal_entity"
  513.                                   LookupKeyExpr="{Field(VALUE[master_analysis], 'uuid')}/{VALUE[name]}"/>
  514.  
  515.             <ValueTransition From="OwnerShare" To="share" DataType="float"/>
  516.             <ValueTransition From="{ 'Ownership' }" To="name" />
  517.           </ObjectTransition>
  518.  
  519.         </ObjectSetTransition>
  520.       </ObjectSetTransition>
  521.  
  522.       <ObjectSetTransition Name="Premises" Enabled="false" QueryToSource="{SRC[valuation_date]}\\Rentroll_{GLOBAL[file_postfix]}.csv"  SaveCount="300">
  523.         <ObjectTransition TargetDataSetId="premis">
  524.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}/{VALUE[KOHDETUNNUS]}/{VALUE[TUNNUS]}" TargetKey="external_id"/>
  525.  
  526.           <ValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}/{SRC[KOHDETUNNUS]}/{SRC[TUNNUS]}"  To="external_id"/>
  527.  
  528.           <ValueTransition From="KOHDETUNNUS"  To="number"/>
  529.  
  530.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[RATUNNUS]}" To="ppe"
  531.                                 LookupDataSetId="ppe" LookupKeyExpr="external_id" OnNotFound="SkipObject" TraceWarnings="false"/>
  532.  
  533.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{SRC[RATUNNUS]}/{SRC[KERROS]}" LookupDataSetId="floor"
  534.                                 LookupKeyExpr="{Field(VALUE[ppe],'external_id')}/{VALUE[label]}"
  535.                                 To="floor" OnNotFound="Continue" TraceWarnings="false"/>
  536.  
  537.           <ValueTransition From="KÄYTTÖTARKOITUS" To="use">
  538.             <ConditionUnit Expression="{ IsNullOrEmptyString(VALUE) }" OnTrue="SkipValue"/>
  539.             <ConditionUnit Expression="{ Str(SRC[KÄYTTÖTARKOITUS]).Contains('määrittelemätön') }" OnTrue="SkipValue"/>
  540.             <ReplaceTransition ReplaceRules="ä=a;ö=o;Ä=A;Ö=O"/>
  541.             <LookupValueTransition LookupDataSetId="use_type" LookupKeyExpr="name" />
  542.             <LookupValueTransition From="{Field(TARGET[ppe],'ppe_category_id')}/{VALUE[id]}"  LookupDataSetId="use"  LookupKeyExpr="{VALUE[ppe_category_id]}/{VALUE[use_type_id]}"/>
  543.           </ValueTransition>
  544.  
  545.  
  546.           <ValueTransition From="PINTA-ALA LASKENTA"  To="area_size">
  547.             <ConditionUnit Expression="{ IsNullOrEmptyString(VALUE) }" OnTrue="SkipValue"/>
  548.             <TypeConvertTransitUnit DataType="float" DecimalSeparator=","/>
  549.             <AreaAccumulatorTransition/>
  550.           </ValueTransition>
  551.  
  552.           <ValueTransition From="KPL" To="quantity" DataType="int" >
  553.             <ConditionUnit Expression="{ VALUE == '0'}" OnTrue="SkipValue"/>
  554.             <!--row data validation-->
  555.             <ConditionUnit Expression="{ !IsNullOrEmptyString(SRC[KPL]) &amp;&amp; !IsNullOrEmptyString(SRC[PINTA-ALA LASKENTA])  &amp;&amp; SRC[PINTA-ALA LASKENTA]!='0' &amp;&amp; SRC[KPL]!='0'  }" OnTrue="RaiseError"/>
  556.           </ValueTransition>
  557.  
  558.           <ValueTransition From="HSTONIMI"  To="classification" />
  559.           <ValueTransition From="{ true }"  To="is_leasable" DataType="bool" />
  560.           <ValueTransition From="{ !IsNullOrEmptyString(SRC[VUOKRALAINEN]) }"  To="is_occupied" DataType="bool" />
  561.           <ValueTransition From="{ TARGET[uuid] ?? Guid()  }" To="uuid"/>
  562.  
  563.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[VUOKRANANTAJA]}" LookupDataSetId="legal_entity" TraceWarnings="false"
  564.                                 LookupKeyExpr="{Field(VALUE[master_analysis], 'uuid')}/{VALUE[name]}" To="legal_entity" OnNotFound="SkipValue" />
  565.  
  566.           <ValueTransition From="MV">
  567.             <TypeConvertTransitUnit DataType="double" DecimalSeparator=","/>
  568.             <PremisesMarketValueTransitUnit/>
  569.           </ValueTransition>
  570.  
  571.         </ObjectTransition>
  572.       </ObjectSetTransition>
  573.  
  574.       <ObjectSetTransition Name="Rentrolls" Enabled="false"  QueryToSource="{SRC[valuation_date]}\\Rentroll_{GLOBAL[file_postfix]}.csv" SaveCount="300">
  575.         <ObjectTransition  TargetDataSetId="rent_roll" >
  576.           <ConditionUnit Expression="{ IsNullOrEmptyString(SRC[VUOKRALAINEN]) }" OnTrue="SkipObject"/>
  577.  
  578.           <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}/{VALUE[KOHDETUNNUS]}/{VALUE[TUNNUS]}/rentroll" TargetKey="external_id"/>
  579.           <ValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}/{SRC[KOHDETUNNUS]}/{SRC[TUNNUS]}/rentroll"  To="external_id"/>
  580.  
  581.           <LookupValueTransition From="{GLOBAL[ma_uuid]}/{VALUE[KITUNNUS]}/{VALUE[KOHDETUNNUS]}/{VALUE[TUNNUS]}"
  582.                                 To="premis"
  583.                                 LookupDataSetId="premis"
  584.                                 LookupKeyExpr="external_id"
  585.                                 TraceWarnings="false"
  586.                                 OnNotFound="SkipObject"/>
  587.  
  588.           <LookupValueTransition From="VUOKRALAINEN" To="tenant" LookupDataSetId="tenant" LookupKeyExpr="name" />
  589.           <ValueTransition From="TUNNUS"  To="agreement_number" />
  590.           <ValueTransition From="ALKAMISPVM"  To="lease_start_date" DataType="DateTime" DataTypeFormat="yyyyMMdd" />
  591.           <ValueTransition From="LOPPUMISPVM"  To="lease_end_date" DataType="DateTime" DataTypeFormat="yyyyMMdd"/>
  592.           <ValueTransition From="ENS IRTISANOMISPVM"  To="earliest_notice_date" DataType="DateTime" DataTypeFormat="yyyyMMdd"/>
  593.           <ValueTransition From="{SRC[MAARAIK]}{SRC[C_JATKUVA]}" To="lease_type_id" DataType="int" Replace="!TF=1;!@regexp:F\w=2;TT=3" />
  594.           <ValueTransition From="{GLOBAL[main_currency_id]}"  To="current_rent_currency_id" DataType="int"  />
  595.           <ValueTransition From="{TARGET[lease_type_id]}" Replace="!1=;@any=24"  To="extension_length_months" DataType="int"  />
  596.  
  597.           <!--<ValueTransition From="Muutarkistusperuste"  To="indexation_id" DataType="int" Replace="!EI=;@any=1" />-->
  598.  
  599.  
  600.           <LookupValueTransition From="Muutarkistusperuste"
  601.                              LookupDataSetId="rate_growth"
  602.                              ReplaceBeforeLookup="!EI=;@any={GLOBAL[ma_uuid]}/{'Consumer Price Index'}"
  603.                              LookupKeyExpr="{Field(VALUE[master_analysis],'uuid')}/{VALUE[name]}"
  604.                              To="rate_growth"/>
  605.  
  606.           <ValueTransition From="PINTA-ALA VUOKRATTU"  To="leased_area">
  607.             <ConditionUnit Expression="{ IsNullOrEmptyString(VALUE) }" OnTrue="SkipValue"/>
  608.             <TypeConvertTransitUnit DataType="float"  DecimalSeparator=","/>
  609.             <AreaAccumulatorTransition/>
  610.           </ValueTransition>
  611.  
  612.           <ValueTransition From="KPL"  To="leased_quantity" DataType="int">
  613.             <ConditionUnit Expression="{ !IsNullOrEmptyString(SRC[KPL]) &amp;&amp; !IsNullOrEmptyString(SRC[PINTA-ALA VUOKRATTU])  &amp;&amp; SRC[PINTA-ALA VUOKRATTU]!='0' &amp;&amp; SRC[KPL]!='0'  }" OnTrue="RaiseError"/>
  614.           </ValueTransition>
  615.           <!--this transition also can rewrite lease_end_date-->
  616.           <ValueTransition To="notice_period_months">
  617.             <NoticePeriodMonthsTransition />
  618.           </ValueTransition>
  619.  
  620.  
  621.           <ValueTransition  To="comment">
  622.             <TransitUnit Expression="{ Format('MAKSULAJI: \{0\}/',SRC[MAKSULAJI]) }"/>
  623.             <TransitUnit Expression="{VALUE}{Format('Sopimusjatkuva: \{0\}/',SRC[Sopimusjatkuva]) }"/>
  624.             <TransitUnit Expression="{VALUE}{Format('Sopimus jatkuu: \{0\}/',SRC[Sopimusjatkuu]) }"/>
  625.             <TransitUnit Expression="{VALUE}{Format('VAPAAKK/ALENNUS: \{0\}/',SRC[VAPAAKK/ALENNUS]) }"/>
  626.             <TransitUnit Expression="{VALUE}{SRC[TARKISTUSPERUSTE]=='MUU' ? 'TARKISTUSPERUSTE: MUU' + Format(' (Tarkistusperuste: \{0\})',SRC[Muutarkistusperuste]) : '' }"/>
  627.             <TransitUnit Expression="{VALUE}{Format(' (Muu tarkistus: \{0\})',SRC[Muutarkistus]) }"/>
  628.             <TransitUnit Expression="{VALUE}{Format(' (Muunselite: \{0\})',SRC[Muunselite]) }"/>
  629.             <TransitUnit Expression="{VALUE}{Format(' (Muutospros: \{0\})',SRC[Muutospros]) }"/>
  630.             <TransitUnit Expression="{VALUE}/{SRC[ERIKSEEN_LASKUTETTAVAA]=='X' ? 'Erikseen laskutettavaa: KYLLÄ' : ''}"/>
  631.           </ValueTransition>
  632.  
  633.           <ValueTransition From="Tarkistuskk" To="rate_growth_recurrance_pattern" >
  634.             <RentrollIndexationRecurranceTransitUnit/>
  635.           </ValueTransition>
  636.  
  637.           <ValueTransition From="{ TARGET[uuid] ?? Guid() }" To="uuid"/>
  638.  
  639.           <ValueTransition From="KK-VUOKRA">
  640.             <ConditionUnit Expression="{ IsNullOrEmptyString(VALUE) }" OnTrue="SkipValue"/>
  641.             <TypeConvertTransitUnit Name="AssumptionValueTransition" DataType="double" DecimalSeparator=","/>
  642.             <LookupValueTransition From="{SRC[MAKSULAJI]}"
  643.                                LookupDataSetId="rentroll_assumptions_lookup.csv"
  644.                                LookupKeyExpr="tapiola_account_name"
  645.                                ProviderName="TsvProvider"
  646.                                DataType="int"
  647.                                Return="{VALUE != null ? VALUE[xq_assumption_id] : '59' }"
  648.                                OnNotFound="Continue" />
  649.             <RentrollAssumptionTransition/>
  650.           </ValueTransition>
  651.  
  652.         </ObjectTransition>
  653.       </ObjectSetTransition>
  654.  
  655.       <ObjectSetTransition  Name="Repair budget timeseries" Enabled="false" QueryToSource="{SRC[valuation_date]}\\PTS_{GLOBAL[file_postfix]}.csv">
  656.         <ObjectSetTransition FetchMode="SourceObject" QueryToSource="Pivot 20\d\d$ as Year">
  657.           <ObjectTransition TargetDataSetId="asset" TransitMode="OnlyExistedObjects">
  658.  
  659.             <KeyTransition TargetKey="external_id">
  660.               <SourceKeyTransition >
  661.                 <ConditionUnit Expression="{ IsNullOrEmptyString(SRC[Kohde]) }" OnTrue="SkipObject"/>
  662.  
  663.                 <LookupValueTransition From="Kohde"
  664.                                       LookupDataSetId="{GLOBAL[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv"
  665.                                       LookupKeyExpr="Kustannuspaikka"
  666.                                       OnNotFound="SkipObject"
  667.                                       ProviderName = "CsvProvider"
  668.                                       Return="Kitunnus" />
  669.                 <TransitUnit Expression="{GLOBAL[ma_uuid]}/{VALUE}"/>
  670.               </SourceKeyTransition>
  671.             </KeyTransition>
  672.  
  673.             <RepairAssumptionValueTransition From="YearColumn" DataType="int"   />
  674.           </ObjectTransition>
  675.  
  676.         </ObjectSetTransition>
  677.       </ObjectSetTransition>
  678.  
  679.         !!!WARNING: Need to run this transion by separate tool execution (need to fix to allow run together with the above transions)
  680.         <ObjectSetTransition Name="RECALCULATE" Enabled="false" QueryToSource="{SRC[valuation_date]}\\assets_{GLOBAL[file_postfix]}.csv" SaveCount="100" >
  681.           <ObjectTransition  TargetDataSetId="asset" TransitMode="OnlyExistedObjects">
  682.             <KeyTransition SourceKey="{GLOBAL[ma_uuid]}/{VALUE[Kitunnus]}" TargetKey="external_id"/>
  683.             <!--<ValueTransition From="{ true }"  To="is_dirty"/>-->
  684.             <AssetRecalculateTransition/>
  685.           </ObjectTransition>
  686.         </ObjectSetTransition>
  687.        
  688.        
  689.       </ForEachTransition>
  690.     </TransitionGroup>
  691.   </TransitionGroups>
  692.  
  693.  
  694.  
  695. </MapConfig>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement