Blame | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' UPDATE dependencies' --- 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"--><%' 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 depArray()Dim array_is_empty'------------ Constants Declaration -----------Const enumlocal_DONOT_DELETE_OLD_DEPENDENCIES = 0Const enumlocal_DELETE_OLD_DEPENDENCIES = 1Const COL_pkg_name = 0Const COL_pkg_version = 1Const COL_build_type = 2'------------ Variable Init -------------------'----------------------------------------------%><%Sub Populate_depArray_from_Import ( SSdep_import, ARRdep, BBarray_is_empty )Dim depList, lastItem, i, recCnt, pkg_name, pkg_versionIf (SSdep_import = "") Then Exit Sub ' exit if no dependencies are submited' Decode Server.URLEncode if presentSSdep_import = URLDecode( SSdep_import )SSdep_import = Replace(SSdep_import, " ", "") ' remove spacesSSdep_import = Replace(SSdep_import, VBTab, "") ' remove horizontal tabsSSdep_import = Replace(SSdep_import, VBVerticalTab, "") ' remove vertical tabsSSdep_import = Replace(SSdep_import, """", "'") ' replace " with 'depList = Split( SSdep_import, "'")recCnt = 0lastItem = UBound(depList)For i = 1 To lastItem Step 4pkg_name = depList(i)pkg_version = depList(i+2)' Proceed only if:' pkg name is not empty,' pkg version is not empty,' line is not commented out with #If ( pkg_name <> "" ) AND ( pkg_version <> "" ) AND (InStr(depList(i-1), "#") = 0) ThenReDim Preserve ARRdep( 2, recCnt )ARRdep( COL_pkg_name, recCnt ) = pkg_nameARRdep( COL_pkg_version, recCnt ) = pkg_version' Define build typeIf InStr(depList(i-1), "BuildPkgArchive") > 0 ThenARRdep( COL_build_type, recCnt ) = enum_BUILD_PKG_ARCHIVEElseIf InStr(depList(i-1), "LinkPkgArchive") > 0 ThenARRdep( COL_build_type, recCnt ) = enum_LINK_PKG_ARCHIVEElseARRdep( COL_build_type, recCnt ) = enum_BUILD_PKG_ARCHIVE 'neither build_package or link_package is found, hence set to...End IfrecCnt = recCnt + 1BBarray_is_empty = FALSEEnd IfNextEnd SubSub Populate_depArray_from_ADD_Custom ( NNpkg_list, ARRdep, BBarray_is_empty )Dim depList, lastItem, i, recCnt, pkg_name, pkg_version, V_EXTDim rsTemp, Query_String, PkgBaseViewPkgBaseView = Get_Pkg_Base_View_ID ( Request("pv_id"), Request("rtag_id") )Query_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 ARRdep( 2, recCnt )ARRdep( COL_pkg_name, recCnt ) = rsTemp("pkg_name")ARRdep( COL_pkg_version, recCnt ) = Request( "pkgn"& rsTemp("pkg_id") )'// Dependencies comming from custom dependency add are set to LinkPkgArchive by default, unless it is a productIf PkgBaseView = enumBASE_VIEW_PRODUCTS ThenARRdep( COL_build_type, recCnt ) = enum_BUILD_PKG_ARCHIVEElseARRdep( COL_build_type, recCnt ) = enum_LINK_PKG_ARCHIVEEnd IfrecCnt = recCnt + 1BBarray_is_empty = FALSErsTemp.MoveNextWEndrsTemp.CloseSet rsTemp = nothingEnd SubSub Populate_depArray_from_EDIT_Custom ( NNpv_id, ARRdep, BBarray_is_empty, sDependBlock )Dim depList, lastItem, i, recCnt, pkg_name, pkg_version, V_EXTDim rsTemp, rsCurrent, Query_StringQuery_String = _" SELECT dpkg.pkg_name, dpv.pkg_version, dpv.pv_id"&_" FROM package_dependencies dep,"&_" package_versions dpv,"&_" packages dpkg"&_" WHERE dep.dpv_id = dpv.pv_id"&_" AND dpv.pkg_id = dpkg.pkg_id"&_" AND dep.pv_id = "& NNpv_idSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))recCnt = 0While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))ReDim Preserve ARRdep( 2, recCnt )ARRdep( COL_pkg_name, recCnt ) = rsTemp("pkg_name")ARRdep( COL_pkg_version, recCnt ) = Request( "pkgn"& rsTemp("pv_id") )ARRdep( COL_build_type, recCnt ) = Request( "bt"& rsTemp("pv_id") )If not rsTemp("pkg_version") = Request( "pkgn"& rsTemp("pv_id") ) ThensDependBlock = rsTemp("pkg_name") & " " & Request( "pkgn"& rsTemp("pv_id") )End IfrecCnt = recCnt + 1BBarray_is_empty = FALSErsTemp.MoveNextWEndrsTemp.CloseSet rsTemp = nothingEnd SubSub Update_Package_Dependencies ( ARRdep, NNpv_id, NNuser_id, NNdelete_old_dependency, sAction_type, sDependBlock )Dim i, OraParameter, sCommentsOraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PKG_NAME", "", ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "PKG_VERSION", "", ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "BUILD_TYPE", "", ORAPARM_INPUT, ORATYPE_VARCHAR2OraDatabase.Parameters.Add "USER_ID", NNuser_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "DELETE_PV_ID", NNdelete_old_dependency, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "ACTION_TYPE_NAME", sAction_type, ORAPARM_INPUT, ORATYPE_VARCHAR2Set OraParameter = OraDatabase.ParametersFor i = 0 To UBound( ARRdep, 2 )If not i = 0 ThensComments = sComments & ", "End IfsComments = sComments & depArray(COL_pkg_name, i) & " " & ARRdep( COL_pkg_version, i )OraParameter("PKG_NAME").Value = ARRdep( COL_pkg_name, i )OraParameter("PKG_VERSION").Value = ARRdep( COL_pkg_version, i )OraParameter("BUILD_TYPE").Value = ARRdep( COL_build_type, i )OraDatabase.ExecuteSQL "BEGIN Update_Package_Dependency ( :PV_ID, :PKG_NAME, :PKG_VERSION, :BUILD_TYPE, :USER_ID, :DELETE_PV_ID ); END;"NextSet OraParameter = NothingIf sAction_type = "depend_add" ThenOraDatabase.Parameters.Add "COMMENTS", sComments, ORAPARM_INPUT, ORATYPE_VARCHAR2ElseIf Len(sDependBlock) <= 4000 ThenOraDatabase.Parameters.Add "COMMENTS", sDependBlock, ORAPARM_INPUT, ORATYPE_VARCHAR2ElseOraDatabase.Parameters.Add "COMMENTS", "Description too long to be inserted!", ORAPARM_INPUT, ORATYPE_VARCHAR2End IfEnd IfOraDatabase.ExecuteSQL _"BEGIN Log_Action ( :PV_ID, :ACTION_TYPE_NAME, :USER_ID, :COMMENTS ); END;"OraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "PKG_NAME"OraDatabase.Parameters.Remove "PKG_VERSION"OraDatabase.Parameters.Remove "BUILD_TYPE"OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "DELETE_PV_ID"OraDatabase.Parameters.Remove "ACTION_TYPE_NAME"OraDatabase.Parameters.Remove "COMMENTS"End SubSub Remove_Old_Dependencies ( SSpv_id )OraDatabase.Parameters.Add "PV_ID", SSpv_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.ExecuteSQL "DELETE FROM package_dependencies WHERE pv_id = :PV_ID"OraDatabase.Parameters.Remove "PV_ID"End SubSub Update_Mod_Details ( SSpv_id )OraDatabase.Parameters.Add "PV_ID", SSpv_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RTAG_ID", Request("rtag_id"), ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.ExecuteSQL _" UPDATE package_versions "&_" SET modified_stamp = "& ORA_SYSDATETIME &", modifier_id = :USER_ID"&_" WHERE pv_id = :PV_ID"If Request("rtag_id") <> "" Then' Package in release viewOraDatabase.ExecuteSQL _"BEGIN "&_" Touch_Release ( :RTAG_ID ); "&_"END; "Else' Package viewOraDatabase.ExecuteSQL _"BEGIN "&_" PK_RELEASE.RUN_POST_ACTIONS_BULK ( :PV_ID ); "&_"END; "End IfOraDatabase.Parameters.Remove "PV_ID"OraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "USER_ID"End Sub%><%'----------------------- MAIN LINE ---------------------------Dim sDependBlock'--- Process submition ---If (QStrPar("pv_id") <> "") Then' All mendatory parameters FOUNDOn Error Resume NextOraSession.BeginTransarray_is_empty = TRUEIf Request("update_type") = "add_custom" Then'---- ADD CUSTOM dependency ----Call Populate_depArray_from_ADD_Custom ( Request("pkg_list"), depArray, array_is_empty )If NOT array_is_empty ThenCall Update_Package_Dependencies ( depArray, Request("pv_id"), objAccessControl.UserId, enumlocal_DELETE_OLD_DEPENDENCIES, "depend_add", null )End IfElseIf Request("update_type") = "edit_custom" Then'---- EDIT CUSTOM dependency ----Call Populate_depArray_from_EDIT_Custom ( Request("pv_id"), depArray, array_is_empty, sDependBlock )Call Remove_Old_Dependencies ( Request("pv_id") )If NOT array_is_empty ThenCall Update_Package_Dependencies ( depArray, Request("pv_id"), objAccessControl.UserId, enumlocal_DONOT_DELETE_OLD_DEPENDENCIES, "depend_update", sDependBlock )End IfElse'---- JATS, ANT dependency import ----Call Populate_depArray_from_Import ( Request("FRdeps"), depArray, array_is_empty )Call Remove_Old_Dependencies ( Request("pv_id") )If NOT array_is_empty ThenCall Update_Package_Dependencies ( depArray, Request("pv_id"), objAccessControl.UserId, enumlocal_DONOT_DELETE_OLD_DEPENDENCIES, "depend_import", Request("FRdeps") )End IfEnd IfCall Update_Mod_Details ( Request("pv_id") )If Err.number <> 0 ThenOraSession.RollBackCall RaiseMsg ( enum_MSG_ERROR, Err.description &"<br>"& Err.Source )ElseOraSession.CommitTransEnd IfResponse.Redirect("dependencies.asp?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id"))ElseResponse.write "Some mendatory parameters are missing!" & "<br>" 'TODOResponse.write QSTR_AllEnd If%><!-- DESTRUCTOR -------><!--#include file="common/destructor.asp"-->