Skip to main content

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 PreferenceSecuritiesAsset 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