10.2.600 & AR Invoice Form

Like Paul says, anything in the EpicorData folder is accessible from the Server File Download. Windows Event Logs are not, which IS a problem for SaaS users.

If you’re going to write to server’s file system, ALWAYS use the EpicorData folder. You can use this code in a BPM to find the path - which we never hardcode because you never know where it might be during a rebuild, moved to the cloud or whatever…

// ServerPath

//public struct PathInfo
//{
//  public bool IsFile;
//  public string FullName;
//  public DateTime LastWriteTimeUtc;
//  public long Length;
//}

//namespace Epicor.ServiceModel.Utilities
//{
//  /// <summary>Pre-defined server folders</summary>
//  public enum SpecialFolder
//  {
//    /// <summary>Reports folder</summary>
//    Report,
//    /// <summary>Web deployment folder</summary>
//    WebDeployment,
//    /// <summary>Report definition folder</summary>
//    ReportDefinition,
//    /// <summary>Custom report definition folder</summary>
//    CustomReportDefinition,
//    /// <summary>User data folder</summary>
//    UserData,
//    /// <summary>Company data folder</summary>
//    CompanyData,
//    /// <summary>Epicor Web Access virtual folder</summary>
//    EWADeployment,
//    /// <summary>Attachment folder</summary>
//    Attachment,
//  }
//}

var ServerPathSvc = Ice.Assemblies.ServiceRenderer.GetService<Ice.Contracts.ServerPathSvcContract>(this.Db);

// Get Folders
List<Ice.Lib.ServerPath.Types.PathInfo> PI;
using (ServerPathSvc)
{
  // Get UserData folder
  PI = ServerPathSvc.GetPaths(Epicor.ServiceModel.Utilities.SpecialFolder.UserData, "", false);
  UserFolder = PI[0].FullName;
  
  // Get CompanyData Folder
  PI = ServerPathSvc.GetPaths(Epicor.ServiceModel.Utilities.SpecialFolder.CompanyData, "", false);
  CompanyFolder = PI[0].FullName;
    
}
3 Likes