Attempt to use an object that has ceased to exist - sharepoint

i have 1 site collection that has 4 subsites beneath it, all the 4 subsites have the same home page with the same page layout and master page and also web parts (with lists), i keep getting this error
Attempted to use an object that has ceased to exist. (Exception from
HRESULT: 0x80030102 (STG_E_REVERTED
the following is the stack trace :
Microsoft.SharePoint.Library.SPRequestInternalClass.LocalizeText(String
bstrToLocalize, UInt32 lcid, String bstrDefaultResourceFile, Boolean
fIsXml) +0
Microsoft.SharePoint.Library.SPRequest.LocalizeText(String
bstrToLocalize, UInt32 lcid, String bstrDefaultResourceFile, Boolean
fIsXml) +258
[SPException: Attempted to use an object that has ceased to exist.
(Exception from HRESULT: 0x80030102 (STG_E_REVERTED))]
Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)
+146 Microsoft.SharePoint.Library.SPRequest.LocalizeText(String bstrToLocalize, UInt32 lcid, String bstrDefaultResourceFile, Boolean
fIsXml) +786
Microsoft.SharePoint.Utilities.SPUtility.GetLocalizedString(String
source, String defaultResourceFile, UInt32 language) +85
DMA.Internet.Common.Helper.GetResourceValue(String resourceKey) +161
DMA.Internet.WebParts.MunicipalElectronicServices.MunicipalElectronicServices.Page_Load(Object
sender, EventArgs e) +464 System.Web.UI.Control.LoadRecursive() +95
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Control.LoadRecursive() +190
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+2936
here are my attempts:
1- double checked my code for any incorrect SP objects disposal,like SPContext.Current.Site and SPContext.Current.Web but everything looks fine (no disposal for the previously mentioned objects)
2- copied my Resource files to App_globalResources and used HttpContext.GetGlobalResourceObject instead of SPUtility.GetLocalizedString but no luck
Note: some web parts im using uses Custom Field Type (base type boolean), and if i remove this web part the home page works

it is solved, it was a strange behavior that the exception is thrown at Helper.GetResourceValue() level, however,i was calling a method that fetches Events from a Sharepoint Events Calendar while setting ExpandRecurrence = true; and RowLimit = 1;,so just removing the RowLimit=1; solved the issue.

Related

Adding Vendor lookup to custom field

I added a custom field for vendorid on the SO Line. (Yes, I know there is one there, but we are building some new logic). I've added the integer field and it appears on the grid fine. I'm trying to get a lookup of vendors. I started with this
Where<AP.Vendor.type, NotEqual<BAccountType.employeeType>>>))]
and then tried
Where<BAccountR.type, Equal<BAccountType.companyType>,
Or<AP.Vendor.type, NotEqual<BAccountType.employeeType>>>>),
Visibility = PXUIVisibility.SelectorVisible, CacheGlobal = true, Filterable = true)]
It got me a lookup on new records, but then when I save and try to open any sales order, I get an error that says "Error: An error occurred during the processing of the field InventoryID: Specified cast is not valid.." which makes no sense to me. But if I remove the above it works, so seems like that must be the issue.
Stack Trace as requested:
Error: Error: An error occurred during processing of the field InventoryID: Specified cast is not valid..
Raised At: 2/24/2020 6:47:58 PM Screen: SO.30.10.00
Details:
2/24/2020 6:47:58 PM Error:
Error: An error occurred during processing of the field InventoryID: Specified cast is not valid..
System.InvalidCastException: Specified cast is not valid.
at System.Data.SqlClient.SqlBuffer.get_Int32()
at PX.Data.PXDataRecord.GetInt32(Int32 i)
at PX.Data.PXDBIntAttribute.RowSelecting(PXCache sender, PXRowSelectingEventArgs e)
at PX.Data.PXCache.OnRowSelecting(Object item, PXDataRecord record, Int32& position, Boolean isReadOnly)
at PX.Data.PXCache.OnRowSelecting(Object item, PXDataRecord record, Int32& position, Boolean isReadOnly)
at PX.Data.PXCache`1.Select(PXDataRecord record, Int32& position, Boolean isReadOnly, Boolean& wasUpdated)
at PX.Data.PXView.GetResult(Object[] parameters, PXFilterRow[] filters, Boolean reverseOrder, Int32 topCount, PXSearchColumn[] sorts, Boolean& overrideSort, Boolean& extFilter)
at PX.Data.PXView.Select(Object[] currents, Object[] parameters, Object[] searches, String[] sortcolumns, Boolean[] descendings, PXFilterRow[] filters, Int32& startRow, Int32 maximumRows, Int32& totalRows)
at PX.Objects.SO.SOOrderEntry.transactions()
at _CustomMethod(Object , Object[] )
at PX.Data.PXView.InvokeDelegate(Object[] parameters)
at PX.Data.PXView.Select(Object[] currents, Object[] parameters, Object[] searches, String[] sortcolumns, Boolean[] descendings, PXFilterRow[] filters, Int32& startRow, Int32 maximumRows, Int32& totalRows)
at PX.Data.PXGraph.ExecuteSelect(String viewName, Object[] currents, Object[] parameters, Object[] searches, String[] sortcolumns, Boolean[] descendings, PXFilterRow[] filters, Int32& startRow, Int32 maximumRows, Int32& totalRows)
Anyone have any thoughts?
TL;DR;
Remove PXDBInt attribute from the field.
The issue here is not with Where condition but with attributes definition for the field.
[PXDBInt]
[PXUIField(DisplayName="Vendor ID")]
[AP.Vendor(typeof(Search<BAccountR.bAccountID, Where<AP.Vendor.type,
NotEqual<BAccountType.employeeType>>>))]
Actually, here you have DBField attribute twice. You have PXDBIntAttribute and Vendor attribute that contains PXDBIntAttribute inside.
Because of that the framework has the wrong fields to db columns mapping resulting in that strange error.
If you use Visual studio, I recommend you to try Acuminator extension https://marketplace.visualstudio.com/items?itemName=Acumatica.Acuminator
It highlights that type of errors
Too long for a comment, but more of a suggestion than an "answer". Try building your own PXSelector. I have a custom DAC that needs to store two vendors, and I had to abandon the AP.Vendor attribute for a custom PXSelector for mine to work. This is one of mine. In my case, I need to be able to see which one is defined as the Preferred Vendor for the warehouse, and I only want to see vendors associated with my InventoryID. SSINItemBranch is a custom DAC that is also available in the scope of this DAC's usage. The point is, use this as an example if you need one to try creating your own from scratch. If this isn't how you want to accomplish the task, at least you might isolate if the problem is a use case of the AP.Vendor attribute or something else.
[PXSelector(
typeof(Search2<
Vendor.bAccountID,
InnerJoin<POVendorInventory,
On<POVendorInventory.vendorID, Equal<Vendor.bAccountID>,
And<POVendorInventory.inventoryID, Equal<Current<SSINItemBranch.inventoryID>>>>,
LeftJoin<INItemSite, On<INItemSite.inventoryID, Equal<POVendorInventory.inventoryID>,
And<INItemSite.preferredVendorID, Equal<POVendorInventory.vendorID>,
And<INItemSite.preferredVendorLocationID, Equal<POVendorInventory.vendorLocationID>,
And<INItemSite.preferredVendorOverride, Equal<True>>>>>>>,
Where<Vendor.type, Equal<BAccountType.vendorType>>>),
typeof(Vendor.acctCD),
typeof(Vendor.acctName),
typeof(POVendorInventory.vendorLocationID),
typeof(INItemSite.preferredVendorOverride),
typeof(POVendorInventory.vendorInventoryID),
typeof(POVendorInventory.vLeadTime),
SubstituteKey = typeof(Vendor.acctCD),
DescriptionField = typeof(Vendor.acctName),
Filterable = true
)]

Can not select value in a combo box in coded UI test using coded UI test builder

I am working on a WPF application which has several custom controls. I am using coded UI test builder to create a script for my application testing. When I run the test, it gives me an exception and the exception occurs at the line shown below.
uIRadComboBoxComboBox.SelectedItem = this.SelectingWeddingParams.UIRadComboBoxComboBoxSelectedItem;
I have tried using mouse clicks and changing the coordinates but that does not work as well.
The code for the function is
region Variable Declarations
WpfCustom uIItemCustom = this.UIIntelliClientWindow.UIItemCustom;
WpfComboBox uIRadComboBoxComboBox = this.UIIntelliClientWindow.UIEventInfoRegionCustom1.UIPleasewaitProgressBar.UIRadComboBoxComboBox;
#endregion
// Click custom control
Mouse.Click(uIItemCustom, new Point(448, 307));
// Select 'Wedding' in 'RadComboBox' combo box
uIRadComboBoxComboBox.SelectedItem = this.SelectingWeddingParams.UIRadComboBoxComboBoxSelectedItem;
The exception is pasted below.
Result StackTrace:
at Microsoft.VisualStudio.TestTools.UITest.Playback.Engine.IScreenElement.FindAllDescendants(String bstrQueryId, Object& pvarResKeys, Int32 cResKeys, Int32 nMaxDepth)
at Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FindAllScreenElement(String queryId, Int32 depth, Boolean singleQueryId, Boolean throwException, Boolean resetSkipStep)
at Microsoft.VisualStudio.TestTools.UITest.Playback.ScreenElement.FindScreenElement(String queryId, Int32 depth, Boolean resetSkipStep)
at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.FindFirstDescendant(String queryId, Int32 maxDepth, Int32& timeLeft)
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapControlNotFoundException(COMException ex, IPlaybackContext context)
at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowComException(COMException innerException, IPlaybackContext context)
at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowException(Exception exception, IPlaybackContext context)
at Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowException(Exception exception, String queryId)
at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.FindFirstDescendant(String queryId, Int32 maxDepth, Int32& timeLeft)
at Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.GetElement(Boolean useCache, ISearchArgument searchArg)
at Microsoft.VisualStudio.TestTools.UITesting.SearchHelper.Search(ISearchArgument searchArg)
at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.FindInternal()
at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.FindControlIfNecessary()
at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.SetPropertyPrivate(String propertyName, Object value)
at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.<>c__DisplayClass180_0.b__0()
at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1 function, UITestControl control, Boolean firePlaybackErrorEvent, Boolean logAsAction)
at Microsoft.VisualStudio.TestTools.UITesting.UITestControl.SetProperty(String propertyName, Object value)
at Microsoft.VisualStudio.TestTools.UITesting.WpfControls.WpfComboBox.set_SelectedItem(String value)
at AddingEventUsingDataDrivenTesting.UIMap.SelectingWedding() in C:\Users\Dev2\source\repos\AddingEventUsingDataDrivenTesting\AddingEventUsingDataDrivenTesting\UIMap.Designer.cs:line 166
at AddingEventUsingDataDrivenTesting.CodedUITest1.CodedUITestMethod1() in C:\Users\Dev2\source\repos\AddingEventUsingDataDrivenTesting\AddingEventUsingDataDrivenTesting\CodedUITest1.cs:line 30
Result Message:
Test method AddingEventUsingDataDrivenTesting.CodedUITest1.CodedUITestMethod1 threw exception:
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: The playback failed to find the control with the given search properties. Additional Details:
TechnologyName: 'UIA'
FrameworkId: 'Wpf'
ControlType: 'ComboBox'
HelpText: 'RadComboBox'
Instance: '2'
Search may have failed at '' TabList as it may have virtualized children. If the control being searched is descendant of '' TabList then including it as the parent container may solve the problem. ---> System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.
I face the same issue when I try to automate the wpf controls with coded UI.
The best solution I would like to suggest is to use Appium WinAppDriver(If it is possible for you) as it supports the wpf controls as mentioned my Microsoft team.
here is the guide to : How to use WinAppDriver
CodedUI will be deprecated after Visual studio 2019(mentioned by one of the member of microsoft team in a video) although support will be there.
And for the work around I would suggest you to use the Keyboard.Sendkeys() to set the combobox.
for exmaple :-
UITestControl combobox = new UITestControl();
//add properties of combobox
WinEdit textboxOfCombobox = new WinEdit(comboBox);
textboxOfCombobox.SendKeys("value to enter");
// Add code to verify if the combobox has the correct value selected.
This workaround I use personally and it works for me.
I hope this helps.

Power Query error - Unable to get the NumberFormat property of the Range class

I can't find any search results on this error:
Unable to **get** the NumberFormat property of the Range class
There are tons of search results about this Excel error:
Unable to **set** the NumberFormat property of the Range class
Here is error screenshot.
I am getting this error when refreshing Power Query using VBA, but not when refreshing query directly:
ThisWorkbook.Worksheets("mySheet").Range("myQueryRange").ListObject.QueryTable.Refresh
This is the error message:
Error Message:
Unable to get the NumberFormat property of the Range class
Stack Trace:
Microsoft.Mashup.Client.ClientShared.Com.ComWrapperException: Unable to get the NumberFormat property of the Range class ---> System.Runtime.InteropServices.COMException: Unable to get the NumberFormat property of the Range class
--- End of inner exception stack trace ---
at Microsoft.Mashup.Client.ClientShared.Com.ComWrapper.InvokeMember(String memberName, BindingFlags bindingFlags, Object[] args)
at Microsoft.Mashup.Client.Excel.Renderers.TableRenderer.ApplyColumnFormats(IListObject listObject, FillColumnType[] columnTypes, FillColumnType[] previousColumnTypes)
at Microsoft.Mashup.Client.Excel.Renderers.TableRenderer.ApplyFormatting(IApplication application, IListObject listObject, FillColumnType[] columnTypes, IEnumerable`1 recordFieldTypes, FillColumnType[] previousColumnTypes)
at Microsoft.Mashup.Client.Excel.Shim.AddInFillServices.<>c__DisplayClass19.<PerformPostRefreshFixups>b__17()
at Microsoft.Mashup.Client.Excel.BufferedPainter.<>c__DisplayClass1.<TryPaint>b__0()
at Microsoft.Mashup.Client.Excel.BufferedPainter.TryPaint(Func`1 paintAction)
at Microsoft.Mashup.Client.Excel.BufferedPainter.TryPaint(IApplication application, Func`1 paintAction)
at Microsoft.Mashup.Client.Excel.FillManager.RefreshFillSession.CompleteRefresh(IWorkbook workbook, Boolean onTimer)
at Microsoft.Mashup.Client.Excel.FillManager.RefreshFillSession.UpdateRefreshStatus(IWorkbook workbook, Boolean onTimer)
at Microsoft.Mashup.Client.Excel.FillManager.RefreshFillSession.ResumeFill(Boolean onTimer)
at Microsoft.Mashup.Client.Excel.FillManager.UpdateQueries()
at Microsoft.Mashup.Client.Excel.FillManager.<OnFillUpdateTimerTick>b__5()
at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action)
Invocation Stack Trace:
at Microsoft.Mashup.Host.Document.ExceptionExtensions.GetCurrentInvocationStackTrace()
at Microsoft.Mashup.Client.ClientShared.StackTraceInfo..ctor(String exceptionStackTrace, String invocationStackTrace)
at Microsoft.Mashup.Client.ClientShared.UnexpectedExceptionHandler.<>c__DisplayClass1.<HandleException>b__0()
at Microsoft.Mashup.Client.ClientShared.UnexpectedExceptionHandler.HandleException(Exception e)
at Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler exceptionHandler, Action action)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Any ideas on what is happening?
My environment:
Windows 7
Excel 2010 64 bit
Power Query Version: 2.29.4217.1861
If you can click that send-a-frown button, can you send the error details to our excellent troubleshooting team? Maybe we've seen it before, but I don't see any issue in our bug database filed for this.
(To save you some time, the first thing we'll probably recommend is to try updating Power Query add-in. The latest version is at 2.32.)

PowerQuery table refresh stops with an error

I have experienced several time situation where using power query and refreshing large table (~300K rows) it stops loading rows with an error:
Error Message:
The MashupResource's PageReader is not available.
Stack Trace:
System.InvalidOperationException: The MashupResource's PageReader is
not available. at
Microsoft.Mashup.Client.Excel.FillManager.RefreshFillSession.GetSchemaInfo()
at
Microsoft.Mashup.Client.Excel.FillManager.RefreshFillSession.CompleteRefresh(IWorkbook
workbook, Boolean onTimer) at
Microsoft.Mashup.Client.Excel.FillManager.RefreshFillSession.UpdateRefreshStatus(IWorkbook
workbook, Boolean onTimer) at
Microsoft.Mashup.Client.Excel.FillManager.RefreshFillSession.ResumeFill(Boolean
onTimer) at
Microsoft.Mashup.Client.Excel.FillManager.UpdateQueries() at
Microsoft.Mashup.Client.Excel.FillManager.b__5()
at
Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler
exceptionHandler, Action action)
Invocation Stack Trace:
at
Microsoft.Mashup.Host.Document.ExceptionExtensions.GetCurrentInvocationStackTrace()
at Microsoft.Mashup.Client.ClientShared.StackTraceInfo..ctor(String
exceptionStackTrace, String invocationStackTrace) at
Microsoft.Mashup.Client.ClientShared.ErrorDetails..ctor(String
message, Nullable`1 errorCode, String requestId, Exception exception)
at
Microsoft.Mashup.Client.ClientShared.UnexpectedExceptionHandler.<>c__DisplayClass1.b__0()
at
Microsoft.Mashup.Host.Document.SynchronizationContextExtensions.Send(SynchronizationContext
context, IExceptionHandler exceptionHandler, Action callback) at
Microsoft.Mashup.Client.ClientShared.UnexpectedExceptionHandler.HandleException(Exception
e) at
Microsoft.Mashup.Host.Document.ExceptionHandlerExtensions.HandleExceptions(IExceptionHandler
exceptionHandler, Action action) at
Microsoft.Mashup.Client.Excel.FillManager.OnFillUpdateTimerTick(Object
sender, EventArgs eventArgs) at
System.Windows.Forms.Timer.OnTick(EventArgs e) at
System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) at
System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg,
IntPtr wparam, IntPtr lparam)
MashupResource.Status Initializing
I get this error when some table is refreshing and I try to use other excel file. Do anyone have an idea what does it mean? I have tried searching it in google with no success.
I am using Excel 2010 32bit, version 14.0.7015.1000 and PowerQuery version 2.27.4163.242
Sorry you ran into this problem, the message indicates there's some bug in Power Query.
If you could try upgrading to the latest public Power Query (we're at version 2.30 now) does the problem go away?
If not, it might be easiest to Send a Frown from the error prompt and you can get in touch with our super-helpful support team?

SharePoint 2010 document library upload fails for particular user - doc already exists with same name

I have a SharePoint 2010 document library in a publishing site (with workflow - standard approval) that does not have any custom code running in it. It is just configured with OOTB features - Metadata Service tagging, versioning (no checkout required, uploading to add as new versions for existing files, adds each version as a new major version), SharePoint Search etc. Only thing not OOTB is setting up of a PDF iFilter as the library stores PDFs.
Other users can upload new versions of documents with no issues, but one user (who has approver rights across the site collection) cannot. Each time he tries to upload a newer version of a document to the library he gets an error message:
The specified name is already in use. The document or folder name was not changed. To change the name to a different value, close this dialog and edit the properties of the document or folder.
Checking the SP log files with the correlation ID does not really show much, beyond this exception:
System.Runtime.InteropServices.COMException: The specified name is already in use. The document or folder name was not changed. To change the name to a different value, close this dialog and edit the properties of the document or folder.
at Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)
at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)

Resources