Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Funcation

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 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