Summary
This article covers a know issue when clicking the attach button in the purchase properties> document page
Symptoms
if a new purchase is not yet saved but tried to attach a document, you get an error message of an internal error. So far so good because its a behavior as expected.
But if you just accept the error and press "create" the saving will last forever and once you reload the web page the effort of this purchase is for nuts...
Same happens if for example a purchase can't be saved because of the BUG having a 0 as last digit of the unit price.
[ERROR 2017-01-30 14:19:46,806 2512769ms FileUploadHelper ] Failed to process the uploaded file. The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Documents_PurchaseOrder". The conflict occurred in database "FNMP", table "dbo.PurchaseOrder_MT", column 'PurchaseOrderID'.
The statement has been terminated.
The 'DocumentAdd' procedure attempted to return a status of NULL, which is not allowed. A status of 0 will be returned instead.
[DEBUG 2017-01-30 14:19:46,806 2512769ms essErrorOverrideModule] Invoking CustomPreSendRequestHeadersHandler
[WARN 2017-01-30 14:19:46,806 2512769ms tCacheAttributeWrapper] Cannot send data to client because response processing has been already finished.
System.Web.HttpException (0x80004005): Server cannot set content type after HTTP headers have been sent.
at System.Web.HttpResponse.set_ContentType(String value)
at System.Web.UI.Page.SetIntrinsics(HttpContext context, Boolean allowAsync)
at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at System.Web.Mvc.OutputCacheAttribute.OnResultExecuting(ResultExecutingContext filterContext)
at Flexera.Web.Presentation.ActionFilters.OutputCacheAttributeWrapper.OnResultExecuting(ResultExecutingContext filterContext)
[ERROR 2017-01-30 14:19:46,822 2512784ms UnhandledErrors ] An unexpected error occurred (d051f196-bc64-449b-b98e-2826a0f940c7)
System.Web.HttpException (0x80004005): Server cannot append header after HTTP headers have been sent.
at System.Web.HttpResponse.AppendHeader(String name, String value)
at DevExpress.Web.ASPxClasses.Internal.HttpUtils.WriteToResponse(String text)
at DevExpress.Web.ASPxUploadControl.ASPxUploadControl.FinishCallbackUpload()
at DevExpress.Web.ASPxUploadControl.ASPxUploadControl.EnsureUploaded()
at DevExpress.Web.Mvc.UploadControlExtension.PrepareControl()
at DevExpress.Web.Mvc.ExtensionBase.Render()
at DevExpress.Web.Mvc.Internal.Utils.GetInnerWriterOutput(Action renderDelegate)
at ASP._Page_Views_Shared_UploadForm_cshtml.Execute() in d:\Program Files (x86)\Flexera Software\FlexNet Manager Platform\WebUI\Views\Shared\UploadForm.cshtml:line 7
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at Flexera.Web.Core.Display.WebViewBase`2.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
at Flexera.Web.Core.Display.UiHelper_PartialView.PartialWithParams(UiHelper ui, String partialName, Object model, Object objectForParams)
at ASP._Page_Views_Shared_Documents_Documents_cshtml.Execute() in d:\Program Files (x86)\Flexera Software\FlexNet Manager Platform\WebUI\Views\Shared\Documents\Documents.cshtml:line 82
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at Flexera.Web.Core.Display.WebViewBase`2.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.b__17()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.b__22(IAsyncResult asyncResult)
[ERROR 2017-01-30 14:19:46,822 2512784ms UnhandledErrors ] An unexpected error occurred (d051f196-bc64-449b-b98e-2826a0f940c7)
System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.
at System.Web.HttpResponse.set_StatusCode(Int32 value)
at Flexera.Web.Presentation.ActionFilters.HandleErrorAttribute.OnException(ExceptionContext filterContext)
at System.Web.Mvc.ControllerActionInvoker.InvokeExceptionFilters(ControllerContext controllerContext, IList`1 filters, Exception exception)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.b__22(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
at System.Web.Mvc.Controller.b__18(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.b__3(IAsyncResult ar)
at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.b__3(IAsyncResult ar)
at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
at System.Web.Mvc.MvcHandler.b__3(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.b__3(IAsyncResult ar)
at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Steps To Reproduce
1. Create a PO from the UI using 'Create a Purchase' wizard in the UI
2. Fill in the values in General page
3. Go to documents page and attach a document
4. Save the Purchase
5. Above error appears
Resolution
This is currently a known issue being tracked under FNMS-32025.
Workaround
Save the PO after step 2
Open the saved PO and attach the Document, it works.