Adding File Indicator on PXGrid issue - acumatica

After enabling file indicator on my custom grid, I get prompted to save changes on the grid then get this error.
Object reference not set to an instance of an object.
at PX.Web.UI.PXFilesDialog.a(Boolean& A_0)
at PX.Web.UI.PXFilesDialog.GetAttachedFiles(Boolean& allowEdit)
at PX.Web.UI.PXFilesDialog.a()
at PX.Web.UI.PXFilesDialog.CreateChildControls()
at System.Web.UI.Control.EnsureChildControls()
at PX.Web.UI.PXFilesDialog.DataBind()
at PX.Web.UI.PXGrid.ap()
at PX.Web.UI.PXGrid.a(PXCallbackCommand A_0)
at PX.Web.UI.PXCallbackManager.b(PXCallbackResultMethod A_0, XmlWriter A_1)
at PX.Web.UI.PXCallbackManager.a(PXCallbackResultMethod A_0)

Related

Empty 'Invoice Date' error on Checks and Payments

I am getting error when trying to save Checks and Payments record.
The process is when I click on 'Pay Bill/Apply Adjustments' (AP301000) under 'Actions', I am redirected to the Checks and Payments (AP302000) screen. And when I try to save the record, I get the below stack trace.
Error: Inserting 'Payment' record raised at least one error. Please review the errors.
Error: 'Invoice Date' cannot be empty.
at PX.Data.PXUIFieldAttribute.CommandPreparing(PXCache sender, PXCommandPreparingEventArgs e) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Descriptor\Attribute.cs:line 3684
at PX.Data.PXCache.OnCommandPreparing(String name, Object row, Object value, PXDBOperation operation, Type table, FieldDescription& description) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Cache\ModelEventHandling.cs:line 146
at PX.Data.PXTableAttribute.PrepareParametersForInsert(PXCache sender, Object row, Type[] tables, ISqlDialect dialect, Boolean audit, List`1[] pars) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Descriptor\Attributebase.cs:line 1123
at PX.Data.PXTableAttribute.PersistInserted(PXCache sender, Object row) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Descriptor\Attributebase.cs:line 990
at PX.Data.PXCache`1.PersistInserted(Object row, Boolean bypassInterceptor) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Cache\Model.cs:line 6550
at PX.Data.PXCache`1.Persist(PXDBOperation operation) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Cache\Model.cs:line 6090
at PX.Data.PXGraph.Persist(Type cacheType, PXDBOperation operation) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Graph\Graph.cs:line 4402
at PX.Data.PXGraph.Persist() in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Graph\Graph.cs:line 4322
at PX.Objects.AP.APPaymentEntry.Persist() in C:\Bld\AC-FULL2019R18-JOB1\Sources\WebSites\Pure\PX.Objects\AP\APPaymentEntry.cs:line 1468
at PX.Data.PXSave`1.d__2.MoveNext() in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Descriptor\Action\CommonActions.cs:line 73
at PX.Data.PXAction`1.d__32.MoveNext() in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Descriptor\Action\PXAction.cs:line 954
at PX.Data.PXAction`1.d__32.MoveNext() in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Data\Descriptor\Action\PXAction.cs:line 896
at PX.Web.UI.PXBaseDataSource.tryExecutePendingCommand(String viewName, String[] sortcolumns, Boolean[] descendings, Object[] searches, Object[] parameters, PXFilterRow[] filters, DataSourceSelectArguments arguments, Boolean& closeWindowRequired, Int32& adapterStartRow, Int32& adapterTotalRows) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Web.UI\Controls\Data\DataSource.cs:line 2592
at PX.Web.UI.PXBaseDataSource.ExecuteSelect(String viewName, DataSourceSelectArguments arguments, PXDSSelectArguments pxarguments) in C:\Bld\AC-FULL2019R18-JOB1\Sources\NetTools\PX.Web.UI\Controls\Data\DataSource.cs:line 1983
The coincidence is I have the customization that has a custom field the Display Text 'Invoice Date'. So, the first thing I did was I put the PersistingCheck to nothing in PXDefault attribute.
[PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]
But that still didn't solve the problem.
So, I unpublish the customization and the issue was still there. Then finally I even removed the custom field (NB: The field is nullable) from database to make sure that my customization isn't causing the issue. But that also didn't work.
Upon trying to find DAC fields with the particular display text I find some fields but that doesn't seem to be associated with the graph for those screens.
Thank you.
It looks strange, I don't see any related fields with "Invoice Date" display name, which may cause an issue. I faced similar strange issues due to IIS data caching.
I would recommend do the following:
Restart IIS
Remove temp ASP.NET files which are located somewhere here C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
Remove temp Customization files
Then to be sure the problem is not in your customization
Rename your custom field from "Invoice Date" to "Invoice Date 1" for example
Publish your customization again
Try your steps again and verify an error message if it still exists - which display name do you see, "Invoice Date" or "Invoice Date 1"?

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.

Set-Variable policy: Expression return type is not allowed

Azure APIM Policy Expressions have access to a context object that has a Variables property, which is supposed to be of type IReadOnlyDictionary<string, object>. I should be able to add values to that dictionary via the set-variable policy. I want to be able to add any object to the dictionary, but I'm running into errors when I try to add anything other than a string.
For example, when I attempt to save this into my inbound policy definition:
<set-variable name="regexGroups" value="#(Regex.Match("inputString","regex").Groups)" />
I get an error that reads:
Error in element 'set-variable' on line X, column Y: Expression return type 'System.Text.RegularExpressions.GroupCollection, System' is not allowed.
GroupCollection inherits from, object, so it should be a valid value in the Variables dictionary. Why doesn't this work?
If I try to explicitly cast it as an object:
<set-variable name="regexGroups" value="#((object)Regex.Match("inputString","regex").Groups)" />
I get an error that reads:
Error in element 'set-variable' on line X, column Y: Expression return type 'System.Object' is not allowed
Am I getting the syntax wrong?
Only some types are allowed as variable values in APIM expressions, object is not one of them, here is the full list of what is allowed as variable value at the moment:
System.Boolean
System.SByte
System.Byte
System.UInt16
System.UInt32
System.UInt64
System.Int16
System.Int32
System.Int64
System.Decimal
System.Single
System.Double
System.Guid
System.String
System.Char
System.DateTime
System.TimeSpan
System.Byte[]
IResponse
Jwt
Newtonsoft.Json.Linq.JToken

Font error when clicking Attribute Relationships tab in Dimension Designer in SSDT

I am new to SSDT and I'm following the Analysis Services Tutorial called Multidimensional Modeling (Adventure Works Tutorial). And I'm currently on Lesson 3, on the step Modifying the Customer Dimensions under the heading "Modifying Attribute Relationships".
When I open the Dimension Designer window for my Customer Dimension, if I click on the attribute tab, I receive a long error message. I've been searching online and found nothing about this error. does anyone know what is the cause of this error? I've checked my font folder and I have Arial font already.
===================================
An error prevented the view from loading. (Microsoft Visual Studio)
===================================
Exception has been thrown by the target of an invocation. (mscorlib)
------------------------------
Program Location:
at System.RuntimeMethodHandle.SerializationInvoke(IRuntimeMethodInfo method, Object target, SerializationInfo info, StreamingContext& context)
at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder)
at System.Runtime.Serialization.ObjectManager.DoFixups()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Resources.ResourceReader.DeserializeObject(Int32 typeIndex)
at System.Resources.ResourceReader._LoadObjectV2(Int32 pos, ResourceTypeCode& typeCode)
at System.Resources.ResourceReader.LoadObjectV2(Int32 pos, ResourceTypeCode& typeCode)
at System.Resources.ResourceReader.ResourceEnumerator.get_Entry()
at System.Resources.ResourceReader.ResourceEnumerator.get_Current()
at System.ComponentModel.ComponentResourceManager.FillResources(CultureInfo culture, ResourceSet& resourceSet)
at System.ComponentModel.ComponentResourceManager.ApplyResources(Object value, String objectName, CultureInfo culture)
at Microsoft.AnalysisServices.Graphing.GraphCtrl.InitializeComponent()
at Microsoft.AnalysisServices.Graphing.GraphCtrl..ctor()
at Microsoft.AnalysisServices.Design.AR.ARDiagram..ctor()
at Microsoft.AnalysisServices.Design.AR.AREditor..ctor()
at Microsoft.AnalysisServices.Design.DimensionDesigner.CreateAREditor(VsStyleToolBar pageViewToolBar)
at Microsoft.DataWarehouse.Design.EditorWindow.EnsureViewIsLoaded(EditorView view)
===================================
Font 'Arial' does not support style 'Regular'. (System.Drawing)
------------------------------
Program Location:
at System.Drawing.Font.CreateNativeFont()
at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font.Initialize(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font..ctor(SerializationInfo info, StreamingContext context)

Custom Field Search via GetList

We have created three custom field for the StockItem screen (see attached image).
Oz Custom Fields
We would like to search via the Web Services Endpoint (WSE) 5.30.001 using one of these CustomFields, to achieve this we created a new OzStockItem element in our WSE definition Oz WSE Definition and are attempting to use this via the following code.
var itemList = c.GetList(new OzStockItem { OzMinCount = new IntSearch { Condition = IntCondition.IsGreaterThan, Value = 0 } }, false).Cast<OzStockItem>();
However instead of getting back a list of the items that match the filter it is failing with the following error.
An unhandled exception of type 'System.ServiceModel.FaultException' occurred in mscorlib.dll
Additional information:
System.Web.Services.Protocols.SoapException: Server was unable to process request.
---> System.InvalidCastException: Specified cast is not valid.
at PX.Api.ContractBased.ExportTableToEntitiesMapper.<MapCustomFields>d__28.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at PX.Api.ContractBased.ExportTableToEntitiesMapper.<MapEntitiesInner>d__26.MoveNext()
at PX.Api.ContractBased.ExportTableToEntitiesMapper.<MapEntities>d__25.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at PX.Api.ContractBased.EntityService.GetList(EntityGateBase gate, String version, String name, EntityImpl entity, Boolean returnFullEntities, Boolean ignoreValueFields, PXGraph graph)
at PX.Api.ContractBased.Soap.EntityGate.GetList(Entity entity, Boolean returnFullEntities)
Please could someone advise what we are missing here?

Resources