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

Discussions

Ask a Question

Error 403 posting to panel source

I'm deploying a solution that utilizes a single-instance panel source to store user information. I have successfully tested it in a different iMIS installation. Using Postman, POSTing to the panel source yields a 403 from the server. GET and UPDATE work for the same panel source. To create the message body I copied the response from a GET and changed the id. { "$type": "Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts", "EntityTypeName": "SsoToken", "PrimaryParentEntityTypeName": "Party", "Identity": { "$type": "Asi.Soa.Core.DataContracts.IdentityData, Asi.Contracts", "EntityTypeName": "SsoToken", "IdentityElements": { "$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib", "$values": [ "72182" ] } }, "PrimaryParentIdentity": { "$type": "Asi.Soa.Core.DataContracts.IdentityData, Asi.Contracts", "EntityTypeName": "Party", "IdentityElements": { "$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib", "$values": [ "72182" ] } }, "Properties": { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "ContactKey", "Value": "72182" }, { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "Token", "Value": "456" } ] } } GET and PUT messages behave correctly, but I get a 403 response code for POST. Can you help?
ANSWERED

Upcoming PATCH Support Discussion

At iNNOVATIONS Live 2020, support for the HTTP `PATCH` verb was announced, but when examples were demonstrated, there didn't appear to be support for the industry standard JSON Patch specification. From what I am reading, it's uncommon for PATCH to be used without the JSON Patch or XML Patch specifications along with it. I was wondering why the decision was made to deviate from what seems like an industry standard? See the following resources for more information: * https://en.wikipedia.org/wiki/JSON_Patch * https://en.wikipedia.org/wiki/Patch_verb * https://tools.ietf.org/html/rfc6902
ANSWERED

Communication Log: Any difference between Email Output and SMS Output types?

So, if I create a communication log item and I specify an `OutputType`, most of the time this is a `CommunicationOutputMethodEmailData`, for example: ``` "OutputMethod": { "$type": "Asi.Soa.Communications.DataContracts.CommunicationOutputMethodEmailData, Asi.Contracts", "From": ... "To": ... "CopyTo": ... "Subject": "Test Email Subject 1" } ``` During some additional testing with (read:*guessing*) different type names, I discovered there is also a `CommunicationOutputMethodSmsData`, but I can't figure out if there are any properties on it. It seems to take and return an empty object successfully, though - for example, I can create and get this back successfully as part of the `OutputSteps` collection: ``` "OutputMethod": { "$type": "Asi.Soa.Communications.DataContracts.CommunicationOutputMethodSmsData, Asi.Contracts" } ``` Interestingly, in the staff site UI... it behaves exactly like an e-mail. There is no differentiation to tell the user this is an SMS message: ![commLog1](https://i.imgur.com/CcTHJ0R.png) Nor in the actual communication logs themselves either: ![commLog2](https://i.imgur.com/LScVT7i.png) So... what is this, can/should we use it, and why doesn't RiSE reflect the communication type correctly?
ANSWERED

Standalone table - POST - new ordinal

Hi, in iMIS 20.3, we have a standalone table Psc_Standalone setup. Is there a way to get the new ordinal number of an inserted record during a POST? Body looks like: { "$type": "Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts", "EntityTypeName": "Psc_Standalone", "PrimaryParentEntityTypeName": "Standalone", "Identity": { "$type": "Asi.Soa.Core.DataContracts.IdentityData, Asi.Contracts", "EntityTypeName": "Psc_Standalone", "IdentityElements": { "$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib", "$values": [ "" ] } }, "PrimaryParentIdentity": { "$type": "Asi.Soa.Core.DataContracts.IdentityData, Asi.Contracts", "EntityTypeName": "Standalone", "IdentityElements": { "$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib", "$values": [ "" ] } }, "Properties": { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "SessionID", "Value": "101" }, { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "TableID", "Value": "401" }, { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "EventKey", "Value": "ANNA404" } ] } } Response from RestFul API looks like: { "$type": "Asi.Soa.Core.DataContracts.GenericEntityData, Asi.Contracts", "EntityTypeName": "Psc_Standalone", "PrimaryParentEntityTypeName": "Standalone", "Identity": { "$type": "Asi.Soa.Core.DataContracts.IdentityData, Asi.Contracts", "EntityTypeName": "Psc_Standalone", "IdentityElements": { "$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib", "$values": [ "0" ] } }, "PrimaryParentIdentity": { "$type": "Asi.Soa.Core.DataContracts.IdentityData, Asi.Contracts", "EntityTypeName": "Standalone", "IdentityElements": { "$type": "System.Collections.ObjectModel.Collection`1[[System.String, mscorlib]], mscorlib", "$values": [ "0" ] } }, "Properties": { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyDataCollection, Asi.Contracts", "$values": [ { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "Ordinal", "Value": { "$type": "System.Int32", "$value": 0 } }, { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "SessionID", "Value": "101" }, { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "TableID", "Value": "401" }, { "$type": "Asi.Soa.Core.DataContracts.GenericPropertyData, Asi.Contracts", "Name": "EventKey", "Value": "ANNA404" } ] } } The response returned "0" as ordinal value. Am I missing something? Thank you for your advice. Kind regards, Bilal

Donde esta Name.CHAPTER in the API

It might be me, but for the life of me I can't find the CHAPTER field in the API. Doesn't seem to be in Party, Person, etc. Thanks in advance.

Groups

We are trying to get a company's group list from the company group list they are a part of as a company admin but we are getting a 403 Unauthorized response. For example, Alex M is the coAdmin of Versaton Global and he is trying to see the group list for Versaton US to look up John Tan. The group list editor ipart shows this data but when we try to do the equivalent over the api it does not allow us. Is there something specific we need to do? Here are the two requests having issues: jQuery.ajax("https://" + url + "/api/Party/" + imisID, { type: "GET", contentType: "application/json", headers: {"RequestVerificationToken": document.getElementById("__RequestVerificationToken").value} jQuery.ajax("https://" + url + "/api/GroupMember?GroupID=ORGRELATIONSHIP-" + groupId, { type: "GET", contentType: "application/json", headers: {"RequestVerificationToken": document.getElementById("__RequestVerificationToken").value}

REST for file upload panel propriety type

Client wants to import images into a panel of file upload type. What's the parsing look like. https://developer.imis.com/discuss/5d826f3ffb6045005056e4c2 in case it helps.
ANSWERED

We have been working on GL Account import. A couple of questions from Jay and Priyanka I was hoping you can help answer: Attached (GLAccount_postRequest.txt and GLAccount_Request_SameAsGet.txt) are the JSON request we are using to create GLAccount using API endpoint : https://bgcascripting.imiscloud.com/api/GLAccount (POST). We are getting an error (GLAccount_postResponse_Error.txt) while making POST API call. Is there a sample JSON we can refer to?

We have been working on create new GL Account import with REST. A couple of questions from Jay and Priyanka I was hoping you can help answer: Attached (GLAccount_postRequest.txt and GLAccount_Request_SameAsGet.txt) are the JSON request we are using to create GLAccount using API endpoint : https://clientscripting.imiscloud.com/api/GLAccount (POST). We are getting an error (GLAccount_postResponse_Error.txt) while making POST API call. Is there a sample JSON we can refer to? GLAcount_postRequest.txt Request : { "$type": "Asi.Soa.Commerce.DataContracts.GLAccountData, Asi.Contracts", "FinancialEntity": { "$type": "Asi.Soa.Commerce.DataContracts.FinancialEntitySummaryData, Asi.Contracts", "EntityCode": "BGCSEYtest", "InstituteParty": { "$type": "Asi.Soa.Membership.DataContracts.PartyReferenceData, Asi.Contracts", "Status": { "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts" }, "IsMarkedForDelete": false } }, "GLAccountCode": "78798984", "Name": "Membership Fees Test", "Project": { "$type": "Asi.Soa.Commerce.DataContracts.ProjectData, Asi.Contracts", "FinancialEntity": { "$type": "Asi.Soa.Commerce.DataContracts.FinancialEntitySummaryData, Asi.Contracts", "InstituteParty": { "$type": "Asi.Soa.Membership.DataContracts.PartyReferenceData, Asi.Contracts", "Status": { "$type": "Asi.Soa.Membership.DataContracts.PartyStatusData, Asi.Contracts" }, "IsMarkedForDelete": false } }, "Code": "Test Boys & Girls Club of Seymour" } } Errors we got Error mapping types. Mapping types: GLAccountData -> GLAccount Asi.Soa.Commerce.DataContracts.GLAccountData -> Asi.EFData.V100.Commerce.Models.GLAccount Type Map configuration: GLAccountData -> GLAccount Asi.Soa.Commerce.DataContracts.GLAccountData -> Asi.EFData.V100.Commerce.Models.GLAccount Destination Member: FinancialEntity

How to bypass 3rd party application login page if user is already signed into iMIS database

We have an our application login page authenticating the user to the iMIS database – that’s working. But if someone is already signed into iMIS, we don’t want them to have to sign in again when they go to our application. The login page should be able to detect that they’re already signed into iMIS and take them directly to the home page of the application. We have been through all the documentation and can’t resolve the problem we are using iMIS cloud i.e https://imistour*******.imiscloud.com If Single Sign-On (SSO) is the solution to this issue then we have already setup that with the help of the following links https://help.imis.com/iMIS20Cloud/Features/Settings/Contacts/Single_Sign_On__SSO_.htm https://www.organizedbits.com/blog/using-asis-single-sign-on-ipart We have no luck so far through the above links. So far so we are able to receive the refresh_token successfully but when we try get the access_token through received refresh_token and valid client Id/secret we are getting "invalid_client" error instead of access_token. We have the following confusions/questions which needs clarification for right implementation of application. 1) Why we are getting "invalid_client" error instead of access token even we are passing valid refresh token and valid Id/secret? 2) How can we detect user in our app who is logged in iMIS application in order to bypass our app login page to logged in automatically? 3) How SSO is working in iMIS application means how cold it automatically login user in client applications? 4) How refresh token play role in iMIS SSO feature as explained in https://help.imis.com/iMIS20Cloud/Features/Settings/Contacts/Single_Sign_On__SSO_.htm mean how it detect logged in user? 5) How can we logout user in our app when he/she logout from iMIS application? 6) Does the iMIS SSO work for user Single Sign On or application Single Sign On?

Generating Sitemap

Does anyone know if there is a way to pull all content from the Page Builder -> Manage Content to try and derive a sitemap of some sorts? I know that there is a sitemap within iMIS, but you can create content without creating a corresponding sitemap item to point back to it. I want a way to query the system to find all published page builder content to try and build out a sitemap of sorts to send off to search engines and also to have a list of all content on the site that is published.