APIException
will be thrown. If there is a problem parsing the response, a ResponseException
or a DeserializationException
may be thrown. See the Exception Management section for more details on the exception types.ModelFactory
(implementing ICRMModelFactory
) object. See the Model Factory section for more detail.ISyncableModel
and RawFieldsOption
is StoreAll, the field data will be loaded to the RawFields
dictionary (see the Creating Strongly-Typed Models section).ISyncableModel
and RawFieldsOption
is StoreAll, the field data will be loaded to the RawFields
dictionary (see the Creating Strongly-Typed Models section).ISyncableModel
and RawFieldsOption
is StoreeAll or StoreUnmapped, the field data will be loaded to the RawFields
dictionary (see the Creating Strongly-Typed Models section).ISyncableModel
and RawFieldsOption
is StoreAll, StoreUnmapped or StoreUnmatched, the field data will be loaded to the RawFields
dictionary (see the Creating Strongly-Typed Models section).ISyncableModel
, the field data will be loaded to the UnassignableProperties
dictionary (see the Creating Strongly-Typed Models section). If the model does not implement ISyncableModel
, the property will simply not be assigned. For more detail on the type conversions and mappings, see the Zoho Field Type to .NET Type Mappings section.CRMPostResults
object). If PostModelSyncOption
is not None, the Id property must be identifiable, otherwise an exception is thrown (see the Id Property Identification section).ISyncableModel
and state tracking is not disabled (an ISyncableModel
can disable state tracking upon instantiation or temporarily using the SuspendStateTracking
method), the ModelState
must be New to execute an insert or Modified to execute an update, otherwise an exception will be thrown.IValidatableModel
and the ValidateBeforePost
option is true, validation will be attempted prior to posting (see the Model Validation section). If validation fails, an exception will be thrown.ISyncableModel
and state tracking is not disabled, only those properties with a property state (accessed via ISyncableModel
’s GetPropertyState
method) of Modified will be serialized
WebSyncSeparatePascalCaseAttribute
is applied to the property, then spaced format field name derived from the property name will be used. Otherwise, the default Zoho field name will be used.WebSyncReadOnlyAttribute
or the WebSyncReadOnlyUpdateAttribute
will not be serialized (see the Read Only Attributes section)CRMLookupIdAttribute
will not be serialized if they do not have a value (passing a null value to Zoho will cause an error)ModelPropertiesSerializationOption
is not SerializeMappedOnly, an attempt will be made to serialize unmapped properties using the logic described under SerializeAllMatched of the ModelPropertiesSerializationOption
option.ModelPropertiesSerializationOption
is SerializeAll, any remaining properties will be serialized. If the property is decorated with the WebsyncSeparatePascalCaseAttribute
, the Zoho field name will be converted to a spaced format, otherwise the Zoho field name will be identical to the property name.ISyncableModel
and the SerializeRawFields
option is true, any RawField
entries that have not already been serialized via a model property, will be serialized.CRMPostResults
object (see the CRM Post Results section).PostModelSyncOption
is not None, the model objects are updated with the field values returned in each CRMRecordPostResult
record of the CRMPostResults.Records
property. Each model object is only updated if there were no errors associated with posting that model object record. If the post was an insert and a duplicate for a posted model object was identified but not updated (DuplicateInsertResult.Identified
), then no model properties will be updated. Otherwise, for inserts, the Id property will be assigned the value returned with the post results. If the special fields CreatedTime, ModifiedTime, CreatedBy and ModifiedBy are identified on the model objects, the field values returned with the post result will be applied to the corresponding model object. If errors occur in assigning the above field values to the model properties, error strings are added to the CRMPostResults
object record's ModelErrorMessages
property. This is done to avoid throwing an exception after the Zoho API may already have been updated and to allow all model objects unaffected by the error to get updated appropriately.ISyncableModel
, the model state is set to Unsynced and the model property dictionaries (UnassignableProperties
, UnsyncableProperties
and RefreshableProperties
) are cleared. These updates will occur only for those models associated with post result records that do not have an error message. Updates will also not occur for inserts in which a duplicate was identified and not updated. Model states are only updated for models in which state tracking is not disabled, but the model property dictionaries will be cleared for all ISyncableModels
. If errors occur in assigning the model state, error strings are added to the CRMPostResults
object record's ModelErrorMessages
property. This is done to avoid throwing an exception after the Zoho API may already have been updated and to allow all model objects unaffected by the error to get updated appropriately.PostModelSyncOption
is FullSync, for each posted model object implementing ISyncableModel
, a full sync will be performed by issuing a secondary get requests for the model record and comparing each property value, determining if the posted values were recorded in the Zoho system as expected and determining if any other values have changed in the Zoho system that are not reflected in the local model object. The model state of each posted model will also be updated to Synced (or Unsyncable or Refreshable) and the model property dictionaries (UnassignableProperties
, UnsyncableProperties
and RefreshableProperties
) will be cleared. These updates will occur only for those models associated with post result records that do not have an error message. Updates will also not occur for inserts in which a duplicate was identified and not updated. Model states are only updated for models in which state tracking is not disabled, but the model property dictionaries will be cleared for all ISyncableModels
. If errors occur in assigning the model state, error strings are added to the CRMPostResults
object record's ModelErrorMessages
property. This is done to avoid throwing an exception after the Zoho API may already have been updated and to allow all model objects unaffected by the error to get updated appropriately.WebSyncReadOnlyUpdateAttribute
.UnsyncableProperties
dictionary. If a non-posted property value is different from the secondary get request fetched value, the property state will be set to Refreshable and the fetched value will be added to the RefreshableProperties
dictionary.
© 2022 Jeff Williamson. All rights reserved. Privacy Policy | Terms of Service