LANGUAGE SQL
BEGIN


	            BEGIN
			      COMMIT;
				  TRUNCATE TABLE cacheEZViewer_Usage_JobDS IMMEDIATE ;
	              --DELETE FROM cacheEZViewer_Usage_JobDS ;
	            END;
                COMMIT;
					

	            LOCK TABLE  cacheEZViewer_Usage_JobDS IN EXCLUSIVE MODE ;
				INSERT INTO cacheEZViewer_Usage_JobDS
				SELECT      c.JobID, c.JobName, c.MemberName, c.CA7JobName, c.CA7JobId, c.JobPath,
				            c.DataSetName, c.DataSetMemberName, c.GenerationNumber,
				            c.DataSetID, c.IsTemp, c.StepName, c.StepPath, c.stepStartRow, c.DDName
				FROM (
				      SELECT DISTINCT
				            jj.JobID,
				            jj.JobName,
				            jj.MemberName,
				            ca.JOB_NAME AS CA7JobName,
				            ca.JobId AS CA7JobId,
				            JobPosition.ResourceFilePath AS JobPath,
				            x.DataSetName,
                            x.DataSetMemberName,
				            CASE
				                WHEN x.IsGeneration = '1' THEN x.GenerationNumber
				                ELSE NULL
				            END AS GenerationNumber,
				            x.DataSetID,
				            x.IsTemp,
				            js.StepName,
				            jp.ResourceFilePath AS StepPath,
				            jp.StartRow AS stepStartRow,
				            x.DDName
				     FROM JCLStep js
				          INNER JOIN JCLPosition jp ON jp.PositionID = js.PositionID
				          INNER JOIN JCLJob jj ON js.JobID = jj.JobID
				          LEFT OUTER JOIN ca7_jobs ca ON ca.JCL_MEMBER = jj.MemberName
				          --LEFT OUTER JOIN ca7_jobs ca ON COLLATION_KEY(ca.JCL_MEMBER, 'UCA400R1_S1')  =  COLLATION_KEY(jj.MemberName, 'UCA400R1_S1')
				          INNER JOIN JCLPosition AS JobPosition ON jj.PositionID = JobPosition.PositionID
				          LEFT OUTER JOIN
					                     ( SELECT  jd.JobID,
									               jd.StepID,
					                               jd.DDName,
											       jdref.MemberName AS DataSetMemberName,
											       jpds.DataSetName,
											       jpds.IsGeneration,
				                                   jpds.GenerationNumber,
				                                   jpds.DataSetID,
				                                   jpds.IsTemp,
											       jpds.IsInstream
					                      FROM  JCLPhysicalDataSet jpds
					                            INNER JOIN  JCLDDRef jdref ON jpds.DataSetID = jdref.DataSetID
					                            INNER JOIN  JCLDD jd ON jdref.DDID = jd.DDID
				
				                           UNION ALL
				
				                            SELECT
													 istm.JobID,
													 istm.StepID,
													 idu.DDName AS DDName,
						                             CAST(NULL AS VARCHAR(50)) AS DataSetMemberName,
													 jpds.DataSetName,
													 jpds.IsGeneration,
													 jpds.GenerationNumber,
													 jpds.DataSetID,
													 jpds.IsTemp,
													 jpds.IsInstream
									   FROM   JCLIDCAMSStatements istm
											 INNER JOIN  JCLIDCAMSDatasetUsages idu ON idu.IDCAMSStatementID = istm.IDCAMSStatementID
											 INNER JOIN  JCLPhysicalDataSet jpds ON jpds.DataSetID =  idu.DataSetID	 	
				                       ) x ON x.JobID = jj.JobID AND  x.StepID = js.StepID
				     WHERE
					     (x.IsInstream <> 1
					      OR
						 x.IsInstream IS NULL)
				
				    )c ;	
				    COMMIT;		

END 
