11/22/2024 4:55:11 AM
|
|
slxdeveloper.com Community Forums |
|
|
|
The Forums on slxdeveloper.com are now retired. The forum archive will remain available for the time being. Thank you for your participation on slxdeveloper.com!
Forum to discuss building external web applications for SalesLogix. View the code of conduct for posting guidelines.
|
|
|
|
sData HTTP 500 Error
Posted: 05 Oct 10 7:28 AM
|
Greetings,
I have a strange error with sData throwing an HTTP 500 error when accessing the Opportunities resource. This is occurring out-of-the-box with the demo database and has been reproduced by an associate on a completely different server. The problem isn't that it's a 500 error, the problem is that it's doing something that it shouldn't (I think). But, first, the calling command and the part of the error that is confusing (the whole error is below):
http://server.com:8080/sdata/slx/dynamic/-/opportunities
No row with the given identifier exists[Sage.SalesLogix.Entities.Account#AA2EK0014415]
This is particularly strange, as the account does in fact exist but should not be shown for the logged in user (demodb: derek). If requesting the record directly from the accounts resource [../-/accounts('AA2EK0014415')] throws the proper HTTP 410 error meaning (resource gone, no forwarding address).
From my understanding, the 'opportunities' resource should be similar to that of 'contacts' or 'accounts', in that only the records for which the user has access should be displayed. When I access the accounts resource for the derek user, I get a small subset of the total database. With that in mind, I've tried to control the data being returned by using the 'include' command for the 'accounts' resource:
http://server.com:8080/sdata/slx/dynamic/-/accounts?include=opportunities
Theoretically this command should not bring back any accounts that the user should have no access to (if my theory of sData controlling the return by security rights is correct). Instead, I get the same error. It's simply the inclusion of 'opportunities' that has this issue.
Trying this for other user logins, I get similar results. Some users with rights to all the records in the database (admin, lois, samantha) have no issues. But, as soon as I log in as another user who recieves only a subset, I get an error. And, it's not always for the same AccountId. Furthermore, the integrity checker has been run and there are no outstanding errors.
To make things even more complicated, the about 1% of the time in my testing would it actually work. Subsequent query, identical to the one that worked would fail. And, I cannot make it work consistently in any way. (Other resources also throw errors, but I'm not sure I understand how they should work for a non-admin, so I haven't tried to debug commonalities -- for example OwnerRights also errors with unknown row ...Security.Owner#ADMIN, or Processes for an unknown but existing contact).
The entire error is below:
SLX version 7.5.2. Server: Windows 2003.
Thanks in advance!
Greg Herman
-
error ApplicationDiagnosis
-
Exception caught during the processing of a message
Verb: GET Uri: http://server.com:8080/sdata/slx/dynamic/-/opportunities
Original Message: No row with the given identifier exists[Sage.SalesLogix.Entities.Account#AA2EK0014415]
Stack Trace: bei NHibernate.Impl.SessionFactoryImpl.DefaultEntityNotFoundDelegate.HandleEntityNotFound(String entityName, Object id) bei NHibernate.Proxy.AbstractLazyInitializer.CheckTargetState() bei NHibernate.Proxy.AbstractLazyInitializer.Initialize() bei NHibernate.Proxy.AbstractLazyInitializer.GetImplementation() bei Sage.Platform.ChangeManagement.ChangeSet.UnwrapComponent(Object component) bei Sage.Platform.ChangeManagement.ChangeSet.IncludeEntity(IPersistentEntity entity) bei Sage.SalesLogix.Orm.EntityBase.ActivateRelatedEntity(Object entity) bei Sage.SalesLogix.Entities.Opportunity.get_Reseller() in c:\Dokumente und Einstellungen\Administrator.ACT9SERVER\Anwendungsdaten\Sage\Platform\Output\implementation\Opportunity.cs:Zeile 1805. bei Sage.Integration.Entity.Adapter.OpportunityRequest.CopyEntityToFeedEntry(IOpportunity entity, Opportunity entry, InclusionNode include) in c:\Dokumente und Einstellungen\Administrator.ACT9SERVER\Anwendungsdaten\Sage\Platform\Output\sdata\Opportunity.cs:Zeile 880. bei Sage.Platform.SData.Dynamic.DynamicRequestBase`3.UpdateFeedEntryFromEntity(TFeedEntry entry, TEntity entity, InclusionNode include, Boolean includeSchema, Boolean isSingleEntry) bei Sage.Platform.SData.Dynamic.DynamicRequestBase`3.CreateFeedEntryFromEntity(TEntity entity, SDataUri uri, Boolean isSingleEntry) bei Sage.Platform.SData.Dynamic.DynamicRequestBase`3.CreateFeedFromEntities(IEnumerable`1 entities, SDataUri uri, Int64 totalResults, Int32 startIndex, Int32 itemsPerPage) bei Sage.Platform.SData.Dynamic.DynamicRequestBase`3.InternalGet(ISession session, IRequest request, Boolean isNested) bei Sage.Platform.SData.Dynamic.DynamicRequestBase`3.DoGet(IRequest request) bei Sage.Integration.Entity.Adapter.OpportunityRequest.GetOpportunities(IRequest request) in c:\Dokumente und Einstellungen\Administrator.ACT9SERVER\Anwendungsdaten\Sage\Platform\Output\sdata\Opportunity.cs:Zeile 68. bei Invokeb0b4026611924a70892f217a83b78a85.Invoke(Object , IRequest ) bei Sage.Integration.Messaging.RequestTargetRegistration.RequestTargetInvoker.Invoke(IRequest request) bei Sage.Integration.Messaging.Request.Process(RequestTargetInvoker invoker) bei Sage.Integration.Messaging.MessagingService.Process(IRequest request)
|
|
|
|
You can
subscribe to receive a daily forum digest in your
user profile. View the site code
of conduct for posting guidelines.
Forum RSS Feed - Subscribe to the forum RSS feed to keep on top of the latest forum activity!
|
|
|
|
|
|
|
|