Custom Field Search via GetList - acumatica

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?

Related

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.

Null values when retrieving list of items via the soap API

Hi I am running a local instance of acumaticata and accessing my web service endpoint via a windows forms application.
I am calling the getlist method on the Non Stock Items endpoint (this also happens no matter the object im dealing with). It returns a list of 13 items which is correct but when I drill down all the field values for inventoryid, description etc are all null. Is there something im missing here, please help. I have attached a pic of the result I am getting.
Public Shared Function GetItems() As List(Of NonStockItem)
Try
Dim items As Entity() = Client.GetList(New NonStockItem())
Dim cItems As New List(Of NonStockItem)
For Each item As NonStockItem In items
cItems.Add(item)
Next
Return cItems
Catch ex As Exception
Return Nothing
Finally
End Try
End Function

Convert from Map to Set in Spring Cassandra

I am trying to convert from Map to Set in Cassandra
#CassandraType(type = Name.SET)
private Map<Integer, Address> addresses;
Address is my UDT.
#UserDefinedType(value = "address")
public class Address
I am getting this error.
Can some one help me to fox this
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Expected [1] typed arguments for property ['addresses'] of type ['interface java.util.Map']
Not sure how you intend to convert Set to a Map. Cassandra columns must be represented with their according data types in entity classes.
If you want to apply conversion then you need to handle this aspect within your code. Simply remove #CassandraType(type = Name.SET).

How to get file stream from the sharepoint file url in dynamic crm plugin?

I have requirement to get file stream of share point file, for the that I have share point file URL.
https://mysite.sharepoint.com/sites/documents/contact/test/Beat01_07262017.pdf
I’m trying to connect to SharePoint Online (using CSOM) from within a plugin in CRM Online . For that to work, I merged the SharePoint Client and Client.Runtime DLL’s with ilmerge.exe into my plugin DLL. But as soon as the following code:
ClientContext clientContext = new ClientContext(server);
clientContext.Credentials = new SharePointOnlineCredentials(UserId, Password); // This line throws an below exception:
Request for the permission of type
‘System.Security.Permissions.RegistryPermission, mscorlib,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′
failed.
Is there any way to make it working?
I have checked with SharePoint Integration from CRM Online Workflow/Plugin but not able to get it working
and getting error as below
Exception: Exception has been thrown by the target of an invocation.
Stack Trace at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[]
arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,
Object[] parameters, Object[] arguments)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.DynamicInvoke(Delegate project,
Object[] args)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.TranslateExpressionToConditionValue(Expression
exp, ParameterExpression[] parameters)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.TranslateWhereCondition(BinaryExpression
be, FilterExpressionWrapper parentFilter, Func 2 getFilter, Func 2
getLinkLookup, Boolean negate)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.TranslateWhere(String
parameterName, BinaryExpression be, FilterExpressionWrapper
parentFilter, Func 2 getFilter, List 1 linkLookups, Boolean
negate)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.TranslateWhereBoolean(String
parameterName, Expression exp, FilterExpressionWrapper parentFilter,
Func 2 getFilter, List 1 linkLookups, BinaryExpression parent, Boolean
negate)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.TranslateWhere(QueryExpression
qe, String parameterName, Expression exp, List 1 linkLookups)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.GetQueryExpression(Expression
expression, Boolean& throwIfSequenceIsEmpty, Boolean&
throwIfSequenceNotSingle, Projection& projection,
NavigationSource& source, List 1& linkLookups)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.Execute[TElement](Expression
expression)
at Microsoft.Xrm.Sdk.Linq.QueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression
expression)
at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable 1
source)
at CRMPluginProject1._365Immo.Laurus.SharePoint.DocumentLocationHelper.GetDocumentLocationPath(SharePointDocumentLocation
parentLocation)
at CRMPluginProject1._365Immo.Laurus.SharePoint.DocumentLocationHelper.CreateDocumentLocation(Entity
site, String documentLibraryName, EntityReference
regardingRecord)
at CRMPluginProject1._365Immo.Laurus.Plugins.GetSharePointFile.Execute(IServiceProvider
serviceProvider)
Inner Exception :
The demand failed due to the code access security information captured during the creation of an anonymously hosted
dynamic method. In order for this operation to succeed, ensure that
the demand would have succeeded at the time the method was created.
See http://go.microsoft.com/fwlink/?LinkId=288746 for more
information.
Stack Trace : at lambda_method(Closure )
The SharePoint client library apparently needs access to the Windows registry. This is not allowed in sandboxed CRM plugins.
In sandboxed plugins code is only allowed to access resources on the web using the http or https protocol. (IP addresses are not allowed either.)

(SPFieldLookupValue) splistitem of Lookup type throws Object reference not set to an instance of an object exception

I have a sharepoint list which has some Lookup fields. When I iterate through the items in code, I get the following error:
Object reference not set to an instance of an object.
This error appears only on lookup fields when they are not filled in with any value. I tried to use SPFieldLookupValue to check for null values, but I still get the error.
This is how I check for null values:
SPFieldLookupValue value = new SPFieldLookupValue(listItem[columnDisplayName].ToString());
if (value.LookupValue != null)
Any help guys?
The reason why you get this exception lies here: listItem[columnDisplayName].ToString() because listItem[columnDisplayName] have no value and returns null you trying to call ToString() on null object so it throws "Object reference not set to an instance of an object exception".
If you simply want to check if item field is not null then do like that:
if (listItem[columnDisplayName]!=null)
{
//here you can access listItem[columnDisplayName] safely
}

Resources