%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'| |
'| wSyncProducts |
'| |
'=====================================================
%>
<%
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 RTAG_ID_FK "&_
" FROM BOMS bo"&_
" WHERE bo.BOM_ID = :BOM_ID"
Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
query = _
" SELECT branch_name, branch_id "&_
" FROM BRANCHES br"&_
" WHERE br.branch_id ="&rsQry("rtag_id_fk")
Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then
outobjDetails.Item ("branch_id") = rsQry("branch_id")
outobjDetails.Item ("branch_name") = rsQry("branch_name")
End If
OraDatabase.Parameters.Remove "BOM_ID"
rsQry.Close
Set rsQry = Nothing
End Sub
'----------------------------------------------------------------------------------------------------------------------------------
Sub UpdateProducts()
Dim aDiffList, numOfRows, rowNum, OraParameter
Const os_id_column = 2
Const old_prod_id_column = 1
'/* Get Lates Release Manager */
OraDatabase.Parameters.Add "BOM_ID", parBom_id, ORAPARM_INPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "RTAG_ID", objFormCollector.Item("rtag_id_fk"), ORAPARM_INPUT, ORATYPE_NUMBER
Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("CompareBomWithLatestFromRM.sql"), ORADYN_DEFAULT )
'-- Get Rows
If rsQry.RecordCount > 0 Then
aDiffList = rsQry.GetRows()
Else
'-- No differencses with Release Manager, hence exit
OraDatabase.Parameters.Remove "BOM_ID"
OraDatabase.Parameters.Remove "RTAG_ID"
Exit Sub
End If
'/* Update 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("update_"& 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("update_"& 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
'----------------------------------------------------------------------------------------------------------------------------------
Sub AddPatches()
Dim aDiffList, numOfRows, rowNum, OraParameter
Const os_id_column = 2
Const prod_id_column = 1
'/* Get Lates Release Manager */
OraDatabase.Parameters.Add "BOM_ID", parBom_id, ORAPARM_INPUT, ORATYPE_NUMBER
Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NewPatches.sql"), ORADYN_DEFAULT )
'-- Get Rows
If rsQry.RecordCount > 0 Then
aDiffList = rsQry.GetRows()
Else
'-- No differencses with Release Manager, hence exit
OraDatabase.Parameters.Remove "BOM_ID"
Exit Sub
End If
'/* Update Versions */
On Error Resume Next
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("add_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( prod_id_column, rowNum ) ) <> "" Then
OraParameter("NEW_PROD_ID").Value = Request("add_"& aDiffList( os_id_column, rowNum ) &"_"& aDiffList( prod_id_column, rowNum ) )
OraParameter("OS_ID").Value = aDiffList( os_id_column, rowNum )
OraDatabase.ExecuteSQL "BEGIN pk_Product.Add_Product ( :NEW_PROD_ID, :OS_ID, :USER_ID ); END;"
End If
Next
objEH.CatchORA ( OraSession )
OraDatabase.Parameters.Remove "BOM_ID"
OraDatabase.Parameters.Remove "NEW_PROD_ID"
OraDatabase.Parameters.Remove "OS_ID"
OraDatabase.Parameters.Remove "USER_ID"
End Sub
'----------------------------------------------------------------------------------------------------------------------------------
%>
<%
'------------ RUN BEFORE PAGE RENDER ----------
Call GetFormDetails ( parBom_id, objFormCollector )
If Request("action") <> "" Then
' --- Form is Valid ---
Call UpdateProducts()
Call AddPatches()
If objEH.Finally Then
Call OpenInParentWindow ( Request("rfile") &"?UPDATED=OK"& objPMod.ComposeURLWithout("rfile") )
Call CloseWindow()
End If
End If
'----------------------------------------------
%>
Deployment Manager
Add Patches
Add Patches, selecting the approved ones from "Production Manager".
<%
'-- FROM START --------------------------------------------------------------------------------------------------------------
objFormComponent.FormName = "FormName"
objFormComponent.Action = SCRIPT_NAME
objFormComponent.OnSubmit = "ShowProgress();"
Call objFormComponent.FormStart()
%>
<%
If objFormCollector.Item("branch_id") = "" Then
Call Messenger ( "This BOM does not have Release Manager Reference release. Please edit BOM properties first. ", 1, "100%" )
End If
%>
Select Patches and click Add.
<%
OraDatabase.Parameters.Remove "BRANCH_ID"
OraDatabase.Parameters.Remove "BOM_ID"
rsQry.Close
Set rsQry = Nothing
%>
<%=objPMod.ComposeHiddenTags()%>
<%
Call objFormComponent.FormEnd()
'-- FROM END ----------------------------------------------------------------------------------------------------------------
%>