Stream Logic
Xref Identifiers Enhancement for Generic SMF
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>
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.
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'"/>