(
IN p_Input_datasetid INTEGER,
IN p_dsMemberName    VARCHAR(250)
)
DYNAMIC RESULT SETS 1
LANGUAGE SQL
 BEGIN
            DECLARE v_Input_datasetid INTEGER;
            DECLARE v_dsMemberName    VARCHAR(250);


            DECLARE crs CURSOR WITH RETURN FOR
		    SELECT *
		    FROM
		       (
		         SELECT
						        occurrenceposition.resourcefilepath,
					            occurrenceposition.startrow,
					            occurrenceposition.endrow,
					            occurrenceposition.startcol,
					            occurrenceposition.endcol,
					            occurrenceposition.resourcetype,
					            jd.ddid,
					            jr.status,
					            jr.membername,
					            jr.normaldisposition,
					            jr.abnormaldisposition,
					            jd.ddname,
					            jj.jobname,
					            jj.jobid,
					            jproc.procname,
					            jproc.procid,
					            jpgm.pgmname,
					            prg.programid,
					            overrideposition.resourcefilepath,
					            overrideposition.startrow,
					            JobPosition.resourcefilepath,
					            JobPosition.startrow,
					            ProcPosition.ResourceFilePath,
					            ProcPosition.StartRow,
					            jd.StepID,
					            js.OrdinalNumInJob
					     FROM jclddref jr
					                   INNER JOIN jcldd jd ON jr.ddid = jd.ddid
					                   INNER JOIN jclstep js ON jr.stepid = js.stepid
					                   INNER JOIN jclpgm jpgm ON js.calledpgmid = jpgm.pgmid
					                   INNER JOIN jcljob jj ON jr.jobid = jj.jobid
					                   INNER JOIN jclproc jproc ON jr.procid = jproc.procid
					                   INNER JOIN jclposition occurrenceposition ON occurrenceposition.positionid = jd.positionid
					                   INNER JOIN jcldd  overridingdd ON overridingdd.ddid = jd.overridingddid
					                   INNER JOIN jclposition  overrideposition ON overrideposition.positionid = overridingdd.positionid
					                   INNER JOIN JclPosition  JobPosition ON JobPosition.PositionId = jj.PositionID
					                   INNER JOIN JclPosition  ProcPosition ON ProcPosition.PositionID = jproc.PositionID
					                   LEFT JOIN ProgramAliases prg ON jpgm.pgmname = prg.AliasName
					     WHERE        jr.datasetid = v_Input_datasetid AND
					                  jr.membername = v_dsMemberName AND
					                  jj.BuildStatus = 1
					
					     UNION
					
					     --handle joblib statements. note that ordinalNumInJob is marked special, as -1
					     SELECT
						        occurrenceposition.resourcefilepath,
					            occurrenceposition.startrow,
					            occurrenceposition.endrow,
					            occurrenceposition.startcol,
					            occurrenceposition.endcol,
					            occurrenceposition.resourcetype,
					            jd.ddid,
					            jr.status,
					            jr.membername,
					            jr.normaldisposition,
					            jr.abnormaldisposition,
					            jd.ddname,
					            jj.jobname,
					            jj.jobid,
					            CAST(NULL AS VARCHAR(50)) AS procname,
					            0 AS procid,
					            CAST(NULL AS VARCHAR(50)) AS pgmname,
					            0  AS programid,
					            CAST(NULL AS VARCHAR(250)) AS resourcefilepath,
					            0 AS startrow,
					            JobPosition.resourcefilepath,
					            JobPosition.startrow,
					            CAST(NULL AS VARCHAR(250)) AS resourcefilepath,
					            0 AS startrow,
					            jd.StepID,
					            -1 AS OrdinalNumInJob
					     FROM  jclddref jr
					             INNER JOIN jcldd jd ON jr.ddid = jd.ddid
					             INNER JOIN jcljob jj ON jr.jobid = jj.jobid
					             INNER JOIN jclposition  occurrenceposition ON occurrenceposition.positionid = jd.positionid
					             INNER JOIN JclPosition  JobPosition ON JobPosition.PositionId = jj.PositionID
					     WHERE     jr.datasetid = v_Input_datasetid AND
					               jr.membername = v_dsMemberName AND
					               jd.stepid = 0 AND
					               jj.BuildStatus = 1
		
		       )src
		    ORDER BY 1, 2;


            SET v_Input_datasetid = p_Input_datasetid;
            SET v_dsMemberName = p_dsMemberName;

            OPEN crs;

 END	
