|
sqldba20
Posting Yak Master
183 Posts |
Posted - 2007-09-21 : 11:37:14
|
| Here is the Stored Procedure:CREATE PROCEDURE [dbo].[uspAbsHeqAnalyticOutputImport](@AnalyticJobIdStr VARCHAR(50),@Error_uspAbsHeqAnalyticOutputImport_Entry XML OUTPUT)ASBEGINDECLARE @AnalyticJobId INTSET @AnalyticJobId = CAST(@AnalyticJobIdStr AS INT)CREATE TABLE #tempResultsXml(id INT IDENTITY(1,1), -- ResultXML XML, AnalyticJobEntryOrdinal INT, DigipedeJobId INT, DigipedeTaskId INT, DigipedePoolId INT, SubmissionTime DATETIME, SolveFor VARCHAR(50), ScenarioName VARCHAR(250), SecurityXML XML, --SimulatedBondLosses XML, SimulatedPresentValues XML, ModelArrays XML, Cashflows XML, ScenarioParametersKey VARCHAR(250),AnaltyicEngineId INT)/*----------------------------------------------------------------------*//*---------------START Grabbing the Output from the AnalyticServiceDB.dbo.tblAnalyticPersistence On Digipede Server------------------*//*----------------------------------------------------------------------*/DECLARE @ResultXML XML DECLARE @SqlString NVARCHAR(MAX)CREATE TABLE #ResultXMLTable (ResultXML XML)SET @SqlString = 'SELECT * FROM OPENQUERY (SBARADIGI,'' SELECT (SELECT ( SELECT AnalyticJobId AS AnalyticJobId, AnalyticJobEntryOrdinal AS AnalyticJobEntryOrdinal, UpdateDate AS UpdateDate, MetaData, [Entry] FROM AnalyticServiceDB.dbo.tblAnalyticPersistence WHERE MetaData.exist (''''//SbaAnalyticPersistence[EntryDirection="Output" or IsAnalyticResult="true"]'''') = 1 AND AnalyticJobId = '+@AnalyticJobIdStr+' AND AnalyticJobEntryOrdinal <> 0 FOR XML PATH (''''ResultXML''''),type) FOR XML PATH (''''Results''''))'')'INSERT #ResultXMLTable EXEC(@SqlString)SET @ResultXML = (SELECT ResultXML FROM #ResultXMLTable)DROP TABLE #ResultXMLTable/*----------------------------------------------------------------------*//*----------------END Grabbing the Output from the Analytic Jobs-------------------*//*----------------------------------------------------------------------*/DECLARE @AnalyticEngineId INTDECLARE @AnalyticEngineName VARCHAR(50)SET @AnalyticEngineName = (SELECT DISTINCT ResultXMLSecurity.SecurityNode.value('(./AnalyticEngineVersion)[1]','VARCHAR(50)') FROM @ResultXML.nodes('./Results/ResultXML/Entry/Security') ResultXMLSecurity(SecurityNode))EXECUTE [dbo].[uspAnalylticServiceDbGetAnalyticEngineIdFromEngineName] @AnalyticEngineName, @AnalyticEngineId OUTPUTINSERT #tempResultsXml SELECT --ResultsNodes.ResultXML.query('.'), ResultsNodes.ResultXML.value('(./AnalyticJobEntryOrdinal)[1]','INT'), ResultXMLPersistence.PersistenceNode.value('(./DigipedeJobId)[1]','INT'), ResultXMLPersistence.PersistenceNode.value('(./DigipedeTaskId)[1]','INT'), ResultXMLPersistence.PersistenceNode.value('(./DigipedePoolId)[1]','INT'), ResultXMLPersistence.PersistenceNode.value('(./SubmissionTime)[1]','DATETIME'), ResultXMLSecurity.SecurityNode.value('(./SolveFor)[1]','VARCHAR(50)'), ResultXMLSecurity.SecurityNode.value('(./ScenarioName)[1]','VARCHAR(50)'), ResultXMLSecurity.SecurityNode.query('.'), CASE ResultXMLSecurity.SecurityNode.value('(./SolveFor)[1]','VARCHAR(500)') WHEN 'Price' THEN 'PrepayMultiplier='+CAST(CONVERT(DECIMAL(6,3),ResultXMLSecurity.SecurityNode.value('(./PrepayMultiplier)[1]','FLOAT')) AS VARCHAR(50))+ '/DefaultMultiplier='+CAST(CONVERT(DECIMAL(6,3),ResultXMLSecurity.SecurityNode.value('(./DefaultMultiplier)[1]','FLOAT')) AS VARCHAR(50))+'/SeverityMultiplier='+ CAST(CONVERT(DECIMAL(6,3),ResultXMLSecurity.SecurityNode.value('(./SeverityMultiplier)[1]','FLOAT')) AS VARCHAR(50))+'/SolveFor='+ResultXMLSecurity.SecurityNode.value('(./SolveFor)[1]','VARCHAR(500)')+'/OAS='+CAST(ROUND(ResultXMLSecurity.SecurityNode.value('(./OAS)[1]','FLOAT')*10000.0,0) AS VARCHAR(50))+'bps' WHEN 'Spread' THEN 'PrepayMultiplier='+CAST(CONVERT(DECIMAL(6,3),ResultXMLSecurity.SecurityNode.value('(./PrepayMultiplier)[1]','FLOAT')) AS VARCHAR(50))+ '/DefaultMultiplier='+CAST(CONVERT(DECIMAL(6,3),ResultXMLSecurity.SecurityNode.value('(./DefaultMultiplier)[1]','FLOAT')) AS VARCHAR(50))+'/SeverityMultiplier='+ CAST(CONVERT(DECIMAL(6,3),ResultXMLSecurity.SecurityNode.value('(./SeverityMultiplier)[1]','FLOAT')) AS VARCHAR(50))+'/SolveFor='+ResultXMLSecurity.SecurityNode.value('(./SolveFor)[1]','VARCHAR(500)')+'/MarketPrice='+CAST(CONVERT(Decimal(6,3),ResultXMLSecurity.SecurityNode.value('(./MarketPrice)[1]','FLOAT')) AS VARCHAR(50)) END, @AnalyticEngineId FROM @ResultXML.nodes('./Results/ResultXML') ResultsNodes(ResultXML) CROSS APPLY ResultsNodes.ResultXML.nodes('./MetaData/SbaAnalyticPersistence') ResultXMLPersistence(PersistenceNode) CROSS APPLY ResultsNodes.ResultXML.nodes('./Entry/Security') ResultXMLSecurity(SecurityNode) SET @ResultXML = ''/*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticScenarioNameType Update*/DECLARE @AbsHeqAnalyticOutputScenarioNameTypeEntries XMLDECLARE @Error_tblAbsHeqAnalyticScenarioNameType_Update XMLSET @AbsHeqAnalyticOutputScenarioNameTypeEntries = (SELECT (SELECT DISTINCT ScenarioName AS ScenarioNameLabel FROM #tempResultsXml FOR XML PATH('ScenarioName'),type) FOR XML PATH('AbsHeqAnalyticOutputScenarioNameTypeEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticScenarioNameType_Entry] @AbsHeqAnalyticOutputScenarioNameTypeEntries, @Error_tblAbsHeqAnalyticScenarioNameType_Update OUTPUT/*End tblAbsHeqAnalyticScenarioNameType Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticScenarioParametersKeyType Update*/DECLARE @AbsHeqAnalyticOutputScenarioParametersKeyTypeEntries XMLDECLARE @Error_tblAbsHeqAnalyticScenarioParametersKeyType_Update XMLSET @AbsHeqAnalyticOutputScenarioParametersKeyTypeEntries = (SELECT (SELECT DISTINCT ScenarioParametersKey AS ScenarioParametersKeyLabel FROM #tempResultsXml FOR XML PATH('ScenarioParametersKey'),type) FOR XML PATH('AbsHeqAnalyticOutputScenarioParametersKeyTypeEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticScenarioParametersKeyType_Entry] @AbsHeqAnalyticOutputScenarioParametersKeyTypeEntries, @Error_tblAbsHeqAnalyticScenarioParametersKeyType_Update OUTPUT/*End tblAbsHeqAnalyticScenarioParametersKeyType Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticOutputMain Update*/DECLARE @AbsHeqAnalyticOutputMainImportEntries XMLDECLARE @Error_tblAbsHeqAnalyticOutputMain_Update XMLSET @AbsHeqAnalyticOutputMainImportEntries = (SELECT (SELECT @AnalyticJobId AS AnalyticJobId, AnalyticJobEntryOrdinal AS AnalyticJobEntryOrdinal, DigipedeJobId AS DigipedeJobId, DigipedeTaskId AS DigipedeTaskId, SubmissionTime AS SubmissionTime, ScenarioParametersKey AS ScenarioParametersKey, AnalyticEngineId AS AnalyticEngineId, SecurityXml FROM #tempResultsXml FOR XML PATH ('HeqAnalyticRun'), type) FOR XML PATH ('HeqAnalyticOutputMainEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticOutputMain_Entry] @AbsHeqAnalyticOutputMainImportEntries, @Error_tblAbsHeqAnalyticOutputMain_Update OUTPUT/*End tblAbsHeqAnalyticOutputMain Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticOutputBaseCasePVs Update*/DECLARE @AbsHeqAnalyticOutputBaseCasePVsImportEntries XMLDECLARE @Error_tblAbsHeqAnalyticOutputBaseCasePVs_Update XMLSET @AbsHeqAnalyticOutputBaseCasePVsImportEntries = (SELECT (SELECT @AnalyticJobId AS AnalyticJobId, AnalyticJobEntryOrdinal AS AnalyticJobEntryOrdinal, DigipedeJobId AS DigipedeJobId, DigipedeTaskId AS DigipedeTaskId, SubmissionTime AS SubmissionTime, ScenarioParametersKey AS ScenarioParametersKey, AnalyticEngineId AS AnalyticEngineId, SecurityXml FROM #tempResultsXml FOR XML PATH ('HeqAnalyticRun'), type) FOR XML PATH ('HeqAnalyticOutputBaseCasePVsEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticOutputBaseCasePVs_Entry] @AbsHeqAnalyticOutputBaseCasePVsImportEntries, @Error_tblAbsHeqAnalyticOutputBaseCasePVs_Update OUTPUT/*End tblAbsHeqAnalyticOutputBaseCasePVs Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticOutputBaseCaseLosses Update*/DECLARE @AbsHeqAnalyticOutputBaseCaseLossesImportEntries XMLDECLARE @Error_tblAbsHeqAnalyticOutputBaseCaseLosses_Update XMLSET @AbsHeqAnalyticOutputBaseCaseLossesImportEntries = (SELECT (SELECT @AnalyticJobId AS AnalyticJobId, AnalyticJobEntryOrdinal AS AnalyticJobEntryOrdinal, DigipedeJobId AS DigipedeJobId, DigipedeTaskId AS DigipedeTaskId, SubmissionTime AS SubmissionTime, ScenarioParametersKey AS ScenarioParametersKey, AnalyticEngineId AS AnalyticEngineId, SecurityXml FROM #tempResultsXml FOR XML PATH ('HeqAnalyticRun'), type) FOR XML PATH ('HeqAnalyticOutputBaseCaseLossesEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticOutputBaseCaseLosses_Entry] @AbsHeqAnalyticOutputBaseCaseLossesImportEntries, @Error_tblAbsHeqAnalyticOutputBaseCaseLosses_Update OUTPUT/*End tblAbsHeqAnalyticOutputBaseCaseLosses Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticOutputModelArraysFlt Update*/DECLARE @AbsHeqAnalyticOutputModelArraysFltImportEntries XMLDECLARE @Error_tblAbsHeqAnalyticOutputModelArraysFlt_Update XMLSET @AbsHeqAnalyticOutputModelArraysFltImportEntries = (SELECT (SELECT @AnalyticJobId AS AnalyticJobId, AnalyticJobEntryOrdinal AS AnalyticJobEntryOrdinal, DigipedeJobId AS DigipedeJobId, DigipedeTaskId AS DigipedeTaskId, SubmissionTime AS SubmissionTime, ScenarioParametersKey AS ScenarioParametersKey, AnalyticEngineId AS AnalyticEngineId, SecurityXml FROM #tempResultsXml FOR XML PATH ('HeqAnalyticRun'), type) FOR XML PATH ('HeqAnalyticOutputModelArraysFltEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticOutputModelArraysFlt_Entry] @AbsHeqAnalyticOutputModelArraysFltImportEntries, @Error_tblAbsHeqAnalyticOutputModelArraysFlt_Update OUTPUT/*End tblAbsHeqAnalyticOutputModelArraysFlt Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticOutputModelArraysFxd Update*/DECLARE @AbsHeqAnalyticOutputModelArraysFxdImportEntries XMLDECLARE @Error_tblAbsHeqAnalyticOutputModelArraysFxd_Update XMLSET @AbsHeqAnalyticOutputModelArraysFxdImportEntries = (SELECT (SELECT @AnalyticJobId AS AnalyticJobId, AnalyticJobEntryOrdinal AS AnalyticJobEntryOrdinal, DigipedeJobId AS DigipedeJobId, DigipedeTaskId AS DigipedeTaskId, SubmissionTime AS SubmissionTime, ScenarioParametersKey AS ScenarioParametersKey, AnalyticEngineId AS AnalyticEngineId, SecurityXml FROM #tempResultsXml FOR XML PATH ('HeqAnalyticRun'), type) FOR XML PATH ('HeqAnalyticOutputModelArraysFxdEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticOutputModelArraysFxd_Entry] @AbsHeqAnalyticOutputModelArraysFxdImportEntries, @Error_tblAbsHeqAnalyticOutputModelArraysFxd_Update OUTPUT/*End tblAbsHeqAnalyticOutputModelArraysFxd Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*tblAbsHeqAnalyticOutputCashFlows Update*/DECLARE @AbsHeqAnalyticOutputCashFlowsImportEntries XMLDECLARE @Error_tblAbsHeqAnalyticOutputCashFlows_Update XMLSET @AbsHeqAnalyticOutputCashFlowsImportEntries = (SELECT (SELECT @AnalyticJobId AS AnalyticJobId, AnalyticJobEntryOrdinal AS AnalyticJobEntryOrdinal, DigipedeJobId AS DigipedeJobId, DigipedeTaskId AS DigipedeTaskId, SubmissionTime AS SubmissionTime, ScenarioParametersKey AS ScenarioParametersKey, AnalyticEngineId AS AnalyticEngineId, SecurityXml FROM #tempResultsXml FOR XML PATH ('HeqAnalyticRun'), type) FOR XML PATH ('HeqAnalyticOutputCashFlowsEntries'))EXECUTE [dbo].[uspCreate_tblAbsHeqAnalyticOutputCashFlows_Entry] @AbsHeqAnalyticOutputCashFlowsImportEntries, @Error_tblAbsHeqAnalyticOutputCashFlows_Update OUTPUT/*End tblAbsHeqAnalyticOutputCashFlows Update*//*-----------------------------------------------------------*//*-----------------------------------------------------------*//*-----------------------------------------------------------*/DROP TABLE #tempResultsXmlSET @Error_uspAbsHeqAnalyticOutputImport_Entry = (SELECT (SELECT @AnalyticJobId AS AnalyticJobId, @Error_tblAbsHeqAnalyticScenarioNameType_Update, @Error_tblAbsHeqAnalyticScenarioParametersKeyType_Update, @Error_tblAbsHeqAnalyticOutputMain_Update, @Error_tblAbsHeqAnalyticOutputBaseCasePVs_Update, @Error_tblAbsHeqAnalyticOutputBaseCaseLosses_Update, @Error_tblAbsHeqAnalyticOutputModelArraysFlt_Update, @Error_tblAbsHeqAnalyticOutputModelArraysFxd_Update, @Error_tblAbsHeqAnalyticOutputCashFlows_Update FOR XML PATH ('AnalyticJobIdEntry'),type) FOR XML PATH ('AnalyticJobIdImport'))--SELECT @Error_uspAbsHeqAnalyticOutputImport_EntryRETURNEND |
 |
|