/
7-run-recon-with-generic-reconciliation-provider.sql
99 lines (80 loc) · 2.65 KB
/
7-run-recon-with-generic-reconciliation-provider.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
-- =============================================================
-- Description:
-- 1. In this query, we perform a reconciliation on 2 portfolios
-- using the generic reconciliation provider
-- =============================================================
------------------------------
-- Table - Lookup to return --
------------------------------
-- (Required)
@lookup = values
('ibor-recon-test', 'ibor-recon-test', 'UkEquity001', 'SinglePortfolio', 'abor-recon-test', 'UkEquity001', 'SinglePortfolio', 'ibor-recon-test/default', 'ibor-recon-test/default', 'GBP', 'GBP', #2022-11-11#, #2022-11-11#)
;
@lookup_to_return =
select
column1 as ReconciliationKey,
column2 as LeftPortfolioScope,
column3 as LeftPortfolioCode,
column4 as LeftPortfolioType,
column5 as RightPortfolioScope,
column6 as RightPortfolioCode,
column7 as RightPortfolioType,
column8 as LeftRecipeId,
column9 as RightRecipeId,
column10 as LeftReportCurrency,
column11 as RightReportCurrency,
column12 as LeftValuationDate,
column13 as RightValuationDate
from @lookup;
--------------------------------
-- Table - Measures to return --
--------------------------------
-- (Optional)
@measures = values
('Holding/default/Units', 'Sum', null),
('Holding/default/Cost', 'Sum', null)
;
@measures_to_return = select
column1 as 'MeasureName',
column2 as 'Operation',
column3 as 'ReconciliationSide'
from @measures;
------------------------------
-- Table - Comparison Rules --
------------------------------
-- (Optional)
@comparisons = values
('ReconcileNumericRule', 'AbsoluteDifference', '200', 'Holding/default/Units', 'Sum')
;
@comparison_rules = select
column1 as 'RuleType',
column2 as 'ComparisonType',
column3 as 'Tolerance',
column4 as 'AppliesToKey',
column5 as 'AppliesToOp'
from @comparisons;
----------------------------------
-- Reconciliation Provider Call --
----------------------------------
@rec_response = select * from Lusid.Portfolio.Reconciliation.Generic where
MeasuresToReturn = @measures_to_return
and
ToLookup = @lookup_to_return
and
ComparisonRules = @comparison_rules
and
UseDefaultGroupKeys = false
and
KeysToGroupBy = 'Instrument/default/LusidInstrumentId'
and
Error is null
;
@pivot = use Tools.Pivot with @rec_response
--key=Measure
--aggregateColumns=LeftMeasureValue,RightMeasureValue,Difference,ResultComparison
enduse;
-- Uncomment one of the below 2 lines for either raw or pivoted output
-- Raw Output
select * from @rec_response;
-- Pivot Output
-- select * from @pivot;