Generic SMF Inbound Interface

Stream Logic

Panels, Binds, and Stored Procedures for SMF

The following table lists the panel, bind, and stored procedure used for multilingual implementations to set up security master files in a foreign language.

CSV/STAR Rule

Panel

Bind

Procedure

CSV/STAR Rule

Panel

Bind

Procedure

csv /or/ star-smf-ml.xml

eagle/star/pan-secml.htm

INSERT_UPDATE_SEC_DETAIL_ML

INSERT_UPDATE_SEC_DETAIL_ML

The following table lists the Processing Security Type (PST), panel, and bind for each security type processed by the SMF default message stream.

SMF Type

PST

Panel

Bind

SMF Type

PST

Panel

Bind

SMF Long Term Debt

DBFLTP

DBIBFD

DBIBMU

DBIBPK

DBIVIV

DBMFDD

DBAMTL

DBIBTL

eagle/star/reference/pan-addsecmasterlongtermfixed.htm

ADDSECMASTER

SMF Short Term Debt

DBDCST

DBIBMA

DBIBRP

DBIBST

DBSTST

DBIBRR

eagle/star/reference/pan-addsecmastershortterminterest.htm

ADDSECMASTER

SMF Buy Sellback/ Sell Buyback

DBIBSB

eagle/star/reference/pan-addsecmasterbssb.htm

ADDSECMASTER

SMF Mortgage Backed Security

DBFBFB

DBFBIO

DBFBPO

DBTATA

DBFBAL

DBFBCC

eagle/star/reference/pan-addsecmastermbs.htm

ADDSECMASTER

SMF Equity

EQCSCS

EQCSPF

EQCSPK

EQEQMF

eagle/star/reference/pan-addsecmasterequity.htm

ADDSECMASTER

SMF Right and Warrant

EQRTXX

EQWRXX

eagle/star/reference/pan-addsecmasterrightwarrant.htm

ADDSECMASTER

Future

FTXXXX

eagle/star/reference/pan-addsecmasterfuture.htm

ADDSECMASTER

SMF Option

OPOPCR

OPOPSW

OPOPEQ

OPOPFB

OPOPCM

OPOPIX

eagle/star/reference/pan-addsecmasteroption.htm

ADDSECMASTER

SMF Credit Default Swap and Lock

SWCDCO

SWLOCK

eagle/star/reference/pan-swcdaddsecmaster.htm

ADDSECMASTER

SMF Multileg Swaps

SWxxxx

(excl. SWCDCOSWLOCK)

eagle/star/reference/pan-addsecmastermultilegswap.htm

ADDSECMASTER

SMF Forward Contract

FWXXXX

eagle/star/reference/pan-addsecmasterfwd.htm

ADDSECMASTER

Index

INXXXX

eagle/star/reference/pan-addsecmasterindex.htm

ADDSECMASTER

Synthetic

SYNTHETIC

eagle/star/reference/pan-addsecmastersynthetic.htm

ADDSECMASTER

Xref Identifiers Enhancement for Generic SMF

This logic is applicable as of the EagleML November monthend 2015 release.
NOTE:  This enhancement is available only for the Generic SMF. Neither the MultiLeg SMF nor Underlying shell records are affected.

The Generic SMF allows you to load as many xref identifiers as you want with your Generic SMF record along with 15 industry-standard identifiers (such as cusip, ticker, isin, etc) 
These identifiers are loaded via the ADDSECMASTER stored procedure by a separate dynamic sql.
You can set them either as 15 standard Ids + 10 xref Ids (xId1..xId10) such as:

<xId1> <xId>TSTXREFID2_1</xId> <xIdType>TSTXID1</xIdType> </xId1>

or as 15 standard Ids + unlimited xref Ids such as:

<xId> <xId>TSTXREFID1_1</xId> <xIdType>TSTXID1</xIdType> </xId>
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LoadReference" eaglemlVersion="2-0" actualBuild="1" xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0"> <referenceTransaction xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0"> <header> <objectType>GenericSMF</objectType> </header> <genericSMF> <sourceName>EAGLE PACE</sourceName> <updateSource>MCADMIN</updateSource> <effectiveDate>2014-09-30</effectiveDate> <primaryAssetId>CUSIP_ID1</primaryAssetId> <primaryAssetType>CUSIP</primaryAssetType> <altAssetIdAndType> <instrumentId>CINS_ID1</instrumentId> <instrumentIdType>CINS</instrumentIdType> </altAssetIdAndType> <issueName>TST 2010 1</issueName> <ticker>TICKER_ID1</ticker> <cusip>CUSIP_ID1</cusip> <cusipPay>CUSIP_PAY_ID1</cusipPay> <cusipReceive>CUSIP_RECEIVE_ID1</cusipReceive> <isin>ISIN_ID1</isin> <sedol>SEDOL_ID1</sedol> <reuters>REUTERS_ID1</reuters> <bloombergId>BBID_ID1</bloombergId> <sicovmId>SICOVM_ID1</sicovmId> <valorenId>VALOREN_ID1</valorenId> <cedel>CEDEL_ID1</cedel> <internalId>INTERNAL_ID1</internalId> <cinsId>CINS_ID1</cinsId> <uniqueProductId>UPI_ID1</uniqueProductId> <uniqueSwapId>USI_ID1</uniqueSwapId> <xrefIdentifiers> <xId> <xId>TSTXREFID1_1</xId> <xIdType>TSTXID1</xIdType> </xId> <xId> <xId>TSTXREFID1_2</xId> <xIdType>TSTXID2</xIdType> </xId> <xId> <xId>TSTXREFID1_3</xId> <xIdType>TSTXID3</xIdType> </xId> <xId> <xId>TSTXREFID1_4</xId> <xIdType>TSTXID4</xIdType> </xId> <xId> <xId>TSTXREFID1_5</xId> <xIdType>TSTXID5</xIdType> </xId> <xId> <xId>TSTXREFID1_6</xId> <xIdType>TSTXID6</xIdType> </xId> <xId> <xId>TSTXREFID1_7</xId> <xIdType>TSTXID7</xIdType> </xId> <xId> <xId>TSTXREFID1_8</xId> <xIdType>TSTXID8</xIdType> </xId> <xId> <xId>TSTXREFID1_9</xId> <xIdType>TSTXID9</xIdType> </xId> <xId> <xId>TSTXREFID1_10</xId> <xIdType>TSTXI10</xIdType> </xId> <xId> <xId>TSTXREFID1_11</xId> <xIdType>TSTXID11</xIdType> </xId> <xId> <xId>TSTXREFID1_12</xId> <xIdType>TSTXID12</xIdType> </xId> <xId> <xId>TSTXREFID1_13</xId> <xIdType>TSTXID13</xIdType> </xId> <xId> <xId>TSTXREFID1_14</xId> <xIdType>TSTXID14</xIdType> </xId> <xId> <xId>TSTXREFID1_15</xId> <xIdType>TSTXID15</xIdType> </xId> <xId> <xId>TSTXREFID1_16</xId> <xIdType>TSTXID16</xIdType> </xId> <xId> <xId>TSTXREFID1_17</xId> <xIdType>TSTXID17</xIdType> </xId> <xId> <xId>TSTXREFID1_18</xId> <xIdType>TSTXID18</xIdType> </xId> <xId> <xId>TSTXREFID1_19</xId> <xIdType>TSTXID19</xIdType> </xId> <xId> <xId>TSTXREFID1_20</xId> <xIdType>TSTXID20</xIdType> </xId> </xrefIdentifiers> <primaryExchangeCode>ALL</primaryExchangeCode> <assetCurrency>USD</assetCurrency> <investmentType>FI</investmentType> <processingSecurityType>DBFBFB</processingSecurityType> </genericSMF> </referenceTransaction> </EagleML>

 

select * from securitydbo.xreference where security_alias in (select security_alias from securitydbo.security_master where primary_asset_id ='CUSIP_IDT1')

You can switch to old logic by setting W_USEDYNAMIC_FOR_XREF= 'N' in the eagle_ml-2-0_cm_custom/w_config_custom.inc configuration file or by adding the EagleML/referenceTransaction/genericSMF/loadXrefOptions element to your incoming file (which has higher priority that global setting W_USEDYNAMIC_FOR_XREF) with 'LOAD_FIRST_10' value.

The old logic involves the stored procedure in the load process, thus limiting your choice to only 10 xref identifiers. These are the first 10 non-empty identifiers  as they are in the incoming message starting from industry standard identifiers such as cusip, ticker, isin, etc and then identifiers from xId1, xId2.  If you are using October monthend 2015 EagleML release or earlier, please remember that this limitation is applied.

See an example of Generic SMF designed to use old logic (15 standard Ids + 10 xref Ids (xId1..xId10)
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="LoadReference" eaglemlVersion="2-0" actualBuild="1" xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0"> <referenceTransaction xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0"> <header> <objectType>GenericSMF</objectType> </header> <genericSMF> <sourceName>EAGLE PACE</sourceName> <updateSource>MCADMIN</updateSource> <effectiveDate>2014-09-30</effectiveDate> <primaryAssetId>CUSIP_ID2</primaryAssetId> <primaryAssetType>CUSIP</primaryAssetType> <altAssetIdAndType> <instrumentId>CINS_ID2</instrumentId> <instrumentIdType>CINS</instrumentIdType> </altAssetIdAndType> <issueName>TST 2010 1</issueName> <ticker>TICKER_ID2</ticker> <cusip>CUSIP_ID2</cusip> <cusipPay>CUSIP_PAY_ID2</cusipPay> <cusipReceive>CUSIP_RECEIVE_ID2</cusipReceive> <isin>ISIN_ID2</isin> <sedol>SEDOL_ID2</sedol> <reuters>REUTERS_ID2</reuters> <bloombergId>BBID_ID2</bloombergId> <sicovmId>SICOVM_ID2</sicovmId> <valorenId>VALOREN_ID2</valorenId> <cedel>CEDEL_ID2</cedel> <internalId>INTERNAL_ID2</internalId> <cinsId>CINS_ID2</cinsId> <uniqueProductId>UPI_ID2</uniqueProductId> <uniqueSwapId>USI_ID2</uniqueSwapId> <xrefIdentifiers> <xId1> <xId>TSTXREFID2_1</xId> <xIdType>TSTXID1</xIdType> </xId1> <xId2> <xId>TSTXREFID2_2</xId> <xIdType>TSTXID2</xIdType> </xId2> <xId3> <xId>TSTXREFID2_3</xId> <xIdType>TSTXID3</xIdType> </xId3> <xId4> <xId>TSTXREFID2_4</xId> <xIdType>TSTXID4</xIdType> </xId4> <xId5> <xId>TSTXREFID2_5</xId> <xIdType>TSTXID5</xIdType> </xId5> <xId6> <xId>TSTXREFID2_6</xId> <xIdType>TSTXID6</xIdType> </xId6> <xId7> <xId>TSTXREFID2_7</xId> <xIdType>TSTXID7</xIdType> </xId7> <xId8> <xId>TSTXREFID2_8</xId> <xIdType>TSTXID8</xIdType> </xId8> <xId9> <xId>TSTXREFID2_9</xId> <xIdType>TSTXID9</xIdType> </xId9> <xId10> <xId>TSTXREFID2_10</xId> <xIdType>TSTXI10</xIdType> </xId10> </xrefIdentifiers> <primaryExchangeCode>ALL</primaryExchangeCode> <assetCurrency>USD</assetCurrency> <investmentType>FI</investmentType> <processingSecurityType>DBFBFB</processingSecurityType> </genericSMF> </referenceTransaction> </EagleML>

issueTaxType Processing

In case issueTaxType (SECURITYDBO.SECURITY_MASTER_DETAIL.ISSUE_TAX_TYPE) is not passed in incoming SMF message or passed value is not resolved in DB for SMF where securityProcressingType is one of: DBIBMU, DBFBIO, DBFBAL , DBFBCC , DBFBFB
– issueTaxType is set to ‘T’.

tag2301 Processing

If Processing Type (tag11) = OP then Synthetic Security Type (tag2301) is set to SYNCASHOPT.
For other values of Processing Type (tag11) Synthetic Security Type (tag2301) is set to SYNCASHFUT.

NG Logic

To enable NG logic for SMF, either add GENECRICSMF to the list of w_ng_enabled in w_config_custom.inc or set procedureSwitch node to 'NG' in the incoming message.
SMF NG logic is currently available only for generic SMF objects (doesn't support Multileg and FX Forward security).
Since SMF Generic is loaded via DBML request (it uses XSLT like Warehouse objects). If not or an empty profile file is created NG_SP_name.map CORE XSLT would be used for DBML request creation – it may be a valid choice if NG SP have same parameter list with current core version.

However if a profile is created and it is not empty (it should contain any symbol – this condition is used like a trigger) custom created XSLT would be used - ./../../customer/in/xml/xslt/smf_egl_gen_interface_ng.xsl
Custom NG SP name option is available – in order to rename the SP that should be called as NG it is necessary to create the following variables in w_config_custom.inc:

  • W_'+Upper(:varObjectType:)+'_NG_SCHEMA_NAME – for schema name

  • W_'+Upper(:varObjectType:)+'_NG_PACKAGE_NAME – for package name

  • W_'+Upper(:varObjectType:)+'_NG_SP_NAME – for NG SP name

For each of them in the case the variable does not exist default value would be used:

  • Core schema name for schema name

  • Core package name + _NG – for package name

  • Core SP name + _NG – for NG SP name​

Example of Use

<COL TAG="W_GENERICSMF_NG_SCHEMA_NAME" EXPRESSION="'PACE_MASTERDBO'"/> <COL TAG="W_GENERICSMF_NG_PACKAGE_NAME" EXPRESSION="'ESTAR_SEC_NG'"/> <COL TAG="W_GENERICSMF_NG_SP_NAME" EXPRESSION="'INSERT_UPDATE_SMF_MI_NG'"/>

Â