0% found this document useful (0 votes)
17 views2 pages

Funcation

This function retrieves solution set data including the solution name and owner, associated documents and parameters, and flags whether the user has access to each document. It uses multiple cursors to retrieve the data from various tables, populates collection objects, and returns the consolidated data in an object.

Uploaded by

krky1223
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views2 pages

Funcation

This function retrieves solution set data including the solution name and owner, associated documents and parameters, and flags whether the user has access to each document. It uses multiple cursors to retrieve the data from various tables, populates collection objects, and returns the consolidated data in an object.

Uploaded by

krky1223
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

CREATE OR REPLACE FUNCTION XXB2BMETA.

GET_E2ESOLUTIONSET (
P_SET_ID NUMBER DEFAULT NULL,
P_USER VARCHAR2
)
RETURN E2ESOLUTION_OBJ
IS
V_SOL_OBJ E2ESOLUTION_OBJ;
V_SOL SOLUTION_SET_COL := SOLUTION_SET_COL ();
V_DOC_MAP E2E_DOC_COL := E2E_DOC_COL ();
V_DOC E2E_DOC_COL := E2E_DOC_COL ();
V_PARAM PARAMETER_COL := PARAMETER_COL ();
V_ASSOCIATE NUMBER;
V_ASSOCIATE_STATUS VARCHAR2(10);
V_FLAG VARCHAR2(10);
V_EXIST NUMBER;

CURSOR CUR_SOLUTION
IS
SELECT SET_ID, SET_NAME, SET_OWNER
FROM B2B_CS_SET_DETAILS
WHERE SET_ID = NVL (P_SET_ID, SET_ID);

CURSOR CUR_DOCUMENT (P_SET_ID NUMBER)


IS
SELECT BD.DOCUMENT_NAME, BD.DOCUMENT_VERSION, BD.DOCUMENT_ID
FROM B2B_DOC_SOLUTION_SET_MAPPING BDM, B2B_DOCUMENT BD
WHERE BDM.DOCUMENT_ID = BD.DOCUMENT_ID AND SET_ID = P_SET_ID;

CURSOR CUR_DOC
IS
SELECT DOCUMENT_NAME, DOCUMENT_VERSION
FROM B2B_DOCUMENT
ORDER BY DOCUMENT_NAME;

CURSOR SOL_CUR (P_SET_ID NUMBER)


IS
SELECT DISTINCT PARAM_ID,
PARAM_NAME,
UPDATED_BY,
TO_CHAR(UPDATE_DATE,'DD-MON-YYYY HH24:MI:SS') UPDATE_DATE
FROM B2B_CS_PARAM_SET BCPS
WHERE BCPS.SET_ID = P_SET_ID;
BEGIN
FOR I IN CUR_SOLUTION
LOOP
V_DOC_MAP := E2E_DOC_COL ();
V_PARAM := PARAMETER_COL ();

FOR J IN CUR_DOCUMENT (I.SET_ID)


LOOP

V_ASSOCIATE_STATUS := 'N';

SELECT COUNT (1)


INTO V_ASSOCIATE
FROM B2B_CHANNEL_SUBSCRIPTION BCS,
B2B_CHANNEL_SUBSCRIPTION_SET BCSS,
B2B_DOC_SOLUTION_SET_MAPPING BCSM
WHERE BCS.CHANNEL_SUBSCRIPTION_ID = BCSS.CHANNEL_SUBSCRIPTION_ID
AND BCSS.SET_ID = BCSM.SET_ID
AND BCSM.DOCUMENT_ID= BCS.DOCUMENT_ID
AND BCSM.SET_ID = I.SET_ID
AND BCSM.DOCUMENT_ID =J.DOCUMENT_ID;

IF V_ASSOCIATE <> 0 THEN


V_ASSOCIATE_STATUS := 'Y';
END IF ;

V_DOC_MAP.EXTEND;
V_DOC_MAP (V_DOC_MAP.COUNT) :=
E2E_DOC_OBJ (J.DOCUMENT_NAME, J.DOCUMENT_VERSION,V_ASSOCIATE_STATUS);
END LOOP;

FOR SOL_REC IN SOL_CUR (I.SET_ID)


LOOP
V_PARAM.EXTEND;
V_PARAM (V_PARAM.COUNT) :=
PARAMETER_OBJ (SOL_REC.PARAM_ID,
SOL_REC.PARAM_NAME,
SOL_REC.UPDATED_BY,
SOL_REC.UPDATE_DATE,
NULL);
END LOOP;

V_SOL.EXTEND;
V_SOL (V_SOL.COUNT) :=
SOLUTION_SET_OBJ (I.SET_NAME,
I.SET_OWNER,
V_PARAM,
V_DOC_MAP);
END LOOP;

FOR K IN CUR_DOC
LOOP

v_exist := E2E_USERROLE_MANAGEMENT.get_userdoc_grant
(p_user,null,K.DOCUMENT_NAME,K.DOCUMENT_VERSION);

IF V_EXIST > 0 THEN


V_FLAG := 'Y';
ELSE
V_FLAG := 'N';
END IF;

V_DOC.EXTEND;
V_DOC (V_DOC.COUNT) := E2E_DOC_OBJ (K.DOCUMENT_NAME,
K.DOCUMENT_VERSION,V_FLAG);
END LOOP;

V_SOL_OBJ := E2ESOLUTION_OBJ (V_SOL, V_DOC);

RETURN V_SOL_OBJ;
END;
/

You might also like