by SuiteCRM

The Ultimate Outlook Plugin Has Arrived - In response to user requests, SuiteCRM have created the ultimate Outlook plugin which is maintained by SuiteCRM developers. Our plugin supports Outlook 2010 upwards and includes two way synchronisation with CRM, Calender, Calls, Meeting, Tasks and Email Archiving.

Free 30 day trial
Try it Now

#822 - The property "ReceivedTime"

Closed Installation created by protectedharbor a year ago

The plug in loaded and adds Contacts to the SUITECRM Group in Outlook, but NEVER adds Contacts to Outlook and never adds emails or Calendar appointments.

I have Outlook 64 Bit 2016 and WIndows 10 - SUITECRM Version 7.8.3 .

My log is full of these errors;
2017-12-11 14:32:50,448 | 7 | ERROR | EmailArchiving.ArchiveFolderItems; folder Extract:
System.Runtime.InteropServices.COMException (0x80020009): The property "ReceivedTime" is unknown.
at Microsoft.Office.Interop.Outlook._Items.Restrict(String Filter)
at SuiteCRMAddIn.BusinessLogic.EmailArchiving.ArchiveFolderItems(Folder objFolder, DateTime minReceivedDateTime)
Data:System.Collections.ListDictionaryInternal
HResult:-2147352567
2017-12-11 14:32:59,475 | 7 | ERROR | ArchiveableEmail.Save: failed to save 'Re: signature program' at all
System.NullReferenceException: Object reference not set to an instance of an object.
at SuiteCRMClient.Email.ArchiveableEmail.ConstructPacket(String htmlBody)
at SuiteCRMClient.Email.ArchiveableEmail.TrySave(List1 contactIds, String htmlBody, Exception[] fails) at SuiteCRMClient.Email.ArchiveableEmail.Save(List1 crmContactIds)
Data:System.Collections.ListDictionaryInternal
HResult:-2147467261
2017-12-11 14:33:00,708 | 7 | ERROR | ArchiveableEmail.Save: failed to save 'Re: issues' at all
System.NullReferenceException: Object reference not set to an instance of an object.
at SuiteCRMClient.Email.ArchiveableEmail.ConstructPacket(String htmlBody)
at SuiteCRMClient.Email.ArchiveableEmail.TrySave(List1 contactIds, String htmlBody, Exception[] fails) at SuiteCRMClient.Email.ArchiveableEmail.Save(List1 crmContactIds)
Data:System.Collections.ListDictionaryInternal
HResult:-2147467261
2017-12-11 14:33:05,969 | 7 | ERROR | EmailArchiving.ArchiveFolderItems; folder Rainmakers:
System.Runtime.InteropServices.COMException (0x80020009): The property "ReceivedTime" is unknown.
at Microsoft.Office.Interop.Outlook._Items.Restrict(String Filter)
at SuiteCRMAddIn.BusinessLogic.EmailArchiving.ArchiveFolderItems(Folder objFolder, DateTime minReceivedDateTime)
Data:System.Collections.ListDictionaryInternal
HResult:-2147352567

  1. protectedharbor member avatar

    protectedharbor

    a year ago

    Is someone going to respond?

  2. protectedharbor member avatar

    protectedharbor

    a year ago

    How do I get some help?

  3. suitecrm member avatar

    SuiteCRM Provider Affiliate

    a year ago

    Hi protectedharbor,

    Is it possible if we could ask you to send your Outlook DEBUG logs (logs set at DEBUG level) while replicating the issue to our support email address outlook[at]salesagility[dot]com referencing this Ticket #822. If you could also include what PHP version you are running off of, that would be much appreciated and we'll investigate.

    • SuiteCRM Outlook Plugin Team
  4. protectedharbor member avatar

    protectedharbor

    a year ago


    SuiteCRM Outlook Add-In v3.0.9.0 in Outlook version 16.0.0.4627
    Auto-archiving: off

    Logging level: Error

    2017-12-10 21:01:22,885 | Background | ERROR | Failed to connect to licence server because ProtocolError
    System.Net.WebException: The remote server returned an error: (400) Bad Request.
    at System.Net.HttpWebRequest.GetResponse()
    at SuiteCRMAddIn.BusinessLogic.LicenceValidationHelper.Validate()
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233079
    2017-12-10 21:01:22,901 | Background | ERROR | Licence server responded "Key is required."
    2017-12-10 21:05:07,061 | Background | ERROR | Auto-archiving: off
    2017-12-10 21:05:07,061 | Background | ERROR | Logging level: Error
    2017-12-10 21:05:41,308 | VSTA_Main | ERROR | Auto-archiving: off
    2017-12-10 21:05:41,308 | VSTA_Main | ERROR | Logging level: Error
    2017-12-10 21:07:36,333 | VSTA_Main | ERROR | Auto-archiving: ON
    2017-12-10 21:07:36,333 | VSTA_Main | ERROR | Logging level: Error
    2017-12-10 21:08:26,548 | VSTA_Main | ERROR | Auto-archiving: ON
    2017-12-10 21:08:26,548 | VSTA_Main | ERROR | Logging level: Error
    2017-12-10 21:10:29,966 | VSTA_Main | ERROR | Auto-archiving: ON
    2017-12-10 21:10:29,966 | VSTA_Main | ERROR | Logging level: Error
    2017-12-10 21:10:44,538 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:44,632 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:45,804 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:45,898 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:45,929 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
    at System.Net.HttpWebRequest.GetResponse()
    at SuiteCRMClient.CrmRestServer.GetResponseString(HttpWebRequest request)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233079
    2017-12-10 21:10:45,976 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
    at System.Net.HttpWebRequest.GetResponse()
    at SuiteCRMClient.CrmRestServer.GetResponseString(HttpWebRequest request)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233079
    2017-12-10 21:10:46,023 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,069 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,116 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
    at System.Net.HttpWebRequest.GetResponse()
    at SuiteCRMClient.CrmRestServer.GetResponseString(HttpWebRequest request)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233079
    2017-12-10 21:10:46,163 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,194 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,226 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,257 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,273 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,304 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,351 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,444 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,476 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,507 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
    at System.Net.HttpWebRequest.GetResponse()
    at SuiteCRMClient.CrmRestServer.GetResponseString(HttpWebRequest request)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233079
    2017-12-10 21:10:46,538 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,632 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,663 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,694 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,710 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,741 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
    at System.Net.HttpWebRequest.GetResponse()
    at SuiteCRMClient.CrmRestServer.GetResponseString(HttpWebRequest request)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233079
    2017-12-10 21:10:46,773 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,788 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'module_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setmodule_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,835 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,882 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:46,976 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,132 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,382 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,398 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,460 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,585 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,804 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,835 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    Newtonsoft.Json.JsonSerializationException: Error setting value to 'link_fields_object' on 'SuiteCRMClient.RESTObjects.ModuleFields'. ---> System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'Newtonsoft.Json.Linq.JObject'.
    at Setlink_fields_object(Object , Object )
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    --- End of inner exception stack trace ---
    at Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(Object target, Object value)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
    at SuiteCRMClient.CrmRestServer.DeserializeJson[T](String responseJson)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:10:47,913 | VSTA_Main | ERROR | Failed calling 'get_module_fields'
    SuiteCRMClient.Exceptions.CrmServerErrorException: CRM Server error 20 (Module Does Not Exist): This module is not available on this server
    at SuiteCRMClient.CrmRestServer.CheckForCrmError(String jsonResponse)
    at SuiteCRMClient.CrmRestServer.GetCrmResponse[T](String strMethod, Object objInput)
    Data:System.Collections.ListDictionaryInternal
    HResult:-2146233088
    2017-12-10 21:11:07,783 | VSTA_Main | ERROR | Auto-archiving: ON
    2017-12-10 21:11:07,783 | VSTA_Main | ERROR | Logging level: Error
    2017-12-10 21:11:15,717 | 10 | ERROR | Failed calling 'set_note_attachment'
    System.Exception: Failed to parse JSON (Unexpected character encountered while parsing value: <. Path '', line 0, position 0.):

    <

    pre>/**
    * SugarWebServiceImplv4_1.php
    *
    * This class is an implementation class for all the web services. Version 4_1 adds limit/off support to the
    * get_relationships function. We also added the sync_get_modified_relationships function call from version
    * one to facilitate querying for related meetings/calls contacts/users records.
    *
    */
    Class [ class SugarWebServiceImplv4_1 extends SugarWebServiceImplv4 ] {

    • Constants [0] {
      }

    • Static properties [1] {
      Property [ public static $helperObject ]
      }

    • Static methods [0] {
      }

    • Properties [0] {
      }

    • Methods [36] {
      /**

      • Class Constructor Object

      • */
        Method [ <user, overwrites SugarWebServiceImplv4, ctor> public method __construct ] {

      }

      /**

      • Retrieve a collection of beans that are related to the specified bean and optionally return relationship data for those related beans.
      • So in this API you can get contacts info for an account and also return all those contact's email address or an opportunity info also.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- The name of the module that the primary record is from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param String $module_id -- The ID of the bean in the specified module
      • @param String $link_field_name -- The name of the lnk field to return records from. This name should be the name the relationship.
      • @param String $related_module_query -- A portion of the where clause of the SQL statement to find the related items. The SQL query will already be filtered to only include the beans that are related to the specified bean.
      • @param Array $related_fields - Array of related bean fields to be returned.
      • @param Array $related_module_link_name_to_fields_array - For every related bean returrned, specify link fields name to fields info for that bean to be returned. For ex.'link_name_to_fields_array' => array(array('name' => 'email_addresses', 'value' => array('id', 'email_address', 'opt_out', 'primary_address'))).
      • @param Number $deleted -- false if deleted records should not be include, true if deleted records should be included.
      • @param String $order_by -- field to order the result sets by
      • @param Number $offset -- where to start in the return
      • @param Number $limit -- number of results to return (defaults to all)
      • @return Array 'entry_list' -- Array - The records that were retrieved
      • 'relationship_list' -- Array - The records link field data. The example is if asked about accounts contacts email address then return data would look like Array ( [0] => Array ( [name] => email_addresses [records] => Array ( [0] => Array ( [0] => Array ( [name] => id [value] => 3fb16797-8d90-0a94-ac12-490b63a6be67 ) [1] => Array ( [name] => email_address [value] => hr.kid.qa@example.com ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 1 ) ) [1] => Array ( [0] => Array ( [name] => id [value] => 403f8da1-214b-6a88-9cef-490b63d43566 ) [1] => Array ( [name] => email_address [value] => kid.hr@example.name ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 0 ) ) ) ) )
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, overwrites SugarWebServiceImplv3, prototype SugarWebServiceImpl> public method get_relationships ] {

        • Parameters [11] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $module_id ]
          Parameter #3 [ $link_field_name ]
          Parameter #4 [ $related_module_query ]
          Parameter #5 [ $related_fields ]
          Parameter #6 [ $related_module_link_name_to_fields_array ]
          Parameter #7 [ $deleted ]
          Parameter #8 [ $order_by = '' ]
          Parameter #9 [ $offset = 0 ]
          Parameter #10 [ $limit = false ]
          }
          }

      /**

      • get_modified_relationships
      • Get a list of the relationship records that have a date_modified value set within a specified date range. This is used to
      • help facilitate sync operations. The module_name should be "Users" and the related_module one of "Meetings", "Calls" and
      • "Contacts".
      • @param xsd:string $session String of the session id
      • @param xsd:string $module_name String value of the primary module to retrieve relationship against
      • @param xsd:string $related_module String value of the related module to retrieve records off of
      • @param xsd:string $from_date String value in YYYY-MM-DD HH:MM:SS format of date_start range (required)
      • @param xsd:string $to_date String value in YYYY-MM-DD HH:MM:SS format of ending date_start range (required)
      • @param xsd:int $offset Integer value of the offset to begin returning records from
      • @param xsd:int $max_results Integer value of the max_results to return; -99 for unlimited
      • @param xsd:int $deleted Integer value indicating deleted column value search (defaults to 0). Set to 1 to find deleted records
      • @param xsd:string $module_user_id String value of the user id (optional, but defaults to SOAP session user id anyway) The module_user_id value
      • here ought to be the user id of the user initiating the SOAP session
      • @param tns:select_fields $select_fields Array value of fields to select and return as name/value pairs
      • @param xsd:string $relationship_name String value of the relationship name to search on
      • @param xsd:string $deletion_date String value in YYYY-MM-DD HH:MM:SS format for filtering on deleted records whose date_modified falls within range
      • this allows deleted records to be returned as well
      • @return Array records that match search criteria
        */
        Method [ public method get_modified_relationships ] {

        • Parameters [12] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $related_module ]
          Parameter #3 [ $from_date ]
          Parameter #4 [ $to_date ]
          Parameter #5 [ $offset ]
          Parameter #6 [ $max_results ]
          Parameter #7 [ $deleted = 0 ]
          Parameter #8 [ $module_user_id = '' ]
          Parameter #9 [ $select_fields = Array ]
          Parameter #10 [ $relationship_name = '' ]
          Parameter #11 [ $deletion_date = '' ]
          }
          }

      /**

      • Log the user into the application
      • @param UserAuth array $user_auth -- Set user_name and password (password needs to be
      • in the right encoding for the type of authentication the user is setup for. For Base
      • sugar validation, password is the MD5 sum of the plain text password.
      • @param String $application -- The name of the application you are logging in from. (Currently unused).
      • @param array $name_value_list -- Array of name value pair of extra parameters. As of today only 'language' and 'notifyonsave' is supported
      • @return Array - id - String id is the session_id of the session that was created.

        • module_name - String - module name of user

        • name_value_list - Array - The name value pair of user_id, user_name, user_language, user_currency_id, user_currency_name,

        • user_default_team_id, user_is_admin, user_default_dateformat, user_default_timeformat
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv4, prototype SugarWebServiceImpl> public method login ] {

        • Parameters [3] {
          Parameter #0 [ $user_auth ]
          Parameter #1 [ $application ]
          Parameter #2 [ $name_value_list = Array ]
          }
          }

      /**

      • Retrieve a list of SugarBean's based on provided IDs. This API will not wotk with report module
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- The name of the module to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param Array $ids -- An array of SugarBean IDs.
      • @param Array $select_fields -- A list of the fields to be included in the results. This optional parameter allows for only needed fields to be retrieved.
      • @param Array $link_name_to_fields_array -- A list of link_names and for each link_name, what fields value to be returned. For ex.'link_name_to_fields_array' => array(array('name' => 'email_addresses', 'value' => array('id', 'email_address', 'opt_out', 'primary_address')))
      • @return Array
      • 'entry_list' -- Array - The records name value pair for the simple data types excluding link field data.
      • 'relationship_list' -- Array - The records link field data. The example is if asked about accounts email address then return data would look like Array ( [0] => Array ( [name] => email_addresses [records] => Array ( [0] => Array ( [0] => Array ( [name] => id [value] => 3fb16797-8d90-0a94-ac12-490b63a6be67 ) [1] => Array ( [name] => email_address [value] => hr.kid.qa@example.com ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 1 ) ) [1] => Array ( [0] => Array ( [name] => id [value] => 403f8da1-214b-6a88-9cef-490b63d43566 ) [1] => Array ( [name] => email_address [value] => kid.hr@example.name ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 0 ) ) ) ) )
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv4, prototype SugarWebServiceImpl> public method get_entries ] {

        • Parameters [5] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $ids ]
          Parameter #3 [ $select_fields ]
          Parameter #4 [ $link_name_to_fields_array ]
          }
          }

      /**

      • Retrieve a list of beans. This is the primary method for getting list of SugarBeans from Sugar using the SOAP API.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- The name of the module to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param String $query -- SQL where clause without the word 'where'
      • @param String $order_by -- SQL order by clause without the phrase 'order by'
      • @param integer $offset -- The record offset to start from.
      • @param Array $select_fields -- A list of the fields to be included in the results. This optional parameter allows for only needed fields to be retrieved.
      • @param Array $link_name_to_fields_array -- A list of link_names and for each link_name, what fields value to be returned. For ex.'link_name_to_fields_array' => array(array('name' => 'email_addresses', 'value' => array('id', 'email_address', 'opt_out', 'primary_address')))

        • @param integer $max_results -- The maximum number of records to return. The default is the sugar configuration value for 'list_max_entries_per_page'
      • @param integer $deleted -- false if deleted records should not be include, true if deleted records should be included.
      • @return Array 'result_count' -- integer - The number of records returned
      • 'next_offset' -- integer - The start of the next page (This will always be the previous offset plus the number of rows returned. It does not indicate if there is additional data unless you calculate that the next_offset happens to be closer than it should be.
      • 'entry_list' -- Array - The records that were retrieved
      •          'relationship_list' -- Array - The records link field data. The example is if asked about accounts email address then return data would look like Array ( [0] => Array ( [name] => email_addresses [records] => Array ( [0] => Array ( [0] => Array ( [name] => id [value] => 3fb16797-8d90-0a94-ac12-490b63a6be67 ) [1] => Array ( [name] => email_address [value] => hr.kid.qa@example.com ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 1 ) ) [1] => Array ( [0] => Array ( [name] => id [value] => 403f8da1-214b-6a88-9cef-490b63d43566 ) [1] => Array ( [name] => email_address [value] => kid.hr@example.name ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 0 ) ) ) ) )
        
        • @exception 'SoapFault' -- The SOAP error, if any
          */
          Method [ <user, inherits SugarWebServiceImplv4, prototype SugarWebServiceImpl> public method get_entry_list ] {

        • Parameters [10] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $query ]
          Parameter #3 [ $order_by ]
          Parameter #4 [ $offset ]
          Parameter #5 [ $select_fields ]
          Parameter #6 [ $link_name_to_fields_array ]
          Parameter #7 [ $max_results ]
          Parameter #8 [ $deleted ]
          Parameter #9 [ $favorites = false ]
          }
          }

      /**

      • Retrieve the layout metadata for a given module given a specific type and view.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param array $module_name(s) -- The name of the module(s) to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @return array $type The type(s) of views requested. Current supported types are 'default' (for application) and 'wireless'
      • @return array $view The view(s) requested. Current supported types are edit, detail, list, and subpanel.
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv4, prototype SugarWebServiceImplv3> public method get_module_layout ] {

        • Parameters [6] {
          Parameter #0 [ $session ]
          Parameter #1 [ $a_module_names ]
          Parameter #2 [ $a_type ]
          Parameter #3 [ $a_view ]
          Parameter #4 [ $acl_check = true ]
          Parameter #5 [ $md5 = false ]
          }
          }

      /**

      • Given a list of modules to search and a search string, return the id, module_name, along with the fields
      • We will support Accounts, Bugs, Cases, Contacts, Leads, Opportunities, Project, ProjectTask, Quotes
      • @param string $session         - Session ID returned by a previous call to login.
      • @param string $search_string     - string to search
      • @param string[] $modules         - array of modules to query
      • @param int $offset             - a specified offset in the query
      • @param int $max_results         - max number of records to return
      • @param string $assigned_user_id - a user id to filter all records by, leave empty to exclude the filter
      • @param string[] $select_fields - An array of fields to return. If empty the default return fields will be from the active list view defs.
      • @param bool $unified_search_only - A boolean indicating if we should only search against those modules participating in the unified search.
      • @param bool $favorites         - A boolean indicating if we should only search against records marked as favorites.
      • @return Array return_search_result - Array('Accounts' => array(array('name' => 'first_name', 'value' => 'John', 'name' => 'last_name', 'value' => 'Do')))
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv4, prototype SugarWebServiceImpl> public method search_by_module ] {

        • Parameters [9] {
          Parameter #0 [ $session ]
          Parameter #1 [ $search_string ]
          Parameter #2 [ $modules ]
          Parameter #3 [ $offset ]
          Parameter #4 [ $max_results ]
          Parameter #5 [ $assigned_user_id = '' ]
          Parameter #6 [ $select_fields = Array ]
          Parameter #7 [ $unified_search_only = true ]
          Parameter #8 [ $favorites = false ]
          }
          }

      /**

      • Get OAuth reqtest token
        */
        Method [ <user, inherits SugarWebServiceImplv4> public method oauth_request_token ] {

      }

      /**

      • Get OAuth access token
        */
        Method [ <user, inherits SugarWebServiceImplv4> public method oauth_access_token ] {

      }

      Method [ <user, inherits SugarWebServiceImplv4> public method oauth_access ] {

      • Parameters [1] {
        Parameter #0 [ $session = '' ]
        }
        }

      /**

      • Get next job from the queue
      • @param string $session
      • @param string $clientid
        */
        Method [ <user, inherits SugarWebServiceImplv4> public method job_queue_next ] {

        • Parameters [2] {
          Parameter #0 [ $session ]
          Parameter #1 [ $clientid ]
          }
          }

      /**

      • Run cleanup and schedule
      • @param string $session
      • @param string $clientid
        */
        Method [ <user, inherits SugarWebServiceImplv4> public method job_queue_cycle ] {

        • Parameters [2] {
          Parameter #0 [ $session ]
          Parameter #1 [ $clientid ]
          }
          }

      /**

      • Run job from queue
      • @param string $session
      • @param string $jobid
      • @param string $clientid
        */
        Method [ <user, inherits SugarWebServiceImplv4> public method job_queue_run ] {

        • Parameters [3] {
          Parameter #0 [ $session ]
          Parameter #1 [ $jobid ]
          Parameter #2 [ $clientid ]
          }
          }

      /**

      • Retrieve a single SugarBean based on ID.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- The name of the module to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param String $id -- The SugarBean's ID value.
      • @param Array $select_fields -- A list of the fields to be included in the results. This optional parameter allows for only needed fields to be retrieved.
      • @param Array $link_name_to_fields_array -- A list of link_names and for each link_name, what fields value to be returned. For ex.'link_name_to_fields_array' => array(array('name' => 'email_addresses', 'value' => array('id', 'email_address', 'opt_out', 'primary_address')))
      • @param bool $trackView -- Should we track the record accessed.
      • @return Array
      • 'entry_list' -- Array - The records name value pair for the simple data types excluding link field data.
      • 'relationship_list' -- Array - The records link field data. The example is if asked about accounts email address then return data would look like Array ( [0] => Array ( [name] => email_addresses [records] => Array ( [0] => Array ( [0] => Array ( [name] => id [value] => 3fb16797-8d90-0a94-ac12-490b63a6be67 ) [1] => Array ( [name] => email_address [value] => hr.kid.qa@example.com ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 1 ) ) [1] => Array ( [0] => Array ( [name] => id [value] => 403f8da1-214b-6a88-9cef-490b63d43566 ) [1] => Array ( [name] => email_address [value] => kid.hr@example.name ) [2] => Array ( [name] => opt_out [value] => 0 ) [3] => Array ( [name] => primary_address [value] => 0 ) ) ) ) )
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3_1, prototype SugarWebServiceImpl> public method get_entry ] {

        • Parameters [6] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $id ]
          Parameter #3 [ $select_fields ]
          Parameter #4 [ $link_name_to_fields_array ]
          Parameter #5 [ $track_view = false ]
          }
          }

      /**

      • Retrieve the md5 hash of the vardef entries for a particular module.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- The name of the module to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @return String The md5 hash of the vardef definition.
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3_1, prototype SugarWebServiceImplv3> public method get_module_fields_md5 ] {

        • Parameters [2] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          }
          }

      /**

      • Retrieve the md5 hash of a layout metadata for a given module given a specific type and view.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param array $module_name(s) -- The name of the module to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @return array $type(s) The type of view requested. Current supported types are 'default' (for application) and 'wireless'
      • @return array $view(s) The view requested. Current supported types are edit, detail, and list.
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3_1, prototype SugarWebServiceImplv3> public method get_module_layout_md5 ] {

        • Parameters [5] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $type ]
          Parameter #3 [ $view ]
          Parameter #4 [ $acl_check = true ]
          }
          }

      /**

      • Update or create a single SugarBean.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- The name of the module to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param Array $name_value_list -- The keys of the array are the SugarBean attributes, the values of the array are the values the attributes should have.
      • @param Bool $track_view -- Should the tracker be notified that the action was performed on the bean.
      • @return Array    'id' -- the ID of the bean that was written to (-1 on error)
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3_1, prototype SugarWebServiceImpl> public method set_entry ] {

        • Parameters [4] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $name_value_list ]
          Parameter #3 [ $track_view = false ]
          }
          }

      /**

      • Retrieve the list of available modules on the system available to the currently logged in user.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $filter -- Valid values are: all     - Return all modules,
      • default - Return all visible modules for the application
      • mobile - Return all visible modules for the mobile view
      • @return Array    'modules' -- Array - An array of module names
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3_1, prototype SugarWebServiceImpl> public method get_available_modules ] {

        • Parameters [2] {
          Parameter #0 [ $session ]
          Parameter #1 [ $filter = 'all' ]
          }
          }

      /**

      • Enter description here...
      • @param string $session - Session ID returned by a previous call to login.
      • @param array $modules Array of modules to return
      • @param bool $MD5 Should the results be md5d
        */
        Method [ <user, inherits SugarWebServiceImplv3_1> public method get_language_definition ] {

        • Parameters [3] {
          Parameter #0 [ $session ]
          Parameter #1 [ $modules ]
          Parameter #2 [ $MD5 = false ]
          }
          }

      /**

      • Gets server info. This will return information like version, flavor and gmt_time.
      • @return Array - flavor - String - Retrieve the specific flavor of sugar.

        • version - String - Retrieve the version number of Sugar that the server is running.

        • gmt_time - String - Return the current time on the server in the format 'Y-m-d H:i:s'. This time is in GMT.
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3, prototype SugarWebServiceImpl> public method get_server_info ] {

      }

      /**

      • Retrieve a list of recently viewed records by module.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $modules -- An array of modules or 'Home' to indicate all.
      • @return Array The recently viewed records
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3> public method get_last_viewed ] {

        • Parameters [2] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_names ]
          }
          }

      /**

      • Retrieve a list of upcoming activities including Calls, Meetings,Tasks and Opportunities
      • @param String $session -- Session ID returned by a previous call to login.
      • @return Array List of upcoming activities
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImplv3> public method get_upcoming_activities ] {

        • Parameters [1] {
          Parameter #0 [ $session ]
          }
          }

      /**

      • Set a single relationship between two beans. The items are related by module name and id.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- name of the module that the primary record is from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param String $module_id - The ID of the bean in the specified module_name
      • @param String link_field_name -- name of the link field which relates to the other module for which the relationship needs to be generated.
      • @param array related_ids -- array of related record ids for which relationships needs to be generated
      • @param array $name_value_list -- The keys of the array are the SugarBean attributes, the values of the array are the values the attributes should have.
      • @param integer $delete -- Optional, if the value 0 or nothing is passed then it will add the relationship for related_ids and if 1 is passed, it will delete this relationship for related_ids
      • @return Array - created - integer - How many relationships has been created

        • failed - integer - How many relationsip creation failed

        • deleted - integer - How many relationships were deleted
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImpl> public method set_relationship ] {

        • Parameters [7] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $module_id ]
          Parameter #3 [ $link_field_name ]
          Parameter #4 [ $related_ids ]
          Parameter #5 [ $name_value_list ]
          Parameter #6 [ $delete ]
          }
          }

      /**

      • Set a single relationship between two beans. The items are related by module name and id.
      • @param String $session -- Session ID returned by a previous call to login.
      • @param array $module_names -- Array of the name of the module that the primary record is from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param array $module_ids - The array of ID of the bean in the specified module_name
      • @param array $link_field_names -- Array of the name of the link field which relates to the other module for which the relationships needs to be generated.
      • @param array $related_ids -- array of an array of related record ids for which relationships needs to be generated
      • @param array $name_value_lists -- Array of Array. The keys of the inner array are the SugarBean attributes, the values of the inner array are the values the attributes should have.
      • @param array int $delete_array -- Optional, array of 0 or 1. If the value 0 or nothing is passed then it will add the relationship for related_ids and if 1 is passed, it will delete this relationship for related_ids
      • @return Array - created - integer - How many relationships has been created

        • failed - integer - How many relationsip creation failed

        • deleted - integer - How many relationships were deleted
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImpl> public method set_relationships ] {

        • Parameters [7] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_names ]
          Parameter #2 [ $module_ids ]
          Parameter #3 [ $link_field_names ]
          Parameter #4 [ $related_ids ]
          Parameter #5 [ $name_value_lists ]
          Parameter #6 [ $delete_array ]
          }
          }

      /**

      • Update or create a list of SugarBeans
      • @param String $session -- Session ID returned by a previous call to login.
      • @param String $module_name -- The name of the module to return records from. This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
      • @param Array $name_value_lists -- Array of Bean specific Arrays where the keys of the array are the SugarBean attributes, the values of the array are the values the attributes should have.
      • @return Array    'ids' -- Array of the IDs of the beans that was written to (-1 on error)
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImpl> public method set_entries ] {

        • Parameters [3] {
          Parameter #0 [ $session ]
          Parameter #1 [ $module_name ]
          Parameter #2 [ $name_value_lists ]
          }
          }

      /**

      • Log out of the session. This will destroy the session and prevent other's from using it.
      • @param String $session -- Session ID returned by a previous call to login.
      • @return Empty
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImpl> public method logout ] {

        • Parameters [1] {
          Parameter #0 [ $session ]
          }
          }

      /**

      • Return the user_id of the user that is logged into the current session.
      • @param String $session -- Session ID returned by a previous call to login.
      • @return String -- the User ID of the current session
      • @exception 'SoapFault' -- The SOAP error, if any
        */
        Method [ <user, inherits SugarWebServiceImpl> public method get_user_id ] {

        • Parameters [1] {
          Parameter #0 [ $session ]
          }
          }

      /**

      • Retrieve vardef information on the fields of the specified bean.
      • @param String $session -- Session ID returned by a previous call
  5. protectedharbor member avatar

    protectedharbor

    a year ago

    Any update?

  6. suitecrm member avatar

    SuiteCRM Provider Affiliate

    a year ago

    Hi protectedharbor,

    We've received your logs and I've raised this as a bug. We'll get back to you as soon as possible with further information. Thanks.

    • SuiteCRM Outlook Plugin Team.
  7. Simon_Brooke member avatar

    Simon_Brooke

    a year ago

    Hi @protectedharbour

    This looks very much as though you have the wrong URL. The server is dumping raw PHP back at you when the client expects JSON, which shouldn't happen. You've undoubtedly got the server part right, because the PHP is SuiteCRM PHP, but the path part is wrong. The URL should look something like

    http://the.name.of.your.server/SuiteCRM/

    or

    https://the.name.of.your.server/SuiteCRM/

    There should be nothing (except a slash character) after SuiteCRM. Please could you check your URL, and if there is anything extra remove it. If that does not work, could you please email the URL of your server to the email address to which you sent your logs.

    Cheers

    Simon

    • protectedharbor member avatar

      protectedharbor

      a year ago

      Hi Simon,
      When I use http://IP/suitecrm/ I received the message "The remote server returned an error: (404) Not Found" But the plug in does authenticate when I remove the suitecrm from the URL.

    • Simon_Brooke member avatar

      Simon_Brooke

      a year ago

      Please

      • Restart Outlook;
      • On the SuiteCRM Settings menu, set logging level to "Debug";
      • Restart Outlook again;
      • Wait five minutes for it to try to sync;
      • Zip up all the logs in your logs directory (there's a link to it in the settings menu);
      • Mail them to the same address as before.

      I'm pretty sure this is a configuration issue and it should be easy to fix.

    • protectedharbor member avatar

      protectedharbor

      a year ago

      I don't see an upload in your interface so use this link to access it; enter link description here

  8. suitecrm member avatar

    SuiteCRM Provider Affiliate

    a year ago

    Hi protectedharbor,

    Can we send you a debugging build to assist with troubleshooting your issue?

    • SuiteCRM Outlook Team
  9. protectedharbor member avatar

    protectedharbor

    a year ago

    I have had built out an entire new version of SUITECRM and and have the exact same problem. The /suitecrm/ at the end causes a failure. The plug in only authenticates when we use the URL of suite CRM. On this version we have applies a certificate, just in case HTTPS makes a difference.

  10. protectedharbor member avatar

    protectedharbor

    a year ago

    Help. Help. It is been a long time and we still can't get the Outlook plug in to work.

    • suitecrm member avatar

      SuiteCRM Provider Affiliate

      a year ago

      Hi protectedharbor,

      I've sent you a link to a debug build directly. Thanks.

      • SuiteCRM Outlook Plugin Team
  11. suitecrm member avatar

    SuiteCRM Provider Affiliate

    2 months ago

    Hi there,

    This ticket will be closed over due to inactivity.

    We recommend upgrading to the latest version of the plugin to ensure you stay up to date with new feature and bug releases, however, if you are still experiencing an issue in the latest version please open a new ticket with reference to this one.

    SuiteCRM Outlook Plugin Team

This case is public. Please leave out any sensitive information such as URLs, passwords, etc.
Saving Comment Saving Comment...