%@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 )
OraDatabase.Parameters.Remove "BOM_ID"
OraDatabase.Parameters.Remove "COMPARE_BOM_ID"
'-- Get Rows
If rsQry.RecordCount > 0 Then
aDiffList = rsQry.GetRows()
Else
'-- No differences compared to Previous BOM, hence exit
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
OraDatabase.Parameters.Remove "OLD_PROD_ID"
OraDatabase.Parameters.Remove "NEW_PROD_ID"
OraDatabase.Parameters.Remove "OS_ID"
OraDatabase.Parameters.Remove "USER_ID"
objEH.CatchORA ( OraSession )
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
Revert Products
Revert Products, selecting the latest from the Parent BOM.
<%
'-- FROM START --------------------------------------------------------------------------------------------------------------
objFormComponent.FormName = "FormName"
objFormComponent.Action = SCRIPT_NAME
objFormComponent.OnSubmit = "ShowProgress();"
Call objFormComponent.FormStart()
%>
<%
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.
Revert
Location
Current Version
<%=Get_Bom_Name(objFormCollector.Item("parent_bom_id"))%>
<%
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%>
No Products to Revert.
<%End If%>
<%
While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
%>
<%If currPkg_id <> rsQry("pkg_id") Then%>
<%=rsQry("prod_name")%>
<%currPkg_id = rsQry("pkg_id")%>
<%End If%>
" value="<%=rsQry("old_prod_id")%>">
" align="absmiddle" border="0"><%=rsQry("prod_location")%>
<%=rsQry("prod_version")%>
<%=rsQry("old_pkg_version")%>
<%rsQry.MoveNext
Wend
%>
<%
OraDatabase.Parameters.Remove "COMPARE_BOM_ID"
OraDatabase.Parameters.Remove "BOM_ID"
rsQry.Close
Set rsQry = Nothing
%>
<%=objPMod.ComposeHiddenTags()%>
<%
Call objFormComponent.FormEnd()
'-- FROM END ----------------------------------------------------------------------------------------------------------------
%>