[rt-users] RT-Assets-Import-CSV surprises

Joop jvdwege at xs4all.nl
Sat Feb 8 08:37:17 EST 2014


Hi All,

Still trying out new things :-)
Found another thing which I think is a shortcut in the documentation. 
Quoting one of the examples:
Set( $AssetsImportUniqueCF, 'Service Tag' );
Set( %AssetsImportFieldMapping,
     # 'RT custom field name' => 'CSV field name'
     'Service Tag'            => 'serviceTag',
     'Location'               => 'building',
     'Serial #'               => 'serialNo',
     'Catalog'                => \'Hardware',
);

As I see it both Location and Serial # are Asset CustomFields and not 
one of the basic fields like id,Name,Description. Using this as an 
example I tried to import our UPS Catalog which looks like the following:
id,Name,Description,Status,Type,UPS Batt replaced,UPS Firmware 
revision,UPS Serial Number
553,wag-ups1,APC SmartUPS 
3000,production,BackupPower,2005-08-17,666.6.l,JS0534006874

With the following config part it will import the assets but not the 
last 3 columns which are the CF's of this type.

Set( $AssetsImportUniqueCF, undef );
Set( %AssetsImportFieldMapping,
     # 'RT custom field name' => 'CSV field name'
       'id'                     => 'id',
       'Name'               => 'Name',
       'Description'               => 'Description',
       'Catalog'                 =>\'BackupPower',
       'UPS Batt replaced'       => 'UPS Batt replaced',
       'UPS Firmware revision'   => 'UPS Firmware revision',
       'UPS Serial Number'       => 'UPS Serial Number',
    );

Looking at the output of debug shows that it sees the last 3 columns but 
it doesn't do anything with it. Putting some prints in CSV.pm and 
looking at the code I found out that the config should read:

Set( $AssetsImportUniqueCF, undef );
Set( %AssetsImportFieldMapping,
     # 'RT custom field name' => 'CSV field name'
       'id'                     => 'id',
       'Name'               => 'Name',
       'Description'               => 'Description',
       'Catalog'                 =>\'BackupPower',
       'CF.UPS Batt replaced'       => 'UPS Batt replaced',
       'CF.UPS Firmware revision'   => 'UPS Firmware revision',
       'CF.UPS Serial Number'       => 'UPS Serial Number',
    );

Running the importer with --update will indeed now update the last 3 
columns.

Nowhere in the docs it is mentioned that you need to put CF. in front of 
CustomFields.

Joop



More information about the rt-users mailing list