Rev 19 | Rev 29 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?xml version="1.0" ?><package><comment>PrimalCode wizard generated file.</comment><job id="GenerateXMLNodeDefinitons" args="/bom_id:2864" prompt="no"><?job error="false" debug="false" ?><runtime><named helpstring="Bom ID" name="bom_id" required="false" type="string"/></runtime><object id="Oracle_Objects_For_OLE" progid="OracleInProcServer.XOraServer" events="true"/><script language="VBScript" src="common_subs.vbs"/><script language="VBScript" src="config.vbs"/><script id="GenerateXMLNodeDefnitions" language="VBScript"><![CDATA[Option Explicit'=====================================================' Name: POST BOM RELEASE' Description: Generates the BOM XML files that gets' consumed by the CFManager.' INPUT: BOM_ID'====================================================='== Variable Definition ==============================Dim BomIdDim objArgs'== Constants Declaration ============================'== Variable Init ===================================='====================================================='-----------------------------------------------------------------------------------------------------------------Sub GenerateXMLNodeDefinitions ( nBomId, OS )Dim rsQry, aNetworkNodes, XMLNode, DateStringDim lastRow, row, platform' Remove existing stuffCall DeleteFile( APP_ROOT &"downloads\*" )OraDatabase.Parameters.Add "BOM_ID", nBomId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NetworkNodes.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "BOM_ID"If rsQry.RecordCount > 0 ThenaNetworkNodes = rsQry.GetRows()End IflastRow = UBound( aNetworkNodes, 2 )DateString = DateReversed( Date )If OS = 1 Then platform = "Windows" Else platform = "SunOS"For row = 0 To lastRowXMLNode = NullXMLNode = XMLNode &_" <BomHeader>"& vbNewLine &_" <release_ident></release_ident>"& vbNewLine &_" <bom_name>"& aNetworkNodes( 1, row ) &" "& platform &"</bom_name>"& vbNewLine &_" <bom_type>system</bom_type>"& vbNewLine &_" <bom_version>"& aNetworkNodes( 2, row ) &"."& aNetworkNodes( 3, row ) &"</bom_version>"& vbNewLine &_" <bom_date>"& DateString &"</bom_date>"& vbNewLine &_" <bom_status>REG</bom_status>"& vbNewLine &_" <bom_status_date>"& DateString &"</bom_status_date>"& vbNewLine &_" </BomHeader>"& vbNewLineIf OS = 1 Then'-- Get Node Base Configurations Details For Windows OS --XMLNode = XMLNode & GetNodeBaseConfigDetails ( nBomId, aNetworkNodes( 0, row ), OS ) & vbNewLine'-- Get Node Product Details For Windows OS --XMLNode = XMLNode & GetNodeDetails ( nBomId, aNetworkNodes( 0, row ), OS ) & vbNewLineElse'-- Get Node Base Configurations Details For SunOS --XMLNode = XMLNode & GetNodeBaseConfigDetails ( nBomId, aNetworkNodes( 0, row ), OS ) & vbNewLine'-- Get Node Product Details For SunOS --XMLNode = XMLNode & GetNodeDetails ( nBomId, aNetworkNodes( 0, row ), OS ) & vbNewLineEnd If' Close xml node tag before savingXMLNode = _"<BomDistribution>"& vbNewLine &_XMLNode &"</BomDistribution>"& vbNewLine'WScript.Echo XMLNodeIf OS = 1 ThenIf GetNodeBaseConfigDetails ( nBomId, aNetworkNodes( 0, row ), OS ) <> "" OR GetNodeDetails ( nBomId, aNetworkNodes( 0, row ), OS ) <> "" Then' Save to a fileCall SaveFile( DateString, rsQry("version"), rsQry("branch_name"), APP_ROOT &"downloads", FormatFileName( aNetworkNodes( 1, row ) ) &"_Windows.xml", XMLNode )End IfElseIf GetNodeBaseConfigDetails ( nBomId, aNetworkNodes( 0, row ), OS ) <> "" OR GetNodeDetails ( nBomId, aNetworkNodes( 0, row ), OS ) <> "" Then' Save to a fileCall SaveFile( DateString, rsQry("version"), rsQry("branch_name"), APP_ROOT &"downloads", FormatFileName( aNetworkNodes( 1, row ) ) &"_SunOS.xml", XMLNode )End IfEnd IfNextEnd Sub'-----------------------------------------------------------------------------------------------------------------Function FormatFileName ( sFileName )Dim sReturnsReturn = Replace ( sFileName, "/", "" )sReturn = Replace ( sReturn, "\", "" )sReturn = Replace ( sReturn, "&", "And" )sReturn = Replace ( sReturn, " ", "_" )FormatFileName = sReturnEnd Function'-----------------------------------------------------------------------------------------------------------------Function GetNodeBaseConfigDetails ( nBomId, nNodeId, OS )Dim rsQry, XMLPackageString, pkgName, pkgReleaseType, osType, pkgVersionOraDatabase.Parameters.Add "BOM_ID", nBomId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "NODE_ID", nNodeId, ORAPARM_INPUT, ORATYPE_NUMBERIf OS = 1 ThenSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NodeBaseConfigsWindows.sql"), ORADYN_DEFAULT )ElseSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NodeBaseConfigsSunOS.sql"), ORADYN_DEFAULT )End IfOraDatabase.Parameters.Remove "BOM_ID"OraDatabase.Parameters.Remove "NODE_ID"While (NOT rsQry.BOF) AND (NOT rsQry.EOF)'Extract the Package NamepkgName = rsQry("pkg_name")If OS = 1 ThenIf rsQry("win_electronic_name") <> "" ThenpkgName = rsQry("win_electronic_name")End IfElseIf rsQry("sunos_electronic_name") <> "" ThenpkgName = rsQry("sunos_electronic_name")End IfEnd If'Extract the Package Release TypeIf rsQry("is_patch") = "Y" ThenpkgReleaseType = "PT"ElsepkgReleaseType = "FR"End If'Extract the OS NameIf rsQry("os_name") <> "" ThenosType = rsQry("os_name")ElseosType = rsQry("bos_type")End If'Extract the Package VersionpkgVersion = rsQry("pkg_version")'Extract the Patch Electronic NameIf rsQry("is_patch") <> "" ThenIf rsQry("patch_electronic_name") <> "" ThenpkgVersion = rsQry("patch_electronic_name")End IfEnd IfXMLPackageString = XMLPackageString &_" <PackageRecord>"& vbNewLine &_" <pkg_name>"& pkgName &"</pkg_name>"& vbNewLine &_" <pkg_version>"& pkgVersion &"</pkg_version>"& vbNewLine &_" <pkg_date>2003-03-01</pkg_date>"& vbNewLine &_" <pkg_status>REG</pkg_status>"& vbNewLine &_" <pkg_status_date>"& DateReversed( CDate( rsQry("modified_stamp") ) ) &"</pkg_status_date>"& vbNewLine &_" <pkg_target></pkg_target>"& vbNewLine &_" <pkg_platform_list>"& vbNewLine &_" <platform_record>"& osType &"</platform_record>"& vbNewLine &_" </pkg_platform_list>"& vbNewLine &_" <pkg_release_type>"& pkgReleaseType &"</pkg_release_type>"& vbNewLine &_" </PackageRecord>"& vbNewLinersQry.MoveNext()WendrsQry.Close()Set rsQry = Nothing' Return stringGetNodeBaseConfigDetails = XMLPackageStringEnd Function'-----------------------------------------------------------------------------------------------------------------Function GetNodeDetails ( nBomId, nNodeId, OS )Dim rsQry, XMLPackageString, pkgName, pkgReleaseType, osType, pkgVersion, pkgDatabase, patchName, rsTempOraDatabase.Parameters.Add "BOM_ID", nBomId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "NODE_ID", nNodeId, ORAPARM_INPUT, ORATYPE_NUMBERIf OS = 1 ThenSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NodeProductsWindows.sql"), ORADYN_DEFAULT )ElseSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NodeProductsSunOS.sql"), ORADYN_DEFAULT )End IfOraDatabase.Parameters.Remove "BOM_ID"OraDatabase.Parameters.Remove "NODE_ID"While (NOT rsQry.BOF) AND (NOT rsQry.EOF)'Extract the Package NamepkgName = rsQry("pkg_name")'Extract the Package VersionpkgVersion = rsQry("pkg_version")If OS = 1 ThenIf rsQry("win_electronic_name") <> "" ThenpkgName = rsQry("win_electronic_name")End IfElseIf rsQry("sunos_electronic_name") <> "" ThenpkgName = rsQry("sunos_electronic_name")End IfEnd If'Extract the Package Release TypeIf rsQry("is_patch") = "Y" ThenpkgReleaseType = "PT"If rsQry("patch_electronic_name") <> "" ThenpkgVersion = rsQry("patch_electronic_name")End IfElsepkgReleaseType = "FR"End If'Extract the OS TypeIf rsQry("os_name") <> "" ThenosType = rsQry("os_name")ElseosType = rsQry("bos_type")End IfXMLPackageString = XMLPackageString &_" <PackageRecord>"& vbNewLine &_" <pkg_name>"& pkgName &"</pkg_name>"& vbNewLine &_" <pkg_version>"& pkgVersion &"</pkg_version>"& vbNewLine &_" <pkg_date>2003-03-01</pkg_date>"& vbNewLine &_" <pkg_status>REG</pkg_status>"& vbNewLine &_" <pkg_status_date>"& DateReversed( CDate( rsQry("modified_stamp") ) ) &"</pkg_status_date>"& vbNewLine &_" <pkg_target></pkg_target>"& vbNewLine &_" <pkg_platform_list>"& vbNewLine &_" <platform_record>"& osType &"</platform_record>"& vbNewLine &_" </pkg_platform_list>"& vbNewLineIf rsQry("is_patch") = "Y" ThenOraDatabase.Parameters.Add "PV_ID", rsQry("prod_id"), ORAPARM_INPUT, ORATYPE_NUMBERSet rsTemp = OraDatabase.DbCreateDynaset( GetQuery ("DatabasePatch.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "PV_ID"pkgDatabase = rsTemp("pkg_name")patchName = rsTemp("pkg_version")rsTemp.Close()Set rsTemp = NothingXMLPackageString = XMLPackageString &_" <pkg_database>"& pkgDatabase &"</pkg_database>"& vbNewLine &_" <pkg_patch_list>"& vbNewLine &_" <patch_name>"& patchName &"</patch_name>"& vbNewLine &_" </pkg_patch_list>"& vbNewLineEnd IfXMLPackageString = XMLPackageString &_" <pkg_release_type>"& pkgReleaseType &"</pkg_release_type>"& vbNewLine &_" </PackageRecord>"& vbNewLinersQry.MoveNext()WendrsQry.Close()Set rsQry = Nothing' Return stringGetNodeDetails = XMLPackageStringEnd Function'-----------------------------------------------------------------------------------------------------------------'=================================== MAIN LINE ======================================WScript.Echo "==================== job:GenerateXMLNodeDefenitions ===================="Set objArgs = WScript.ArgumentsIf (objArgs.Unnamed.Count > 0) ThenWscript.Echo "ERROR: Unnamed parameters!"objArgs.ShowUsageWScript.QuitElseBomId = objArgs.Named.Item("bom_id")Dim Windows, SolarisWindows = 1Solaris = 2If ( BomId <> "" ) Then'Generation of Node Spec Files for Windows OS.Call GenerateXMLNodeDefinitions( BomId, Windows )'Generation of Node Spec Files for Sun OS.Call GenerateXMLNodeDefinitions( BomId, Solaris )ElseobjArgs.ShowUsageWScript.QuitEnd IfEnd IfWScript.Echo "Job completed successfully!"'====================================================================================]]></script></job></package>