11CREATE PROCEDURE [omd].[CreateLoadWindow]
22 @ModuleInstanceId INT , -- The currently involved Module Instance Id
33 @LoadWindowAttributeName VARCHAR (255 ) = ' INSCRIPTION_TIMESTAMP' , -- Name of the attribute used to determine the load window
4+ @ModuleInstanceIdColumnName VARCHAR (255 ) = ' MODULE_INSTANCE_ID' ,
45 @Debug CHAR (1 ) = ' N' ,
56 @StartValue VARCHAR (MAX ) = NULL OUTPUT , -- Can be datetime or identifier, datetime, whatever...
67 @EndValue VARCHAR (MAX ) = NULL OUTPUT
2324
2425 EXEC [omd].[CreateLoadWindow]
2526 @ModuleInstanceId = '',
26- @LoadWindowAttributeName = 'LOAD_DATETIME',
2727 @Debug = N'Y',
2828 @StartValue = @StartValue OUTPUT,
2929 @EndValue = @EndValue OUTPUT
@@ -33,6 +33,11 @@ Usage:
3333 @EndValue as N'@EndValue'
3434*/
3535
36+ IF @Debug = ' Y'
37+ BEGIN
38+ PRINT ' Start of the Create Load Window process (omd.CreateLoadWindow).'
39+ END
40+
3641 DECLARE @EventDetail VARCHAR (4000 );
3742 DECLARE @EventReturnCode INT ;
3843
8085 BEGIN
8186 SET @StartValueSql =
8287' SELECT
83- END_VALUE AS NEW_START_VALUE
88+ MAX( END_VALUE) AS NEW_START_VALUE
8489FROM
8590(
8691 SELECT
8994 FROM omd.SOURCE_CONTROL A
9095 JOIN omd.MODULE_INSTANCE B ON (A.MODULE_INSTANCE_ID = B.MODULE_INSTANCE_ID)
9196 WHERE B.MODULE_ID = ' + CONVERT (VARCHAR (10 ),@ModuleId)+ '
97+ -- Default value
98+ UNION
99+ SELECT 1,'' 1900-01-01''
92100) sub
93101WHERE RN=1' ;
94102
95103 IF @Debug= ' Y'
96104 BEGIN
97105 PRINT ' No load window start value was provided, so the most recent value will be retrieved from the source control table for the source data object.' ;
98- PRINT ' The following code will be used to determin the start value: '+ @StartValueSql;
106+ PRINT ' The following code will be used to determin the start value: '+ CHAR ( 13 ) + @StartValueSql;
99107 END
100108 END
101109 END
@@ -117,13 +125,13 @@ WHERE RN=1';
117125 SET @EndValueSql =
118126' SELECT COALESCE(MAX('+ @LoadWindowAttributeName+ ' ),'' 1900-01-01'' ) AS END_VALUE
119127FROM ' + @SourceDataObject+ ' sdo
120- JOIN omd.MODULE_INSTANCE modinst ON sdo.omd_module_instance_id = modinst.MODULE_INSTANCE_ID
128+ JOIN omd.MODULE_INSTANCE modinst ON sdo.' + @ModuleInstanceIdColumnName + ' = modinst.MODULE_INSTANCE_ID
121129WHERE modinst.EXECUTION_STATUS_CODE='' S'' ' ;
122130
123131 IF @Debug= ' Y'
124132 BEGIN
125133 PRINT ' No load window end value was provided, so the maximum date will be retrieved directly from the source data object.' ;
126- PRINT ' The following code will be used to determin the end value: '+ @EndValueSql;
134+ PRINT ' The following code will be used to determin the end value: '+ CHAR ( 13 ) + @EndValueSql;
127135 END
128136 END
129137 END
@@ -152,7 +160,7 @@ WHERE modinst.EXECUTION_STATUS_CODE=''S''';
152160 )'
153161
154162 IF @Debug= ' Y'
155- PRINT ' Load Window SQL statement is: '+ @SqlStatement;
163+ PRINT ' Load Window SQL statement is: '+ @SqlStatement;
156164
157165 EXEC (@SqlStatement);
158166
0 commit comments