Subversion Repositories DevTools

Rev

Rev 4301 | Blame | Last modification | View Log | RSS feed

<%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'                                  Import Dependency
'               --- PROCESS FORM ---
'=====================================================
%>
<%
Option explicit
' Good idea to set when using redirect
Response.Expires = 0    ' always load the page, dont store
%>

<!--#include file="common/conf.asp"-->
<!--#include file="common/globals.asp"-->
<!--#include file="common/formating.asp"-->
<!--#include file="common/qstr.asp"-->
<!--#include file="common/common_subs.asp"-->
<!--#include file="common/common_dbedit.asp"-->
<%
' Set rfile parameter. This is a return page after Login
Call objPMod.StoreParameter ( "rfile", "dependencies.asp" )
'------------ ACCESS CONTROL ------------------
%>
<!--#include file="_access_control_login.asp"-->
<!--#include file="_access_control_general.asp"-->
<!--#include file="_access_control_project.asp"-->
<%
'------------ Variable Definition -------------
Dim parFromPv_id
Dim parToRtag_id
'------------ Constants Declaration -----------
'------------ Variable Init -------------------
parFromPv_id = QStrPar("FromPv_id")
parToRtag_id = QStrPar("rtag_id")
'----------------------------------------------
%>
<%
Function Import_Dependency ( NNFromPv_id, NNToRtag_id )
    Dim sqlStr, PvId, ii
    Dim ImportList, entry,  keys
    Set ImportList = CreateObject ("Scripting.Dictionary")

    '
    '   Generate a list of packages to be added
    '   The union will add the base package to the set - if its not present
    '
        sqlStr = "SELECT DISTINCT qry.DPV_ID"&_
    " FROM ("&_
        "               SELECT dep.PV_ID, dep.DPV_ID, LEVEL AS LEVEL_NUM"&_
        "                 FROM PACKAGE_DEPENDENCIES dep"&_
        "               START WITH dep.PV_ID IN ( :PV_ID ) "&_
        "               CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID"&_
    "       UNION" &_
    "       SELECT" &_
    "           TO_NUMBER(:PV_ID), TO_NUMBER(:PV_ID), TO_NUMBER(0) " &_
    "       FROM DUAL" &_
        "       ) qry,"&_
        "       PACKAGES pkg,"&_
        "       PACKAGE_VERSIONS pv"&_
        " WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID"&_
        " and qry.dpv_id NOT IN (select pv_id from release_content where rtag_id = :RTAG_ID)"

    On Error Resume Next
        objEH.ErrorRedirect = TRUE
    objEH.TryORA ( OraSession )

        OraDatabase.Parameters.Add "PV_ID",   NNFromPv_id,      ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "RTAG_ID", NNToRtag_id,      ORAPARM_INPUT, ORATYPE_NUMBER 
        OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId,  ORAPARM_INPUT, ORATYPE_NUMBER 
    OraDatabase.Parameters.Add "OPERATION","A", ORAPARM_INPUT, ORATYPE_CHAR

    Dim rsTemp
        Set rsTemp = OraDatabase.DbCreateDynaset( sqlStr, cint(0))
    If Err.Number = 0 Then
        While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
           entry = rsTemp("DPV_ID")
           If NOT ImportList.Exists(entry) Then
                ImportList.add entry, 1
           End If
           rsTemp.MoveNext
        WEnd
    End If
        rsTemp.Close
        Set rsTemp = nothing

    '
    '   Add each entry into the 'Pending Tab'
    '
    keys = ImportList.Keys
    For ii = 0 to ImportList.Count - 1
        entry = keys(ii)
            OraDatabase.Parameters.Remove "PV_ID"
            OraDatabase.Parameters.Add "PV_ID", entry, ORAPARM_INPUT, ORATYPE_NUMBER 
        If Err.Number = 0 Then
            OraDatabase.ExecuteSQL _
            "BEGIN  "&_
            "  PK_PLANNED.MERGE_PACKAGE ( :PV_ID, 7, :RTAG_ID, :USER_ID, :OPERATION );  "&_
            "END;"
        End If
    Next
        
        objEH.CatchORA ( OraSession )
        
        OraDatabase.Parameters.Remove "PV_ID"
        OraDatabase.Parameters.Remove "RTAG_ID"
        OraDatabase.Parameters.Remove "USER_ID"
        OraDatabase.Parameters.Remove "OPERATION"

        Set ImportList = nothing

End Function

%>
<%
'-----------------------  MAIN LINE  ---------------------------

'--- Process submition ---
If (parFromPv_id <> "") AND (parToRtag_id <> "") Then
        ' All mandatory parameters FOUND

        'COMPLETE THE REQUEST...
        Call Import_Dependency ( parFromPv_id, parToRtag_id )
        
        If objEH.Finally Then
                Response.Redirect("dependencies.asp?rtag_id="& parToRtag_id )
        End If
        
        
Else
        Response.write "Some mandatory parameters are missing!" & "<br>" 'TODO
        Response.write QSTR_FullQuery 
End If
%>


<!-- DESTRUCTOR ------->
<!--#include file="common/destructor.asp"-->