%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'| |
'| XML BOM Gen |
'| |
'=====================================================
%>
<%
Option explicit
Response.Expires = 0 ' always load the page, dont store
%>
<%
'------------ VARIABLE DEFINITION -------------
Dim objWSH
Dim rsQry
Dim generated
'------------ CONSTANTS DECLARATION -----------
'------------ VARIABLE INIT -------------------
'------------ CONDITIONS ----------------------
'----------------------------------------------
%>
<%
Function DateReversed ( dDate )
' Ensures Reverse Date format YYYY-MM-DD
If IsNull(dDate) Then Exit Function
DateReversed = Year(dDate) &"-"& Month(dDate) &"-"& Day(dDate)
End Function
'--------------------------------------------------------------------------------------------------------------------------
'--------------------------------------------------------------------------------------------------------------------------
%>
<%
'**************************** M A I N ******************************
If Request("bom_id") <> "" Then
OraDatabase.Parameters.Add "BOM_ID", Request("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBER
Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("NodesSpecFileNames.sql"), cint(0))
OraDatabase.Parameters.Remove "BOM_ID"
If rsQry.RecordCount <> 0 Then
generated = true
Set objWSH = createWscriptShell()
objWSH.Run "cmd.exe /c cscript.exe //B //NoLogo "& APP_ROOT &"\jobs\NodesSpecRelease.wsf /bom_id:"& Request("bom_id") , 0, True
On Error Resume Next
OraDatabase.Parameters.Add "BOM_ID", Request("bom_id"), ORAPARM_INPUT, ORATYPE_NUMBER
OraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
objEH.TryORA ( OraSession )
OraDatabase.ExecuteSQL _
"BEGIN pk_Bom.Log_Bom_Trail ( :BOM_ID, 'NODE SPECS FILE GENERATED', :USER_ID, NULL ); END;"
objEH.CatchORA ( OraSession )
OraDatabase.Parameters.Remove "BOM_ID"
OraDatabase.Parameters.Remove "USER_ID"
On Error GoTo 0
' Create a sane path name for the output file
' Need to use the same rules as NodesSpecRelease.wsf to allow for BOM versions with a '/' in the name
'
Dim LocalPath, ZipFile, filesys, eMsg, zCount
Set rsQry = OraDatabase.DbCreateDynaset( "SELECT bn.BOM_NAME, br.BRANCH_NAME, bn.BOM_NAME ||''|| b.BOM_VERSION ||'.'|| b.BOM_LIFECYCLE AS VERSION FROM BOMS B, BRANCHES BR, BOM_NAMES BN WHERE B.BOM_ID = "& Request("bom_id") &" AND B.BRANCH_ID = BR.BRANCH_ID AND B.BOM_NAME_ID = BN.BOM_NAME_ID", cint(0))
LocalPath = Server.MapPath("nodespecfiles") & "\" &_
NicePath(rsQry("branch_name")) & "\" &_
NicePath(rsQry("version")) & "\"&_
DateReversed(Date)
ZipFile = LocalPath &".zip"
Set filesys = CreateObject("Scripting.FileSystemObject")
If NOT filesys.FolderExists ( LocalPath ) Then
Response.write "
Internal Error: Folder Not Found"
Response.write "
LocalPath: "&LocalPath
Response.write "
Branch: "&rsQry("branch_name")
Response.write "
Version: "&rsQry("version")
Response.write "
"
generated = false
Else
Dim objZIPObject
Set objZIPObject = Server.CreateObject("XStandard.Zip")
If filesys.FileExists(ZipFile) Then
filesys.DeleteFile ZipFile, TRUE
End If
objZIPObject.Pack LocalPath &"\*.*", ZipFile
eMsg = objZIPObject.ErrorDescription
zCount = objZIPObject.Contents(ZipFile).Count
'objZIPObject = Nothing
Response.Write "Files Zipped=" & zCount
If eMsg <> "" Then
Response.Write " with Error="& eMsg
End If
Response.write "
Node Spec Files Generated for: "&objAccessControl.UserEmail
Response.Write "
"
If NOT filesys.FileExists ( ZipFile ) Then
Response.write "
Internal Error: File Not Found"
Response.write "
LocalPath: " & ZipFile & "
"
generated = false
Else
Response.Write "
Emailing using: " & SMTP_HOST
Dim myMail
Set myMail=Server.CreateObject("Persits.MailSender")
myMail.Host = SMTP_HOST
myMail.Subject="NODESPEC FILES Generated from Deployment Manager"
myMail.From="releasem@vixtechnology.com"
myMail.AddAddress objAccessControl.UserEmail
' Attach the file
myMail.AddAttachment LocalPath &".zip"
myMail.Body = "Your requested node spec files .."
myMail.Send
set myMail = nothing
End If
End If
set objWSH = nothing
Set filesys = nothing
rsQry.Close
Set rsQry = nothing
Else
generated = false
Response.write "
Node spec filenames not found in the BOM!!!"
End If
Else
Response.write "Please specify bom_id.
Example:
"& SCRIPT_NAME &"?bom_id=1234"
End If
'**********************************************************************
If generated Then
%>
<%Else%>
<%End If%>
<%Call Destroy_All_Objects%>