LANGUAGE SQL
BEGIN

-- declare temp tables
	                   DECLARE GLOBAL TEMPORARY TABLE session.sr
		               (
					    IdmsSchemaID INTEGER ,
						IdmsSchemaName VARCHAR(250) ,
						IdmsSubschemaID INTEGER ,
						IdmsSubschemaName VARCHAR(250) ,
						SetOrRecordID INTEGER ,
						SetOrRecordName VARCHAR(250) ,
						StatementTypeId INTEGER ,
						StatementTypeName VARCHAR(50) ,
						ResourceType INTEGER ,
						ResourceTypeName VARCHAR(50) ,
						ResourceTypeGroup1 INTEGER ,
						ResourceTypeGroup2 INTEGER ,
						StmtPathStr VARCHAR(250) ,
						StatementStartRow INTEGER ,
						StatementStartColumn INTEGER ,
						StatementEndRow INTEGER ,
						StatementEndColumn INTEGER ,
						ProgramID INTEGER ,
						ProgramName VARCHAR(256) ,
						ProgramTypeID INTEGER ,
						ProgramPath VARCHAR(250) ,
						ProgStartRow INTEGER ,
						ProgStartCol INTEGER ,
						ProgEndRow INTEGER ,
						ProgEndCol INTEGER ,
						Ancestor VARCHAR(256) ,
						AncestorID INTEGER ,
						AncestorTypeID INTEGER ,
						AncestorStartRow INTEGER ,
						AncestorStartCol INTEGER ,
						AncestorEndRow INTEGER ,
						AncestorEndCol INTEGER ,
						DDCLElementPath VARCHAR(250) ,
						ID INTEGER ,
						DDCLElemCategory INTEGER ,
						DDCLElementName VARGRAPHIC(400) ,
						DDCLElemInfoStartRow INTEGER ,
						DDCLElemInfoEndRow INTEGER ,
						DDCLElemInfoStartCol INTEGER ,
						DDCLElemInfoEndCol INTEGER ,
						SetOrRecordRecordInDDCLID INTEGER
		                )
						CCSID UNICODE
						WITH REPLACE 
                        ON COMMIT PRESERVE ROWS
						NOT LOGGED;


                        DECLARE GLOBAL TEMPORARY TABLE session.ddcl
		               (
						IdmsSchemaID INTEGER ,
						IdmsSchemaName VARGRAPHIC(400) ,
						IdmsSubschemaID INTEGER ,
						IdmsSubschemaName VARGRAPHIC(400) ,
						SetOrRecordID INTEGER ,
						SetOrRecordName VARGRAPHIC(512) ,
						StatementTypeId INTEGER ,
						StatementTypeName VARGRAPHIC(256) ,
						ResourceType INTEGER ,
						ResourceTypeName VARCHAR(50) ,
						ResourceTypeGroup1 INTEGER ,
						ResourceTypeGroup2 INTEGER ,
						StmtPathStr VARCHAR(250) ,
						StatementStartRow INTEGER ,
						StatementStartColumn INTEGER ,
						StatementEndRow INTEGER ,
						StatementEndColumn INTEGER ,
						ProgramId INTEGER ,
						ProgramName VARCHAR(256) ,
						ProgramTypeID INTEGER ,
						ProgramPath VARCHAR(250) ,
						ProgStartRow INTEGER ,
						ProgStartCol INTEGER ,
						ProgEndRow INTEGER ,
						ProgEndCol INTEGER ,
						Ancestor VARCHAR(256) ,
						AncestorID INTEGER ,
						AncestorTypeID INTEGER ,
						AncestorStartRow INTEGER ,
						AncestorStartCol INTEGER ,
						AncestorEndRow INTEGER ,
						AncestorEndCol INTEGER ,
						DDCLElementPath VARCHAR(250) ,
						Id INTEGER ,
						DDCLElemCategory INTEGER ,
						DDCLElementName VARGRAPHIC(400) ,
						DDCLElemInfoStartRow INTEGER ,
						DDCLElemInfoEndRow INTEGER ,
						DDCLElemInfoStartCol INTEGER ,
						DDCLElemInfoEndCol INTEGER ,
						SetOrRecordRecordInDDCLID INTEGER
						 )
						 CCSID UNICODE
						 WITH REPLACE 
                         ON COMMIT PRESERVE ROWS
						 NOT LOGGED;





				        -- SET + RECORD Area
				       INSERT INTO session.sr
					   SELECT isc.ID AS IdmsSchemaID,
							isc.SchemaName AS IdmsSchemaName,
							isub.ID AS IdmsSubschemaID,
							isub.SubschemaName AS IdmsSubschemaName,
							SetOrRecord.SetOrRecordID,
							SetOrRecord.SetOrRecordName,
							st.StatementType AS StatementTypeId,
							st.Description AS StatementTypeName,
							sr.ResourceType ,
							rt.Name AS ResourceTypeName,
							 CASE WHEN sr.ResourceType = 77  THEN 1
								 WHEN sr.ResourceType = 78  THEN 2
								 END AS ResourceTypeGroup1,
							1 AS ResourceTypeGroup2,
							pstmt.PathStr AS StmtPathStr,
							os.StartRow AS StatementStartRow,
							os.StartCol AS StatementStartColumn,
							os.EndRow AS StatementEndRow,
							os.EndCol AS StatementEndColumn,
							p.ProgramID,
							p.ProgramName,
							p.ProgramTypeID,
							pth.PathStr AS ProgramPath,
							occ1.StartRow AS ProgStartRow,
							occ1.StartCol AS ProgStartCol,
							occ1.EndRow AS ProgEndRow,
							occ1.EndCol AS ProgEndCol,
							p.Ancestor AS Ancestor,
							pa.ProgramID AS AncestorID,
							pa.ProgramTypeID AS AncestorTypeID,
							occ2.StartRow AS AncestorStartRow,
							occ2.StartCol AS AncestorStartCol,
							occ2.EndRow AS AncestorEndRow,
							occ2.EndCol AS AncestorEndCol,
							ddc.DDCLElementPath,
							ddc.ID,
							ddc.DDCLElemCategory,
							ddc.DDCLElementName,
							ddc.DDCLElemInfoStartRow,
							ddc.DDCLElemInfoEndRow,
							ddc.DDCLElemInfoStartCol,
							ddc.DDCLElemInfoEndCol,
						    ddc.SetOrRecordRecordInDDCLID
					   FROM StatementReference sr
						   INNER JOIN ResourceTypes rt ON rt.ResourceID = sr.ResourceType
						   INNER JOIN OccurrencesStmt os ON sr.OccurID = os.OccurID
						   INNER JOIN
	                                    (
	                                         SELECT pg.ProgramID,
								                    pg.Ancestor,
										            pg.ProgramTypeID,
										            pg.OccurID,
								                    pa.AliasName AS ProgramName
								              FROM Programs pg
								                   INNER JOIN ProgramAliases pa ON pg.ProgramID = pa.ProgramId AND pa.AliasType = 0
								              WHERE   pg.ProgramTypeID IN (1, 2, 3, 10, 15, 16)
								          ) p ON os.ProgID = p.ProgramID
						   INNER JOIN Statements st ON sr.StatementType = st.StatementType
						   INNER JOIN
								    (
									   SELECT 78 AS ResourceType, ID AS SetOrRecordID, SetName AS SetOrRecordName, SubschemaID
									   FROM IdmsSubschemaSets
									   UNION
									   SELECT 77 AS ResourceType, ID AS SetOrRecordID, RecordName AS SetOrRecordName, SubschemaID
									   FROM IdmsSubschemaRecords
								    ) SetOrRecord ON sr.ResourceType = SetOrRecord.ResourceType
												 AND sr.ResourceID = SetOrRecord.SetOrRecordID
						   INNER JOIN IdmsSubschema isub ON SetOrRecord.SubschemaId = isub.ID
						   INNER JOIN IdmsSchema isc ON isub.SchemaId = isc.ID
						   INNER JOIN Paths pstmt ON os.PathID = pstmt.PathID
						   INNER JOIN Occurrences occ1 ON p.OccurID = occ1.OccurID
						   INNER JOIN Paths pth ON pth.PathID = occ1.PathID
						   LEFT OUTER JOIN
						                (
	                                        SELECT DISTINCT
											        pg.ProgramID,
										            pg.ProgramTypeID,
										            pg.OccurID,
								                    pga.AliasName AS ProgramName
								              FROM Programs pg
								                   INNER JOIN ProgramAliases pga ON pg.ProgramID = pga.ProgramId
								                                                    AND pga.AliasType = 0
								                                                    AND pg.ProgramTypeID = 8
								          ) pa ON pa.ProgramName = p.Ancestor
						   LEFT OUTER JOIN Occurrences occ2 ON pa.OccurID = occ2.OccurID
						   LEFT OUTER JOIN (
              										SELECT   ddclepa.PathStr as DDCLElementPath,
              											      CASE WHEN ddsTypeid = 3 THEN NULL
              												         ELSE  ddcle.id
              											       END AS ID,
                											    ddcle.ddsTypeid AS DDCLElemCategory,
					                                           CASE  ddcle.ddsTypeid
									                                 WHEN 3 THEN 77
									                                 ELSE 78
					                                                END ResourceTypeFtl,
                											    ddcle.Name AS DDCLElementName,
                											    ddclesi.StartRow as DDCLElemInfoStartRow,
                											    ddclesi.EndRow as DDCLElemInfoEndRow,
                											    ddclesi.StartCol as DDCLElemInfoStartCol,
                											    ddclesi.EndCol as DDCLElemInfoEndCol,
                											    ddcle.id as SetOrRecordRecordInDDCLID
              										  FROM  DDCLElement ddcle
              												LEFT OUTER JOIN DDCLSourceInfo ddclesi on ddclesi.Id = ddcle.SourceInfo
              												LEFT OUTER JOIN Programs ddclep on ddclep.ProgramId = ddclesi.ProgramId
              												LEFT OUTER JOIN Occurrences ddcleo on ddcleo.OccurId = ddclep.OccurId
              												LEFT OUTER JOIN Paths ddclepa on ddclepa.PathId = ddcleo.PathId
              										  WHERE ddcle.ddstypeid IN ( 3, 10)
										) ddc ON SetOrRecord.ResourceType = ddc.ResourceTypeFtl AND SetOrRecord.SetOrRecordName = ddc.DDCLElementName
					   WHERE  sr.ResourceType IN (77, 78);
				       COMMIT;
				       -- End SET + RECORD Area





				            --- DDCL Area
					       INSERT INTO session.ddcl
				           SELECT  --DISTINCT
								    IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName,
								    SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName,
								    ResourceType, ResourceTypeName,
								    CASE WHEN ResourceType = 3  THEN 1
									    WHEN ResourceType = 10 THEN 2
									    END AS ResourceTypeGroup1,
								   	2 AS ResourceTypeGroup2,
								    StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn,
								    ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol,
								    Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol,
								    DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow,
								    DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
							 FROM (
				                      SELECT --f1.ID AS f1ID,
											 --f2.ID AS f2ID,
											CASE WHEN ddclv1.ReferenceDdsTypeId = 3 and  (f1.ID IS NOT NULL OR f2.ID IS NOT NULL)   THEN 1
											    ELSE 0
											END AS chk1,
											CASE WHEN ddclv1.ReferenceDdsTypeId = 10 and  (f1.ID IS NOT NULL OR f2.ID IS NOT NULL) THEN 1
												   ELSE 0
											 END AS chk2,
											 SchemaElem.Id AS IdmsSchemaID,
											 SchemaElem.Name AS IdmsSchemaName,
											 SubschemaElem.Id AS IdmsSubschemaID,
											 CASE WHEN SubschemaElem.Name is null  THEN 'NO SUBSCHEMA'
												     ELSE SubschemaElem.Name
											  END AS IdmsSubschemaName,
												CAST(NULL AS INT)  AS SetOrRecordID,
												ddclv1.ReferenceName AS SetOrRecordName,
												ddclp1.Id AS StatementTypeId,
												ddclp1.Name AS StatementTypeName,
												ddclv1.ReferenceDdsTypeId as ResourceType,
												rt.Name AS ResourceTypeName,
												pth1.PathStr as StmtPathStr,
												StmtInfo.StartRow AS StatementStartRow,
												StmtInfo.StartCol AS StatementStartColumn,
												StmtInfo.EndRow AS StatementEndRow,
												StmtInfo.EndCol AS StatementEndColumn,
												StmtInfo.ProgramId AS ProgramId,
												prg1.ProgramName AS ProgramName,
												prg1.ProgramTypeID AS ProgramTypeID,
												pth1.PathStr AS ProgramPath,
												DDCLElemInfo.StartRow as ProgStartRow,
												DDCLElemInfo.EndRow as ProgEndRow,
												DDCLElemInfo.StartCol as ProgStartCol,
												DDCLElemInfo.EndCol as ProgEndCol,
												CAST(NULL AS VARCHAR(256)) AS Ancestor,
												CAST(NULL AS INT) AS AncestorID,
												CAST(NULL AS INT) AS AncestorTypeID,
												CAST(NULL AS INT) AS AncestorStartRow,
												CAST(NULL AS INT) AS AncestorStartCol,
												CAST(NULL AS INT) AS AncestorEndRow,
												CAST(NULL AS INT) AS AncestorEndCol,
												recpa.PathStr as DDCLElementPath,
												ddcle1.Id as Id,
												ddcle1.DdsTypeId as DDCLElemCategory,
												ddcle1.Name AS DDCLElementName,
												RecordInfo.StartRow AS DDCLElemInfoStartRow,
												RecordInfo.EndRow AS DDCLElemInfoEndRow,
												RecordInfo.StartCol AS DDCLElemInfoStartCol,
												RecordInfo.EndCol AS DDCLElemInfoEndCol,
												DDCLElement_1.Id as SetOrRecordRecordInDDCLID
									   FROM  DDCLElement ddcle1
									      INNER JOIN DDCLSourceInfo AS DDCLElemInfo on ddcle1.SourceInfo = DDCLElemInfo.Id
										    INNER JOIN  DDCLValue ddclv1 ON ddclv1.ElementId = ddcle1.Id
																  AND ddclv1.ValueTypeId IN (2,4)
																  AND ddclv1.ReferenceDdsTypeId IN (3,10)
				                INNER JOIN ResourceTypes rt ON rt.ResourceID = ddclv1.ReferenceDdsTypeId
											  INNER JOIN DDCLProperty  ddclp1 ON ddclp1.ID = ddclv1.PropertyId
											  INNER JOIN DDCLSourceInfo AS StmtInfo on ddclp1.SourceInfo = StmtInfo.Id
											  INNER JOIN  (
					                                           SELECT pg.ProgramID,
				              								                    --pg.Ancestor,
				              										                  pg.ProgramTypeID,
				              										                  pg.OccurID,
				              								                      pa.AliasName AS ProgramName
				              								              FROM Programs pg
				              								                   INNER JOIN ProgramAliases pa ON pg.ProgramID = pa.ProgramId AND pa.AliasType = 0
												          ) prg1 on StmtInfo.ProgramId = prg1.ProgramID
											INNER JOIN Occurrences occ on prg1.OccurID = occ.OccurID
											INNER JOIN Paths pth1 on pth1.PathID = occ.PathID
				              INNER JOIN DDCLRelationV drv on ddcle1.Id=drv.FromElementId
											INNER JOIN DDCLElement as SubschemaElem on drv.ToElementId=SubschemaElem.Id
											LEFT OUTER JOIN DDCLElement AS DDCLElement_1 ON ddclv1.ReferenceDdsTypeId = DDCLElement_1.DdsTypeId AND ddclv1.ReferenceName = DDCLElement_1.Name
				              LEFT OUTER JOIN DDCLSourceInfo AS RecordInfo on DDCLElement_1.SourceInfo = RecordInfo.Id
											LEFT OUTER JOIN Programs recp on recp.ProgramId = RecordInfo.ProgramId
											LEFT OUTER JOIN Occurrences reco on reco.OccurId = recp.OccurId
											LEFT OUTER JOIN Paths recpa on recpa.PathID = reco.PathID
				              LEFT OUTER JOIN DDCLProperty as SubschemaElemProperty on SubschemaElemProperty.ElementId = SubschemaElem.Id AND SubschemaElemProperty.Name = 'SCHEMA'
											LEFT OUTER JOIN DDCLValue as SubschemaDDCLVal ON  SubschemaDDCLVal.ValueTypeId IN (2,4) AND SubschemaDDCLVal.PropertyId = SubschemaElemProperty.Id
											LEFT OUTER JOIN DDCLElement as SchemaElem ON SchemaElem.DdsTypeId = 6  AND SchemaElem.Name = SubschemaDDCLVal.ReferenceName AND SchemaElem.Name = SubschemaDDCLVal.ReferenceName
				              		 --remove false records (called by clause 'SAME AS IN')
											LEFT OUTER JOIN DDCLValue as parent on parent.Id = ddclv1.ParentValueId
				               -- next joins are implemented for filter purpose
											LEFT OUTER JOIN (
				        											 SELECT ssp.Id, ssp.ElementId, rrv.ReferenceName AS ReferenceName , rrv.ReferenceDdsTypeId
				        											 FROM DDCLProperty ssp
				        												    INNER JOIN DDCLValue ssv on ssv.ValueTypeId = 1 AND ssp.id = ssv.PropertyId AND ssv.Name = 'ALL' AND ssv.Value = 'TRUE'
				        												    INNER JOIN DDCLValue srv on srv.ReferenceDdsTypeId = 6 AND srv.ValueTypeId = 2 AND ssp.id = srv.PropertyId
				        												    INNER JOIN DDCLElement se on se.DdsTypeId = 6 AND se.Name = srv.ReferenceName
				        												    INNER JOIN DDCLValue rrv on rrv.ReferenceDdsTypeId IN (3, 10) AND rrv.ElementId = se.Id
				        											 WHERE  ssp.Name =  'SCHEMA'
														           )f1 ON f1.ElementId = SubschemaElem.Id AND f1.ReferenceDdsTypeId = ddclv1.ReferenceDdsTypeId AND f1.ReferenceName = ddclv1.ReferenceName
											 LEFT OUTER JOIN (
				        											  SELECT ssp.Id, ssp.ElementId , ssv.ReferenceName AS ReferenceName, ssav.Id AS ssavID,
				                                              CASE ssp.Name
				                                                   WHEN 'SETS' THEN 10
																				                   ELSE 3
																				              END AS ReferenceDdsTypeId
				        											  FROM DDCLProperty ssp
				        													   LEFT OUTER JOIN DDCLValue  ssv ON ssv.ValueTypeId = 2  AND ssv.ReferenceDdsTypeId IN (3, 10) AND ssp.id = ssv.PropertyId
				        													   LEFT OUTER JOIN DDCLValue ssav ON ssav.ValueTypeId = 1 AND ssp.id = ssav.PropertyId AND ssav.Name = 'ALL' and ssav.Value = 'TRUE'
				        											  WHERE ssp.Name IN ( 'RECORD-MAP' , 'SETS')
														            )f2 ON  f2.ElementId = SubschemaElem.Id
																                 AND f2.ReferenceDdsTypeId  = ddclv1.ReferenceDdsTypeId
																                 AND (f2.ReferenceName = ddclv1.ReferenceName OR f2.ssavID IS NOT NULL)	
				
				              WHERE  ddcle1.DdsTypeId in (11,12,16,27,28,29)
											       AND ddcle1.islocal = 0 --'false'
				                      AND (
				          								   (
				          								    ddclv1.referenceddstypeid=10 AND  ddcle1.DdsTypeId IN (11, 16) AND ddclp1.name IN ('CHANGES', 'SINGULAR-VIEW')
				          	 							    )
				
												           OR
												             (
														          ddclv1.ReferenceDdsTypeId = 3
														          AND (parent.ComplexValueTypeId IS NULL OR parent.ComplexValueTypeId <> 32)
				          										AND (
				          	 										   (ddcle1.DdsTypeId=11 AND ddclp1.name IN ('CHANGES', 'OUTPUT', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW') )
				          	 										   OR
				          	 										   (ddcle1.DdsTypeId=16 AND ddclp1.name  IN ('CHANGES', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW') )
				          	 										   OR
				          	 										   (ddcle1.DdsTypeId=29 AND ddclp1.name = 'STRUCTURE' )
				          	 										   OR
				          	 										   (ddcle1.DdsTypeId in (27,28) AND ddclp1.name IN ('PROCESSING-STRUCTURE', 'VIEW', 'SELECTION') )
				          	 										   OR
				          	 										   (ddcle1.DdsTypeId=12 AND  ddclp1.name IN ('STRUCTURE', 'RECORDS'))
				          											 )
													             )
				
				                            )
				               )ddcl
							 WHERE (chk1 = 1 OR chk2=1) ;
							 COMMIT;
							 -- END DDCL
							


				            BEGIN
						      COMMIT;
							  TRUNCATE TABLE cacheEZViewer_Usage_IDMSX IMMEDIATE ;
				              --DELETE FROM cacheEZViewer_Usage_IDMSX ;
				            END;
						
						
		
		
		                    LOCK TABLE cacheEZViewer_Usage_IDMSX IN EXCLUSIVE MODE ;-- lock table
							INSERT INTO cacheEZViewer_Usage_IDMSX
							SELECT IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName,
							       SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName,
								  ResourceType, ResourceTypeName, ResourceTypeGroup1, ResourceTypeGroup2,
								  StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn,
								  ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol,
								  Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol,
								  DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow, DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
							FROM
							    (
									SELECT
									     IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName,
										SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName,
										ResourceType, ResourceTypeName, ResourceTypeGroup1, ResourceTypeGroup2,
										StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn,
										ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol,
										Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol,
										DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow, DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
									FROM session.sr
									
									UNION
							
							          SELECT
									     IdmsSchemaID, IdmsSchemaName, IdmsSubschemaID, IdmsSubschemaName,
										SetOrRecordID, SetOrRecordName, StatementTypeId, StatementTypeName,
										ResourceType, ResourceTypeName, ResourceTypeGroup1, ResourceTypeGroup2,
										StmtPathStr, StatementStartRow, StatementStartColumn, StatementEndRow, StatementEndColumn,
										ProgramId, ProgramName, ProgramTypeID, ProgramPath, ProgStartRow, ProgStartCol, ProgEndRow, ProgEndCol,
										Ancestor, AncestorID, AncestorTypeID, AncestorStartRow, AncestorStartCol, AncestorEndRow, AncestorEndCol,
										DDCLElementPath, Id, DDCLElemCategory, DDCLElementName, DDCLElemInfoStartRow, DDCLElemInfoEndRow, DDCLElemInfoStartCol, DDCLElemInfoEndCol, SetOrRecordRecordInDDCLID
									FROM session.ddcl
								)x;
							    COMMIT;



	
END 
