Rev 167 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' ADD Packages' --- PROCESS FORM ---'=====================================================%><%Option explicit' Good idea to set when using redirectResponse.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"--><!--#include file="common/release_changed.asp"--><%' Set rfile parameter. This is a return page after LoginCall 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 pkgArray()Dim pv_id_list'------------ Constants Declaration -----------'------------ Variable Init -------------------'----------------------------------------------%><%'--------------------------------------------------------------------------------------------------------------------Sub Populate_pkgArray ( NNpkg_list, ARRpkg )Dim depList, lastItem, i, recCnt, pkg_name, pkg_version, V_EXTDim rsTemp, Query_StringQuery_String = _" SELECT pkg_id, pkg_name"&_" FROM packages"&_" WHERE pkg_id IN ("& NNpkg_list &")"Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))recCnt = 0While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))ReDim Preserve ARRpkg( 2, recCnt )ARRpkg( 0, recCnt ) = rsTemp("pkg_name")ARRpkg( 1, recCnt ) = Request( "pkgn"& rsTemp("pkg_id") )recCnt = recCnt + 1rsTemp.MoveNextWEndrsTemp.CloseSet rsTemp = nothingEnd Sub'--------------------------------------------------------------------------------------------------------------------Sub Seed_DB ( ARRpkg, retPV_ID_LIST )Dim i, lastRowOn Error Resume NextOraDatabase.Parameters.Add "retPV_ID", 0, ORAPARM_OUTPUT, ORATYPE_NUMBERretPV_ID_LIST = ""lastRow = UBound( pkgArray, 2 )For i = 0 To lastRowIf Err.Number = 0 ThenOraDatabase.ExecuteSQL "BEGIN Seed_Package_Names_Versions ('"& ARRpkg(0,i) &"','"& ARRpkg(1,i) &"', :USER_ID, :retPV_ID); END;"retPV_ID_LIST = retPV_ID_LIST &","& OraDatabase.Parameters("retPV_ID").ValueEnd IfNextIf Len(retPV_ID_LIST) > 0 Then retPV_ID_LIST = Replace ( retPV_ID_LIST, ",", "", 1, 1 )OraDatabase.Parameters.Remove "retPV_ID"End Sub'--------------------------------------------------------------------------------------------------------------------Sub AddPackage ( sPvIdList )Dim rsQry, AssocMASSOn Error Resume NextSet rsQry = OraDatabase.DbCreateDynaset( "SELECT * FROM RELEASE_TAGS RT, PACKAGE_VERSIONS PV WHERE RT.RTAG_ID ="&Request("rtag_id")&" AND PV.PV_ID IN ("&sPvIdList&")", cint(0))AssocMASS = rsQry("ASSOC_MASS_REF")If ( IsNull(AssocMASS) ) OR (AssocMASS <> "" AND (rsQry("v_ext") <> ".cr" AND rsQry("v_ext") <> ".mas" )) ThenOraDatabase.Parameters.Add "PV_ID_LIST", sPvIdList, ORAPARM_OUTPUT, ORATYPE_VARCHAR2OraDatabase.ExecuteSQL "BEGIN PK_ENVIRONMENT.ADD_PACKAGE_BULK ( :PV_ID_LIST, :BASE_VIEW_ID, :RTAG_ID, :USER_ID ); END;"OraDatabase.Parameters.Remove "PV_ID_LIST"ElseErr.Raise 8, "Cannot ADD a CORE/MASS package into a MASS_REF Reference Release!"End IfEnd Sub'--------------------------------------------------------------------------------------------------------------------Sub Add_Packages_To_View_Definition ( NNpkg_list )If OraDatabase.Parameters("PERSONAL_VIEW_ID").Value = "" Then Exit SubOraDatabase.ExecuteSQL _" INSERT INTO view_def"&_" SELECT TO_NUMBER( :PERSONAL_VIEW_ID ) AS view_id, pkg.pkg_id"&_" FROM packages pkg"&_" WHERE pkg.pkg_id IN ( "& NNpkg_list &" )"&_" MINUS "&_" SELECT vd.view_id, vd.pkg_id"&_" FROM view_def vd"&_" WHERE vd.view_id = :PERSONAL_VIEW_ID "End Sub'--------------------------------------------------------------------------------------------------------------------%><%'----------------------- MAIN LINE ---------------------------On Error Resume NextDim rsQryDim bAdded: bAdded = FalseSet rsQry = OraDatabase.DbCreateDynaset( "SELECT OFFICIAL FROM RELEASE_TAGS WHERE RTAG_ID ="&Request("rtag_id"), cint(0))objEH.TryIf rsQry("official") = "N" OR rsQry("official") = "R" Then'--- Process submition ---If ( Request("rtag_id") <> "" ) AND ( Request("pkg_list") <> "" ) Then' All mandatory parameters FOUNDCall Populate_pkgArray ( Request("pkg_list"), pkgArray )'On Error Resume NextOraSession.BeginTrans'---- SQL parameters ----OraDatabase.Parameters.Add "RTAG_ID", Request("rtag_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "BASE_VIEW_ID", Request("base_view_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PERSONAL_VIEW_ID", Request("personal_view_id"), ORAPARM_INPUT, ORATYPE_NUMBER'------------------------Call Seed_DB ( pkgArray, pv_id_list )If Err.Number = 0 ThenCall AddPackage ( pv_id_list )If Err.Number = 0 ThenIf NOT IsNull(Request("personal_view_id")) ThenCall Add_Packages_To_View_Definition ( Request("pkg_list") )End IfEnd IfEnd IfIf Err.number <> 0 ThenOraSession.RollBackCall RaiseMsg ( enum_MSG_ERROR, Err.description )ElseOraSession.CommitTransbAdded = TrueEnd IfOraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "BASE_VIEW_ID"OraDatabase.Parameters.Remove "PERSONAL_VIEW_ID"If bAdded ThenDim objRC: Set objRC = New ReleaseChangedCall objRC.Run_ReleaseChanged_List(Request("rtag_id"),pv_id_list,enumRELEASE_CHANGE_MODE_PKG_ADDED)Set objRC = NothingEnd IfResponse.Redirect("dependencies.asp?rtag_id="& Request("rtag_id"))ElseResponse.write "Some mandatory parameters are missing!" & "<br>" 'TODOResponse.write QSTR_AllEnd IfElseErr.Raise 8, "Cannot ADD a package in a CLOSED or CCB Release Mode"End IfrsQry.CloseSet rsQry = nothingobjEH.Catch%><!-- DESTRUCTOR -------><!--#include file="common/destructor.asp"-->