Bloomberg equities updates
This mapping is used for Security Type Equity (STOCK).
This mapping is used in the Securities view when you click Update Security Data and choose Bloomberg.
Note mappings update.bloomberg.C ,update.bloomberg.CE, update.bloomberg.D, update.bloomberg.E and update.bloomberg.O are applied depending on Security type.
Configuration
Asset classes and types are set up in Preference → Securities → Asset classes and types (see Asset classes and types in FA Back reference). To fully utilize the updates functionality, you need the following asset classes and types:
Asset class "Breakdown"
Geographical allocation (M49)
ISO10962 Classification of Financial Instruments
Currency exposure
BICS Equity Hierarchy 2020 (Levels 1 & 2)
Mapping
Mapping name: update.bloomberg.E
Updated fields
Security code
ISIN code
Name
Outstanding shares
Votes per share
Key figures
Dividend per share
Dividend exdate
Dividend currency
Split
Allocations
Asset class breakdown
Geographical allocation (M49)
ISO10962 Classification of Financial Instruments
Currency exposure
Mapping table
Row | Source field | FA field | Script |
---|---|---|---|
1 | TICKER_AND_EXCH_CODE | s.securityCode | |
2 | TODAY_DT | DT | output=Date.parse("MM/dd/yyyy", "[TODAY_DT]").format("yyyy-MM-dd"); |
3 | EQY_DVD_CASH_PAY_DT_NEXT | PAYDATE | if((!"[EQY_DVD_CASH_PAY_DT_NEXT]"?.trim())||(" [EQY_DVD_CASH_PAY_DT_NEXT]"=='')||("[EQY_DVD_CASH_PAY_DT_NEXT]"=='null')|| ("[EQY_DVD_CASH_PAY_DT_NEXT]"=='N.A.')) { output=Date.parse("MM/dd/yyyy", "01/01/2000").format("yyyy-MM-dd") } else { output=Date.parse("MM/dd/yyyy", "[EQY_DVD_CASH_PAY_DT_NEXT]").format("yyyy-MM-dd") } ; |
4 | EQY_DVD_CASH_CRNCY_NEXT | DIVCURRENCY | |
5 | DIVCUR | import com.fasolutions2.mod.repository.KeyFigureRepository output = "" def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def valueDate = "[PAYDATE]" def figureCode = "DIVCUR" def value = "[DIVCURRENCY]" if(s){ def figures = s.getFiguresAsObject().getLatestValues() // Has the figure been defined in the system? boolean figureDefined = services.applicationContext.getBean(KeyFigureRepository.class).findByCode(figureCode) != null // Is there a previous value for this figure in this security? boolean previousValueExists = figures.containsKey(figureCode) // If there is a ned date? boolean dateHasChanged = previousValueExists && figures.get(figureCode).get("date").toString() != valueDate // If there is a nev value? boolean figureHasChanged = previousValueExists && figures.get(figureCode).get("value").toString() != value if(figureDefined && (figureHasChanged || dateHasChanged || !previousValueExists)) { output = ":"+figureCode+"="+valueDate+"="+value} } | |
6 | EQY_DVD_CASH_EX_DT_NEXT | DIVEXDT | if((!"[EQY_DVD_CASH_EX_DT_NEXT]"?.trim()) ("[EQY_DVD_CASH_EX_DT_NEXT]"=='')||("[EQY_DVD_CASH_EX_DT_NEXT]"=='null')||("[EQY_DVD_CASH_EX_DT_NEXT]"=='N.A.')) { output=Date.parse("MM/dd/yyyy", "01/01/2000").format("yyyy-MM-dd") } else { output=Date.parse("MM/dd/yyyy", "[EQY_DVD_CASH_EX_DT_NEXT]").format("yyyy-MM-dd") } ; |
7 | DIVEX | ####################################################### | |
8 | EQY_DVD_CASH_GROSS_NEXT | DIVID | if("[EQY_DVD_CASH_GROSS_NEXT]".substring(0,1)==".") { output="0"+"[EQY_DVD_CASH_GROSS_NEXT]" } else { output="[EQY_DVD_CASH_GROSS_NEXT]" } |
9 | DIV | import com.fasolutions2.mod.repository.KeyFigureRepository output = "" def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def valueDate = "[PAYDATE]" def figureCode = "DIV" def value = "[DIVID]" if(s){ def figures = s.getFiguresAsObject().getLatestValues() // Has the figure been defined in the system? boolean figureDefined = services.applicationContext.getBean(KeyFigureRepository.class).findByCode(figureCode) != null // Is there a previous value for this figure in this security? boolean previousValueExists = figures.containsKey(figureCode) // If there is a ned date? boolean dateHasChanged = previousValueExists && figures.get(figureCode).get("date").toString() != valueDate // If there is a nev value? boolean figureHasChanged = previousValueExists && figures.get(figureCode).get("value").toString() != value if(figureDefined && (figureHasChanged || dateHasChanged || !previousValueExists)) { output = ":"+figureCode+"="+valueDate+"="+value }} | |
10 | DIVIDEND | if(("[PAYDATE]"!="2000-01-01")&&("[PAYDATE]">"[DT]")) {output="[DIV][DIVEX][DIVCUR]"} else {output=""}; | |
11 | EQY_SPLIT_DT | SPLDT | if((!"[EQY_SPLIT_DT]"?.trim())||("[EQY_SPLIT_DT]"=='')||("[EQY_SPLIT_DT]"=='null')||("[EQY_SPLIT_DT]"=='N.A.')) { output=Date.parse("MM/dd/yyyy", "01/01/2000").format("yyyy-MM-dd") } else { output=Date.parse("MM/dd/yyyy", "[EQY_SPLIT_DT]").format("yyyy-MM-dd") }; |
12 | EQY_SPLIT_RATIO | SPLRATIO | |
13 | SPLIT | import com.fasolutions2.mod.repository.KeyFigureRepository output = "" def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def valueDate = "[SPLDT]" def figureCode = "SPL" def value = "[SPLRATIO]" if(s){ def figures = s.getFiguresAsObject().getLatestValues() // Has the figure been defined in the system? boolean figureDefined = services.applicationContext.getBean(KeyFigureRepository.class).findByCode(figureCode) != null // Is there a previous value for this figure in this security? boolean previousValueExists = figures.containsKey(figureCode) // If there is a ned date? boolean dateHasChanged = previousValueExists && figures.get(figureCode).get("date").toString() != valueDate // If there is a nev value? boolean figureHasChanged = previousValueExists && figures.get(figureCode).get("value").toString() != value if(figureDefined && (figureHasChanged || dateHasChanged || !previousValueExists)) { output = ":"+figureCode+"="+valueDate+"="+value }} | |
14 | SPL | if("[SPLDT]">"[DT]") { output="[SPLIT]" } else { output="" }; | |
15 | s.keyFigures | if("[DIVIDEND]"!='') {if("[SPL]"!='') {output="***[DIVIDEND][SPL]"} else {output="***[DIVIDEND]"} } else {if("[SPL]"!='') {output="***[SPL]"} else {output="***"} }; | |
16 | EQY_SH_OUT_REAL | s.share | |
17 | ID_ISIN | s.isinCode | |
18 | SECURITY_NAME | s.name | |
19 | BICS_LEVEL_2_INDUSTRY_GROUP_CODE | BICS | output = "" if((!"[BICS_LEVEL_2_INDUSTRY_GROUP_CODE]"?.trim())||("[BICS_LEVEL_2_INDUSTRY_GROUP_CODE]"=='N.A.')) { output = "" } else { def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def allocationsChanged = true def allocationDate = "2009-01-01" // Any new allocations are set on the specified date if(s){ def allocs = s.getAllocationsOnDate(new Date(), "BICSE2020") if(allocs && allocs.size() == 1 && allocs.get(0).sector.code == "[BICS_LEVEL_2_INDUSTRY_GROUP_CODE]"){ allocationsChanged = false } else if(allocs && allocs.size() == 1 && allocs.get(0).sector.code != "[BICS_LEVEL_2_INDUSTRY_GROUP_CODE]"){ // There is an existing allocation that has changed -> the new allocation will be set for this date allocationDate = new Date().format("yyyy-MM-dd") } } if(services.configurationService.findGroupByCode('BICSE2020') && allocationsChanged){ output += ",BICSE2020:"+ allocationDate +":"+"[BICS_LEVEL_2_INDUSTRY_GROUP_CODE]"+"=100" } }; |
20 | BICS_LEVEL_1_SECTOR_CODE | BICSSEC | |
21 | CRNCY | CURR | output = "" if((!"[CRNCY]"?.trim())||("[CRNCY]"=='N.A.')) { output = "" } else { def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def allocationsChanged = true def allocationDate = "2009-01-01" // Any new allocations are set on the specified date if(s){ def allocs = s.getAllocationsOnDate(new Date(), "CURR") if(allocs && allocs.size() == 1 && allocs.get(0).sector.code == "[CRNCY]"){ allocationsChanged = false } else if(allocs && allocs.size() == 1 && allocs.get(0).sector.code != "[CRNCY]"){ // There is an existing allocation that has changed -> the new allocation will be set for this date allocationDate = new Date().format("yyyy-MM-dd") } } if(services.configurationService.findGroupByCode('CURR') && allocationsChanged){ output += ",CURR:"+ allocationDate +":"+"[CRNCY]"+"=100" } }; |
22 | ASSET | output = "" if((!"[BICS_LEVEL_1_SECTOR_CODE]"?.trim())||("[BICS_LEVEL_1_SECTOR_CODE]"=='N.A.')) { output = "" } else { def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def allocationsChanged = true def allocationDate = "2009-01-01" // Any new allocations are set on the specified date if(s){ def allocs = s.getAllocationsOnDate(new Date(), "ASSET") if(allocs && allocs.size() == 1 && allocs.get(0).sector.code == "[BICS_LEVEL_1_SECTOR_CODE]"){ allocationsChanged = false } else if(allocs && allocs.size() == 1 && allocs.get(0).sector.code != "[BICS_LEVEL_1_SECTOR_CODE]"){ // There is an existing allocation that has changed -> the new allocation will be set for this date allocationDate = new Date().format("yyyy-MM-dd") } } if(services.configurationService.findGroupByCode('ASSET') && allocationsChanged){ output += ",ASSET:"+ allocationDate +":"+"[BICS_LEVEL_1_SECTOR_CODE]"+"=100" } } ; | |
23 | CNTRY_OF_RISK | CTRY | switch("[CNTRY_OF_RISK]") { case "AW": output="533" break case "AF": output="004" break case "AO": output="024" break case "AI": output="660" break case "AX": output="248" break case "AL": output="008" break case "AD": output="020" break case "AN": output="530" break case "AE": output="784" break case "AR": output="032" break case "AM": output="051" break case "AS": output="016" break case "AQ": output="010" break case "TF": output="260" break case "AG": output="028" break case "AU": output="036" break case "AT": output="040" break case "AZ": output="031" break case "BI": output="108" break case "BE": output="056" break case "BJ": output="204" break case "BQ": output="535" break case "BF": output="854" break case "BD": output="050" break case "BG": output="100" break case "BH": output="048" break case "BS": output="044" break case "BA": output="070" break case "BY": output="112" break case "BZ": output="084" break case "BM": output="060" break case "BO": output="068" break case "BR": output="076" break case "BB": output="052" break case "BN": output="096" break case "BT": output="064" break case "BV": output="074" break case "BW": output="072" break case "CF": output="140" break case "CA": output="124" break case "CC": output="166" break case "CH": output="756" break case "CL": output="152" break case "CN": output="156" break case "CI": output="384" break case "CM": output="120" break case "CD": output="180" break case "CG": output="178" break case "CK": output="184" break case "CO": output="170" break case "KM": output="174" break case "CV": output="132" break case "CR": output="188" break case "CU": output="192" break case "CW": output="531" break case "CX": output="162" break case "KY": output="136" break case "CY": output="196" break case "CZ": output="203" break case "DE": output="276" break case "DJ": output="262" break case "DM": output="212" break case "DK": output="208" break case "DO": output="214" break case "DZ": output="012" break case "EC": output="218" break case "EG": output="818" break case "ER": output="232" break case "EH": output="732" break case "ES": output="724" break case "EE": output="233" break case "ET": output="231" break case "FI": output="246" break case "FJ": output="242" break case "FK": output="238" break case "FR": output="250" break case "FO": output="234" break case "FM": output="583" break case "FX": output="249" break case "GA": output="266" break case "GB": output="826" break case "GE": output="268" break case "GG": output="831" break case "GH": output="288" break case "GI": output="292" break case "GN": output="324" break case "GP": output="312" break case "GM": output="270" break case "GW": output="624" break case "GQ": output="226" break case "GR": output="300" break case "GD": output="308" break case "GL": output="304" break case "GT": output="320" break case "GF": output="254" break case "GU": output="316" break case "GY": output="328" break case "HK": output="344" break case "HM": output="334" break case "HN": output="340" break case "HR": output="191" break case "HT": output="332" break case "HU": output="348" break case "ID": output="360" break case "IM": output="833" break case "IN": output="356" break case "IM": output="833" break case "IO": output="086" break case "IE": output="372" break case "IR": output="364" break case "IQ": output="368" break case "IS": output="352" break case "IL": output="376" break case "IT": output="380" break case "JM": output="388" break case "JE": output="832" break case "JO": output="400" break case "JP": output="392" break case "KZ": output="398" break case "KE": output="404" break case "KG": output="417" break case "KH": output="116" break case "KI": output="296" break case "KN": output="659" break case "KR": output="410" break case "KW": output="414" break case "LA": output="418" break case "LB": output="422" break case "LR": output="430" break case "LY": output="434" break case "LC": output="662" break case "LI": output="438" break case "LK": output="144" break case "LS": output="426" break case "LT": output="440" break case "LU": output="442" break case "LV": output="428" break case "MO": output="446" break case "MA": output="504" break case "MC": output="492" break case "MD": output="498" break case "MG": output="450" break case "MV": output="462" break case "MX": output="484" break case "MH": output="584" break case "MK": output="807" break case "ML": output="466" break case "MT": output="470" break case "MM": output="104" break case "ME": output="499" break case "MN": output="496" break case "MP": output="580" break case "MZ": output="508" break case "MR": output="478" break case "MS": output="500" break case "MQ": output="474" break case "MU": output="480" break case "MW": output="454" break case "MY": output="458" break case "YT": output="175" break case "NA": output="516" break case "NC": output="540" break case "NE": output="562" break case "NF": output="574" break case "NG": output="566" break case "NI": output="558" break case "NU": output="570" break case "NL": output="528" break case "NO": output="578" break case "NP": output="524" break case "NR": output="520" break case "NZ": output="554" break case "OM": output="512" break case "PK": output="586" break case "PA": output="591" break case "PN": output="612" break case "PE": output="604" break case "PH": output="608" break case "PW": output="585" break case "PG": output="598" break case "PL": output="616" break case "PR": output="630" break case "KP": output="408" break case "PT": output="620" break case "PY": output="600" break case "PS": output="275" break case "PF": output="258" break case "QA": output="634" break case "RE": output="638" break case "RO": output="642" break case "RO": output="642" break case "RU": output="643" break case "RW": output="646" break case "SA": output="682" break case "CS": output="891" break case "SD": output="736" break case "SN": output="686" break case "SG": output="702" break case "GS": output="239" break case "SH": output="654" break case "SJ": output="744" break case "SB": output="090" break case "SL": output="694" break case "SV": output="222" break case "SM": output="674" break case "SO": output="706" break case "PM": output="666" break case "RS": output="688" break case "SS": output="728" break case "ST": output="678" break case "SR": output="740" break case "SK": output="703" break case "SI": output="705" break case "SE": output="752" break case "SZ": output="748" break case "SX": output="534" break case "SC": output="690" break case "SY": output="760" break case "TC": output="796" break case "TD": output="148" break case "TG": output="768" break case "TH": output="764" break case "TJ": output="762" break case "TK": output="772" break case "TM": output="795" break case "TL": output="626" break case "TP": output="626" break case "TO": output="776" break case "TT": output="780" break case "TN": output="788" break case "TR": output="792" break case "TV": output="798" break case "TW": output="158" break case "TZ": output="834" break case "UG": output="800" break case "UA": output="804" break case "UM": output="581" break case "UY": output="858" break case "US": output="840" break case "UZ": output="860" break case "VA": output="336" break case "VC": output="670" break case "VE": output="862" break case "VG": output="092" break case "VI": output="850" break case "VN": output="704" break case "VU": output="548" break case "WF": output="876" break case "WS": output="882" break case "YE": output="887" break case "YU": output="891" break case "ZA": output="710" break case "ZM": output="894" break case "ZR": output="180" break case "ZW": output="716" break default: output='' } ;"}, |
24 | M49 | output = "" if((!"[CNTRY_OF_RISK]"?.trim())||("[CNTRY_OF_RISK]"=='N.A.')) { output = "" } else { def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def allocationsChanged = true def allocationDate = "2009-01-01" // Any new allocations are set on the specified date if(s){ def allocs = s.getAllocationsOnDate(new Date(), "M49") if(allocs && allocs.size() == 1 && allocs.get(0).sector.code == "[CTRY]"){ allocationsChanged = false } else if(allocs && allocs.size() == 1 && allocs.get(0).sector.code != "[CTRY]"){ // There is an existing allocation that has changed -> the new allocation will be set for this date allocationDate = new Date().format("yyyy-MM-dd") } } if(services.configurationService.findGroupByCode('M49') && allocationsChanged){ output += ",M49:"+ allocationDate +":"+"[CTRY]"+"=100" }}; | |
25 | CFI_CODE | CFI | |
26 | BLOOMBERG_CFI_CODE | CFI | |
27 | ISO10962 | output = "" if((!"[CFI]"?.trim())||("[CFI]"=='N.A.')) { output = "" } else { def s = services.securityService.loadSecurityBySecurityCode("[s.securityCode]") def allocationsChanged = true def allocationDate = "2009-01-01" // Any new allocations are set on the specified date if(s){ def allocs = s.getAllocationsOnDate(new Date(), "ISO10962") if(allocs && allocs.size() == 1 && allocs.get(0).sector.code == "[CFI]".substring(0,2)){ allocationsChanged = false } else if(allocs && allocs.size() == 1 && allocs.get(0).sector.code != "[CFI]".substring(0,2)){ // There is an existing allocation that has changed -> the new allocation will be set for this date allocationDate = new Date().format("yyyy-MM-dd") } } if(services.configurationService.findGroupByCode('ISO10962') && allocationsChanged){ output += ",ISO10962:"+ allocationDate +":"+"[CFI]".substring(0,2)+"=100" } }; | |
28 | s.allocations | output="***[BICS][ASSET][CURR][M49][ISO10962]"; | |
29 | VOTING_RIGHTS | s.votesPerShare | |
30 | ID_BB_GLOBAL | s.tradeCode |