Deepser Deepser
  • Documentation
  • Start Free Trial
Start Free Trial
Deepser Deepser
Start Free Trial
Deepser
  • Documentation
  • Start Free Trial
loading
  1. Home
  2. Documentation
  3. Relations
  4. Fetching data from relational entities
Updated on December 5, 2025

Documentation

  • Access and Visibility
    • Resources
    • Roles
    • Creating and Managing Roles in Deepser
    • Creating a new user
    • Password Reset and Modification
    • New User Registration
    • LDAP Configuration
    • SSO Deepser Configuration
    • SSO Login/Provisioning Configuration – Azure
    • Multi Factor
    • Groups
    • Groups Creation
    • Manage Users in Groups
    • Company
    • Companies in Deepser
    • Company Creation
    • Parent Companies
    • Email Domains
    • Visibility management in Deepser
    • Permission and Visibility Handling
    • Groups and Rules Definition
    • End Users Visibility Overview
    • Entities Portal Visibility
    • Empowered End User (EEU)
    • Company Supervisors
    • Additional Companies
    • Access Groups
    • Access Users
  • Activity, Worklogs & Comments
    • DeepActivity Comments
    • Placing a comment
    • Comments System Configuration
    • DeepActivity Worklog
    • Entering a Worklog
    • Enabling Worklogs in the User Portal
    • Worklog Global Grid
    • Worklog Global Grid Configuration
    • Activity Global Grid Advanced Configuration
  • Board
    • Enable groups to create boards
    • Creating a FreeForm Board
    • Creating and customizing a Lane
    • Entry Creation
    • Board Live
    • Live Board Creation
    • Advanced Live Board Configuration
    • Creating and customizing a Lane
    • Creation and Advanced Configuration of a Lane and Drop Code
  • Categories
    • Category Overview
    • Category Configuration
    • Category Usage
  • Chat
    • Using the Chat
    • Enabling the Chat on Portals
    • Chat Rooms and Moderators
    • Public Chat
    • Configure a Public Chat Widget
    • Chatbot
    • Chatbot Flow – Example
  • CMDB
    • Deepser CMDB
    • Enable CMDB in the User Portal
    • User Portal CMDB Grid Configuration
    • Advanced Configuration of CMDB Grids
    • Class, Type and Subtype
    • Configuring a CI
  • CRM
    • Deep CRM
    • Creating an account in the CRM
    • Creating a contact in the CRM
    • Creating an opportunity in the CRM
    • Contact Types in CRM
    • Opportunity Types in CRM
    • CRM Lists
    • CRM Entities Synchronization: Contacts and Accounts
    • Sync configuration
    • Advanced Sync
    • Address Functioning
    • Sales
    • Mailchimp Integration
  • Deepser API
    • API Notions
    • API Endpoint and URL
    • API Verbs and Format
    • API Authentication
    • API Main Methods
    • Retrieve
    • Multiple Retrieve
    • Create
    • Update
    • Delete
    • API Entities
    • API Company
    • User API
    • Group API
    • Service Operation API
    • Service Type API
    • Activity API
    • CMDB CI API
    • API Attachment
  • Deepser Fundamentals
    • Deepser Backend
    • Deepser User Menu
    • Deepser Navigation Menu
    • Global Search Usage
    • Deepser Home Page
    • Grids
    • Filters and Order
    • Export Data
    • Mass Action
    • Mass Action Configuration
    • Merge Action
    • Grid Creation and Cloning
    • Configuring Grids
    • Advanced Collection Configuration
    • Grids Render and Options Configuration
    • Grids Custom Options Configurations
    • Grids Renderer Tooltip Example
    • Grids Renderer Link Example
    • Grids System Configuration
    • Form Template Theory
    • FormTemplates
    • FormTemplates Structure and Buttons
    • Form Template Selection and Creation
    • Form Template Configuration
    • Form Template Structure Configuration
    • Formtemplates Fieldset Configuration
    • Formtemplates Buttons Configuration
    • Formtemplates Field Configuration
    • Custom Button Configuration
    • Advanced Form Template Rules
    • Buttons Conditional Hiding
    • User Portal
    • Browsing the user portal
    • Managing Tickets in The User Portal
    • User Portal Additional Features
    • Configuring Portal Groups
    • Configuring Portal Requests
    • Configuring Service Operations in the User Portal
    • Enabling Other Modules in the User Portal
    • Enabling Other Modules in the User Portal Grid
    • Guest Portal
    • Enabling the Guest Portal
    • Guest Portal Visibility Configuration Overview
    • Enabling Service Types on the Guest Portal
    • Adding a Portal Group in the Guest Portal
    • Adding a Portal Request in the Guest Portal
    • Editing Form Templates in the Guest Portal
    • Enabling Categories in the Guest Portal
    • Enabling Notifications for Guest Users
    • Knowledge Base in the Guest Portal
    • CMS in the Guest Portal
    • Cache Management
    • Quick Reply
    • Mentions
    • Module Creator – Creating a custom module
    • Inline Translation
  • Email Integration
    • Email Integration in Service Management
    • Enable Embedded Images on Message Body
    • Mailbox
    • Configuring an Outgoing Mailbox
    • Configuring an Incoming Mailbox
    • OAuth Client for Email Integration
    • Email Loop Management Tool
    • Office 365 Mailbox Configuration
    • Azure Oauth Client (Legacy Protocol)
    • Google Oauth Configuration
    • Email Rules
    • Email Rule Configuration
    • Advanced Email Rule Configuration
    • Email Attachment Conversion
    • Avoid Duplicate Tickets By Email
    • Managing additional Email recipients
    • Email Events
    • Enabling / Disabling an Email Event
    • Custom Email Events Creation
    • Custom Email Events Configuration
    • Attach Report to Email Notification
    • Email Templates
    • Email Template Configuration
    • New operation notification template for Requester User
    • New or Updated comment notification template for Requester
    • Email Webclient
  • Escalation
    • Escalation rule levels
    • Configuring Escalation Rules
    • Configure an escalation rule that modifies entity.
    • Escalation rule that sends an email notification
    • Create an escalation rule that is based on a metric
    • Configure an escalation rule that generates other entities
  • Importing Data
    • Import Foundamentals
    • Import Creation
    • Import Basic Data Binding
    • Import Before Run
    • Import Before Run Tutorial
    • Import Before Row
    • Import Before Row Tutorial
    • Import After Row
    • Import Binding The Unique Field “Code”
    • Import Binding the Type Value
    • Import Binding the Dates Values
    • Import Binding a Company, creating the record if it doesn’t exist
    • Global Import
  • IT Asset Management
    • IT Asset Models
    • ITAM Automatic Scan Configuration and Usage
    • ITAM Configuration
    • AnyDesk
    • Supremo
    • ISL Online
  • Knowledge Base
    • Reading the Knowledge Base
    • Knowledge Base in Service Operations
    • Article Configuration in Knowledge Base
    • Knowledge Base Configuration
    • Knowledge Base Standard Filters
    • Knowledge Base Advanced Filters
  • List
    • Introduction to lists
    • Creating a new list
    • List Values and Model Visibility
    • Use a list as the basis of a custom field
  • Password Management
    • Configuring a Password
    • Using a Password
    • Private Password
    • Password System Configuration
    • Enabling Password Manager Portal
    • Custom Deeppassword fields
    • Password Audit
  • Relations
    • Using a Relation Grid field
    • Configuring a Relation
    • Modifying relation using a custom event.
    • Opposite relation
    • Column Configuration
    • Relation Graph View
    • Fetching data from relational entities
  • Service Management
    • Introduction to Services in Deepser
    • Service Operations
    • Creating a Service Operation
    • Adding Comments, Activities, Attachments and Tasks to Operations
    • Service Operation Main Fields
    • Service Operation Additional Fields
    • Service Operation Activities, Relations, Email and SLAs
    • Service Types
    • Routing rules
    • Configuring Routing Rules
    • Advanced Routing Configuration
  • SLA
    • Calendar
    • Metrics
    • Goal
  • Task
    • Creation of task type
    • Form configuration of task types
    • Task Global Grid
    • Task Global Grid Configuration
    • Task Global Grid Advanced Configuration
  • Workflow
    • Workflow Overview
    • Flow Designer
    • Flow Trigger
    • Workflow – Stage Set
    • Workflow – Executions
    • Approval workflows
    • Portal Approval Structure
    • Backend Approval Structure
    • Workflow Actions
    • Workflow Logic
    • Workflow Samples
    • Multi Stage Flow
    • SubFlow
  • Inventory
    • Inventory Overview
    • Inventory Configuration
    • Warehouse
    • Item
    • Movement
  • Custom Fields
    • Custom Field Overview
    • Custom Field – Creation
    • Custom Field – Element Type Simple
    • Custom Field – Element Type Advanced
  • Custom Event
    • Custom Event Overview
    • Custom Event – Creation
    • Custom Event – Type
  • Dashboard
    • Dashboard Overview
    • Panel Configuration
    • Chart Configuration
  • Project
    • Project Module
    • Gantt
    • Project Task
    • Resource Grid
  • Calendar
    • Calendar Configurations
    • Internal Calendar Configuration
    • Calendar Configuration Example
    • External Calendar Configuration
    • External Calendar – Google Calendar Configuration Example
    • External Calendar – Outlook Calendar Configuration Example
    • Calendar Usage
  • Survey
    • Survey Overview
    • Designer
    • Survey
    • Dashboard
  • Contract and Contract Line
    • Contracts and Contract Lines – General Overview
    • Contracts
    • Contract Lines
    • Contract Creation
    • Line Creation
    • Associate a Contract / Line with other entities
    • Contract Type
    • Line Type
    • Contracts and Escalation Rules
  • Report Documentation
    • Report Configuration
    • Report Usage
  • Sales
    • Catalog and Price List Overview
    • Catalog Configurations
    • Product
    • Price List
    • Billing Overview
    • Order Billing
    • Lines Billing
    • Worklogs Billing
    • Movements Billing
    • Operation Billing
  • Integrations
    • Teams Integration
    • NinjaOne RMM Integration
    • Datto RMM Integration
    • Microsoft Intune Integration

Fetching data from relational entities

Estimated reading: 4 minutes

Relation Management in Deepser

Deepser allows you to create relationships between records belonging to the same entity or to different entities.
This feature enables the dynamic retrieval of data associated with a specific entity, either by leveraging an existing relation or by defining a new one.

Relation Configuration

To configure a relation, navigate to: System > Relation
Within this section, you can define the desired relation by specifying the entities and the fields to be used as keys.

Once the relation between the two entities has been configured (for more details, see the article: Relation Configuration), it will be possible to retrieve the related data.
For example, by configuring a relation between an Operation and a CI, the system will use specific tables to track and manage the relation between the two entities, thus facilitating data organization and retrieval.

Involved Tables

  • Source entity table: e.g., CI
    • Table Name: deep_cmdb_ci
    • Model Alias: deep_cmdb/ci
  • Destination entity table: e.g., Operation
    • Table Name: deep_service_operation
    • Model Alias: deep_service/operation
  • Configured relations table: deep_relation_relation
  • Relation roles table: deep_relation_role

Table: deep_relation_relation

The deep_relation_relation table stores data related to the configured relations between entities.
The main fields include:

  • entity_id: Unique identifier of the relation
  • name: Relation name
  • opposite_name: Reverse relation name
  • src_model / dest_model: Types of the models of the entities involved (e.g., deep_service_operation, deep_cmdb/ci)
  • src_search_field / dest_search_field: Fields of the entities used to define the relation

Once configured, the relation is displayed within the deep_relation_relation table.
To retrieve the data associated with a specific relation, you need to know its ID. This can be found in System > Relation, where the grid displays the ID corresponding to each configured relation.

Table: deep_relation_role

During the definition phase of a relation between two entities, the references to the actually linked records are stored in the deep_relation_role table. This table represents the concrete association between the entities involved.

The main fields are:

  • entity_id: Identifier composed of the combination of the relation ID, the source model ID, and the destination model ID (e.g., 1-2-34), where:
    • 1 = Relation ID
    • 2 = Source model ID (e.g., Cmdb Ci)
    • 34 = Destination model ID (e.g., Service Operation)
  • relation_id: ID of the configured relation
  • src_id: ID of the source entity
  • dest_id: ID of the destination entity

Data Retrieval

The following is an example configuration; the same logic can be applied to any other level or model by adapting the setup according to specific requirements. To achieve this, a custom event must be configured in the System > Custom Fields section, where the model “DeepService – Operation” will be selected.

Create a custom event by navigating to the Events tab and clicking the Add Event button.

In the screen that appears, fill in the following fields:

  • Name: The desired name for the event
  • Type: Set to After Save

In the Method field, enter the following code:

				
					$operation= $this;

//Retrieval of the relationship and the IDs of the Configuration Items linked to the operation
$relation = Deep::getModel('deep_relation/relation')->load(5);
$ciIds = $relation->getSrcIds($operation->getId());

foreach($ciIds as $ci){
    $operationStatus= $this->getData('status');
    $ciModel= Deep::getModel('deep_cmdb/ci')->load($ci);
    $ciModel->setData('status', $operationStatus);
    $ciModel->save();
}

				
			
  • Operation retrieval: The current operation, represented by $this, is stored in the variable $operation.
  • Relation loading: The relation with ID 5 is loaded from the deep_relation/relation model. This relation defines the link between the cmdb_ci and service_operation models.
  • Retrieving associated CI IDs: Using the getSrcIds() method, all IDs of cmdb_ci objects linked to the current operation ($operation->getId()) are retrieved.
  • Iterating over CI IDs: A foreach loop iterates over each ID in the $ciIds array, which represents the CI associated with the operation.
  • Retrieving the operation status: Inside the loop, the current operation status is retrieved using $this->getData(‘status’) and stored in the $operationStatus variable.
  • Loading the CI model: For each CI ID, the corresponding object is loaded from the deep_cmdb/ci model using load($ci), which returns the CI instance.
  • Updating the CI status: The CI status is updated by setting its status field equal to the operation’s status via $ciModel->setData(‘status’, $operationStatus).
  • Saving the updated CI: Finally, the modified CI is saved to the database with $ciModel->save(), ensuring the updated status is persisted.

This code enables the dynamic retrieval of all CI IDs associated with a specific operation and updates their status according to the status of the related ticket, using a predefined relation between the models.

Was this guide helpful? Yes No

Share this Doc

Fetching data from relational entities

Or copy link

Clipboard Icon
CONTENTS
Leaf Illustration

Deepser srl
Via Luigi Dalla Via 3/B,Torre A, piano 7, int. 12
36015 Schio (VI), Italy

© Deepser. All right reserved.

Privacy Policy
Terms of Service