Reg script prob
iam trying to modify MEDRUCK for request for quotation printing. in the standard script i was trying to print all variables in one line . for dng that i have to condense variable . how can i condense variables ? i tried with by giving &variable(c)&. but its not working pls provide me the solution
Thnks
If you are trying to condense blank spaces within two words probably (C) is not working. An alternative is condese this field in control program and using CONDENSE NO-GAP. I think that (C) is work that CONDENSE instruction but without NO-GAP.
Best Regards,
Similar Messages
-
Simultaneous tcl script probes on csm-s
Hi there,
is there anybody who kows how many simultaneous tcl script probes can run on the csm-s ?
I know that i can only open 255 simultaneous sockets. when i have one connection(open socket) per script, there should be only 255 probes that can be run Simultaneously.
is that right ?
Thanks a lott.
Bye Dirkgdufour-cat6k1#show mod csm 5 tech probe
Software version: 4.1(5)
------------------ Health Monitor Statistics -----------------
Probe templates: 0
Suspects created: 0
Open Sockets in System : 8 / 240
Active Suspect(no ICMP): 0 / 200
Active Script Suspect : 0 / 50
Num events : 0
This command gives you how many socket/script task are running and the limit.
So, only 50 scripts.
Gilles. -
ACE - configuring script probes (tclsh)
Hey guys
I'm looking for exampels about writing script probes for the ACE module.
In the cisco's ACE configuration guide i already found one, but i'd be happy to have a few more. Does anybody knows where i can get some other examples?
cheers
patrickTach auch and Hello!
If you check the software section for the ACE Module you will find some ace scripts you can download.
http://www.cisco.com/cgi-bin/Software/Tablebuild/doftp.pl?ftpfile=cisco/crypto/3DES/lan/catalyst/6500/ace/ace_scripts.tgz&app=Tablebuild&status=showC2A
Viel Erfolg
Roble -
Reg script condense prob?
Hi
iam trying to modify MEDRUCK for request for quotation printing. in the standard script i was trying to print all variables in one line . for dng that i have to condense variable . how can i condense variables ? i tried with by giving &variable(c)&. but its not working pls provide me the solution
Thanksthere is maybe a little misunderstanding:
1) if variables A = 'HELLO ' and B = 'WORLD'
&A& &B& will print 'HELLO WORLD'
&A(C)& &B& will print 'HELLO WORLD'
2) if variable A = 'HELLO WORLD'
&A& will print 'HELLO WORLD'
&A(C)& will print 'HELLO WORLD'
If you want to replace 2 or more successive blanks by one blank, you must use "CONDENSE A" ABAP statement so that:
&A& will print 'HELLO WORLD'
&A(C)& will print 'HELLO WORLD'
Edited by: Sandra Rossi on Jan 20, 2010 5:00 PM: EDITION PROBLEM WHEN MORE THAN 1 CONSECUTIVE BLANK -
Issue with Scripted Probe for LDAP
I have the script LDAP_PROBE loaded into memory on my ACE 4710 (A4(2.0)) and th Probe is name is configured for the LDAP port the servers are listening on. So here is th econfiguration.
probe scripted LDAP_PROBE_3389
port 3389
interval 5
passdetect interval 5
passdetect count 2
receive 5
script LDAP_PROBE 3389
I have tried removing the argument of 3389 at the bottom as well but I continue to get the result:
real : LDAP02[3389]
10.220.31.81 3389 PROBE 2491 2491 0 FAILED
Socket state : RESET
No. Passed states : 0 No. Failed states : 1
No. Probes skipped : 0 Last status code : 30002
No. Out of Sockets : 0 No. Internal error: 0
Last disconnect err : Probe error: Server did not respond as expected
Last probe time : Thu Jul 12 16:24:41 2012
Last fail time : Thu Jul 12 12:56:59 2012
Last active time : Never
The server log states this was successful however...
Admin Acct Status: Not Locked
AuditV3--2012-07-11-14:18:21.428+00:00DST--V3 anonymous Bind--bindDN: <*CN=NULLDN*>--client: 10.220.31.217:56908--connectionID: 8--received: 2012-07-11-14:18:21.428+00:00DST--Success
name: <*CN=NULLDN*>
authenticationChoice: simple
Admin Acct Status: Not Locked
Am I missing an argument? I have run debug on LDAP but really don't know what I am looking at...To update the script
==============
Extract the Cisco-supplied LDAP script from the tar.gz or zip file. Rename it to something unique. Update it to use the
new length and offset.
Import the script into the LDAP contexts on both ACEs. Remember, scripts are not replicated and having mismatched scripts will cause replication to fail.
ACE1/ldap# copy tftp: disk0:
Enter source filename[]? UoN-LDAP_PROBE-iLDAP2
Enter the destination filename[]? [UoN-LDAP_PROBE-iLDAP2]
Address of remote host[]? [redacted]
Trying to connect to tftp server......
TFTP get operation was successful
ACE2/ldap# copy tftp: disk0:
Enter source filename[]? UoN-LDAP_PROBE-iLDAP2
Enter the destination filename[]? [UoN-LDAP_PROBE-iLDAP2]
Address of remote host[]? [redacted]
Trying to connect to tftp server......
TFTP get operation was successful
script file 13 UoN-LDAP_PROBE-iLDAP2
If you look at (for example) packet 651 in the capture in wireshark you'll see a
successful bind response. You will need to tell wireshark to decode the packet as LDAP.
The payload is:
30 84 00 00 00 10 02 01 01 61 84 00 00 00 07 0a 01 00 04 00 04 00
You need to have a basic understanding of ASN.1 and something called Basic Encoding Rules (BER) - whicj comes down to TLV format structures.
The key to understanding this output is that there are three ways of specifying a length in ASN.1. The first way we have already seen in the Cisco script is to use a single byte. This known as the "definite" form and can be used for lengths of 127 bytes or less. Otherwise if the high bit is set to one, the low seven bits define the length of length. The length is then encoded in that many bytes. This is the "length of the length field" form. It looks like Microsoft Active Directory uses the indefinite form for all length encoding. The third form (for completeness is "indefinite" where the length is coded as x'80' and the end of the content is marked by x'0000'. Deconstructing the data:
0x30 The start of a universal constructed sequence
0x84 The length of the sequence in "length of the length" format. The next 4 bytes give the length.
0x00000010 sequence length of 16 bytes
0x02 Integer
0x01 The length of the next field (1 byte)
0x01 Value (this is the message ID which agrees with the ID in the BIND Request)
0x61 Application, number 0, use RFC2251 to decode. This is a Bind Response
0x84 The length of the sequence in "length of the length" format. The next 4 bytes give the length.
0x00000007 bind response length of 7 bytes
0x0a Enumeration
0x01 Length 1
0x03 0 - Success
0x04 String
0x00 Length 0 (null string)
0x04 String
0x00 Length 0 (null string)
The patch given takes in 20 bytes from the bitstream,converts it into a hexadecimal string and finds the 6 hexadecimal characters from the 16th byte onwards (Tcl uses zero-based arrays). This is the response code.
Kind Regards
Cathy -
ACE TCL Script Probe for Websphere MQ
Have anyone written a TCL script to probe MQ from the ACE? Our app guys are saying that a Layer 4 probe (TCP port check) is generating errors in the QManager logs because there is no data exchange, just TCP connection setup, then tear-down.
Thought I would check here to see if anyone has written a TCL Script for this before or has any other suggestions.
Thanks!Hi,
What do you need to check exactly on the server? will be an specific uri?
Cesar R
ANS Team -
I have a seed class. I populate that seed class using script discovery and it has attribute 1,2 and 3. Those 3 attributes are all populated via the script discovery too.
Now I created a new application class which use the seed class as target. The criteria is if attribute 1 equal to a certain value. Here comes the question, how to create this discovery? In authoring console the options are registry discovery, script discovery
and custom discovery. Since attribute 1 is already populated in seed class using script, I think I can use that instead of doing another script discovery for the new application class.
However I didn't find a way to do that. Any suggestions?I pasted the base seed MP as following.
The base MP has two classes: "MyBaseMP.MyApps.Candidates" and "MyBaseMP.MyApps".
"MyBaseMP.MyApps.Candidates" is created from "Windows.Computer" class. Then it is discovered by "MyBaseMP.MyApps.Candidates.RegDiscvoery".
"MyBaseMP.MyApps" is created from "Windows.Local.Application" class. It is then discovered by "MyBaseMP.MyApps.ScriptDiscovery". This script discovery is targeting on "MyBaseMP.MyApps.Candidates" class. The script
also populated 5 attribute for "MyBaseMP.MyApps" and they are APPLICATION, LOB, GROUP, ENVIRONMENT and STATE.
This base MP works as expected.
Now I want to create a new custom MP. The new MP has a new class "MyFinanceApps" created from "MyBaseMP.MyApps". The service model is very simple just like following
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="MyFinanceApps" Accessibility="Internal" Abstract="false" Base="MyBaseMP!MyBaseMP.MyApps" Hosted="true" Singleton="false" />
</ClassTypes>
</EntityTypes>
</TypeDefinitions>
I want to populate this class if LOB attribute echos to "Finance". How to make this discovery then? Sure I can create another script discovery but since those values already discovered in the seed class, is there any way I can use them?
The MyBaseMP is as following:
<ManagementPack ContentReadable="true" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<Manifest>
<Identity>
<ID>MyBaseMP</ID>
<Version>1.0.0.0</Version>
</Identity>
<Name>MyBaseMP</Name>
<References>
<Reference Alias="SC">
<ID>Microsoft.SystemCenter.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Windows">
<ID>Microsoft.Windows.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Health">
<ID>System.Health.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="System">
<ID>System.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
</References>
</Manifest>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="MyBaseMP.MyApps" Accessibility="Internal" Abstract="false" Base="Windows!Microsoft.Windows.LocalApplication" Hosted="true" Singleton="false">
<Property ID="APPLICATION" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="GROUP" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="LOB" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="STATE" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="APP_TYPE" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="ENVIRONMENT" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="MyBaseMP.MyApps.Candidates" Accessibility="Internal" Abstract="false" Base="Windows!Microsoft.Windows.Computer" Hosted="false" Singleton="false" />
</ClassTypes>
</EntityTypes>
</TypeDefinitions>
<Monitoring>
<Discoveries>
<Discovery ID="MyBaseMP.MyApps.Candidates.RegDiscovery" Enabled="true" Target="Windows!Microsoft.Windows.Computer" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="MyBaseMP.MyApps.Candidates" />
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.FilteredRegistryDiscoveryProvider">
<ComputerName>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<RegistryAttributeDefinitions>
<RegistryAttributeDefinition>
<AttributeName>FoundAppKey</AttributeName>
<Path>SOFTWARE\MyCompany\SystemCenter</Path>
<PathType>0</PathType>
<AttributeType>0</AttributeType>
</RegistryAttributeDefinition>
</RegistryAttributeDefinitions>
<Frequency>180</Frequency>
<ClassId>$MPElement[Name="MyBaseMP.MyApps.Candidates"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Setting>
</Settings>
</InstanceSettings>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Values/FoundAppKey</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">true</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</DataSource>
</Discovery>
<Discovery ID="MyBaseMP.MyApps.ScriptDiscovery" Enabled="true" Target="MyBaseMP.MyApps.Candidates" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="MyBaseMP.MyApps" />
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>300</IntervalSeconds>
<SyncTime />
<ScriptName>MyApps.Script.Discovery.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Property[Type="Windows!Microsoft.Windows.Computer"]/DNSName$ $MPElement$</Arguments>
<ScriptBody><![CDATA[
Option Explicit
' Definitions for Registry Walking
Const HKEY_LOCAL_MACHINE = &H80000002
Dim oReg
Dim arrValues, arrSubKeys
Dim strComputer, strKeyPath, subkey, strProperty, strArrValue
' Define where the App Subkeys are located, strKeyPath MUST end with a slash!
strKeyPath = "SOFTWARE\MyCompany\SystemCenter\"
strComputer = "."
Dim WshShell, bKey
' Definitions for SCOM Discovery
Dim oAPI
Set oAPI = CreateObject("MOM.ScriptAPI")
Dim oArgs
Set oArgs = WScript.Arguments
' Check for the required script arguments.
if oArgs.Count < 3 Then
' If the script is called without the required arguments,
' create an information event and then quit.
Call oAPI.LogScriptEvent(WScript.ScriptName,101,0, _
"script was called with fewer than three arguments (" & oArgs.Count & " arguments) and was not executed.")
Wscript.Quit -1
End If
Dim SourceID, ManagedEntityId, TargetComputer
SourceID = oArgs(0) ' The GUID of the discovery object that launched the script.
ManagedEntityId = oArgs(1) ' The GUID of the computer class targeted by the script.
TargetComputer = oArgs(2) ' The FQDN of the computer targeted by the script.
Dim oDiscoveryData, oInst
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceID, ManagedEntityId)
' Functions for Registry Walking
' Create Shell Object
Set WshShell = WScript.CreateObject("WScript.Shell")
' Create WMI Object, and check for existence
On Error Resume Next
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
Select Case Err.Number
Case 0:
'Error Code 0 = 'success'
'Wscript.Echo "DEBUG: Opened WMI"
Case Else
'Any other error code is a failure code
Notify("ERROR: Can not open WMI")
Wscript.Quit 1
End Select
On Error Goto 0 'Turn error reporting back on
' Check to ensure first level reg key exists
If RegistryKeyExists("HKLM\" & strKeyPath) Then
If oReg.EnumKey(HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys) > 0 Then
' We have NO subkeys
Notify("ERROR: No Subkeys defined")
Wscript.Quit 1
End if
Else
Notify("DEBUG: Key [" & strKeyPath & "] doesn't exist")
Wscript.Quit 1
End If
'Check size of arrSubKeys for sub keys
If Not IsArray(arrSubKeys) Then
' We have NO subkeys
Notify("ERROR: No Subkeys defined")
Wscript.Quit 1
End If
For Each subkey In arrSubKeys
'Wscript.Echo "DEBUG: subkey = " & subkey
strProperty = ""
'Check to ensure Subkey Exists
If RegistryKeyExists("HKLM\" & strKeyPath & "\" & subkey & "\") Then
'Get Values under each key
'Wscript.Echo "DEBUG: Create OBJECT"
' Discovered the application. Create the application instance.
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='MyBaseMP.MyApps']$")
' Define Property
Call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\ENVIRONMENT") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\ENVIRONMENT")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/ENVIRONMENT$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\STATE") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\STATE")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/STATE$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\APP_TYPE") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\APP_TYPE")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/APP_TYPE$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\LOB") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\LOB")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/LOB$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\GROUP") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\GROUP")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/GROUP$", strProperty)
'Set Application Name
'Wscript.Echo "SET APPLICATION NAME: " & subkey
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/APPLICATION$", subkey)
'Wscript.Echo "SUBMIT INSTANCE"
Call oDiscoveryData.AddInstance(oInst)
Else
' Registry Sub Key does not exist
Notify("ERROR: A found registry subkey, [" & subkey & "] doesn't actually exist")
End If
Next
' Submit the discovery data for processing.
Call oAPI.Return(oDiscoveryData)
' A helper function to remove the extension from a file name.
Function StripExtension (sFile)
StripExtension = Left(sFile, Len(sFile) -4)
End Function
'* Registry Value Exists (Function)
'* Returns a value (true / false)
'This function checks to see if a passed registry value exists, and
'returns true if it does
'Requirements: The registry value you are looking for (RegistryValue)
Function RegistryValueExists (RegistryValue)
'Ensure the last character is NOT a backslash (\) - if it is, we aren't looking for a value
If (Right(RegistryValue, 1) = "\") Then
'It's not a registry value we are looking for
'Wscript.Echo "No slash....returning false"
RegistryValueExists = false
Else
'If there isnt the value when we read it, it will return an error, so we need to resume
On Error Resume Next
'Try reading the value
WshShell.RegRead RegistryValue
'Catch the error
Select Case Err.Number
Case 0:
'Error Code 0 = 'success'
RegistryValueExists = true
Case Else
'Any other error code is a failure code
RegistryValueExists = false
End Select
'Turn error reporting back on
On Error Goto 0
End If
End Function
'* Registry Key Exists (Function)
'* Returns a value (true / false)
'This function checks to see if a passed registry key exists, and
'returns true if it does
'Requirements: The registry key you are looking for (RegistryKey)
'Note: RegistryKey MUST end in a backslash (\), or FALSE will be returned
Function RegistryKeyExists (RegistryKey)
Dim errDescription
'Ensure the last character is a backslash (\) - if it isn't, we aren't looking for a key
If (Right(RegistryKey, 1) <> "\") Then
'It's not a registry key we are looking for
RegistryKeyExists = false
Else
'If there isnt the key when we read it, it will return an error, so we need to resume
On Error Resume Next
'Try reading the key
WshShell.RegRead RegistryKey
'Catch the error
' Wscript.Echo "Err.Number = " & Err.Number
' Wscript.Echo "Err.Message = " & Err.Message
Select Case Err.Number
'Error Code 0 = 'success'
Case 0:
RegistryKeyExists = True
'Wscript.Echo "DEBUG: Case 0: Key Exists"
'This checks for the (Default) value existing (but being blank); as well as key's not existing at all (same error code)
Case &h80070002:
'Read the error description, removing the registry key from that description
ErrDescription = Replace(Err.description, RegistryKey, "")
'Clear the error
Err.clear
'Read in a registry entry we know doesn't exist (to create an error description for something that doesnt exist)
WshShell.RegRead "HKEY_ERROR\"
'The registry key exists if the error description from the HKEY_ERROR RegRead attempt doesn't match the error
'description from our RegistryKey RegRead attempt
If (ErrDescription <> Replace(Err.description, "HKEY_ERROR\", "")) Then
RegistryKeyExists = true
Else
RegistryKeyExists = false
End If
'Any other error code is a failure code
Case Else:
RegistryKeyExists = false
End Select
'Turn error reporting back on
On Error Goto 0
End If
End Function
Function Notify(strNotifyMessage)
Call oAPI.LogScriptEvent(Wscript.Name,101,0, strNotifyMessage)
End Function]]></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
</DataSource>
</Discovery>
</Discoveries>
</Monitoring>
<LanguagePacks>
<LanguagePack ID="ENU" IsDefault="true">
<DisplayStrings>
<DisplayString ElementID="MyBaseMP">
<Name>MyBaseClass</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps">
<Name>MyBaseMP.MyApps</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps" SubElementID="APPLICATION">
<Name>APPLICATION</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps.Candidates">
<Name>MyBaseMP.MyApps.Candidates</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps.Candidates.RegDiscovery">
<Name>MyBaseMP.MyApps.Candidates.RegDiscovery</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps.ScriptDiscovery">
<Name>MyBaseMP.MyApps.ScriptDiscovery</Name>
<Description />
</DisplayString>
</DisplayStrings>
</LanguagePack>
</LanguagePacks>
</ManagementPack> -
Hi,
I have two questions about TCP scripts on ACE :
1. TCP source code
How can I browse the TCL source code of predefined probe scripts on the ACE (for instance HTTPCONTENT_PROBE) '
2. Script parameters
How do I retrieve in the TCL script the parameters passed to the script in the command < script script_name [script_arguments] > ?
Thank you,
YvesYves,
you can download all the scripts from the download software page.
http://tools.cisco.com/support/downloads/go/ImageList.x?relVer=A2%283.2%29&mdfid=280557289&sftType=Application+Control+Software+Scripts&optPlat=&nodecount=2&edesignator=null&modelName=Cisco+ACE+Application+Control+Engine+Module&treeMdfId=268437639&treeName=Application+Networking+Services&modifmdfid=null&imname=&hybrid=Y&imst=N&lr=Y
# Copyright (c) 2005-2008 by Cisco Systems, Inc.
# debug procedure
# set the EXIT_MSG environment variable to help debug
# also print the debug message when debug flag is on
proc set_exit_msg { msg } {
global debug ip port EXIT_MSG
set EXIT_MSG $msg
if { [ info exists ip ] && [ info exists port ] } {
set EXIT_MSG "[ info script ]:$ip:$port: $EXIT_MSG "
if { [ info exists debug ] && $debug } {
puts $EXIT_MSG
# main
# Parse cmd line args and initialize variables
set_exit_msg "initializing variable"
if { $argc < 2 } {
set_exit_msg "[ info script ] parameters :
exit 30002
set ip $scriptprobe_env(realIP)
set port $scriptprobe_env(realPort)
# If port is zero then use well known HTTP port 80
if { $port == 0} {
set port 80
set requestHeader [ lindex $argv 0 ]
set expectFileType [ lindex $argv 1 ]
set debug [ lindex $argv 2 ]
if { $debug == "" } {
set debug 0
# Open connection
set_exit_msg "opening socket"
set sock [ socket $ip $port ]
# Send HTTP request to server
set_exit_msg "sending request : $requestHeader"
puts -nonewline $sock "$requestHeader\n\n"
flush $sock
# Read string back from server
set_exit_msg "receiving response"
set lines [ read $sock ]
# Close connection
set_exit_msg "closing socket"
close $sock
# Parse the HTTP response
# All the following conditions cause probe failure, returning exit code 30002
# Unable to recognize the HTTP response
if { ![ regexp -nocase "^HTTP/1\.\[0-9\] (\[0-9\]\[0-9\]\[0-9\])" $lines match s
tatuscode ] } {
set_exit_msg "probe fail : can't find status code"
exit 30002
# HTTP response is not 200 OK
if { $statuscode != "200" } {
set_exit_msg "probe fail : status code is $statuscode"
exit 30002
# Unable to find Content-type header
if { ![ regexp -nocase "Content-Type *:(.*)\n" $lines match foundContentType]
set_exit_msg "probe fail : can't find \'Content-Type\' header"
exit 30002
# Content-type value does not contain the requested string
if { ![ regexp "$expectFileType" $foundContentType] } {
set_exit_msg "probe fail : expect content-type \'$expectFileType\', but got
\'$foundContentType\'"
exit 30002
# Indicate probe success with exit code 30001
set_exit_msg "probe success"
exit 30001 -
Reg: Script Output in PDF form
Hai..
Can anybody tell me how we will get script output
(P.order output) in PDF format and we need to downlaod this PDF to our local drives. plz tell me the function modules to be used for this requirement and paste the code if any of you worked on this earlier..
RegardsCheck this link for sample program.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/49e15474-0e01-0010-9cba-e62df8244556
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/downloadSAPScriptoutputtoPDF+file.&
Function Module: CONVERT_OTF
Regards,
Maha -
Reg: Script Logic - REC Statement Variable usage
hi friends
Pl find enclosed the following code:
*WHEN TIME
*IS TMVL(-1,2011.04)
*WHEN ACCOUNT
*IS "EXP01"
*REC(EXPRESSION = [TIME].[2011.04]-%VALUE%,TIME = 2011.04,ACCOUNT = EXP01A)
*ENDWHEN
*ENDWHEN
The above code is working fine and result is extracted but i have hardcoded , ACCOUNT=EXP01A;
My Query is follows:
I have used
*WHEN ACCOUNT
*IS "EXP01"
In REC i want to use concatenation of "A" To account like EXP01&"A"
i know accunt & i want to concatenate "A" and use in REC statement like assign to variable
var1="EXP01" & "A" and use var1 in REC
*REC(EXPRESSION = [TIME].[2011.04]-%VALUE%,TIME = 2011.04,ACCOUNT = var1)
i am not sure the syntax (Whether we need to put in strings)
Also if EXP02 then var1="EXP02"&"A" and so on
In fact i want to make this for all members in Account Dimenstion as generalised.
Pl. verify and suggest best possibility
Thanx & Rgds
SrinathHi Krishna
*XDIM_MEMBERSET ACCOUNT AS %ACC% = EXP01
*WHEN ACCOUNT
*IS %ACC%
REC(EXPRESSION = %VALUE%2,TIME = 2011.04,ACCOUNT = %ACC%A)
*ENDWHEN
Is it required to add EXP01A as below?
XDIM_MEMBERSET ACCOUNT AS %ACC% = EXP01, EXP01A
Also In Generalized code you have mentioned:
Instead of Hard Coding EXP01, EXP02 can i have hierarchy of all EXP , so that if any new account added in dimension, there will be no change in script logic. Pl. can you share how to use the same.
If above code needs to be generalised, *FOR *NEXT can be used .
*XDIM_MEMBERSET ACCOUNT AS %ACC_LIST% = EXP01,EXP02,EXP03,EXP04
*FOR %ACC_MBR% = %ACC_LIST%
*WHEN ACCOUNT
*IS %ACC_MBR%
REC(EXPRESSION = %VALUE%2,TIME = 2011.04,ACCOUNT = %ACC_MBR%A)
*ENDWHEN
*NEXT
Rgds
Srinath -
Reg : Script spool file downloading into xl-file
Dear friends,
I need to find the script spool no as well as the same script spool
to be download into xl-file.
Could u please give me guidelines, how to do that.
Thanks and Regards
V.Raja sekaranThanks for your reply,
My requirements is like below,
I am calling the script from report, In report i have a check box for excel download,
If the user selected the option check box download into excel file than i need to indentify the spool number as well as download the script spool file into excel file.
Thanks and regards
V.Rajasekaran. -
Hi,
i copied std script program to customed script, i want to assign that one in nace transaction, i have a doubt which output type i will assign that customer script form,
i could able to fine NEU in that output type,,
which output type will i use???????
pls helpHi,
Go to se12 and see the tnapr table. see the application for the standard script. Go to NACE transaction. select the application. Choose the output type. Thereare output types like fax, printout edi etc. Choose the one you want. go to change mode. Enter the name of the customized script there and save.
NEU is for purchase order.
Regards,
kamala. -
Hi all,
I have made the necessary changes in scripts and saved it. Now i want to release it for quality. How can i know the request no. to release in se09.
for first time it will ask but for second time how can we get it.
Urgent.....
Regards
RatnaHi Ratna,
You can look up the transport request for Script in SE03.
SE03 -> Search for objects in requests/tasks -> Put object type as FORM and give name of your SAP script -> Execute.
You'll get a list of TRs for your Script.
Hope this helps!
Regards,
Saurabh -
Reg : Script for shutdown startup in oracle9i
Hi,
I need shutdown and startup sqlfiles script while taking Coldbackup in oracle9i.U need to perform a cold backup using a script? this one will create a backup from SQL*Plus connected as SYSDBA.
Rem Set SQL*Plus variables to manipulate output
set feedback off heading off verify off
set pagesize 0 linesize 200
Rem Set SQL*Plus user variables used in script
Rem Linux User variables
define dir = '/backup'
define fil = '/tmp/closed_backup_commands.sql'
prompt *** Spooling to &fil
spool &fil
select 'host cp '|| name ||' &dir' from v$datafile order by 1;
select 'host cp '|| member ||' &dir' from v$logfile order by 1;
select 'host cp '|| name ||' &dir' from v$controlfile order by 1;
select 'host cp '|| name ||' &dir' from v$tempfile order by 1;
spool off;
Rem Shutdown the database cleanly
shutdown immediate;
Rem Run the copy file commands
@&fil
Rem Start the database again
startup;
On Linux, connect to SQL*Plus as SYSDBA and run this script like this:
LINUX> sqlplus /nolog
SQL> connect system/manager as sysdba
SQL> @closed_backup.sql -
Hi All,
I am developing a script here everything is ok but I want to display address as follows:
Address: &I_FINAL-stras&&I_FINAL-HSNMR&
&I_FINAL-POSTA&&I_FINAL-LOCAT&
&I_FINAL-ort01&&I_FINAL-PSTLZ&
1) Suppose for &I_FINAL-stras&&(Street1) data is there it is coming if there is no data means then &I_FINAL-HSNMR&(House number) has to be displayed in place of &I_FINAL-stras&&(Street1).
2) Suppose &I_FINAL-POSTA&(Street) and &I_FINAL-LOCAT& are INITIAL(no data) then &I_FINAL-ort01& and &I_FINAL-PSTLZ& has to be displayed in place of 2nd line.
Actually this is very easy in smartforms but in scripts is this possible. If possible please help me on this as this is very urgent.
Thanks & Regards
VenuHi,
We have standard address format in the SAPSCRIPT , Use that format, if any field is blank then it will ignore that field
Syntax:
/: ADDRESS [DELIVERY] [TYPE t] [PARAGRAPH a] [PRIORITY p] [LINES l]
/: TITLE title
/: NAME name1[,name2[,name3[,name4]]]
/: PERSON name of natural person [TITLE form of address]
/: PERSONNUMBER number of the personen
/: DEPARTMENT department
/: STREET street name HOUSE house number
/: LOCATION additional location information
/: POBOX po box [CODE post code / zip code] [CITY city]
/: POSTCODE post code / zip_code
/: CITY city1[,city2]
/: NO_UPPERCASE_FOR_CITY
/: REGION county / state
/: COUNTRY recipient country [LANGUAGE language code]
/: COUNTRY_IN_REC_LANG
/: LANG_FOR_COUNTRY language key
/: FROMCOUNTRY sender country
/: ADDRESSNUMBER address number
/: ENDADDRESS
Regards
Sudheer
Maybe you are looking for
-
Trying to use FTP to get data from a different server
Hi Friends, I have to use FTP to get data from a different server and upload it on SAP server. Now my problem is when I m trying to do ftp through command line it brings the file but with no data. Through ABAP program nothing is happening. Her
-
By default the page size in D2k reports (forms 6i) is 80 colum i.e. 8 1/2x11. How can i enlarge the page size..i.e. i want to make if fanfold 15x12 inch i.e. 132 colum .How do i go about it? please help.
-
Converting Debian 7 ESXi 4.1 to 2012R2 host :
Hi, I'm trying to convert Debian 7 VM to hyper-v using MVMC 2.1. In GUI wizard on Virtual Machine section, under Operating System there is shown Other Linux (x64) instead of Debian 7. Debian version 5 is show correct (for olders dis. VM), as Debian
-
Traffic Shaping for perticular traffic
class-map match-any SYSLOG-CMAP match access-group name SYSLOG-ACL policy-map SYSLOG-PMAP class SYSLOG-CMAP shape average 250000 interface GigabitEthernet0/1 ip address 1.1.1.1 255.255.255.252 ip flow ingress load-interval 30 duplex full speed 100
-
BSEG-ZUONR can't change by BTE 1120
Hi, gurus, I want to change the field BSEG-ZUONR with the DN number, I use BTE 1120 to implement it, but it doesn't work. I refer https://www.sdn.sap.com/irj/sdn/nw-development?rid=/library/uuid/207835fb-0a01-0010-34b4-fef1240ba9b7 and fol