Discussions
Error with SSO and refresh_token
iMIS 20.3.69.27972
Using the iMIS SSO, getting a 500 error back when using refresh_token:
Server Error in '/iMisService' Application.
Runtime Error
Description: An exception occurred while processing your request. Additionally, another exception occurred while executing the custom error page for the first exception. The request has been terminated.
If the token is invalid (outdated) the response doesn't fail, just returns "invalid_grant". This is an existing application, nothing new. It worked. Now it doesn't.
Any help would be great. Thanks.
Posted by Jake Bound over 4 years ago
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?
Posted by Larry Allen over 4 years ago
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
Posted by Jake Burgy over 4 years ago
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?
Posted by Jake Burgy over 4 years ago
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
Posted by Bilal over 4 years ago
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.
Posted by Jake Bound over 4 years ago
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}
Posted by Alex Lippincott over 4 years ago
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.
Posted by Ian Wann over 4 years ago
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
Posted by Ian Wann over 4 years ago
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?
Posted by Muhammad Sharif over 4 years ago