A Hedge fund had an extensive process built within their investment management life cycle that included in-house and vendor applications. A need arose for them to start supplying the same services to a Third Party. They want to have one development location that allows them to make enhancements and roll changes out to their in-house users and the third party. OmniVista Solutions did analysis on all the features that were available to its current users. This included all custom logic, reports, visual effects, and scheduled processes. We then outlined a plan that would allow us to make all references configurable so that the base code could be rolled to multiple locations with the configuration files being the lone differences. We then put together a team of consultants and hedge funds full-time personnel to execute the complete application development life cycle from design, implementation and testing. No training was needed as the third party had previous experience with the work flow we were putting in place CRIMS: An acronym for the Charles River Investment Management System. This is the Order Management System used by the Client to build/execute trades and to pass on to Settlement Our client required that the third party would have all the same functionality as processes in place as their current users. Items included in the split were as follows. ▢ Trading System (CRIMS) ▢ Custom Trade Flow Service ▢ Custom Allocation Service ▢ Holdings Loads from In House Data Repository ▢ Trade Loads to In House Data Repository ▢ Reports/Reconciliations ▢ Custom Trade Importer ▢ Custom Buttons within Trading System ▢ Custom Position View within Trading System ▢ Scheduled Processes ▢ FIX functionality ▢ Bloomberg Instances ▢ Data Repository ▢ Broker Matching Systems (Omgeo CTM) The first thing we did was to identify all instances where the clients name was hard coded. We will not want the clients name to show up in the system instances of the new Third Party. We had created a stored procedure that would allow us to search database table values for the client’s name or acronym. We also looked through all custom logic, reports, and database objects to find instances where the client was hardcoded. All of this was documented and outlined as changes needed for the process. A new instance of the Investment Management System was then created for the third party. This included creating a new CRIMS Middle Tier, Citrix Environment, Bloomberg Server, and FIX Server. Within CRIMS, the client had custom tools to streamline their workflows. The custom import control is one of these. It is a DLL created in C# and created as an AddIn to CRIMS. One of the changes needed here was that there were hard coded instances of a Default Fund used by the Client. This fund would not be in the 3rd Party instance. We updated the logic to use a System Parameter within the CRIMS environment to determine which default fund to use. This removed all hard-coded references and allowed this to be controlled by the instance the tool is used within. Most of the scheduled processes at this client are either through SQL Agent Jobs or Windows Task Scheduler. In most cases they run stored procedures to load data or to send out emails. All SQL database objects were created with parameters that could be passed in. This allowed the database objects to be the same for all environments and had the recipient company name was passed into the stored procedures to distinguish which environment process was being ran. At the client we had a lot of reports in Microsoft Reporting Services. The third party wanted to have all the same reports that the client had. The reports were created with conditional logic within the header that was controlled by a configuration parameter. So, depending on what environment the report was run from, the header would display correctly for the recipient Similarly, we had some emails that were triggered within stored procedures. To be able to use one code base, we created a parameter to pass into the stored procedure with the client/third parties’ name. When we run email stored procedures now, we pass in the name that you want to show up on the subject line. When a trade is being settled, most investment firms use some type of tool to match trading settlement information with a broker. In this case Omgeo CTM was used. We need to work with the vendor to setup a new instance of CTM. This consisted of updating configurations within CRIMS, setting up users, setting up profiles, and testing the flow. The result was two production Investment Management instances that shared the same base code but were configured for each Party separately. After the initial setup, we were able to copy the production database from the client environment to the Third Parties database and ran cleanup scripts to ensure all the client’s information no longer existed in the new environment.Executive Summary
Terms
Overview


