3.2.4.2.42.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 Rule.Deprecated is true, the server MUST return FSRM_E_REQD_PARAM_MISSING.

  • If Namespace roots is an empty list, the server MUST return FSRM_E_REQD_PARAM_MISSING.

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

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

  • If the module definition specified by Module Definition.Name does not have the Module type FsrmPipelineModuleType_Classifier, the server MUST return E_INVALIDARG.

  • If the module definition that the rule will use during classification has Needs explicit value (section 3.2.1.6.2) set to true, and if Rule.Value is an empty string, the server MUST return FSRM_E_REQD_PARAM_MISSING.

  • If Rule.Value is not a valid value for the Persisted Property Definition identified by Rule.Property Affected , the server MUST return E_INVALIDARG.

  • If property affected is an empty string, the server MUST return FSRM_E_REQD_PARAM_MISSING.

  • If property affected is not contained in the properties affected of the classifier module specified by Module Definition.Name, the server MUST return FSRM_E_NOT_FOUND.

  • If FSRM Base Object.Deleted is set to true for this Non-Persisted Rule Instance (section 3.2.1.6.3.2), the server MUST remove the Persisted Rule (section 3.2.1.6.3.1) from the List of Persisted Rules (section 3.2.1.6) that has the same Rule.Name as this Non-Persisted Rule Instance, if one exists. This removal MUST occur even if other changes were made to the configuration of the Non-Persisted Rule Instance. If there is no Persisted Rule in the List of Persisted Rules that has the same Rule.Name as this Non-Persisted Rule 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 Rule Instance, the server MUST update the configuration data of the Persisted Rule in the List of Persisted Rules that has the same Rule.Name as this Non-Persisted Rule Instance, if one exists, with the configuration data from this instance, or return a nonzero error code.

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

  • If the Property Definition identified by Rule.Property Affected has Property Definition.Type as FsrmPropertyDefinitionType_OrderedList, FsrmPropertyDefinitionType_SingleChoiceList, or FsrmPropertyDefinitionType_MultiChoiceList, then the Rule.Value applied by the rule MUST be one of the Property Definition's possible values.

To update or populate the configuration data from a Non-Persisted Rule Instance to a Persisted Rule, the server MUST assign the values of all the properties in the list that follows, of the Non-Persisted Rule Instance to the corresponding properties of the Persisted Rule.

  • FSRM Base Object.Description

  • Rule.Name

  • Module definition name

  • Namespace roots

  • Enabled/disabled

  • Valid/invalid

  • Rule.Parameters

  • Execution option

  • Property Affected

  • Rule.Value