SAP Functional Health check (or) audit
Hai,
We want to do daily Audit for all Modules in ECC 6. Is there any check points available? Because like VKOA Settings(Pooled table )datas are missing at the time of new settings. Please tell .
Regards,
J.Tamilarasi
Digging up an old question.
The exercise was completed using my current knowledge and some improvised output tailored to the customer's need, it was not necessarily a health check audit from a purely technical perspective. It also involved the customer acceptability and usage analysis of the system. Because i strongly believe that a comprehensive system design is only as good as its user.
Anyways for anyone looking for the actual document mentioned in the earlier posts and not to be found anywhere, here it is attached, which is a comprehensive checklists of steps, both inside SAP and otherwise which are to be considered when planning a system audit. Although old, it might provide a good reference checklist of items to be done.
I have renamed the doc file, to let it be more meaningful in case it need to refer to it.
http://1drv.ms/1wIeDbR
Hope you find it useful.
Similar Messages
-
Automate SAP System Health Checks using eCATT
Hello Mates,
Can somebody throw light on the possibility of Automating SAP System Health Checks Using eCATT ?
Are there any readily available scripts within? If so from which version of SAP? or, have they to be custom developed?
Thanks in advance for your time and responses.
Best regards, MAN0JHi manoj,
Examine this ozz note:
131561
see this links
http://www.sap.com/asia/industries/pdf/auto_fin_HC%20Customer%2026jun.pdf
http://whitepapers.silicon.com/0,39024759,60044324p,00.htm
thanks
karthik -
SAP BW on HANA DB Migration - Technical & Functional Assessment Check List Required
Hello Experts,
Typically, Before we start SAP BW on HANA DB migration, we would certainly need Technical & Functional Assessment Check List. As per knowledge, to execute BW on HANA DB migration, we would need HANA Admin and Developer, BASIS and BW consultants.
Can some one share me what exactly these people does in Technical & Functional Assessment ?.
What could be the duration ?.
Does this people require to login into the system's physically and perform any activities ?
Please share me details.
Thanks,
HAHi,
with the perferred (and recommeded) database migration option (DMO) as part of the SUM the need of these Functional Assessment Check List might obsolete, as a lot of manual tasks are integrated into the automated process, which were only available as lists in the past.
For an Overview, see - Migration BW on HANA - Update 2014 | SCN
For a detailed step by step, see - SAP First Guidance - Migration BW on HANA using the DMO option in SUM
Best Regards Roland -
Alternative ways to check SAP HANA health?
Hi,
Are there other ways to check the health of SAP HANA database beside using HANA Studio? This is because our clients are not very convinced that the database health is fine by just looking at the GUI of HANA Studio. For example, in Oracle, we can run certain dynamic views and dbv to check on the database and physical data files. Is there any such similar feature inside SAP HANA?
Thank you.
Regards,
GanThe documentation contains e.g. the Technical Operations Manual in which different monitoring options are explained (e.g. alerts and the statistics server system views).
Beyond that, SAP Solution Manager provides integration for SAP HANA covering monitoring, health checks and analysis.
Reading the documentation on help.sap.com would have provided these information to you and your clients.
There's plenty of more information available, but giving the lead you just received, I'm optimistic you'll find more yourself using your search engine of trust.
- Lars -
Oracle Database Audit Health Check
Hi Experts,
I have been looking for checklist to perform the oracle database audit.
what is the best practise to perfrom the database audit health check.
Regards
Mohammed. Abdul MuqeetHi,
What is it mean for Health Check, You mean you have audit enable in your database and you want to manage it. if so
then you have to take care of Audit area at OS level and sys/aud$ table
for Audit Area: you can schedule a job to clear that are time to time
for sys.aud$: Move this table to non- system tablespace and moniter the uage. can purge the data if not required after taking the backup..
HTH -
How to work on Recommendations based on Health Check suggested by SAP
Hi GURU's,
My client has already implemented BI 7.0 and they have undergone a health check done by SAP.
And they wanted me to give my recommendations on that and I have done so.
But now, they would like to see a bit more detail on my recommendations. In particular, they want me to provide system related information on the following questions raised by them:
1. To identify the unwanted/unused aggregates or weak aggregates in the system and need to delete them. We also need to create or maintain few aggregates based on our requirement to improve the report performance.
2. To use OLAP Cache mode 1. Do all our queries use this cache mode or just some ? Can we change it globally to affect all queries and how big should our cache table be ?
3. Need to implement the Parameter settings suggested by SAP.
4. The ratio of number of entries in the dimension tables to fact tables should be reasonable. Please pass on details of this against cubes against the ZMPA1, ZMDSF1, ZMPCA1 multicubes.
The above recommendations were provided by me to the client based on the health check done by SAP. And I would like to know, how can I get the information required byt he client???
They are also looking at caching some commonly used reports and want to knowif I am able to provide them with information regarding the Top 20 queries used in the system per week, by multicube. The aim is to pre-calculate these queries at night to help with the user experience. Statistics are turned on in BWP.
Thanks and regards,994418 wrote:
forms6i
Hi to all
the requirment the we have already master detail form.example emp details based on the dept number.in the form just only displays three coloumns per record wise(emp details).
actually my requrment is place the check box each record and place a one button in the form.once check the particular record and click on the button open the another form
it's displays that particular record entire emp details.any one help me...........
Edited by: 994418 on 3 Apr, 2013 1:50 AMHi,
As you said, you emp block is tabular, i think there is no need of check box. Just add a button in that block. So there is a button for each record and associate button click display the associate record details (you said to go another form and display)
check this Calling a form and passing a context
Hope this helps
Hamid
Mark correct/helpful to help others to get right answer(s).* -
Health Check in Exchange 2007 Scripting
Hi All,
I have been looking around for scripts which would help me perform regularised health checks in my enviornment. After lot of googling i was able to get a script which would meet my requirements. However i have a few challenges involved in extracting some
more information:
1. Mailbox Store Size, Free Diskspace percentage for mailbox servers
2. Remote Mail flow Tests & Mailflow test to every exchange 2007 mailbox servers in org.
3. Automating Email of collected data (in HTML) to Administrator.
4. Executing the script Automatically without triggering it from Exchange Management Shell.
Script Below
param( [string] $auditlist)
Function Get-CustomHTML ($Header){
$Report = @"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html><head><title>$($Header)</title>
<META http-equiv=Content-Type content='text/html; charset=windows-1252'>
<meta name="save" content="history">
<style type="text/css">
DIV .expando {DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 8pt; RIGHT: 8px; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TEXT-DECORATION: underline}
TABLE {TABLE-LAYOUT: fixed; FONT-SIZE: 100%; WIDTH: 100%}
*{margin:0}
.dspcont { display:none; BORDER-RIGHT: #B1BABF 1px solid; BORDER-TOP: #B1BABF 1px solid; PADDING-LEFT: 16px; FONT-SIZE: 8pt;MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 5px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; WIDTH: 95%; COLOR: #000000; MARGIN-RIGHT:
0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; BACKGROUND-COLOR: #f9f9f9}
.filler {BORDER-RIGHT: medium none; BORDER-TOP: medium none; DISPLAY: block; BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: -1px; FONT: 100%/8px Tahoma; MARGIN-LEFT: 43px; BORDER-LEFT: medium none; COLOR: #ffffff; MARGIN-RIGHT: 0px; PADDING-TOP:
4px; BORDER-BOTTOM: medium none; POSITION: relative}
.save{behavior:url(#default#savehistory);}
.dspcont1{ display:none}
a.dsphead0 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#FFFFFF; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #CC0000}
a.dsphead1 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
a.dsphead2 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
a.dsphead1 span.dspchar{font-family:monospace;font-weight:normal;}
td {VERTICAL-ALIGN: TOP; FONT-FAMILY: Tahoma}
th {VERTICAL-ALIGN: TOP; COLOR: #CC0000; TEXT-ALIGN: left}
BODY {margin-left: 4pt}
BODY {margin-right: 4pt}
BODY {margin-top: 6pt}
</style>
<script type="text/javascript">
function dsp(loc){
if(document.getElementById){
var foc=loc.firstChild;
foc=loc.firstChild.innerHTML?
loc.firstChild:
loc.firstChild.nextSibling;
foc.innerHTML=foc.innerHTML=='hide'?'show':'hide';
foc=loc.parentNode.nextSibling.style?
loc.parentNode.nextSibling:
loc.parentNode.nextSibling.nextSibling;
foc.style.display=foc.style.display=='block'?'none':'block';}}
if(!document.getElementById)
document.write('<style type="text/css">\n'+'.dspcont{display:block;}\n'+ '</style>');
</script>
</head>
<body>
<b><font face="Arial" size="5">$($Header)</font></b><hr size="8" color="#CC0000">
<font face="Arial" size="1"><b>Version 1 |M & C | <A HREF='http://mail.exchange.com'>mail.exchange.com</A></b></font><br>
<font face="Arial" size="1">Report created on $(Get-Date)</font>
<div class="filler"></div>
<div class="filler"></div>
<div class="filler"></div>
<div class="save">
Return $Report
Function Get-CustomHeader0 ($Title){
$Report = @"
<div class="dspcont0">
<h1><a href="javascript:void(0)" class="dsphead0" onclick="dsp(this)">
<span class="expando">show</span>$($Title)</a></h1>
<div class="dspcont0">
Return $Report
Function Get-CustomHeader ($Num, $Title){
$Report = @"
<h2><a href="javascript:void(0)" class="dsphead$($Num)" onclick="dsp(this)">
<span class="expando">show</span>$($Title)</a></h2>
<div class="dspcont">
Return $Report
Function Get-CustomHeaderClose{
$Report = @"
</DIV>
<div class="filler"></div>
Return $Report
Function Get-CustomHeader0Close{
$Report = @"
</DIV>
<div class="filler"></div>
Return $Report
Function Get-CustomHTMLClose{
$Report = @"
</div>
</body>
</html>
Return $Report
Function Get-HTMLTable{
param([array]$Content)
$HTMLTable = $Content | ConvertTo-Html
$HTMLTable = $HTMLTable -replace '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">', ""
$HTMLTable = $HTMLTable -replace '<html xmlns="http://www.w3.org/1999/xhtml">', ""
$HTMLTable = $HTMLTable -replace '<head>', ""
$HTMLTable = $HTMLTable -replace '<title>HTML TABLE</title>', ""
$HTMLTable = $HTMLTable -replace '<', "<"
$HTMLTable = $HTMLTable -replace '>', ">"
$HTMLTable = $HTMLTable -replace '</head><body>', ""
$HTMLTable = $HTMLTable -replace '</body></html>', ""
Return $HTMLTable
Function Get-HTMLLink ($activeURL){
$Report = @"
<a href=$activeURL>$activeURL</a>
Return $Report
Function Get-Ink ([String]$inData){
[String]$inclPercentage = @(35..100)
$positive = ($inclPercentage, 'Success', 'Ready', 'Running', 'OK', 'True', 'Information')
If ($positive -match $inData)
$Report = @"
<font color='#009900'>$inData</font>
Else
$Report = @"
<font color='#FF0000'>$inData</font>
Return $Report
Function Get-HTMLBasic ($Detail){
$Report = @"
<TABLE>
<tr>
<td width='75%'>$($Detail)</td>
</tr>
</TABLE>
Return $Report
Function Get-HTMLDetail ($Heading, $Detail){
$Report = @"
<TABLE>
<tr>
<th width='25%'><b>$Heading</b></font></th>
<td width='75%'>$($Detail)</td>
</tr>
</TABLE>
Return $Report
$input | foreach {$targets += @($_)}
If ((Test-Path variable:\targets) -eq $True){
Write-Host "Server list input detected on pipeline" -ForegroundColor Yellow
Else{
if ($auditlist -eq ""){
Write-Host "No server list specified, getting all Exchange 2007 servers" -ForegroundColor Yellow
$targets = Get-ExchangeServer | Where-Object {$_.IsExchange2007OrLater -eq $True}
else
if ((Test-Path $auditlist) -eq $false)
Write-Host "Invalid server list specified: $auditlist" -ForegroundColor DarkRed
exit
else
Write-Host "Using Audit list: $auditlist" -ForegroundColor Cyan
$Targets = Get-Content $auditlist
$now = Get-Date
#Custom Expressions
$latencyMS = @{Name="Latency(MS)";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
$MessageLatencyTime = @{Name="MessageLatencyTime";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
$hotLink = @{Name="URL";expression={Get-HTMLLink ($_.URL)}}
$colourResult = @{Name="Result";expression={Get-Ink ($_.Result)}}
$colourStatus = @{Name="Status";expression={Get-Ink ($_.Status)}}
$colourType = @{Name="Status";expression={Get-Ink ($_.Type)}}
$newResult = @{Name="Result";expression={If ($_.Result.ToString() -ne 'Success'){Get-Ink ('Failure')} Else {Get-Ink ('Success') }}}
$fullReport = Get-CustomHTML "Exchange 2007 "
$fullReport += Get-CustomHTMLClose
Foreach ($Target in $Targets){
Write-Host "Collating Detail for $Target" -ForegroundColor Yellow
Write-Host "..getting basic computer configuration"
$ComputerSystem = Get-WmiObject -computername $Target Win32_ComputerSystem
switch ($ComputerSystem.DomainRole){
0 { $ComputerRole = "Standalone Workstation" }
1 { $ComputerRole = "Member Workstation" }
2 { $ComputerRole = "Standalone Server" }
3 { $ComputerRole = "Member Server" }
4 { $ComputerRole = "Domain Controller" }
5 { $ComputerRole = "Domain Controller" }
default { $ComputerRole = "Information not available" }
$OperatingSystems = Get-WmiObject -computername $Target Win32_OperatingSystem
$TimeZone = Get-WmiObject -computername $Target Win32_Timezone
$Keyboards = Get-WmiObject -computername $Target Win32_Keyboard
$SchedTasks = Get-WmiObject -computername $Target Win32_ScheduledJob
$BootINI = $OperatingSystems.SystemDrive + "boot.ini"
$RecoveryOptions = Get-WmiObject -computername $Target Win32_OSRecoveryConfiguration
$exServer = Get-ExchangeServer | where {$_.Name -eq "$Target"}
$exVersion = "Version " + $exServer.AdminDisplayVersion.Major + "." + $exServer.AdminDisplayVersion.Minor + " (Build " + $exServer.AdminDisplayVersion.Build + "." + $exServer.AdminDisplayVersion.Revision + ")"
switch ($ComputerRole){
"Member Workstation" { $CompType = "Computer Domain"; break }
"Domain Controller" { $CompType = "Computer Domain"; break }
"Member Server" { $CompType = "Computer Domain"; break }
default { $CompType = "Computer Workgroup"; break }
$LBTime=$OperatingSystems.ConvertToDateTime($OperatingSystems.Lastbootuptime)
$MyReport += Get-CustomHeader0 "$Target - Role(s): $($exServer.ServerRole)"
$MyReport += Get-CustomHeader "2" "Basic Server Information"
$MyReport += Get-HTMLDetail "Computer Name" ($ComputerSystem.Name)
$MyReport += Get-HTMLDetail "Computer Role" ($ComputerRole)
$MyReport += Get-HTMLDetail "Exchange Role(s)" ($exServer.ServerRole)
$MyReport += Get-HTMLDetail "Last System Boot" ($LBTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting logical disk configuration"
$Disks = Get-WmiObject -ComputerName $Target Win32_LogicalDisk
$MyReport += Get-CustomHeader "2" "Logical Disk Configuration"
$LogicalDrives = @()
Foreach ($LDrive in ($Disks | Where {$_.DriveType -eq 3})){
$Details = "" | Select "Drive Letter", Label, "File System", "Disk Size (GB)", "Disk Free Space", "% Free Space"
$Details."Drive Letter" = $LDrive.DeviceID
$Details.Label = $LDrive.VolumeName
$Details."File System" = $LDrive.FileSystem
$Details."Disk Size (GB)" = [math]::round(($LDrive.size / 1GB))
$Details."Disk Free Space" = [math]::round(($LDrive.FreeSpace / 1GB))
$Details."% Free Space" = Get-Ink ([Math]::Round(($LDrive.FreeSpace /1GB) / ($LDrive.Size / 1GB) * 100))
$LogicalDrives += $Details
$MyReport += Get-HTMLTable ($LogicalDrives)
$MyReport += Get-CustomHeaderClose
if ($exServer.ServerRole -like "*ClientAccess*")
{$MyReport += Get-CustomHeader "2" "OWA Connectivity"
Write-Host "..performing OWA connectivity test"
$colOWAResults = Test-OwaConnectivity -ClientAccessServer $Target
$MyReport += Get-HTMLTable ($colOWAResults | select MailboxServer, $hotLink, Scenario, $colourResult, $latencyMS, Error)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting queue details"
if ($exServer.ServerRole -like "*HubTransport*")
$MyReport += Get-CustomHeader "2" "Queue Information"
$colQs = Get-Queue -server $Target
$MyReport += Get-HTMLTable ($colQs | Select-Object NextHopDomain, $colourStatus, MessageCount, NextRetryTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting mailbox database information"
$spaceLog=[System.Diagnostics.EventLog]::GetEventLogs($target) | where {($_.LogDisplayName -eq "Application")}
$db = @{Name="database";Expression={$_.ReplacementStrings[1]}}
$freeMB = @{Name="MB";Expression={[int]$_.ReplacementStrings[0]}}
$whiteSpace = $spaceLog.entries | where {($_.TimeWritten -ge $now.AddDays(-1))} | where {($_.EventID -eq "1221")} | select $db,$freeMB
$ws = @{Name="White Space";expression={}}
if ($exServer.ServerRole -like "*Mailbox*")
$MyReport += Get-CustomHeader "2" "Mailbox Stores"
$colMailboxStores = Get-MailboxDatabase -Server $Target -Status | Sort-Object Name
$storeTable = @()
Foreach ($objMailboxStore in $colMailboxStores)
[string]$totalUsers = (get-mailbox -database $objMailboxStore).count
[string]$empty = $totalUsers.Length -eq 0
if ($empty -eq 'True')
[string]$totalUsers = "0"
$storeDetails = "" | Select Name, Mounted, "Total Users", "White Space", LastFullBackup
$storeDetails.Name = $objMailboxStore.Name
$storeDetails.Mounted = Get-Ink ($objMailboxStore.Mounted)
$storeDetails."Total Users" = $totalUsers
$storeDetails."White Space" = (($whitespace | where {$_.database -match $objMailboxStore.Name} | select -last 1).mb)
$storeDetails.LastFullBackup = $objMailboxStore.LastFullBackup
$storeTable += $storeDetails
$MyReport += Get-HTMLTable ($storeTable)
$MyReport += Get-CustomHeaderClose
$MyReport += Get-CustomHeader "2" "MAPI Connectivity"
Write-Host "..performing MAPI connectivity test"
$colMAPIResults = Test-MAPIConnectivity -Server $Target
$MyReport += Get-HTMLTable ($colMAPIResults | select Database, $newResult, $latencyMS, Error)
$MyReport += Get-CustomHeaderClose
$MyReport += Get-CustomHeader "2" "Mailflow Test"
Write-Host "..performing Mailflow test"
$colMailflowResults = Test-Mailflow -Server $Target
$MyReport += Get-HTMLTable ($colMailflowResults | select TestMailflowResult, $MessageLatencyTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting Exchange services"
$ListOfServices = (gwmi -computer $Target -query "select * from win32_service where Name like 'MSExchange%' or Name like 'IIS%' or Name like 'SMTP%' or Name like 'POP%' or Name like 'W3SVC%'")
$MyReport += Get-CustomHeader "2" "Exchange Services"
$Services = @()
Foreach ($Service in $ListOfServices){
$Details = "" | Select Name,Account,"Start Mode",State,"Expected State"
$Details.Name = $Service.Caption
$Details.Account = $Service.Startname
$Details."Start Mode" = $Service.StartMode
If ($Service.StartMode -eq "Auto")
if ($Service.State -eq "Stopped")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("Unexpected")
If ($Service.StartMode -eq "Auto")
if ($Service.State -eq "Running")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.StartMode -eq "Disabled")
If ($Service.State -eq "Running")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("Unexpected")
If ($Service.StartMode -eq "Disabled")
if ($Service.State -eq "Stopped")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.StartMode -eq "Manual")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.State -eq "Paused")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
$Services += $Details
$MyReport += Get-HTMLTable ($Services)
$MyReport += Get-CustomHeaderClose
$eventLogs=[System.Diagnostics.EventLog]::GetEventLogs($Target) | where {($_.LogDisplayName -eq "Application") -OR ($_.LogDisplayName -eq "System")}
$warningEvents = @()
$errorEvents = @()
$LogSettings = @()
$MyReport += Get-CustomHTMLClose
$fullReport += $MyReport
$MyReport = $null
$Date = Get-Date
$Filename = ".\" + "Exchange_Health" + "_" + $date.Hour + $date.Minute + "_" + $Date.Day + "-" + $Date.Month + "-" + $Date.Year + ".htm"
$fullReport | out-file -encoding ASCII -filepath $Filename
Write "Audit saved as $Filename"
Invoke-Item $Filenameplease refer to my scripts below, it should get you started.
http://www.myexchangeworld.com/2010/03/powershell-disk-space-html-email-report/
http://www.myexchangeworld.com/2010/07/powershell-script-to-monitor-exchange-server-2010-services-email-report/
you can customsise this to your needs and add relevant information.
cheers
thiyagu
Thiyagu | MCTS/MCITP - Exchange 2007 | MCSE 2003[Messaging] | http://www.myExchangeWorld.com. This posting is provided "AS IS" with no warranties, and confers no rights. -
Exception handling for a standard SAP Function Module - the OO way
Hello,
I was wondering what is the correct way to call a standard SAP function module inside a method of global class.
I want to display the error via the:
get_text( ) and get_longtext( ) methods.
I don't want to use the sy-subrc check. Is this possible?
My example doesn't seem to work...
See example bellow:
DATA: ex_object_cx_root TYPE REF TO cx_root,
ex_text TYPE string,
ex_text_long TYPE string.
TRY.
CALL FUNCTION 'L_TO_CONFIRM'
EXPORTING
i_lgnum = i_lgnum " Warehouse number
i_tanum = i_tanum " Transfer order number
i_quknz = '1' " '1' - confirm withdrawal only (picking )
i_commit_work = 'X' " Indicator whether COMMIT WORK in function module
TABLES
t_ltap_conf = it_ltap_conf " Table of items to be confirmed
EXCEPTIONS
to_confirmed = 1 " Transfer order already confirmed
to_doesnt_exist = 2
item_confirmed = 3
item_subsystem = 4
to_item_split_not_allowed = 51
input_wrong = 52
OTHERS = 53.
CATCH cx_root INTO ex_object_cx_root.
ex_text = ex_object_cx_root->get_text( ).
ex_text_long = ex_object_cx_root->get_longtext( ).
" Error:
RAISE EXCEPTION TYPE zcx_transfer_order
EXPORTING textid = zcx_transfer_order=>zcx_transfer_order
err_class = 'ZCL_WM_TRANSFER_ORDER'
err_method = 'CONFIRM_TO_2STEP_PICKING'
err_message_text = ex_text
err_message_text_long = ex_text_long.
ENDTRY.
Thank you very much in advanceHello Marko,
If i understand correctly you've enclosed the call to the FM 'L_TO_CONFIRM' inside the TRY ... CATCH ... ENDTRY block.
CATCH cx_root INTO ex_object_cx_root.
ex_text = ex_object_cx_root->get_text( ).
ex_text_long = ex_object_cx_root->get_longtext( ).
You can't do this because the FM 'L_TO_CONFIRM' doesn't propagate OO exceptions!
Your approach is almost correct, what you've to do is goes like this:
CALL FUNCTION 'L_TO_CONFIRM'
EXPORTING
i_lgnum = i_lgnum " Warehouse number
i_tanum = i_tanum " Transfer order number
i_quknz = '1' " '1' - confirm withdrawal only (picking )
i_commit_work = 'X' " Indicator whether COMMIT WORK in function module
TABLES
t_ltap_conf = it_ltap_conf " Table of items to be confirmed
EXCEPTIONS
to_confirmed = 1 " Transfer order already confirmed
to_doesnt_exist = 2
item_confirmed = 3
item_subsystem = 4
to_item_split_not_allowed = 51
input_wrong = 52
OTHERS = 53.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
INTO ex_text. "Get the ex_text by this technique & not by CX_ROOT->GET_TEXT()
ENDIF.
I'll have to check how to fetch the long text of the message
BR,
Suhas -
1:N Replication Health Check
Hello,
When we run the check of 1:N Replication Health Check We are getting the following:
We cant replicate the tables mentioned in this report.
How should we proceed to fix this issue?
Thanks,
AmirHi Roy,
look at this note. it describes how to setup 1:n once you already created the config without "multiple usage" flagged.
Best,
Tobias
SAP Note 1898479:
SLT replication: Redefinition of existing DB triggers -
SAP Early WatchHealth Check Report
Hi Folks,
I am trying to generated SAP Early Watch Health Check Report from my dual stack system but the JAva data are not populated. On the other hand, the JAva data are populated in EWA report.
Does SAP Health Check Report not support Java data?
Thank you so much,
MariHello,
I haave a dual stack Solution Manager system. The EA reports fine on both ABAP and Java, so I have Java data in my EWA reports.
When I create an Earlywatch HEalth Check Service session, I see the section "Definition of System SLM in SMSY" and I see teh Application Server ABAP Stach and Application Server Java Stack, both checked as relevent. Under the section "Servers in current Landscape" I see both ABAP and JAva checked. So this system is clarly identified in the EWHC as a dual stack system.
What I do not see in the service session are any Java checks that I would see in the EWA report. I mean I am not seeing it in the structure of the service session. This would indicate to me the the checks are not done, as opposed to data missing. If the data was missing the place to contain the data would be there, and its not in the structure.
I performed the same on a Solution Manager 7.1 system, and have the same results, no Java
Again, beause I do not see the tree structure in the service session having any nodes for Java data that are just empty, this does not look like missing data, but looks like it is not reported intentionally.
Perhaps someone who deliivers this service on a regular basis can add their input, or a developer, but based on my testing, on a dulal stack system, where the EWA reports Java data, I cannot see that the Java data is even being considered, or it would have a place int eh session tree of the Earlywatch Health Check, and would have entries int eh tree that would be grey if it was just missing. Additionally it is reporting a Java and ABAP stack, so it does know there is a Java stack. Based on this, it would seem the EWHC does not report on Java.
Unfortunately I do not have a java only stack system in my landscape, as it would be interesting to see what this service would report on a Java only system. Should the report generate no data and the Session not initilaize of just have no nodes, then you could say for certain. Unfortunately I do not know this for certain and can only draw conclusions based on the test I performed on my two test Solution Manager systems . One being 7.0 EHP1 SP 27 and the other 7.1 SP03.
Regards,
Paul -
SMS_STATE_MIGRATION_POINT Health check failed for port 80 with status code 500
My SMS_STATE_MIGRATION_POINT gets a red cross because the health check of the SMS_STATE_MIGRATION_POINT is “sometimes” failing. I don’t understand why its fails sometimes? Any suggestions.
gr, Iwan
Health check operation succeeded SMS_STATE_MIGRATION_POINT 4/15/2010 2:51:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 2:51:29 PM 22044 (0x561C)
Call to HttpSendRequestSync succeeded for port 80 with status code 200, text: OK SMS_STATE_MIGRATION_POINT 4/15/2010 2:56:29 PM 22044 (0x561C)
Health check operation succeeded SMS_STATE_MIGRATION_POINT 4/15/2010 2:56:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 2:56:29 PM 22044 (0x561C)
Checking store for cleanup of failed or stale state stores... SMS_STATE_MIGRATION_POINT 4/15/2010 3:01:29 PM 22044 (0x561C)
Call to HttpSendRequestSync failed for port 80 with status code 500, text: Internal Server Error SMS_STATE_MIGRATION_POINT 4/15/2010 3:01:29 PM 22044 (0x561C)
Health check request failed, status code is 500, 'Internal Server Error'. SMS_STATE_MIGRATION_POINT 4/15/2010 3:01:29 PM 22044 (0x561C)
STATMSG: ID=6207 SEV=E LEV=M SOURCE="SMS Server" COMP="SMS_STATE_MIGRATION_POINT" SYS=SWAMS0083 SITE=P01 PID=13560 TID=22044 GMTDATE=Thu Apr 15 13:01:29.777 2010 ISTR0="500" ISTR1="Internal Server Error" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0 SMS_STATE_MIGRATION_POINT 4/15/2010 3:01:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 3:01:29 PM 22044 (0x561C)
Call to HttpSendRequestSync succeeded for port 80 with status code 200, text: OK SMS_STATE_MIGRATION_POINT 4/15/2010 3:06:29 PM 22044 (0x561C)
Health check operation succeeded SMS_STATE_MIGRATION_POINT 4/15/2010 3:06:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 3:06:29 PM 22044 (0x561C)
Call to HttpSendRequestSync succeeded for port 80 with status code 200, text: OK SMS_STATE_MIGRATION_POINT 4/15/2010 3:11:29 PM 22044 (0x561C)
Health check operation succeeded SMS_STATE_MIGRATION_POINT 4/15/2010 3:11:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 3:11:29 PM 22044 (0x561C)
Call to HttpSendRequestSync succeeded for port 80 with status code 200, text: OK SMS_STATE_MIGRATION_POINT 4/15/2010 3:16:29 PM 22044 (0x561C)
Health check operation succeeded SMS_STATE_MIGRATION_POINT 4/15/2010 3:16:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 3:16:29 PM 22044 (0x561C)
Call to HttpSendRequestSync succeeded for port 80 with status code 200, text: OK SMS_STATE_MIGRATION_POINT 4/15/2010 3:21:29 PM 22044 (0x561C)
Health check operation succeeded SMS_STATE_MIGRATION_POINT 4/15/2010 3:21:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 3:21:29 PM 22044 (0x561C)
Call to HttpSendRequestSync failed for port 80 with status code 500, text: Internal Server Error SMS_STATE_MIGRATION_POINT 4/15/2010 3:26:29 PM 22044 (0x561C)
Health check request failed, status code is 500, 'Internal Server Error'. SMS_STATE_MIGRATION_POINT 4/15/2010 3:26:29 PM 22044 (0x561C)
Completed availability check on local machine SMS_STATE_MIGRATION_POINT 4/15/2010 3:26:29 PM 22044 (0x561C)I'va got the following event in my security event log this is strange because the Windows Firewall is off and the problem is not always there, 8 out 10 time the health checks passes.
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date: 4/15/2010 7:01:27 PM
Event ID: 5159
Task Category: Filtering Platform Connection
Level: Information
Keywords: Audit Failure
User: N/A
Computer: ********
Description:
The Windows Filtering Platform has blocked a bind to a local port.
Application Information:
Process ID: 13560
Application Name: \device\harddiskvolume2\programs (x86)\microsoft configuration manager\bin\i386\smsexec.exe
Network Information:
Source Address: 0.0.0.0
Source Port: 9000
Protocol: 17
Filter Information:
Filter Run-Time ID: 0
Layer Name: Resource Assignment
Layer Run-Time ID: 36 -
Powershell script for Exchange Server 2010 health check
People,
Can anyone here please share the Powershell to check the Exchange Server health and functionality after patching and Service Pack update?
I need to test multiple servers in my AD environment.
Thanks
/* Server Support Specialist */Hi,
In Exchange 2010, you can use the Test-ServiceHealth cmdlet to test whether all the Microsoft Windows services that Exchange requires on a server have started.
A related article about this command.
https://technet.microsoft.com/en-us/library/aa998852(v=exchg.150).aspx
You can also use the EXBPA tool to do Exchange server health check. You can look at the blog below.
http://blogs.msdn.com/b/douggowans/archive/2007/06/06/run-your-own-exchange-server-health-check-the-tools.aspx
Hope this is helpful to you.
Best regards,
If you have feedback for TechNet Subscriber Support, contact
[email protected]
Belinda Ma
TechNet Community Support -
SCOM health check on Exchange 2010 servers
Hi,
Does SCOM have any built-in function to perform
health check on Exchange 2010 servers?You can check health check of Exchange 2010 by install management pack of Exchange 2010.
Here's management pack of exchange 2010
http://www.microsoft.com/en-us/download/details.aspx?id=692
Before Import management Pack and how to configure it, you can check below link
http://technet.microsoft.com/en-us/library/ee758051%28v=exchg.140%29.aspx
Please remember, if you see a post that helped you please click "Vote As Helpful" and if it answered your question, please click "Mark As Answer" -
SAP Function Module Converting Stock UoM to the Billing UoM of the material
Hi Guys,
I'm looking for an SAP Function Module that can handle the automatic conversion of a material's Stock Unit of Measure into its Billing Unit of Measure.
Any idea?
Thank you in advance.
-allexHi,
Check this Function module
OIU_QCI_CALC_BILLING_QUANTTIES
Regards
Bala Krishna -
Health Check Error: Dependency$ p_timestamp mismatch for VALID objects
Just before the upgrade when we ran the health check we got the following 8 errors and want to fix them.
Dependency$ p_timestamp mismatch for VALID objects
[E] - P_OBJ#=5015556 D_OBJ#=5015647
[E] - P_OBJ#=5015556 D_OBJ#=8432965
[E] - P_OBJ#=5015576 D_OBJ#=5015647
[E] - P_OBJ#=5015576 D_OBJ#=8432965
[E] - P_OBJ#=5015588 D_OBJ#=5015647
[E] - P_OBJ#=5015588 D_OBJ#=8432965
[E] - P_OBJ#=5015589 D_OBJ#=5015647
[E] - P_OBJ#=5015589 D_OBJ#=8432965
SELECT o.obj# d_obj, do.name d_name, do.type# d_type, po.obj# p_obj, po.name p_name, to_char(p_timestamp,'DD-MON-YYYY HH24:MI:SS') "P_Timestamp",
to_char(po.stime ,'DD-MON-YYYY HH24:MI:SS') "STIME", decode(sign(po.stime-p_timestamp),0,'SAME','*DIFFER*') X FROM sys.obj$ do, sys.dependency$ d, sys.obj$ po WHERE
P_OBJ#=po.obj#(+) AND D_OBJ#=do.obj# AND do.status=1 /*dependent is valid*/ AND po.status=1 /*parent is valid*/ AND po.stime!=p_timestamp /*parent timestamp not match*/ ORDER BY 2,1;
8432965 AQ$_KUPC$DATAPUMP_QUETAB_P 2 5015576KUPC$_API_ACK09-DEC-2009 14:01:28 29-NOV-2010 12:04:14*DIFFER*
8432965 AQ$_KUPC$DATAPUMP_QUETAB_P 2 5015589KUPC$_MASTERJOBINFO 09-DEC-2009 14:01:28 29-NOV-2010 12:04:14*DIFFER*
8432965 AQ$_KUPC$DATAPUMP_QUETAB_P 2 5015556KUPC$_LOGENTRIES 09-DEC-2009 14:01:27 29-NOV-2010 12:04:13*DIFFER*
8432965 AQ$_KUPC$DATAPUMP_QUETAB_P 2 5015588KUPC$_MASTERERROR 09-DEC-2009 14:01:28 29-NOV-2010 12:04:14*DIFFER*
5015647 KUPC$DATAPUMP_QUETAB 2 5015576KUPC$_API_ACK 09-DEC-2009 14:01:28 29-NOV-2010 12:04:14*DIFFER*
5015647 KUPC$DATAPUMP_QUETAB 2 5015589KUPC$_MASTERJOBINFO 09-DEC-2009 14:01:28 29-NOV-2010 12:04:14*DIFFER*
5015647 KUPC$DATAPUMP_QUETAB 2 5015556KUPC$_LOGENTRIES 09-DEC-2009 14:01:27 29-NOV-2010 12:04:13*DIFFER*
5015647 KUPC$DATAPUMP_QUETAB 2 5015588KUPC$_MASTERERROR 09-DEC-2009 14:01:28 29-NOV-2010 12:04:14*DIFFER*
Solution as per the 579256.1's is
The returning objects will have to be recompiled or recreated to clear the problem.
Please see Note 781959.1 to recompile them. This can cause problems during upgrade and PLSQL validation.
But in my case above objects are not synonyms and are of type=2.
So, not sure how to fix them. pl. let us know how we can fix these errors.Well, I can tell you that this kind of error is not OS related, but rather a HW thing. It happens where there is a general detection of something going wrong. Sometimes it can happen randomly and might not be an indication of a problem. But sometimes it can be caused by things that are improperly functioning within the system like bad capacitors.
Unfortunately I don't really know what to do about such things except give you machine a proper inspection. But if things are working fine, and continue to do so, I wouldn't worry about it. If it becomes a regular occurance, then I'd worry.
Maybe you are looking for
-
So I had a working iCloud account that I had accessed online before, and have since dropped and smashed the screen of my iPhone 4. This stopped the entire left hand side of the screen working and I am getting a replacement on household insurance (as
-
ALV issue: when save list using Local File command will get run time error!
help!!!! report list using ALV method when to save this list using Local File. i will get GETWA_NOT_ASSIGNED run time error information. how resolve it? source code : REPORT ZIFT0103. TABLES : MARA,MARC,CDHDR,CDPOS,MAKT. ******DEVK909212**********
-
Problems with numeric values in the barcode
Hi I have a problem with the data from a numeric field, when it is encoded in the barcode the validation pattern seems to be ignored. I have set the validation pattern of the numeric field to be num{9999} And when I enter a value like "0200" it is di
-
Hi All Cud anyone tell me how to add/upload image in Header of element "Group"?? Regards. Nikhil.
-
Hi Folks, I am facing some problem in using ADOBE interactive forms. I am using SAP NETWEAVER DEVELOPMENT STUDIO Version: 2.0.10 In Web Dynpro project after making UI Element Interactive form, to EDIT..it gives the error as An error has occured when