Run your entire business on Zoho with our unified cloud software, designed to help you break down silos between departments and increase organizational efficiency.
require 'ZOHOCRMSDK2_0'
class Blueprint
def self.get_blueprint(module_api_name, record_id)
# """
# This method is used to get a single record's Blueprint details with ID and print the response.
# :param module_api_name: The API Name of the record's module
# :param record_id: The ID of the record to get Blueprint
# """
# """
# example
# module_api_name = "Leads"
# record_id = "3409643000002469044"
# """
# Get instance of BluePrintOperations Class that takes module_api_name and record_id as parameter
bpo = BluePrint::BluePrintOperations.new(record_id, module_api_name)
# Call get_blueprint method
response = bpo.get_blueprint
unless response.nil?
status_code = response.status_code
# Get the status code from response
print "\n Status Code :" + status_code.to_s
if [204, 304].include? status_code
print(status_codes == 204 ? 'No Content' : 'Not Modified')
return
end
# Check if expected instance is received.
if response.is_expected
# Get object from response
response_handler = response.data_object
# Check if expected ResponseWrapper instance is received
if response_handler.is_a? BluePrint::ResponseWrapper
# Get the obtained BluePrint instance
blueprint = response_handler.blueprint
# Get the ProcessInfo instance of the obtained BluePrint
process_info = blueprint.process_info
# Check if ProcessInfo is not None
unless process_info.nil?
print "\n ProcessInfo Field-ID: "
# Get the Field ID of the ProcessInfo
print process_info.field_id
# Get the isContinuous of the ProcessInfo
print "\n ProcessInfo isContinuous: "
print process_info.is_continuous
# Get the API Name of the ProcessInfo
print "\n ProcessInfo API Name: "
print process_info.api_name
# Get the Continuous of the ProcessInfo
print "\n ProcessInfo Continuous: "
print process_info.continuous
# Get the FieldLabel of the ProcessInfo
print "\n ProcessInfo FieldLabel: "
print process_info.field_label
# Get the Name of the ProcessInfo
print "\n ProcessInfo Name: "
print process_info.name
# Get the ColumnName of the ProcessInfo
print "\n ProcessInfo ColumnName: "
print process_info.column_name
# Get the FieldValue of the ProcessInfo
print "\n ProcessInfo FieldValue: "
print process_info.field_value
# Get the ID of the ProcessInfo
print "\n ProcessInfo ID: "
print process_info.id.to_s
# Get the FieldName of the ProcessInfo
print "\n ProcessInfo FieldName: "
print process_info.field_name
end
# Get the list of transitions from BluePrint instance
transitions = blueprint.transitions
transitions.each do |transition|
next_transitions = transition.next_transitions
next_transitions.each do |next_transition|
# Get the ID of the NextTransition
print "\n Next transition ID: "
print next_transition.id.to_s
# Get the Name of the NextTransition
print "\n Next transition Name: "
print next_transition.name
end
print 'Transition PercentPartialSave: '
print transition.percent_partial_save
data = transition.data
unless data.nil?
# Get the ID of the Record
print 'Record ID: '
print data.id.to_s
# Get the createdBy User instance of the Record
created_by = data.created_by
# Check if created_by is not None
unless created_by.nil?
# Get the ID of the created_by User
print "\n Record Created By User-ID: "
print created_by.id.to_s
# Get the Name of the created_by User
print "\n Record Created By User-Name: "
print created_by.name
end
# Get the CreatedTime of the Record
created_time = data.created_time
unless created_time.nil?
print "\n Record Created Time:"
print created_time
end
# Get the ModifiedTime of each Record
modified_time = data.modified_time
unless modified_time.nil?
print "\n Record Modified Time:"
print modified_time
end
# Get the modified_by User instance of the Record
modified_by = data.modified_by
# Check if modifiedBy is not None
unless modified_by.nil?
# Get the ID of the modified_by User
print "\n Record Modified By User-ID: "
print modified_by.id.to_s
# Get the Name of the modified_by User
print "\n Record Modified By User-Name: "
print modified_by.name
end
# Get the list of obtained Tag instance of the Record
tags = data.tag
if !tags.nil? && tags.size.positive?
tags.each do |tag|
# Get the Name of each Tag
print "\n Record Tag Name: "
print tag.name
# Get the Id of each Tag
print "\n Record Tag ID: "
print tag.id.to_s
end
end
data.get_key_values.each do |k, v|
print "\n"
print k
print v
end
end
# Get the NextFieldValue of the Transition
print "\n Transition NextFieldValue: "
print transition.next_field_value
# Get the Name of each Transition
print "\n Transition Name: "
print transition.name
# Get the CriteriaMatched of the Transition
print "\n Transition CriteriaMatched: "
print transition.criteria_matched
# Get the ID of the Transition
print "\n Transition ID: "
print transition.id.to_s
print "\n Transition Fields: "
fields = transition.fields
fields.each do |field|
# Get the Webhook of each Field
print "\n Webhook"
print field.webhook
# Get the JsonType of each Field
print "\n JsonType"
print field.json_type
# Get the DisplayLabel of each Field
print "\n DisplayLabel"
print field.display_label
# Get the DataType of each Field
print "\n DataType"
print field.data_type
# Get the ColumnName of each Field
print "\n ColumnName"
print field.column_name
# Get the PersonalityName of each Field
print "\n PersonalityName"
print field.personality_name
# Get the ID of each Field
print "\n ID"
print field.id.to_s
# Get the TransitionSequence of each Field
print "\n TransitionSequence"
print field.transition_sequence
if field.mandatory.nil?
# Get the Mandatory of each Field
print "\n mandatory"
print field.mandatory
end
# Get the obtained Layout instance
layout = field.layouts
# Check if layout is not null
unless layout.nil?
# Get the ID of the Layout
print "\n Layout ID:"
print layout.id.to_s
# Get the Name of the Layout
print "\n Layout Name:"
print layout.name
end
# Get the APIName of each Field
print "\n APIName :"
print field.api_name
# Get the Content of each Field
print "\n Content :"
print field.content
# Get the SystemMandatory of each Field
if field.system_mandatory.nil?
print "\n System_mandatory"
print field.system_mandatory
end
# Get the obtained Crypt instance
print "\n Crypt:"
# Get the Criteria of each Field
criteria = field.criteria
print_criteria(criteria) unless criteria.nil?
related_details = field.related_details
unless related_details.nil?
unless related_details.display_label.nil?
print "\n RelatedDetails Display Label: "
print related_details.display_label
end
unless related_details.module
module_ins = elated_details.module
unless module_ins.layout.nil?
layout = module_ins.layout
print "\n Related Details Module Layout ID: "
print layout.id
print "\n Related Details Module Layout Name: "
print layout.name
end
unless module_ins.display_label.nil?
print "\n Related Details Module Display Label:: "
print module_ins.display_label
end
print "\n Related Details Module API Name: "
print module_ins.api_name
print "\n Related Details Module : "
print module_ins.module
print "\n Related Details Module Name: "
print module_ins.module_name
end
print "\n RelatedDetails ID : "
print related_details.id
print "\n RelatedDetails Type : "
print related_details.type
print "\n RelatedDetails API Name: "
print related_details.api_name
end
crypt = field.crypt
unless crypt.nil?
# Get the Crypt Mode
print "\nField Crypt Mode:"
print crypt.mode
# Get the Crypt Column
print "\nField Crypt Column:"
# Get the Crypt Table
print crypt.column
print "\nField Crypt Table:"
print crypt.table
# Get the Crypt Status
print "\nField Crypt Status:"
print crypt.status
end
# Get the FieldLabel of each Field
print "\n Field Label"
print field.field_label
tooltip = field.tooltip
unless tooltip.nil?
# Get the Name of the ToolTip
print "\n Tooltip Name "
print tooltip.name
# Get the Value of the ToolTip
print "\n Tooltip Value "
print tooltip.value
end
# Get the CreatedSource of each Field
print "\n Created Source"
print field.created_source
unless field.read_only
print "\n ReadOnly:"
print field.read_only
end
# Get the FieldReadOnly of each Field
unless field.field_read_only
print "\n FieldReadOnly:"
print field.field_read_only
end
# Get the obtained AssociationDetails instance
association_details = field.association_details
unless association_details.nil?
# Get the obtained LookupField instance
lookup_field = association_details.lookup_field
unless lookup_field.nil?
# Get the ID of the LookupField
print "\nField AssociationDetails LookupField ID: "
print lookup_field.id.to_s
# Get the Name of the LookupField
print "\nField AssociationDetails LookupField Name: "
print lookup_field.name
end
# Get the obtained LookupField instance
related_field = association_details.related_field
unless related_field.nil?
# Get the ID of the RelatedField
print "\nField AssociationDetails RelatedField ID: "
print related_field.id.to_s
# Get the Name of the RelatedField
print "\nField AssociationDetails RelatedField Name: "
print related_field.name
end
end
# Get the DisplayLabel of each Field
print "\n Display Label"
print field.display_label
unless field.quick_sequence_number
print "\n QuickSequenceNumber:"
print field.quick_sequence_number
end
unless field.custom_field
# Get if the Field is a CustomField
print "\n CustomField:"
print field.custom_field
end
unless field.visible
# Get the Visible of each Field
print "\n Visible:"
print field.visible
end
unless field.length
# Get the Length of each Field
print "\n Length:"
print field.length
end
print "\n DecimalPlace:"
# Get the DecimalPlace of each Field
print field.decimal_place
view_type = field.view_type
unless view_type.nil?
# Get the View of the ViewType
print "\n View:"
print view_type.view
# Get the Edit of the ViewType
print "\n Edit:"
print view_type.edit
# Get the Create of the ViewType
print "\n Create:"
print view_type.create
# Get the QuickCreate of the ViewType
print "\n Quick Create:"
print view_type.quick_create
end
pick_list_values = field.pick_list_values
# Get the DisplayValue of each PickListValue
# Get the SequenceNumber of each PickListValue
# Get the ExpectedDataType of each PickListValue
# Get the ActualValue of each PickListValue
# Get each value from the map
# Get the SysRefName of each PickListValues
# Get the Type of each PickListValues
pick_list_values&.each do |pick_list_value|
# Get the DisplayValue of each PickListValue
print "\n DisplayValue:"
print pick_list_value.display_value
# Get the SequenceNumber of each PickListValue
print "\n SequenceNumber:"
print pick_list_value.sequence_number
# Get the ExpectedDataType of each PickListValue
print "\n ExpectedDataType:"
print pick_list_value.expected_data_type
# Get the ActualValue of each PickListValue
print "\n ActualValue :"
print pick_list_value.actual_value
pick_list_value.maps.each do |map|
# Get each value from the map
print "\n"
print map
end
# Get the SysRefName of each PickListValues
print "\nField PickListValue SysRefName: "
print pick_list_value.sys_ref_name
# Get the Type of each PickListValues
print "\nField PickListValue Type: "
print pick_list_value.type
end
# Check if multiSelectLookup is not None
multi_select_lookup = field.multiselectlookup
unless multi_select_lookup.nil?
# Get the DisplayValue of the MultiSelectLookup
print "\n DisplayLabel:"
print multi_select_lookup.display_label
# Get the LinkingModule of the MultiSelectLookup
print "\n LinkingModule:"
print multi_select_lookup.linking_module
# Get the LookupApiname of the MultiSelectLookup
print "\n LookupApiname:"
print multi_select_lookup.lookup_apiname
# Get the APIName of the MultiSelectLookup
print "\n APIName:"
print multi_select_lookup.api_name
# Get the ConnectedlookupApiname of the MultiSelectLookup
print "\n ConnectedlookupApiname:"
print multi_select_lookup.connectedlookup_apiname
# Get the ID of the MultiSelectLookup
print "\n ID:"
print multi_select_lookup.id.to_s
end
auto_number = field.auto_number
# Check if autoNumber is not None
unless auto_number.nil?
# Get the Prefix of the AutoNumber
print "\n Prefix"
print auto_number.prefix
# Get the Suffix of the AutoNumber
print "\n Suffix"
print auto_number.suffix
unless auto_number.start_number.nil?
# Get the StartNumber of the AutoNumber
print "\n StartNumber"
print auto_number.start_number
end
end
end
# Get the CriteriaMessage of each Transition
print "\n Transition CriteriaMessage: "
print transition.criteria_message
end
# Check if the request returned an exception
elsif response_handler.is_a? BluePrint::APIException
exception = response_handler
# Get the Code
print "\n code:"
print exception.code.value
# Get the Status
print "\n status:"
print exception.status.value
# Get the details map
exception.details.each do |k, v|
print "\n"
print k
print v
print "\n"
end
# Get the Message
print "\n message:"
print exception.message.value
print "\n"
end
else
response_object = response.data_object
response_object.instance_variables.each do |field|
print field
print "\n"
print response_object.instance_variable_get(field)
end
end
end
end
end
Update Blueprint
require 'ZOHOCRMSDK2_0'
class Blueprint
def self.update_blueprint(module_api_name, record_id, transition_id)
# """
# This method is used to update a single record's Blueprint details with ID and print the response.
# :param module_api_name: The API Name of the record's module
# :param record_id: The ID of the record to update Blueprint
# :param transition_id: The ID of the Blueprint transition Id
# """
# """
# example
# module_api_name = "Leads"
# record_id = "3409643000002469044"
# transition_id = '3409643000001172075'
# """
# Get instance of BluePrintOperations Class that takes module_api_name and record_id as parameter
bpo = BluePrint::BluePrintOperations.new(record_id, module_api_name)
# Get instance of BodyWrapper Class that will contain the request body
bw = BluePrint::BodyWrapper.new
# Get instance of BluePrint Class
blue_print = BluePrint::BluePrint.new
# Set transitionId to the BluePrint instance
blue_print.transition_id = transition_id
# Get instance of Record Class
data = Record::Record.new
data.add_key_value('Phone', '8940372937')
data.add_key_value('Notes', 'Updated via blueprint')
# Set data to the BluePrint instance
blue_print.data = data
# List to contain BluePrint instances
# Add BluePrint instance to the list
blue_print_list = [blue_print]
# Set the list to bluePrint in BodyWrapper instance
bw.blueprint = blue_print_list
# Call updateBluePrint method that takes BodyWrapper instance as parameter
response = bpo.update_blueprint(bw)
unless response.nil?
status_code = response.status_code
# Get the status code from response
print "\n Status Code :" + status_code.to_s
# Check if expected instance is received.
if response.is_expected
# Get object from response
action_response = response.data_object
# Check if SuccessResponse instance is received.
if action_response.is_a? BluePrint::SuccessResponse
success_response = action_response
# Get the Code
print 'code:'
print success_response.code.value
# Get the Status
print "\n status:"
print success_response.status.value
# Get the message
print "\n message:"
print success_response.message.value
# Get the details map
success_response.details.each do |k, v|
print "\n"
print k
print v
print "\n"
end
# Check if APIException instance is received.
elsif action_response.is_a? BluePrint::APIException
api_exception = action_response
# Get the Code
print 'code:'
print api_exception.code.value
# Get the Status
print "\n status:"
# Get the message
print api_exception.status.value
print "\n message:"
print api_exception.message.value
# Get the details map
api_exception.details.each do |k, v|
print "\n"
print k
print v
print "\n"
end
print "\n"
end
else
response_object = response.data_object
response_object.instance_variables.each do |field|
print field
print "\n"
print response_object.instance_variable_get(field)
end
end
end
end
end