OK, took out extraneous lines. Still getting following error: perl CMDB_Sample.pl Can't call method "text" on an undefined value at CMDB_Sample.pl line 46.
#!/usr/bin/perl use strict; use warnings; use 5.014; use MIME::Base64; use Data::Dumper; use XML::Twig; use REST::Client; # Just in case we want to request JSON instead of XML from CMDB #use JSON; Just in case we want to request JSON instead of XML from CM +DB # Set the request parameters my $host = 'https://staplessb.service-now.com'; # Eg. User name="admin", Password="admin" for this code sample. my $user = 'USERNAME'; my $pwd = 'PASSWORD'; my $client = REST::Client->new(host => $host); my $encoded_auth = encode_base64("$user:$pwd", ''); my $header = 'checked_in,change_request,po_number,correlation_id,cfg_a +uto_provider,supported_by,u_service_catalogtrue,first_discovered,u_oe +m_part_numbe,sent_for_repair,owned_by,gl_account,managed_by,asset,u_p +roject_id,maintenance_schedule,u_chgfalse,category,delivery_date,inst +all_status,u_maintenance_window,virtualfalse,u_sub_class,dns_domain,u +_incident,u_parts_software_needed,change_control,checked_out,u_decomm +ission_stamp,purchase_date,order_date,u_template,skip_sync,lease_id,u +_sevice_options,vendor,sys_id,u_maint_contract_sla,sys_created_by,u_s +la_support_tie,subcategory,start_date,comments,location,link,value,un +verified,justification,u_disposal_date,sys_tags,sys_domain,link,value +,sys_mod_count,cost_cc,u_total_purchase_cost,monitor,sys_updated_on,w +arranty_expiration,invoice_number,fqdn,cost,u_retail_grp,u_server_typ +e,ip_address,u_manufacture_date_dummy,last_discovered,model_id,link,v +alue,manufacturer,u_incfalse,company,due,cfg_auto_management_server,u +_proposed,u_change,u_work_notes,u_store_location,asset_tag,discovery_ +source,u_application_id,assignment_group,can_print,u_problem,departme +nt,u_manufacture_date,support_group,link,value,u_exclusion,sys_create +d_on,u_display_name,u_alias,cost_center,short_description,sys_updated +_by,name,u_environment,u_function,due_in,u_change_approver,install_da +te,assigned,u_active_stamp,u_retail_group,serial_number,u_work_notes_ +_asset_,repair_contract_id,assigned_to,mac_address,model_number,sched +ule,u_ci_id,returned_from_repair,ng_assignment_flag,u_procurement_pro +duct_number,sys_class_name,attributes,u_location_stamp,fault_count,cf +g_auto_change'; $client->GET("/api/now/table/cmdb_ci?sysparm_limit=5&sysparm_fields=($ +header)", {'Authorization' => "Basic $encoded_auth", 'Accept' => 'application/xml'}); my $field= $ARGV[0] || 'u_ci_id'; my $input_xml = $client->responseContent(); my $twig = new XML::Twig; $twig->xparse($input_xml); my $root = $twig->root(); my @data = (); my @cols = split ',',$header; unshift @cols, $field; # added for sort for my $record ($root->children) { my @tmp=(); for my $col (@cols){ push @tmp,$record->first_child($col)->text; } push @data,[ @tmp ]; } my @sorted = sort { $b->[0] cmp $a->[0] } @data; print $header."\n"; for (@sorted){ print join ',',@$_[1..$#cols]; # exclude sort col print "\n"; } __DATA__ <?xml version="1.0" encoding="UTF-8"?> <response> <result> <checked_in></checked_in> <change_request></change_request> <po_number></po_number> <correlation_id></correlation_id> <cfg_auto_provider></cfg_auto_provider> <supported_by></supported_by> <u_service_catalog>true</u_service_catalog> <first_discovered></first_discovered> <u_oem_part_numbe></u_oem_part_numbe> <sent_for_repair></sent_for_repair> <owned_by></owned_by> <gl_account></gl_account> <managed_by></managed_by> <asset></asset> <u_project_id></u_project_id> <maintenance_schedule></maintenance_schedule> <u_chg>false</u_chg> <category></category> <delivery_date></delivery_date> <install_status></install_status> <u_maintenance_window></u_maintenance_window> <virtual>false</virtual> <u_sub_class></u_sub_class> <dns_domain></dns_domain> <u_incident></u_incident> <u_parts_software_needed></u_parts_software_needed> <change_control></change_control> <checked_out></checked_out> <u_decommission_stamp></u_decommission_stamp> <purchase_date></purchase_date> <order_date></order_date> <u_template></u_template> <skip_sync></skip_sync> <lease_id></lease_id> <u_sevice_options></u_sevice_options> <vendor></vendor> <sys_id></sys_id> <u_maint_contract_sla></u_maint_contract_sla> <sys_created_by></sys_created_by> <u_sla_support_tie></u_sla_support_tie> <subcategory></subcategory> <start_date></start_date> <comments></comments> <location> <link></link> <value></value> </location> <unverified></unverified> <justification></justification> <u_disposal_date></u_disposal_date> <sys_tags></sys_tags> <sys_domain> <link></link> <value></value> </sys_domain> <sys_mod_count></sys_mod_count> <cost_cc></cost_cc> <u_total_purchase_cost></u_total_purchase_cost> <monitor></monitor> <sys_updated_on></sys_updated_on> <warranty_expiration></warranty_expiration> <invoice_number></invoice_number> <fqdn></fqdn> <cost></cost> <u_retail_grp></u_retail_grp> <u_server_type></u_server_type> <ip_address></ip_address> <u_manufacture_date_dummy></u_manufacture_date_dummy> <last_discovered></last_discovered> <model_id> <link></link> <value></value> </model_id> <manufacturer></manufacturer> <u_inc>false</u_inc> <company></company> <due></due> <cfg_auto_management_server></cfg_auto_management_server> <u_proposed></u_proposed> <u_change></u_change> <u_work_notes></u_work_notes> <u_store_location></u_store_location> <asset_tag></asset_tag> <discovery_source></discovery_source> <u_application_id></u_application_id> <assignment_group></assignment_group> <can_print></can_print> <u_problem></u_problem> <department></department> <u_manufacture_date></u_manufacture_date> <support_group> <link></link> <value></value> </support_group> <u_exclusion></u_exclusion> <sys_created_on></sys_created_on> <u_display_name></u_display_name> <u_alias></u_alias> <cost_center></cost_center> <short_description></short_description> <sys_updated_by></sys_updated_by> <name></name> <u_environment></u_environment> <u_function></u_function> <due_in></due_in> <u_change_approver></u_change_approver> <install_date></install_date> <assigned></assigned> <u_active_stamp></u_active_stamp> <u_retail_group></u_retail_group> <serial_number></serial_number> <u_work_notes__asset_></u_work_notes__asset_> <repair_contract_id></repair_contract_id> <assigned_to></assigned_to> <mac_address></mac_address> <model_number></model_number> <schedule></schedule> <u_ci_id></u_ci_id> <returned_from_repair></returned_from_repair> <ng_assignment_flag></ng_assignment_flag> <u_procurement_product_number></u_procurement_product_number> <sys_class_name></sys_class_name> <attributes></attributes> <u_location_stamp></u_location_stamp> <fault_count></fault_count> <cfg_auto_change></cfg_auto_change> </result> </response>';

In reply to Re^4: Need help with node names for creating header line by vlturner
in thread Need help with node names for creating header line by vlturner

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.