Deepser Deepser
  • Documentation
Start Free Trial
Deepser Deepser
Start Free Trial
Deepser
  • Documentation
loading
  1. Home
  2. Documentation
  3. Importing Data
  4. Import Before Run Tutorial
Updated on December 1, 2023

Documentation

  • Access and Visibility
    • End Users Visibility Overview
    • Creating a new user
    • Visibility management in Deepser
    • Company Supervisors
    • Additional Companies
    • LDAP Configuration
    • New User Registration
    • SSO Deepser Configuration
    • Azure SSO Configuration of Deepser Login
    • Groups
    • Groups Creation
    • Manage Users in Groups
    • Permission and Visibility Handling
    • Groups and Rules Definition
    • Roles
    • Resources
    • Creating and Managing Roles in Deepser
    • Company
    • Companies in Deepser
    • Company Creation
    • Parent Companies
    • Email Domains
    • Sync Account CRM Companies
    • Advanced Sync
  • 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
    • Categories in Deepser
    • Category Hierarchy
    • Creating New Categories and sub-Categories in Deepser
    • Make a category visible in the Guest portal
  • Chat
    • Using the Chat
    • Enabling the Chat on Portals
    • Chat Rooms and Moderators
    • Public Chat
    • Configure a Public Chat Widget
  • 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
    • Sync Contacts and Accounts
  • 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
  • Deepser Foundamentals
    • Deepser Backend
    • Deepser User Menu
    • Deepser Navigation Menu
    • Global Search Usage
    • Deepser Home Page
    • Grids
    • Filters and Order
    • Export Data
    • Mass Action
    • Grid Creation and Cloning
    • Configuring Grids
    • Grids System Configuration
    • Advanced Collection Configuration
    • Mass Action Configuration
    • Grids Render and Options Configuration
    • Grids Renderer Tooltip Example
    • Grids Renderer Link Example
    • Grids Custom Options Configurations
    • FormTemplates
    • FormTemplates Structure and Buttons
    • Form Template Theory
    • Form Template Selection and Creation
    • Form Template Configuration
    • Form Template Structure Configuration
    • Formtemplates Fieldset Configuration
    • Formtemplates Buttons Configuration
    • Formtemplates Field Configuration
    • Custom Button Configuration
    • Buttons Conditional Hiding
    • Advanced Form Template Rules
    • 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
  • 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
    • AZURE OAUTH CLIENT
    • Email Rules
    • Email Rule Configuration
    • Advanced Email Rule Configuration
    • 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
  • 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
  • IT Asset Management
    • ITAM Devices and Software
    • ITAM Agents
    • ITAM Agent Installation
    • ITAM Remote Collector
    • ITAM Agent to Remote Collector Conversion
    • ITAM Job Rules
    • ITAM Device Type and Subtype Configuration
    • Scan Jobs
    • Ping Sweep
    • SNMP Scan
    • WMI Job – Windows Devices
  • 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
  • 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
    • Empowered End User
    • Backend Approval Structure
    • Workflow Actions
    • Workflow Logic
    • Workflow Samples
    • Multi Stage Flow
    • SubFlow

Import Before Run Tutorial

Estimated reading: 3 minutes

In the following example we are retrieving devices already inside Deepser’s DataBase, to avoid duplicates when importing new records from an Excel.

We’re also retrieving Companies, Types, Subtypes and Status List Values to convert their names to corresponding IDs.

				
					/* through the static method in Deep class, a collection of CI is retrived. The collection is filtered by class_id = 2 that represents the 'Device' class*/
$deviceCollection = Deep::getResourceModel('deep_cmdb/ci_collection')->addFieldToFilter('class_id',['eq' => 2]);
/*  declaring array containing device instances */
$deviceArray = [];
/*  each element of the collection is saved in an associative array, having as key the CODE field (first column of the import file) and as value the instance of the Device. The instance is a PHP object with all the data inside the Database for the record */
foreach($deviceCollection as $device){
    $deviceArray[$device->getCustCode()] = $device;
}
 
/*  declaring an array containing type-subtype tree */
$subtypesTree = [];
/*  declaring array used for id->name type traslation */
$typeIdentity = [];
/*  retrieving CMDB Type collection through static method getResourceModel in Deep class */
$typeCollection = Deep::getResourceModel('deep_cmdb/type_collection');
/*  retrieving CMDB Subtype collection through static method getResourceModel in Deep class */
$subtypeCollection = Deep::getResourceModel('deep_cmdb/subtype_collection');
 
foreach ($typeCollection as $type){
    /*  for each type, the array tree is populated assigning the name of the type converted into uppercase    
        and a child array as a value, whose key 'id' corresponds to the type id
    es: arrayTree [typeName] ['id'] = typeId */
    $subtypesTree [strtoupper($type->getName())] = ['id' => $type->getId()];
    /*  for each type, the identity array is configured by assigning the id as key and name
    converted uppercase as value the name attribute transformed into uppercase */
    $typeIdentity[$type->getId()] = strtoupper($type->getName());
}
 
/*  for each subtype, the types in the array tree are updated by updating child array, adding the element
    that represents a subtype having as key the name of the subtype transformed into uppercase, and as 
          value the id of the subtype. eg: arrayTree [typeName] [subtypeName] = subtypeId */
foreach ($subtypeCollection as $subtype){
    $subtypesTree[$typeIdentity[$subtype->getTypeId()]] = array_merge($subtypesTree[$typeIdentity[$subtype->getTypeId()]], [strtoupper($subtype->getName()) => $subtype->getId()]);
}
/*  retrieving Company collection through static method getResourceModel in Deep class */
$companyCollection = Deep::getResourceModel('deep_company/company_collection');
$companyArray = [];
foreach($companyCollection  as $company){
    /*  for each company, the array is configured by assigning as key the company name
transformed into uppercase and company id as value */
    $companyArray [strtoupper($company->getName())] = $company->getId();
}
 
/*  Retrieving values and keys of cmdb_ci_status list
Deep::helper('deep_list')   retieving list helper which is an utility class
->loadListValues('cmdb_ci_status')  retieving list elements
->toOptionHash()    the return collection is converted in a key = label array
array_flip      wrapping keys with vakues
array_change_key_case       keys case converted to uppercase */
$statusArray = array_change_key_case(array_flip(Deep::helper('deep_list')
        ->loadListValues('cmdb_ci_status')->toOptionHash()),CASE_UPPE
				
			

Was this guide helpful? Yes No

Share this Doc

Import Before Run Tutorial

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.