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, MAN0J

    Hi 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,
    HA

    Hi,
    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,
    Gan

    The 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 Muqeet

    Hi,
    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 '&lt;', "<"
     $HTMLTable = $HTMLTable -replace '&gt;', ">"
     $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 $Filename

    please 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 advance

    Hello 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,
    Amir

    Hi 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,
    Mari

    Hello,
    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.
    -allex

    Hi,
         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

  • I can't get onto my iCloud account... How do I get my contacts back??

    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

  • Add image in Group Header

    Hi All Cud anyone tell me how to add/upload image in Header of element "Group"?? Regards. Nikhil.

  • Problem in ADOBE Editor

    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