Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 9 Next »

Stream Logic

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>


An example of Generic SMF utilizing this new logic (15 standard Ids + 20 xref Ids):
<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>
and a sample DB request to check if the load has been successful:
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.

 Details on the Old logic (click to expand)

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>

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'"/>
  • No labels