Skip to content
  • There are no suggestions because the search field is empty.

Single/multi-select fields - remote validation

Learn how to define your single/multi-select field terms using a database table

What are single/multi-select fields?

A quick recap, single/multi-select fields are used to help improve the consistency of content tagging upon upload. Imagen end users navigate these fields by typing a few characters and being shown matching options from which to select.

Single- Select

With this field, you can choose one unique value from a list of predefined terms

Multi- Select

With this field, you can choose multiple unique value from a list of predefined terms

What is remote validation?

Remote validation allows Imagen administrators to define their field terms using a database table.

What are the benefits?

Remote validation enables Imagen administrators to define and manage many thousands of field terms without the need for manual entry using our Media Control Centre (MCC), thereby not encumbering ImagenWeb with a slow interface due to attempting to load thousands of values into a dropdown. 

Remote validation requires administrators to manage field terms by modifying the relevant database table using a script or function.

NOTE: In future, there are plans to have an API call to allow field terms to be CRUD.

Examples and configuration

Multi-select field to contain player names:

You will need two new tables, one to list players and the other to associate multiple players with one record.

2. Create table one:
CREATE TABLE `players` (

`pkPlayerID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID of the player',


`playerName` varchar(255) NOT NULL COMMENT 'Name of the player',


PRIMARY KEY (`pkPlayerID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Table of players';

NOTE: At minimum the table needs a primary key field and a field for term values.

2. Create table two:
CREATE TABLE `players_main` (

`pkPlayersMain` int NOT NULL AUTO_INCREMENT COMMENT 'primary key',

`fkPlayerID` int NOT NULL COMMENT 'Foreign key ID of the player',

`fkRecordNumber` int NOT NULL COMMENT 'ID of the record to which this player belongs',

PRIMARY KEY (`pkPlayersMain`),

UNIQUE KEY `record_player_UNIQUE` (`fkPlayerID`,`fkRecordNumber`),

CONSTRAINT `FK_playerID_players` FOREIGN KEY (`fkPlayerID`) REFERENCES `players` (`pkPlayerID`),

CONSTRAINT `FK_recordNumber_main` FOREIGN KEY (`fkRecordNumber`) REFERENCES `main` (`pkRecordNumber`) ON DELETE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Link between players and the records to which they belong';


NOTE: At minimum the table needs a foreign key for the main.pkRecordNumber field and another foreign key for the first table.

3. Once the tables are complete you need to modify the DBSchema.xml configuration file manually (this file holds the configuration information for all database fields).

  • In the DBSchema.xml file, usually under C:\ProgramData\Imagen_Ltd\MediaControlCentre, back up the current file.
  • Then look under the Fields node of the database and the last field in the database is Field Number="nnn" so you know you need to add fields after that starting from field number nnn + 1 (obviously enter the actual number here).
  • Now, add the following:
<Table Name="players_main" RecordNumberField="fkRecordNumber">

<Field Number=”nnn+1">

<FieldName>fkPlayerID</FieldName>

<FieldType>0x4</FieldType>

<DisplayName>fkPlayerID</DisplayName>

<FieldDetails>0x1</FieldDetails>

<EntryType>0x1</EntryType>

<DisplayType Type="Language">

<DisplayInfo Key="en-GB">fkPlayerID</DisplayInfo>

</DisplayType>

</Field>

<Reference From="fkPlayerID">pkPlayerID</Reference>

</Table>

<Table Name="players" PrimaryKey="pkPlayerID">

<Field Number="nnn+2">

<FieldName>playerName</FieldName>

<FieldType>0x20001</FieldType>

<DisplayName>Players</DisplayName>

<FieldDetails>0x41</FieldDetails>

<EntryType>0x1</EntryType>

<DisplayType Type="CIS_BROWSE">

<DisplayInfo Key="Record">1</DisplayInfo>

<DisplayInfo Key="DataEntry">1</DisplayInfo>

<DisplayInfo Key="Searchable">1</DisplayInfo>

<DisplayInfo Key="VisibleResult">1</DisplayInfo>

<DisplayInfo Key="ContentLanguage">en-GB</DisplayInfo>

</DisplayType>

<DisplayType Type="Language">

<DisplayInfo Key="en-GB">Name</DisplayInfo>

</DisplayType>

</Field>

</Table>

4. Restart your IMCC.

NOTE: If the customer wants, for example, PlayerName to be searchable in Solr AND a third party modifies a player’s name then the third-party module needs to make a REST call to update Solr accordingly. Or, you can manually add these fields to Solr standard search using the MediaControlCentre as normal. 

Single-select field to contain manager names:

1. Create table one: 


CREATE TABLE `managers` (

`pkManagerID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID of the manager,

`managerName` varchar(255) NOT NULL COMMENT 'Name of the manager,

PRIMARY KEY (`pkManagerID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Table of managers;

NOTE: At minimum the table needs a primary key field and a field for term values.

2. Once the table is complete you need to modify the DBSchema.xml configuration file manually (this file holds the configuration information for all database fields).

  • In the DBSchema.xml file, usually under C:\ProgramData\Imagen_Ltd\MediaControlCentre, back up the current file.
  • Look under the Fields node of the database and the last field in the database is Field Number="nnn" so you know you need to add fields after that starting from field number nnn + 1 (obviously enter the actual number here).
  • Now, add the following:
<Reference From="fkManagerID">pkManagerID</Reference> <!—This notes that these unique identifiers are linkedà

</Table>                      

<Table Name="managers" PrimaryKey="pkManagerID"><!—Here you are defining the sub tableà                              

<Field Number="nnn+1">                            

<FieldName>managerName</FieldName>                    

<FieldType>0x40001</FieldType>

<DisplayName>Manager</DisplayName>

<FieldDetails>0x41</FieldDetails>

<EntryType>0x1</EntryType>

<DisplayType Type="CIS_BROWSE">

<DisplayInfo Key="Record">1</DisplayInfo>      

<DisplayInfo Key="DataEntry">1</DisplayInfo>                            

<DisplayInfo Key="Searchable">1</DisplayInfo>                            

<DisplayInfo Key="VisibleResult">1</DisplayInfo>                            

<DisplayInfo Key="ContentLanguage">en-GB</DisplayInfo>                            

</DisplayType>          

<DisplayType Type="Language">      

<DisplayInfo Key="en-GB">Manager</DisplayInfo>                        

</DisplayType>        

</Field>              

</Table>

3. Restart your IMCC.

4. Add these fields to Solr standard search using the MediaControlCentre management interface as normal.

NOTE: If the customer wants, for example, ManagerName to be searchable in Solr AND a third party modifies a manager’s name then the third-party module needs to make a REST call to update Solr accordingly. Or, you can manually add these fields to Solr standard search using the MediaControlCentre as normal. 

 

Accessibility 👍Welcome to Imagen!Automated transcription (Speech-to-Text) 👨‍🎓Welcome to Imagen!Developers' Guide 📕 🔒Welcome to Imagen!How We Can Help You Onboard Your Content 📕Welcome to Imagen!Introduction to Imagen 📕Welcome to Imagen!Onboarding Guide 📕Welcome to Imagen!The Imagen Transcoder Farm 📕Welcome to Imagen!The Imagen Video Player 📕Welcome to Imagen!Storage Availability 🤔Welcome to Imagen!Storage Options 🤔Welcome to Imagen!Storage Security 🤔Welcome to Imagen!Which Theme Is Right for Me 🤔Welcome to Imagen!Why Is User Experience So Important? 🤔Welcome to Imagen!Imagen Term Glossary 📰Welcome to Imagen!Supported Browsers 📰Welcome to Imagen!Video Player Keyboard Shortcuts 📰Welcome to Imagen!What is a Media Object Timeline 👩‍🎓Welcome to Imagen!Newbie Checklist 👋Welcome to Imagen!Activity History ⚡FindGoogle Analytics 👩‍🎓FindAdding Annotations to Your Video Content ⚡FindAnnotation Layers 📕FindAnnotations Guide📕FindExporting Annotations ⚡FindGenerate Subtitles for Audio Content ⚡FindGenerate subtitles for video content ⚡FindGrouping Annotations on Export ⚡FindImagen Subtitle Guide 📕FindReordering Objects Within a Collection 📕FindCustom ReportingFindHow can I see the Open-Source Programming Languages used by Imagen? 🤔FindIf I search on the homepage, I get one type of search URL. But I get a different kind of URL on the "Search Results Page" 🤔FindMy search results seem out of date ⚠️FindWhat metadata does Imagen extract from my video content? 🤔FindImagen Query Language - Media Viewer Widget ⚡FindImagen Query Language Reference 📰FindUnderstanding Imagen Query Language 👨‍🏫FindArtificial Intelligence ServicesFindDescriptive Metadata Fields 📕FindExtracting Image Metadata on Import ⚡FindField Types and Record Schema 📕FindImagen Query Language - Related Records View ⚡FindImagen Query Language Guide 📕FindImagen XML Schema Mapping (XSLT) 📕FindSingle/multi-select fields - remote validationFindActivate a Language license ⚡FindChange My Default Language ⚡FindDisplay Multilanguage Annotations ⚡FindHow to configure multilanguage logos ⚡Findlanguage packs 📕FindCreating Parent/Child Field DependenciesFindDeleting RecordsFindRecords & Media Objects 📕FindUpdating Records ⚡FindAdd Fields to the Search Index ⚡FindAdding a filter to the search page ⚡FindAdvanced Search Reference 📰FindSaved Searches 📕FindSearch Index Guide 📕FindUpdating the Imagen Search Index ⚡FindBespoke Ingestion 📕StoreWhat is a 'Watchfolder'? 📕StoreImport from Dropbox ⚡StoreImport from OneDrive ⚡StoreUsing the Record (XML) Import Widget ⚡StoreCan non-media file types still be uploaded to Imagen?🤔StoreCreate a record with media ⚡StoreCreate an empty record with metadata ⚡StoreCreate Imagen XML in Excel 👩‍🎓StoreCreate multiple records, each with a single piece of media ⚡StoreImagen Media Workflows 📕StoreImport Media from a URL ⚡StoreMedia Import and Ingestion 📕StoreOptions for Onboarding your Metadata and Media 🤔StorePFR (Partial File Restore) and Segments 📕StoreWhat information do you store about my video during ingest? 🤔StoreBurnt-in Timecodes (BITC) 📕StoreThe Imagen Image Editor ⚡StoreWatermarking ⚡Store.PDF ViewerStoreAdd a Document Viewer ⚡StoreConfiguring Amazon S3 Intelligent-TieringStoreStorage Costs 📕StoreStorage Profile Reference 📄StoreStorage Replication 🌐StoreSupported File Types 📰StoreConfiguring Amazon S3 Storage TutorialStoreConfiguring Wasabi Storage TutorialStoreStorage LocationsStoreWhy Has My Media Failed to Ingest to Wasabi? 🤔StoreConfiguring "Download Profiles" ⚡DistributeInstalling and Using Imagen Accelerated File Delivery (AFD) ⚡DistributeOrdering Clips on Behalf of Other Users 📕DistributeEdit Live Stream Notification Emails ⚡DistributeImagen Live Connect API 📰DistributeAd-hoc PaymentsDistributeIntroduction to Content Licensing 📕DistributePrep: Imagen License and Stripe Accounts ⚡DistributeShopping Basket Configuration📄DistributeShopping Baskets 📕DistributeSubscription Configuration ⚡DistributeSubscription Overview 📕DistributePOST /iweb/v1/notification 📰DistributeAnonymous Sharing Links to Collections (Septeber Release)DistributeCollections 📕DistributeEmbedding Media on External SitesDistributeShare media with unregistered usersDistributeSocial Media PublishingDistributeSunrise/Sunset Dates for Open Access Links ⚡DistributeCreate an MRSS Feed ⚡DistributeImagen Live Connect 📕DistributeImagen MRSS Feed Response 📰DistributeOver the top (OTT) Delivery 📕DistributeBatch Editing Record & Media ACLManageCustom ACLsManageSet When Your Users Can Access Your Content ⚡ManageSetting Default Access Control Lists (ACL) for Records, Media, and Collections ⚡ManageSetting Record & Media Access Control Lists (ACL)ManageWhat are "ACLs"? 🤔ManageChanging Your Theme ⚡ManageDisplay banners on your site 👩‍🎓ManageI want to add a theme, which is right for me 🤔ManagePreview a theme before you commit ⚡ManageAdding Users to Groups ⚡ManageSet Permissions for a Group of Users ⚡ManageDynamic form ⚡ManageImagen Query Language - The Carousel Widget ⚡ManageMap Viewer Widget ⚡ManageWidgets 📕ManageAdobe Premiere Pro IntegrationManageCache Page 📄ManageCookies Page 📰ManageDisplay Fields 📄ManageEmail 📄ManageEnvironment Page📰ManageFederations 📰ManageGeolocation database 📰ManageGlobal Settings Page 📄ManageHealth Check Page 📰ManageMailing List 📄ManageMaintenance Mode 📄ManageThe Imagen Admin Interface Directory 📋 (Private)ManageUpdate Page 📰ManageUser Intelligence 📕ManageCreate an OrganisationManageAdding users to user groups through organisations ⚡ManageConfiguring Federated SSO ⚡ManageConfiguring your SSO service provider ⚡ManageGuide to SSO 👩‍🏫ManageI'm being sent back to ImagenWeb from the IDP but I can't get any further 🤔ManageCustom Cookie Policy (Javascript) TutorialManageImagen Event ServiceManageBanning a User from Site Access ⚡ManageClear Users That Have Not Been ValidatedManageCreate a Custom Registration ProcessManageCreating Custom Registration FieldsManageCreating request/approval relationships ⚡ManageCustomizing your Login Page ⚡ManageGrant a User Administrator PermissionsManageGrant a User Developer PermissionsManageGranting Site Permissions to an Individual User ⚡ManageGuide to Building Access Control 📕ManageIntroduction to Users, Groups, and Organisations 📕ManageManage Permissions with Imagen 📕ManagePreview Only AccessManageRestrict user sign-ups by geographyManageSetting User Signup RulesManageUser Permissions 📰ManageHow do I add reCAPTCHA to my Imagen siteManageCore REST Interface 📰DevelopersGET /api/v1/endpoints 📰DevelopersGet /core/v1/application 📰DevelopersGET /imcc/v1/job/list 📰DevelopersGET /licenceStatus/📰 WIPDevelopersGET /user/ 📰DevelopersGET history 📰DevelopersGET imcc/v1/job/count 📰DevelopersGET job/search📰DevelopersGET rights 📰DevelopersPut /imcc/v1/job 📰DevelopersAuthentication via Signed String📰DevelopersHow to authenticate API calls with a Bearer token 📰DevelopersCreating an Application in Imagen ⚡DevelopersGaining a Bearer Token ⚡DevelopersGET /iweb/v1/search 📰DevelopersImagen API Documentation 📕 🔒DevelopersGET /iweb/v1/notifications 📰DevelopersGET Profiles 📰DevelopersExample MRSS Reader (Powershell) 📄DevelopersImagen XML Reference 📰DevelopersNew metadata-only record with no media 📰DevelopersNew record with a single piece of media 📰DevelopersNew record with multiple pieces of media📰DevelopersRecord update adding new media📰DevelopersRecord update with metadata only 📰DevelopersSet ACL by XML 📰DevelopersGET /import/record 📰DevelopersGET /iweb/v1/download 📰DevelopersPUT /import/record/ 📰DevelopersCreating a Video Record with the Imagen API 👩‍🏫DevelopersFind the UMID of a media file 👩‍🏫DevelopersHow to find an Import Record (job) GUID 👩‍🏫DevelopersHow to find your Media Control Centre FQDN ⚡ 🔒DevelopersHow to find your media ID 👩‍🏫DevelopersHow to Find Your Resource Group Name 👩‍🏫DevelopersProgrammatic API Call Examples 📰DevelopersScopes 📰DevelopersStandard Failure Response 📰DevelopersWhat is a job priority? 👩‍🏫DevelopersDELETE /import/record/ 📰DevelopersDELETE /media 📰DevelopersGET /iweb/v1/users 📰DevelopersWebhooksDevelopersXML Watch Folder Tutorial (Lambda) 🔒Partners & InternalDELETE /imcc/v1/media/ 📰 🔒Partners & InternalDELETE /imcc/v1/record/ 📰 🔒Partners & InternalDELETE imcc/v1/import/record/ 📰 🔒Partners & InternalGET imcc/v1/import/record/ 📰 🔒Partners & InternalGET imcc/v1/record/search 📰 🔒Partners & InternalGET record/validateSearch 📰 🔒Partners & InternalPUT imcc/v1/import/record/ 📰 🔒Partners & InternalAdd a Video Player ⚡ 🔒Partners & InternalAdd an Audio Player ⚡ 🔒Partners & InternalAdd an Image Viewer ⚡ 🔒Partners & InternalMake a clip from a live feed in progress ⚡ 🔒Partners & InternalImagen Deployment Tutorial 🔒Partners & InternalWatchfolder Tutorial (Azure Function Media Uploaded Trigger) 🔒Partners & InternalWatchfolder Tutorial (Azure Function XML Uploaded Trigger) 🔒Partners & InternalOnboarding Playbook 🔒Partners & InternalJob and File Status Codes 📄 🔒Partners & InternalAdd a subtitles workflow to Imagen ⚡ 🔒Partners & InternalCreate a New Empty Workflow ⚡ 🔒Partners & InternalRest Plugin Setup for Vantage Integration 👩‍🔬 🔒Partners & InternalWatch Folder With FTPS Tutorial 👨‍🏫 🔒Partners & InternalXML Watch Folder Tutorial (Windows) 🔒Partners & Internal