%@LANGUAGE="VBSCRIPT"%> <% Option explicit Response.Expires = 0 ' always load the page, dont store %> <% '===================================================== ' Import Release '===================================================== %> <% '------------ ACCESS CONTROL ------------------ %> <% '------------ Variable Definition ------------- Dim parFRpkg_id ' Currently selected Package Dim parFRpv_id ' Currently selected Package-Version Dim parFromPv_id Dim parToRtag_id Dim sMessage '------------ Constants Declaration ----------- '------------ Variable Init ------------------- parFRpkg_id = QStrPar("FRpkg_id") parFRpv_id = QStrPar("FRpv_id") parFromPv_id = QStrPar("FromPv_id") parToRtag_id = QStrPar("rtag_id") sMessage = NULL If parFRpkg_id = "" Then parFRpkg_id = "-1" If parFRpv_id = "" Then parFRpv_id = "-1" objPMod.PersistInQryString("rtag_id") '---------------------------------------------- %> <% '------------------------------------------------- ' Function: Get_Packages ' Description: Generate a List Box of all package names in the system ' Select the 'current' package ' Arguments: NNpkg_id - Currently selected pkg_id ' Sub Get_Packages ( NNpkg_id ) Dim rsTemp, Query_String, tempLINK Query_String = _ "SELECT * FROM packages ORDER BY UPPER(pkg_name) ASC" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub '------------------------------------------------- ' Function: Get_Package_Versions ' Description: Create a list box for all versions of a specified pakage ' Arguments: NNpkg_id - pkg_id of the base package ' NNrtag_id - pv_id of the currently selected package-vesrion ' Sub Get_Package_Versions ( NNpkg_id, NNrtag_id ) Dim rsTemp, Query_String, tempLINK, productId Query_String = _ "SELECT pv_id, pkg_version FROM package_versions WHERE pkg_id = "& NNpkg_id &" ORDER BY pkg_version ASC" Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0)) Response.write "" rsTemp.Close Set rsTemp = nothing End Sub 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)" objEH.ErrorRedirect = FALSE objEH.TryORA ( OraSession ) On Error Resume Next 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 ) If objEH.Finally Then Call OpenInParentWindow ("dependencies.asp?rtag_id=" & NNToRtag_id) Call CloseWindow() End If OraDatabase.Parameters.Remove "PV_ID" OraDatabase.Parameters.Remove "RTAG_ID" OraDatabase.Parameters.Remove "USER_ID" OraDatabase.Parameters.Remove "OPERATION" Set ImportList = nothing End Function %> <% 'Process submition If CBool(QStrPar("action")) Then If NOT objAccessControl.UserLogedIn Then sMessage = "User is no longer logged in" ElseIf NOT( (parFromPv_id <> "") AND (parToRtag_id <> "")) Then sMessage = "Internal: Mandatory parameters are missing" Else Call Import_Dependency ( parFromPv_id, parToRtag_id ) parFRpkg_id = "-1" parFRpv_id = "-1" End If End If %>