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;
}