2 Replies Latest reply on Apr 22, 2016 8:54 PM by arosenthal

    Using PowerShell to process rollup analysis errors

    arosenthal

      I am trying to convert a C# application I wrote to process analysis errors to a PowerShell script, but seem to be running into a roadblock. It appears that loading the AFSDK assembly in PowerShell does not load the analytics assemblies like Visual Studio does.

       

      The following is a snippet of the C# application I have written:

       

      AFAnalysisRuleConfiguration configuration = analysis.AnalysisRule.GetConfiguration();
      if (configuration.HasExceptions)
      {
          // Flag if error message is "Failed to resolve required input 'SearchCriteria'
          bool searchFail = false;
      
      
          ICollection<AFAnalysisException> exceptionGroups = configuration.ConfigurationExceptions;
          foreach (AFAnalysisException error in exceptionGroups)
          {
              if (error.Severity == AFAnalysisErrorSeverity.Error && error.Message == "Failed to resolve required input 'SearchCriteria'")
              {
                  searchFail = true;
                  break;
              }
          }
      

       

      and here is how I have converted it into PowerShell:

       

      $analysisRule = $analysis.AnalysisRule
      
      $configuration = $analysisRule.GetConfiguration()
      
      
      
      if ($configuration.HasExceptions -eq $True) {
      
      
      $searchFail = $False
      
      
      
      
      
      $exceptionGroups = $configuration.ConfigurationExceptions
      
      
      
      
      
      foreach ($error in $exceptionGroups) {
      
      
      
      $error.Message
      
      
      
      
      
      
      if (($error.Severity -eq [OSIsoft.AF.Analysis.AFAnalysisErrorSeverity]::Error) -And ($error.Message -eq "Failed to resolve required input 'SearchCriteria'")) {
      
      
      
      
      $searchFail = $True
      
      
      
      
      break
      
      
      
      }
      
      
      }
      
      

       

      The problem is that in the PowerShell script, rollup analyses always have the following value in $error.Message:

       

      Fail to load analysis rule (Analysis Rule: 'Rollup', Path: '<AssetPathHere>[<AnalysisNameHere>]\AnalysisRule'): Failed to load 'Rollup' PlugIn: The PlugIn type 'OSIsoft.AF.Analysis.AnalysisRule.Rollup' was not found.

      In the C# application, however, the error message is correct. Any idea why this is occurring?