|
| 1 | +{{#each dataObjectMappings}}{{#if @first}} |
| 2 | +-- |
| 3 | +-- Satellite Insert Into statement for {{targetDataObject.name}} |
| 4 | +-- Removed MIS_DATE from OMD_HASH_DIFF |
| 5 | +-- |
| 6 | +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'INT.SP_{{targetDataObject.name}}') AND type in (N'P')) |
| 7 | +DROP PROCEDURE [INT].[SP_{{targetDataObject.name}}]; |
| 8 | +GO |
| 9 | + |
| 10 | +CREATE PROCEDURE [INT].[SP_{{targetDataObject.name}}] @OMD_INSERT_MODULE_INSTANCE_ID int |
| 11 | +AS |
| 12 | + |
| 13 | +-- |
| 14 | +-- SAT Insert Into statement for [{{targetDataObject.name}}] from [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[{{sourceDataObjects.0.name}}] |
| 15 | +-- Removed MIS_DATE column from OMD_HASH_FULL |
| 16 | +-- |
| 17 | + |
| 18 | +INSERT INTO [INT].[{{targetDataObject.name}}] |
| 19 | +( {{#each businessKeys}} |
| 20 | + [{{surrogateKey}}],{{/each}} |
| 21 | + {{#each dataItemMappings}}[{{targetDataItem.name}}], |
| 22 | + {{/each}} |
| 23 | + OMD_EFFECTIVE_DATETIME , |
| 24 | + OMD_EXPIRY_DATETIME, |
| 25 | + OMD_EVENT_DATETIME, |
| 26 | + OMD_CURRENT_RECORD_INDICATOR, |
| 27 | + OMD_DELETED_RECORD_INDICATOR, |
| 28 | + OMD_INSERT_MODULE_INSTANCE_ID , |
| 29 | + OMD_UPDATE_MODULE_INSTANCE_ID, |
| 30 | + OMD_RECORD_SOURCE_ID, |
| 31 | + OMD_SOURCE_ROW_ID, |
| 32 | + OMD_HASH_DIFF |
| 33 | +) |
| 34 | +SELECT |
| 35 | +{{#each businessKeys}} |
| 36 | + SUB.[{{surrogateKey}}],{{/each}} |
| 37 | + {{#each dataItemMappings}}SUB.[{{targetDataItem.name}}], |
| 38 | + {{/each}} |
| 39 | + SUB.OMD_INSERT_DATETIME, |
| 40 | + SUB.OMD_EXPIRY_DATETIME, |
| 41 | + SUB.OMD_EVENT_DATETIME, |
| 42 | + SUB.OMD_CURRENT_RECORD_INDICATOR, |
| 43 | + SUB.OMD_DELETED_RECORD_INDICATOR, |
| 44 | + SUB.OMD_INSERT_MODULE_INSTANCE_ID , |
| 45 | + SUB.OMD_UPDATE_MODULE_INSTANCE_ID , |
| 46 | + SUB.OMD_RECORD_SOURCE_ID, |
| 47 | + SUB.OMD_SOURCE_ROW_ID, |
| 48 | + SUB.OMD_HASH_DIFF |
| 49 | +FROM |
| 50 | +( |
| 51 | +SELECT |
| 52 | + CONVERT(CHAR,HASHBYTES('SHA1',UPPER({{#each businessKeys}}{{#each businessKeyComponentMapping}} RTRIM(ISNULL(CONVERT(NVARCHAR(MAX),{{stringcompare sourceDataItems.0.isHardCodedValue 'True'}} [{{/stringcompare }}{{sourceDataItems.0.name}}{{stringcompare sourceDataItems.0.isHardCodedValue 'True'}}] {{/stringcompare }}),'NA')){{#unless @last}}+'|'+{{/unless}}{{/each}} {{/each}} )),2) |
| 53 | +AS {{#each businessKeys}} [{{surrogateKey}}],{{/each}} |
| 54 | + |
| 55 | + {{#each dataItemMappings}} |
| 56 | + [{{../sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[{{sourceDataItems.0.name}}] AS [{{targetDataItem.name}}], |
| 57 | + {{/each}} |
| 58 | + [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_INSERT_DATETIME], |
| 59 | + '9999-12-31 00:00:00.0000000' AS [OMD_EXPIRY_DATETIME], |
| 60 | + [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_EVENT_DATETIME], |
| 61 | + [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_CURRENT_RECORD_INDICATOR], |
| 62 | + [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_DELETED_RECORD_INDICATOR], |
| 63 | + @OMD_INSERT_MODULE_INSTANCE_ID AS [OMD_INSERT_MODULE_INSTANCE_ID], |
| 64 | + NULL AS [OMD_UPDATE_MODULE_INSTANCE_ID], |
| 65 | + [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_RECORD_SOURCE_ID], |
| 66 | + [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_SOURCE_ROW_ID], |
| 67 | + CONVERT(CHAR,HASHBYTES('SHA1',UPPER({{#each dataItemMappings}} |
| 68 | + RTRIM(ISNULL(CONVERT(NVARCHAR(MAX),[{{../sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[{{sourceDataItems.0.name}}]),'NA')){{#unless @last}}+'|'+{{/unless}}{{/each}} +'|'+[{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_DELETED_RECORD_INDICATOR] )),2) AS [OMD_HASH_DIFF], |
| 69 | +CAST(ROW_NUMBER() OVER ( |
| 70 | + PARTITION BY CONVERT(CHAR,HASHBYTES('SHA1',UPPER({{#each businessKeys}}{{#each businessKeyComponentMapping}} RTRIM(ISNULL(CONVERT(NVARCHAR(MAX),{{stringcompare sourceDataItems.0.isHardCodedValue 'True'}} [{{/stringcompare }}{{sourceDataItems.0.name}}{{stringcompare sourceDataItems.0.isHardCodedValue 'True'}}] {{/stringcompare }}),'NA')){{#unless @last}}+'|'+{{/unless}}{{/each}} {{/each}} )),2) |
| 71 | + {{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}}, [{{../sourceDataItems.0.name}}]{{/if}}{{/each}}{{/each}} |
| 72 | + ORDER BY [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_INSERT_DATETIME], [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[OMD_SOURCE_ROW_ID] |
| 73 | + ) AS INT ) AS [__ROW_NUMBER__] |
| 74 | +FROM [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[{{sourceDataObjects.0.name}}] {{sourceDataObjects.0.dataObjectConnection.extensions.1.value}} |
| 75 | +) AS SUB |
| 76 | +LEFT OUTER JOIN --Prevent Processing |
| 77 | +[INT].[{{targetDataObject.name}}] SAT |
| 78 | +ON [SAT].{{#each businessKeys}}[{{surrogateKey}}] {{/each}}= [SUB].{{#each businessKeys}}[{{surrogateKey}}]{{/each}} |
| 79 | +{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}} and [SAT].[{{../sourceDataItems.0.name}}] = [SUB].[{{../sourceDataItems.0.name}}] {{/if}}{{/each}}{{/each}} |
| 80 | +and [SAT].[OMD_CURRENT_RECORD_INDICATOR]='Y' and [SAT].[OMD_DELETED_RECORD_INDICATOR]='N' |
| 81 | +WHERE ( [SAT].{{#each businessKeys}}[{{surrogateKey}}]{{/each}} IS NULL --New record. Does not exist in Sat |
| 82 | +OR ([SUB].[__ROW_NUMBER__] = 1 AND [SUB].[OMD_HASH_DIFF] <> [SAT].[OMD_HASH_DIFF]) --First record in HLP has a different hash diff the the lastest record in SAT |
| 83 | +OR [SUB].[__ROW_NUMBER__] > 1) --Only check the first row for changes |
| 84 | +; |
| 85 | + |
| 86 | +SELECT @@ROWCOUNT AS ROWS_INSERTED |
| 87 | +GO |
| 88 | +{{/if}}{{/each}} |
0 commit comments