These docs are for v20.3.44. Click to read the latest docs for v20.3.186.

Discussions

Ask a Question
ANSWERED

Unlinking a record from a company using REST

Hi everyone, We're trying to remove a record from a company programmatically and one of the steps involved is to delete the work address of the record. ASI let us know that deleting an address is not possible currently, but another workaround was suggested which involves setting the MarkedForDelete property as true for the address and then trying to delete it. But the property isn't on the response at all and even a PUT update with the property for the address doesn't seem to stick. Has anyone ever previously tried to unlink a record from a company using REST? Or does anyone any ideas on how to achieve this? Thanks, Ram Devarapu
ANSWERED

REST API - how to change expiration date on user credentials?

Hello - wondering if it's possible to change the expiration date on user credentials in the API?
ANSWERED

How do I enable a content search box for public website?

We are running iMIS 2017 and would want to have a content search box for public users

Finance - Batch exporting

We are currently exporting batches by batch into MYOB using a macro to convert the file. I am inclined to change this to "export by detail" (each journal entry (debit and credit) line will be exported and organized by date, Financial entity, and then by overall journal entry in the order the transactions were processed in iMIS. The greatest amount of information is returned using this option.) Could anyone please share their experience with this option and the pros and cons of exporting in detail? Could anyone please share their experience with changing over from exporting by batch to exporting by detail? Were there any problems encountered with converting via the macro for MYOB? ie did a new macro need to be created? Thank you
ANSWERED

Update Descriptions and other fields in Campaing and Appeal

The following endpoints creates the record, but not updating other fields such as Description api/SourceCodeSummary api/AppealSummary api/CampaignSummar
ANSWERED

Single Sign On - Correct way to exchange a refresh token for /api/Party data?

Hi - so, if I use Single Sign On to authenticate a user, I get a refresh token, which I then exchange for an access token - here's the screenshot from online documentation: ![](https://files.readme.io/692a711-image.png) And then I'm using the access_token to get data from the /api/party endpoint - no problem - except, if I test the SSO with the manager account, and I call /api/party, I get lots of results - so I'm wondering, how should I correctly use the access_token (and userName, I'm guessing) to get Party data for the authenticated user only? For instance, if I authenticate as manager, I will get userName=manager here, and then I want to call /api/Party and get only one result - the Party record for manager. I need to make sure that this works for any user that authenticates with SSO. So, I thought of going through CsWebUser?UserId={userName}, and then calling api/Party/{ID from the CsWebUser call}, but I'm not positive that a less privileged user would be able to access the CsWebUser endpoint. This would need to work for any user that authenticates through the SSO. Thanks!

REST API: System.Data.ObjectNotFoundException: Item to be saved not found in identity map

Hi - this is iMIS 2017 (20.2.66.1330). I have a business object called TestFreightRate composed of all the columns of the Freight_Rate table except for timestamp. If I try to update a record in the REST API, I'm getting a 500 Internal Server Error response. I'm doing a PUT to this API path: /api/TestFreightRate/~UPS-Ground|1|002 See attached screenshots of the business object, API GET request, API PUT request, and the error message from the event viewer on the web server. Here's the stack trace: ``` System.Data.ObjectNotFoundException: Item to be saved not found in identity map. at Asi.Soa.Core.Domain.PersistenceStrategyBase.RetrieveIdentityItem(IdentityData identityData) at Asi.Soa.Core.Persistence.BusinessPersistenceStrategyBase.SaveChanged(Object entityInstance) at Asi.Soa.Core.Domain.Repository.PersistChanged(Object entityInstance) at Asi.Soa.Core.Domain.UnitOfWork.Persist() at Asi.Soa.Core.Domain.UnitOfWork.Commit() at Asi.Services.Core.EntityServiceToCommonServiceAdapter1.Update(TDataContract dataContract) at Asi.Services.Core.EntityServiceToCommonServiceAdapter1.Update(Object dataContract) at Castle.Proxies.Invocations.ICommonService_Update.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at Asi.Shared.Aspects.CacheAspect.Intercept(IInvocation invocation) in C:\\Builds\\208\\ScrumV3\\sp137_Main10\\Sources\\MainFoundation\\imis.net\\Packages\\Platform\\Asi.Shared\\Aspects\\CacheAspect.cs:line 62 at Castle.DynamicProxy.AbstractInvocation.Proceed() at Asi.Services.Core.Interceptors.CommonSecurityAspect.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Asi.Services.Core.Interceptors.ServiceTaskTriggerInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Asi.Shared.Aspects.PerformanceAspect.Intercept(IInvocation invocation) in C:\\Builds\\208\\ScrumV3\\sp137_Main10\\Sources\\MainFoundation\\imis.net\\Packages\\Platform\\Asi.Shared\\Aspects\\PerformanceAspect.cs:line 55 at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.ICommonService\\1Proxy_2.Update(Object dataContract) at Asi.Scheduler.Controllers.CommonServiceController.Put(String entityName, String entityId, Object entity) ``` I realize it's possible to update the record using the api/Freight_Rate endpoint, but due to an idiosyncrasy of our iDMS product, it'd be better if we could update a business object wrapping the Freight_Rate table. Thanks
ANSWERED

Error on all API PUT calls to an Organization end point

We are encountering issues with making changes to an Organization object via an API PUT call. Basically, we receive Internal Server Error 500 messages but the changes are being made by the call. Another interesting note is that we also receive a response that the "Name" attribute is required which we find odd for a PUT call and isn't mentioned in the Developer SDK documentation. POST calls to the Organization end point have been working as expected for us. Here's the call that successfully updates the organization NAME and TYPE; however, it returns "status: 500, ok: false, status Text: "Internal Server Error"". We're seeing this error issue with all Organization PUT calls we try (i.e. name and partyID attributes only are included in the request body). *** const options = { method: 'PUT', headers: {"Content-Type": "application/json", "RequestVerificationToken" : jQuery("#\_\_RequestVerificationToken").val()}, body: JSON.stringify({ "$type": 'Asi.Soa.Membership.DataContracts.OrganizationData, Asi.Contracts', "PartyId": '53121', "Name": 'Automation Test WLREQ', "OrganizationType": { "$type": 'Asi.Soa.Membership.DataContracts.Organization.OrganizationTypeData, Asi.Contracts', "Name": 'Wish List Request'}, "AdditionalAttributes": { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "CustomerTypeDescription", "Value": "Wish List Request" }, {"$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "CustomerTypeCode", "Value": "WLREQ" } ] } }) }; fetch('[https://testsite.imiscloud.com/api/Organization/53121'](https://ambucs.imiscloud.com/api/Organization/53121'), options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
ANSWERED

There is no service defined for QueryDefinition

Hello. I am trying to use this endpoint <https://developer.imis.com/reference/getquerydefinitionbyid>. What is the correct way to interface with it? Everyway I try to access it the only return I get is "There is no service defined for QueryDefinition" Thankyou
ANSWERED

Help with possibly inaccurate documentation

The question I have today is why would the iMIS documentation at: <https://developer.imis.com/docs/using-the-client-library-asisoaclientservices> give explicit examples and instruction on how to access the ASI Client Services? More specifically the IoC Support error crops up from the below code: ![](https://files.readme.io/c91a67e-image.png) Code DIRECTLY pulled from your own documentation, so is it common practice for your documentation to have non functional code? I can see a lot of advantages to the REST API and have begun implementing it where I can, but for obvious reasons (at least again based on documentation) this API is not a “solve all” when compared to pre-existing functionality…. ![](https://files.readme.io/0309865-image.png) The above code is an example of dynamic data access to iMIS accessing BOD tables/views… This has been a very convenient way for us to access data in the past and again, based on current documentation should still very much be a viable option for .NET developers to avoid hundreds of rest call from the back end where a single dynamic typed method can query the imis data at large Based on your recommendations am I to believe your documentation needs edits and I am to ignore the entire iMIS SDK section? Is my alternative here really to take any method that uses the BOD’s for data access and import that BOD into an IQA, assign the list of parameters possible for an entire table/view to have and filter by, then to code around these IQAs in a rest call, and then at deploy time be sure to not only move up my code from our repository but RECREATE every IQA then in our production environment as well? Am I the only one who sees this as a step backwards? Turning what used to be one easy to use method into hundreds of explicit calls to IQAs and overhead of putting each column as a filterable parameter to be optional? As the lead developer here my superiors rely on me to communicate ease of use and implementation to our systems, despite optimism that this major upgrade would go differently than those in the past it seems once again the support I receive is confusing and dismissive at best, unless I’m missing something the route being advocated doesn’t handle all that I need.. ![](https://files.readme.io/b75866e-image.png) This is code that accesses to aforementioned dynamic method, it’s purpose is to simply retrieve an order and the lines related to it from a custom BOD we have created within imis, I understand that one way to solve this would be creating an IQA that references these BODs then accepts a parameter of ORDER_NUMBER, but this is one of hundreds that access imis in this fashion, and if I’m being told your documentation is incorrect in still touting this as a .NET capability within the iMIS SDK then this has caused a very inaccurate representation on my end for level of effort, and will be the direct cause of pushed deadlines… Furthermore as you’ve stated it took an answer from your Director of Development to get clarity on the IoC Support error, a lot of what I’m dealing with currently is deeper than I feel a simply discuss post would remedy, with as much as we pay for support a dismissive push to a community forum does not feel like the appropriate response to pleas for help from a client who is held at a standstill due to potential inaccuracies in documentation and restrictive support measures, it is my opinion that support should be offered in real-time for a case as intricate as this, that said the future of our business with iMIS can be made our broken by the implementation of EMS, for which currently is not going well…