<%@LANGUAGE="VBSCRIPT"%> <% '===================================================== '| | '| wRevertProducts | '| | '===================================================== %> <% Option explicit Response.Expires = 0 %> <% '------------ ACCESS CONTROL ------------------ %> <% '------------ VARIABLE DEFINITION ------------- Dim rsQry Dim aProducts Dim numOfRows Dim rowNum Dim objFormCollector Dim currPkg_id '------------ CONSTANTS DECLARATION ----------- '------------ VARIABLE INIT ------------------- parBom_id = Request("bom_id") Set objFormCollector = CreateObject("Scripting.Dictionary") '------------ CONDITIONS ---------------------- '---------------------------------------------- %> <% '---------------------------------------------------------------------------------------------------------------------------------- Sub GetFormDetails ( nBom_id, ByRef outobjDetails ) Dim rsQry, query OraDatabase.Parameters.Add "BOM_ID", nBom_id, ORAPARM_INPUT, ORATYPE_NUMBER query = _ " SELECT rt.RTAG_ID, "&_ " rt.RTAG_NAME, "&_ " bo.PARENT_BOM_ID "&_ " FROM RELEASE_TAGS rt,"&_ " BOMS bo"&_ " WHERE bo.RTAG_ID_FK = rt.RTAG_ID"&_ " AND bo.BOM_ID = :BOM_ID" Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT ) If (NOT rsQry.BOF) AND (NOT rsQry.EOF)Then outobjDetails.Item ("rtag_id_fk") = rsQry("rtag_id") outobjDetails.Item ("rtag_name") = rsQry("rtag_name") outobjDetails.Item ("parent_bom_id") = rsQry("parent_bom_id") End If OraDatabase.Parameters.Remove "BOM_ID" rsQry.Close Set rsQry = Nothing End Sub '---------------------------------------------------------------------------------------------------------------------------------- Sub RevertProducts() Dim aDiffList, numOfRows, rowNum, OraParameter Const os_id_column = 2 Const old_prod_id_column = 1 '/* Get Updated Versions from Previous BOM */ OraDatabase.Parameters.Add "BOM_ID", parBom_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "COMPARE_BOM_ID", objFormCollector.Item("parent_bom_id"), ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("RevertProducts.sql"), ORADYN_DEFAULT ) '-- Get Rows If rsQry.RecordCount > 0 Then aDiffList = rsQry.GetRows() Else '-- No differences compared to Previous BOM, hence exit OraDatabase.Parameters.Remove "BOM_ID" OraDatabase.Parameters.Remove "COMPARE_BOM_ID" Exit Sub End If '/* Revert Versions */ On Error Resume Next OraDatabase.Parameters.Add "OLD_PROD_ID", 0, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "NEW_PROD_ID", 0, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "OS_ID", 0, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER Set OraParameter = OraDatabase.Parameters objEH.TryORA ( OraSession ) numOfRows = UBound( aDiffList, 2 ) For rowNum = 0 To numOfRows If Request("revert_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) ) <> "" Then OraParameter("OLD_PROD_ID").Value = aDiffList( old_prod_id_column, rowNum ) OraParameter("NEW_PROD_ID").Value = Request("revert_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( old_prod_id_column, rowNum ) ) OraParameter("OS_ID").Value = aDiffList( os_id_column, rowNum ) OraDatabase.ExecuteSQL "BEGIN pk_Product.Replace_Product ( :OLD_PROD_ID, :NEW_PROD_ID, :OS_ID, :USER_ID ); END;" End If Next '--- Log Action --- 'objEH.LogAction _ 'objAccessControl.UserId, _ 'enumAT_EVENT_COMMENT, _ '"Sub UpdateProducts for OS list="& Request("spos_id_list"), _ 'SCRIPT_NAME, _ '"Updated Products with new versions.", _ 'OraDatabase objEH.CatchORA ( OraSession ) OraDatabase.Parameters.Remove "BOM_ID" OraDatabase.Parameters.Remove "RTAG_ID" OraDatabase.Parameters.Remove "OLD_PROD_ID" OraDatabase.Parameters.Remove "NEW_PROD_ID" OraDatabase.Parameters.Remove "OS_ID" OraDatabase.Parameters.Remove "USER_ID" End Sub '---------------------------------------------------------------------------------------------------------------------------------- Function Get_Bom_Name( nBomId ) OraDatabase.Parameters.Add "BOM_ID", nBomId, ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("BomDetails.sql"), ORADYN_DEFAULT ) Get_Bom_Name = rsQry("bom_name") + VBNewLine + rsQry("bom_version") + "." + rsQry("bom_lifecycle") rsQry.Close() Set rsQry = Nothing OraDatabase.Parameters.Remove "BOM_ID" End Function '---------------------------------------------------------------------------------------------------------------------------------- %> <% '------------ RUN BEFORE PAGE RENDER ---------- Call GetFormDetails ( parBom_id, objFormCollector ) If Request("action") <> "" Then ' --- Form is Valid --- Call RevertProducts() If objEH.Finally Then Call OpenInParentWindow ( Request("rfile") &"?UPDATED=OK"& objPMod.ComposeURLWithout("rfile") ) Call CloseWindow() End If End If '---------------------------------------------- %> Deployment Manager <% '-- FROM START -------------------------------------------------------------------------------------------------------------- objFormComponent.FormName = "FormName" objFormComponent.Action = SCRIPT_NAME objFormComponent.OnSubmit = "ShowProgress();" Call objFormComponent.FormStart() %> <%=objPMod.ComposeHiddenTags()%> <% Call objFormComponent.FormEnd() '-- FROM END ---------------------------------------------------------------------------------------------------------------- %>
 Revert Products
Revert Products, selecting the latest from the Parent BOM.
<%=ProgressBar()%>  
<% If objFormCollector.Item("parent_bom_id") = "" Then Call Messenger ( "This BOM does not have Parent BOM Reference release.", 1, "100%" ) End If %> Select Products and click Revert. <% OraDatabase.Parameters.Add "BOM_ID", parBom_id, ORAPARM_INPUT, ORATYPE_NUMBER OraDatabase.Parameters.Add "COMPARE_BOM_ID", objFormCollector.Item("parent_bom_id"), ORAPARM_INPUT, ORATYPE_NUMBER Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("RevertProducts.sql"), ORADYN_DEFAULT ) currPkg_id = 0 %> <%If rsQry.RecordCount < 1 Then%> <%End If%> <% While (NOT rsQry.BOF) AND (NOT rsQry.EOF) %> <%If currPkg_id <> rsQry("pkg_id") Then%> <%currPkg_id = rsQry("pkg_id")%> <%End If%> <%rsQry.MoveNext Wend %>
Revert
Location
Current Version
<%=Get_Bom_Name(objFormCollector.Item("parent_bom_id"))%>
No Products to Revert.
<%=rsQry("prod_name")%>
 
" value="<%=rsQry("old_prod_id")%>"> " align="absmiddle" border="0"><%=rsQry("prod_location")%> <%=rsQry("prod_version")%> <%=rsQry("old_pkg_version")%>
<% OraDatabase.Parameters.Remove "COMPARE_BOM_ID" OraDatabase.Parameters.Remove "BOM_ID" rsQry.Close Set rsQry = Nothing %>
<% '------------ RUN AFTER PAGE RENDER ----------- '---------------------------------------------- %>