IRPCObjectTypesAdmin.ModifyObjectType
Administration API / specialized admin session idempotent
Saves a changed definition of an object type or value list.
| Service | Object type administration MFiles.IRPCObjectTypesAdmin |
|---|---|
| gRPC method | /MFiles.IRPCObjectTypesAdmin/ModifyObjectType |
| HTTP (mf-http-grpc) | POST /grpc/v1/modify-object-type |
| Request | ModifyObjectTypeRequest |
| Response | ModifyObjectTypeResponse |
| Book and level | Administration API, specialized |
| Kind | admin |
| Session | Required: the session ID from LogIn in the mfiles-session-id-bin metadata. |
| Idempotent | yes |
| Returns metadata structure version | no |
| Streaming | none (unary) |
Remarks
- Requires
change_metadata_structureandlicense_allows_modifications. - Setting or changing the external database connection string, or re-enabling a disabled
external connection, also requires the server right
run_code(system administrator), unless the connection string matches the providers and settings that the server allows for vault administrators. The server connects to that data source itself. - Turning separate property storage on or off for a real object type takes the vault offline while the property data is moved.
- Changes to automatic permissions are applied to existing objects by background tasks, returned
in
async_task_ids; follow them with GetAsyncTask. - Increments the metadata structure version.
Request: ModifyObjectTypeRequest
Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.
| Field | Type | Description |
|---|---|---|
obj_type | ValueListAdmin | The complete new definition; object_type.id identifies the object type. Start from GetObjectTypeDef. |
obj_type.object_type | ValueList | Basic data. |
obj_type.object_type.id | int32 | The ID of the object type or value list. Object types and value lists share one ID space; property definition IDs and item IDs are separate spaces. |
obj_type.object_type.name_singular | string | The singular name, for example "Customer". Empty if the caller is not allowed to see the list. |
obj_type.object_type.name_plural | string | The plural name, for example "Customers". Empty if the caller is not allowed to see the list. |
obj_type.object_type.icon | bytes | The icon in .ICO format. Filled only by GetObjectTypes and GetObjectType, and only for real object types; empty in GetValueLists and GetValueList. |
obj_type.object_type.is_real_object_type | bool | True for an object type, whose items are objects (documents, customers); false for a plain value list (Country, Classes, Users). |
obj_type.object_type.is_hierarchical | bool | True if items can have a parent item in the same list (ValueListItem.has_parent). |
obj_type.object_type.has_owner | bool | True if every item belongs to an item of another list, the owner list (owner_object_type). For example, contact persons are owned by customers. |
obj_type.object_type.owner_object_type | int32 | With has_owner, the ID of the owner list or object type. |
obj_type.object_type.owner_property_def | int32 | Owner property def. Subobjects of objects of this object type have this property in their meta data for describing owner relationships. |
obj_type.object_type.options | OBJTYPEFLAGS | Flags of the list, for example can_add_items and is_external. See OBJTYPEFLAGS. |
obj_type.object_type.default_property_def | int32 | The ID of the lookup property definition that refers to items of this list by default, for example 1079 (Customer) for the Customer object type. |
obj_type.object_type.read_only_properties_during_insert[] | repeated int32 | The propertydef IDs of those properties that cannot be entered during the creation of a new object because they are not included in the INSERT INTO statement. |
obj_type.object_type.read_only_properties_during_update[] | repeated int32 | The propertydef IDs of those properties that cannot be entered during the editing of an existing object because they are not included in the UPDATE statement. |
obj_type.object_type.targets_for_browsing[] | repeated ObjectTypeTargetForBrowsing | Object type targets for browsing. |
obj_type.object_type.acl | AccessControlList | Specifies the ACL that defines the visibility and other permission settings of this object type. Also specifies who can add new items to this object type. |
obj_type.object_type.object_type_permissions | ObjectTypePermissionsForClient | What the caller may do with the list: see it (can_user_see) and add items or objects (can_user_add_new_items). Filled by the read calls of IRPCObjectTypes and IRPCValueLists. |
obj_type.object_type.default_acl_for_objects | AccessControlList | Default ACL for new items/objects of this type. If unset, the global default is used (vlitems: read access to all internal users; real objects: full control for all internal users). |
obj_type.object_type.vl_sorting_type_reserved | VLSortingType | The sorting type of value list items. NOTE: This value is not currently used but is reserved for future use. Currently, sorting order is specified on the property definition level only.Values: VLSORTING_TYPE_BY_DISPLAY_NAME (0), VLSORTING_TYPE_BY_EXTERNAL_ID (1). |
obj_type.object_type.sort_ascending_reserved | bool | True to sort in ascending order, false to sort in descending order. NOTE: This value is not currently used but is reserved for future use. Currently, sorting order is specified on the property definition level only. |
obj_type.object_type.guid | string | The GUID of the object type or value list, with braces. Resolve it to the vault's ID with GetMetadataStructureItemIdByGUID. |
obj_type.object_type.preferred_title_property_def_id | int32 | Property definition ID of the title property for the user's preferred language. |
obj_type.object_type.search_characteristics | ObjectTypeSearchCharacteristics | If set, specifies search characteristics of the object type. |
obj_type.object_type.indexing_definition | ObjectTypeIndexingDefinition | If set, defines the indexed value lists and properties of the object type. Used for searching from Master Storage. |
obj_type.object_type.view_id | int32 | The ID of the object type specific view. |
obj_type.database_connection_string | string | OLE DB connection string to the external database that contains the objects (and their properties) of this object type. |
obj_type.database_select_all_statement | string | SQL statement that retrieves the objects from an external database. |
obj_type.database_select_one_statement | string | SQL statement that retrieves a specific object from an external database. |
obj_type.database_insert_statement | string | SQL statement that inserts a new object to an external database. |
obj_type.database_select_latest_id_statement | string | SQL statement that retrieves the ID of the just inserted record in the external database. |
obj_type.database_update_statement | string | SQL statement that updates an existing object in an external database. |
obj_type.database_delete_statement | string | SQL statement that deletes an object in an external database. |
obj_type.database_column_mappings[] | repeated ObjectTypeColumnMapping | Column mappings. |
obj_type.database_column_mappings[].object_type | int32 | Object type ID. |
obj_type.database_column_mappings[].ordinal | int32 | One-based source field ordinal. |
obj_type.database_column_mappings[].source_field | string | Source field name. |
obj_type.database_column_mappings[].data_type | uint32 | Source field's data type. |
obj_type.database_column_mappings[].target_property_def | int32 | Target property definition. |
obj_type.database_column_mappings[].can_insert | bool | Is the source field part of insertion operations? |
obj_type.database_column_mappings[].can_update | bool | Is the source field part of update operations? |
obj_type.automatic_acl_for_objects | AutomaticPermissions | The default automatic permissions for items and objects. |
obj_type.automatic_acl_for_objects.permissions | NamedACL | The automatic permissions for an object for which the user selects this item. |
obj_type.automatic_acl_for_objects.is_default | bool | True if these automatic permissions are not private i.e. they are not directly specified for (owned by) this item but they come from somewhere else, e.g. from the default/common automatic permissions of the object type. |
obj_type.automatic_acl_for_objects.use_object_permissions | bool | If true the object/item's own permissions are used as its automatic permissions. |
obj_type.aliases | string | Semicolon-separated list of semantic aliases. |
obj_type.tags[] | repeated NamedValueNamespace | Names value namespaces related to the object type. |
obj_type.tags[].name | string | The name of the namespace. |
obj_type.tags[].values[] | repeated NamedValue | Named value array related to the namespace. |
obj_type.version_number | uint32 | Object type version number, used for OT modification conflicts tracking. |
automatic_permissions_forced_active | bool | True to make changed automatic permissions active on the referring objects, false to add them inactive. |
entity_version_checks_enabled | bool | If true, the entity (ObjectType) version is tracked by versions conflict detection feature. |
Response: ModifyObjectTypeResponse
Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.
| Field | Type | Description |
|---|---|---|
result | ValueListAdmin | The definition as stored. |
result.object_type | ValueList | Basic data. |
result.object_type.id | int32 | The ID of the object type or value list. Object types and value lists share one ID space; property definition IDs and item IDs are separate spaces. |
result.object_type.name_singular | string | The singular name, for example "Customer". Empty if the caller is not allowed to see the list. |
result.object_type.name_plural | string | The plural name, for example "Customers". Empty if the caller is not allowed to see the list. |
result.object_type.icon | bytes | The icon in .ICO format. Filled only by GetObjectTypes and GetObjectType, and only for real object types; empty in GetValueLists and GetValueList. |
result.object_type.is_real_object_type | bool | True for an object type, whose items are objects (documents, customers); false for a plain value list (Country, Classes, Users). |
result.object_type.is_hierarchical | bool | True if items can have a parent item in the same list (ValueListItem.has_parent). |
result.object_type.has_owner | bool | True if every item belongs to an item of another list, the owner list (owner_object_type). For example, contact persons are owned by customers. |
result.object_type.owner_object_type | int32 | With has_owner, the ID of the owner list or object type. |
result.object_type.owner_property_def | int32 | Owner property def. Subobjects of objects of this object type have this property in their meta data for describing owner relationships. |
result.object_type.options | OBJTYPEFLAGS | Flags of the list, for example can_add_items and is_external. See OBJTYPEFLAGS. |
result.object_type.default_property_def | int32 | The ID of the lookup property definition that refers to items of this list by default, for example 1079 (Customer) for the Customer object type. |
result.object_type.read_only_properties_during_insert[] | repeated int32 | The propertydef IDs of those properties that cannot be entered during the creation of a new object because they are not included in the INSERT INTO statement. |
result.object_type.read_only_properties_during_update[] | repeated int32 | The propertydef IDs of those properties that cannot be entered during the editing of an existing object because they are not included in the UPDATE statement. |
result.object_type.targets_for_browsing[] | repeated ObjectTypeTargetForBrowsing | Object type targets for browsing. |
result.object_type.acl | AccessControlList | Specifies the ACL that defines the visibility and other permission settings of this object type. Also specifies who can add new items to this object type. |
result.object_type.object_type_permissions | ObjectTypePermissionsForClient | What the caller may do with the list: see it (can_user_see) and add items or objects (can_user_add_new_items). Filled by the read calls of IRPCObjectTypes and IRPCValueLists. |
result.object_type.default_acl_for_objects | AccessControlList | Default ACL for new items/objects of this type. If unset, the global default is used (vlitems: read access to all internal users; real objects: full control for all internal users). |
result.object_type.vl_sorting_type_reserved | VLSortingType | The sorting type of value list items. NOTE: This value is not currently used but is reserved for future use. Currently, sorting order is specified on the property definition level only.Values: VLSORTING_TYPE_BY_DISPLAY_NAME (0), VLSORTING_TYPE_BY_EXTERNAL_ID (1). |
result.object_type.sort_ascending_reserved | bool | True to sort in ascending order, false to sort in descending order. NOTE: This value is not currently used but is reserved for future use. Currently, sorting order is specified on the property definition level only. |
result.object_type.guid | string | The GUID of the object type or value list, with braces. Resolve it to the vault's ID with GetMetadataStructureItemIdByGUID. |
result.object_type.preferred_title_property_def_id | int32 | Property definition ID of the title property for the user's preferred language. |
result.object_type.search_characteristics | ObjectTypeSearchCharacteristics | If set, specifies search characteristics of the object type. |
result.object_type.indexing_definition | ObjectTypeIndexingDefinition | If set, defines the indexed value lists and properties of the object type. Used for searching from Master Storage. |
result.object_type.view_id | int32 | The ID of the object type specific view. |
result.database_connection_string | string | OLE DB connection string to the external database that contains the objects (and their properties) of this object type. |
result.database_select_all_statement | string | SQL statement that retrieves the objects from an external database. |
result.database_select_one_statement | string | SQL statement that retrieves a specific object from an external database. |
result.database_insert_statement | string | SQL statement that inserts a new object to an external database. |
result.database_select_latest_id_statement | string | SQL statement that retrieves the ID of the just inserted record in the external database. |
result.database_update_statement | string | SQL statement that updates an existing object in an external database. |
result.database_delete_statement | string | SQL statement that deletes an object in an external database. |
result.database_column_mappings[] | repeated ObjectTypeColumnMapping | Column mappings. |
result.database_column_mappings[].object_type | int32 | Object type ID. |
result.database_column_mappings[].ordinal | int32 | One-based source field ordinal. |
result.database_column_mappings[].source_field | string | Source field name. |
result.database_column_mappings[].data_type | uint32 | Source field's data type. |
result.database_column_mappings[].target_property_def | int32 | Target property definition. |
result.database_column_mappings[].can_insert | bool | Is the source field part of insertion operations? |
result.database_column_mappings[].can_update | bool | Is the source field part of update operations? |
result.automatic_acl_for_objects | AutomaticPermissions | The default automatic permissions for items and objects. |
result.automatic_acl_for_objects.permissions | NamedACL | The automatic permissions for an object for which the user selects this item. |
result.automatic_acl_for_objects.is_default | bool | True if these automatic permissions are not private i.e. they are not directly specified for (owned by) this item but they come from somewhere else, e.g. from the default/common automatic permissions of the object type. |
result.automatic_acl_for_objects.use_object_permissions | bool | If true the object/item's own permissions are used as its automatic permissions. |
result.aliases | string | Semicolon-separated list of semantic aliases. |
result.tags[] | repeated NamedValueNamespace | Names value namespaces related to the object type. |
result.tags[].name | string | The name of the namespace. |
result.tags[].values[] | repeated NamedValue | Named value array related to the namespace. |
result.version_number | uint32 | Object type version number, used for OT modification conflicts tracking. |
async_task_ids[] | repeated AsyncTaskID | Asynchronous task identifiers, if any, related to the change. |
async_task_ids[].id | int64 | Task ID. |
async_task_ids[].type | string | Task type name. |
async_task_ids[].definition | string | The display string of the task definition. |
Related methods
- IRPCBackgroundOperationsAdmin.GetAsyncTask -- Gets one asynchronous task by ID.