TD14SP1: Content Importer command line fails; examples need more clarity

Hi. I'm unable to import seemingly-valid content, and as part of reducing steps to repeat running Content Importer, I was pleased to find a command line version exists. But I can't get it working, right from the start.

Documentation reference: https://docs.sdl.com/796504/698806/sdl-tridion-docs-14-sp2/contentimporter-run

This is the test.config file I made based on the help topic:

<importJob>

  <connectionId>foo.bar.com/.../connectionId>

  <!-- actionType options could be convert-and-import, import, and import-translation; example file used ConvertAndImport -->
  <actionType>Import</actionType>

  <!-- Relevant to all types of import. Should only have one type of content, e.g. maps but not topics. If req'd, create one subfolder per content type. -->
  <inputPath>C:\Users\me\Desktop\input</inputPath>

  <!-- Relevant to all types of import. Target folder in repository. If subfolders exist in source folder, appropriate subfolders are made in target folder. -->
  <repositoryPath>General/Manuals/MyImport/Topics</repositoryPath>

  <defaultLanguage>
    <value>VLANGUAGEEN</value>
    <label>en</label>
    <description>English</description>
  </defaultLanguage>

  <defaultRendition>
    <value>VRESLOW</value>
    <label>Low</label>
    <description />
  </defaultRendition>

</importJob>

1. Upon running with "C:\Program Files\SDL\Content Importer\14.0\ContentImporter.exe" run test.config:

Error loading job 'test.config'. The connection with the ID 'https://foo.bar.com/ISHWS' cannot be found.

I can absolutely guarantee my connection to https://foo.bar.com/ISHWS is valid and accessible. It fails in the same manner with all the combinations of foo.bar.com/ISHWS, foo.bar.com/.../ishws, etc.

2. The actionType value in the example does not match the list of command line arguments in the parent topic, which is the closest thing I can find to an actual listing of values. The help option doesn't provide any valid list of values.

I'll no doubt have many more questions if I have to do this with Standard Import, but right now I want to get this working on Without Conversion.

Thanks!

Neman

  • I don't have any experience with command line version, but the UI version target folder doesn't require "General" as part of the folder path. Also the actiontype should be convertandimport unless you already have a filemap file generated. The UI version allows you to add an account, which in our case needed a trailing forward slash after ISHWS.

  • It seems that documentation should be updated.

    The right way of using:

    <connectionId>UserName:YourUserName@foo.bar/ishws/infoshareauthor</connectionId>

  • Thank you! I'm finally digging back into this problem. FYI the <connectionId> is noted as such in the SP3 version of the documentation, but not SP2 or SP1. The SP3 docs also include a new <fileFormatType> element in the config. I'm working with SP1 and SP2, so it's not yet clear if that's a better example across all versions, or an SP3-specific example. I'll report back to this ticket once is correctly functioning.

  • We don't use SSO - it's all local accounts for us - so UserName:email@company.com isn't working. All I get is Error loading job 'myconfig.config'. The connection with the ID 'UserName:email@company.com/ishws/infoshareauthor' cannot be found.

    My local account has that email address associated with it, but that doesn't seem to be the answer. It's also not yet clear what the role of /infoshareauthor is in the connectionId

    I've opened a ticket with the support team to help getting a decent working example. Hang tight!

  • Got it, thanks to help from Frank G in support!

    <connectionId>UserName:DocsUserName@DocsBaseURL/ishws/infoshareauthor</connectionId>

    It's not a function of SSO vs. local accounts; I misinterpreted the foo.bar as my user's domain, but it's actually the Docs machine's base URL. This works for me:

    User ID: Neman Syed

    Docs URL: https://ccms.company.com/ISHCM

    Docs Base URL: ccms.company.com

    Working Connection ID: <connectionId>UserName:Neman Syed@ccms.company.com/ishws/infoshareauthor</connectionId>

    I'll post a working example config file as a reply to my original question.

  • Okay! Got it, thanks to help from Frank G in support! This is the syntax of the connectionId:

    <connectionId>UserName:DocsUserName@DocsBaseURL/ishws/infoshareauthor</connectionId>

    It's not a function of SSO vs. local accounts; I misinterpreted foo.bar in the documentation example as my user's domain, but it's actually the Docs machine's base URL. This works for me:

    User ID: Neman Syed

    Docs URL: https://ccms.company.com/ISHCM

    Docs Base URL: ccms.company.com

    Working Connection ID: <connectionId>UserName:Neman Syed@ccms.company.com/infoshareauthor</connectionId>

    I just completed a command line import. Here's my command line (I'm using the 14SP2 client against a 14SP2 server):

    "C:\Program Files\SDL\Content Importer\14.0\ContentImporter.exe" run "C:\Users\NemanSyed\Desktop\ContentImporterParameters.config"

    Here's the content of my working ContentImporterParameters.config (the actual filename is irrelevant):

    <importJob>

    <!-- UserName is a combination of your Docs user ID @ your Docs URL -->
    <connectionId>UserName:Neman Syed@ccms.company.com/ishws/infoshareauthor</connectionId>

    <!-- actionType options could be convert-and-import, import, and import-translation; example file used ConvertAndImport, we typically use Without Conversion, so Import -->
    <actionType>Import</actionType>

    <!-- Relevant to all types of import. Should only have one type of content, e.g. maps but not topics. If req'd, create one subfolder per content type. No trailing slash. -->
    <inputPath>C:\Users\Infoshare\Desktop\NewMaps</inputPath>

    <!-- Relevant to all types of import. Target folder must exist in repository and be of the correct type. If subfolders exist in source folder, appropriate subfolders are made in target folder. No leading slash. -->
    <repositoryPath>General/Imports/2021-05-11</repositoryPath>

    <!-- Explicitly set for Standard Import (convert-and-import). Seems implicit for Without Conversion (import). -->
    <waitAfterConversion>false</waitAfterConversion>

    <!-- Required for Standard Import (convert-and-import). Probably not relevant for Without Conversion (import). -->
    <!-- <defaultLanguage>
    <value>VLANGUAGEEN</value>
    <label>en</label>
    <description>English</description>
    </defaultLanguage> -->

    <!-- Required for Standard Import (convert-and-import). Probably not relevant for Without Conversion (import). -->
    <!-- <defaultRendition>
    <value>VRESLOW</value>
    <label>Low</label>
    <description/>
    </defaultRendition> -->

    <!-- Required for Standard Import (convert-and-import). Seems implicit for Without Conversion (import). -->
    <reassignIds>false</reassignIds>

    <!-- Required for Standard Import (convert-and-import). Seems implicit for Without Conversion (import). -->
    <useFileNames>false</useFileNames>

    </importJob>

    Here's a super-handy tip: Perform any import, using the GUI. Then go to C:\Users\username\AppData\Local\SDL\InfoShare Client\14.0\Imports. You'll find some number-named files without extensions, like -5552240 or 2018527048. Open one in a text editor. There's the config file created by the Content Importer GUI to run the job you just did.

    Hope it helps!