3.2.4.2.37.1 Commit (Opnum 11)

The Commit method is implemented as one of the methods for the IFsrmObject interface (section 3.2.4.2.10). This method has the behavior specified in section 3.2.4.2.10.5 with the following additions:

  • If the Property Definition.Name is an empty string, the server MUST return FSRM_E_REQD_PARAM_MISSING.

  • If the Property Definition.Type is not a valid FsrmPropertyDefinitionType (section 2.2.2.3.1.1) value or is FsrmPropertyDefinitionType_Unknown, the server MUST return FSRM_E_REQD_PARAM_MISSING.

  • If Property Definition.Possible values is an empty list and Property Definition.Type is FsrmPropertyDefinitionType_OrderedList or FsrmPropertyDefinitionType_MultiChoiceList (FsrmPropertyDefinitionType (section 2.2.2.3.1.1)), the server MUST return E_INVALIDARG.

    Additionally, if Property Definition.Possible values is an empty list and Property Definition.Type is FsrmPropertyDefinitionType_SingleChoiceList, the server SHOULD return E_INVALIDARG. <65>

  • If FSRM Base Object.Deleted is set to true for this Non-Persisted Property Definition Instance (section 3.2.1.6.1.2), the server MUST remove the Persisted Property Definition (section 3.2.1.6.1.1) from the List of Persisted Property Definitions (section 3.2.1.6) that has the same Property Definiton.Name as this Non-Persisted Property Definition Instance, if one exists. This removal MUST occur even if other changes were made to the configuration of the Non-Persisted Property Definition Instance. If there is no Persisted Property Definition (section 3.2.1.6.1.1) in the List of Persisted Property Definitions (section 3.2.1.6) that has the same Property Definition.Name as this Non-Persisted Property Definition Instance being deleted, the server doesn't perform any action and MUST return zero. The server MUST return a nonzero error code if removal fails.

  • If FSRM Base Object.Deleted is set to false for this Non-Persisted Property Definition Instance, the server MUST update the configuration data of the Persisted Property Definition in the List of Persisted Property Definitions that has the same Property Definition.Name as this Non-Persisted Property Definition Instance, if one exists, with the configuration data from this instance, or return a nonzero error code.

  • If there is a Persisted Property Definition in the List of Persisted Property Definitions that has the same Property Definition.Name as the one being committed but with a different FSRM Base Object.Id, the server MUST return FSRM_E_ALREADY_EXISTS.

  • If a Persisted Property Definition does not exist with the same Property Definition.Name and with FSRM Base Object.Deleted is set to false, the server MUST create a new Persisted Property Definition, populate its configuration with the configuration from this Non-Persisted Property Definition Instance, and add the new Persisted Property Definition to the List of Persisted Property Definitions.

To update or populate the configuration data from a Non-Persisted Property Definition Instance to a Persisted Property Definition, the server MUST assign the values of all the properties of the Non-Persisted Property Definition Instance to the corresponding properties of the Persisted Property Definition. See Property Definition properties (section 3.2.1.6.1) for more information.