Oracle WebCenter Content Document Transfer Utility - Oracle Fusion Applications 11g

The WebCenter Content Document Transfer Utility for Oracle Fusion Applications 11g is a set of command line interface tools written in Java providing content import and export capabilities.

Two forms of the transfer utilities currently exist:

  1. The preferred generic soap-based transfer utility (oracle.ucm.fa_genericclient_11.1.1.jar) which requires the Oracle JRF Web Service supporting libraries and uses JAX/WS over HTTPS to communicate with the Oracle WebCenter Content Server.
  2. The original RIDC-based transfer utility (oracle.ucm.fa_client_11.1.1.jar) which is a feature-set Java library that encapsulates Oracle WebCenter Content RIDC and uses standard HTTPS to communicate with the Oracle WebCenter Content server. Be aware that this form of the tool is impending deprecation in FA environments due to authentication obstacles which currently cannot be handled universally and programmatically.

Tools belonging to the generic soap-based transfer utility begin with the package oracle.ucm.idcws.client for example oracle.ucm.idcws.client.UploadTool
Tools belonging to the RIDC-based transfer utility begin with the package oracle.ucm.client for example oracle.ucm.client.UploadTool

Customers whom have deviated from standard Oracle Access Manager (OAM) web single sign-on for access to their Fusion Applications should utilize the generic soap-based transfer utility (or the underlying GenericSoapPort web service directly) to access the Content Server.

The RIDC-based transfer utility has support for "Basic" authentication and restricted support for OAM 11g form-based authentication. Should the "/cs/idcplg" HTTPS entry point utilized by the RIDC-based transfer utility not be exposed on the customer's environment, or when accessed redirect to a federated single-sign-on solution, or require JavaScript to complete the authentication challenge, the generic soap-based transfer utility must be utilized instead.

The generic soap-based transfer utility accesses the Content Server through its GenericSoapPort web service (/idcws/GenericSoapPort) and requires the client to specify a suitable UsernameToken-based Oracle WSM Security Client Policy that matches the Server's configured service policy.

** SAML and X509 client policies are not currently supported through the generic soap-based transfer utility, but can in theory by leveraged should the client create their own web service proxies by consuming the GenericSoapPort WSDL. Consult the WebCenter Content Web Service Integration Documentation and the following article Moving to Oracle WebCenter Content 11g Web Services for more information on developing directly against the GenericSoapPort. For maximum compatibility WebCenter recommends Java consumers of this web service using 11g Middleware uptake the JRF JAX/WS stack (javax.xml.ws.spi.Provider = oracle.j2ee.ws.common.jaxws.ProviderImpl) as opposed to the WebLogic JAX/WS stack (javax.xml.ws.spi.Provider = weblogic.wsee.jaxws.spi.WLSProvider).

Java Runtime Requirements

Oracle Java 6 SE release 1.6.0_20 is the earliest version of the Oracle (/ Sun Microsystems) Java Runtime Environment that tested successfully with the transfer tools. Oracle strongly recommends that the customer leverage the latest Java 6 or 7 Oracle Java SE release update available so as to ensure important bug and security fixes are applied. Obtain the JVM name** and Java version by providing the "-version" option to the java executable.

Library Dependencies

The generic soap-based transfer utility (oracle.ucm.fa_genericclient_11.1.1.jar) has dependencies on the JRF JAX/WS web service client stack and WSM. The stack in turn also looks for Fusion Middleware Platform Security and Audit Framework configuration files and libraries and will log warnings in the event these are unavailable.

By consuming the generic soap-based transfer utility from a fully-patched Fusion Apps PS6 (11g 11.1.1.7.0) Oracle Home, a classpath library reference to the JRF client manifest jar <MW_HOME>/oracle_common/modules/oracle.jrf_11.1.1/jrf-client.jar should be all that is required to take up the stack and its dependencies. (MW_HOME refers to the 11g 11.1.1.7.0 Oracle Fusion Middleware Home with relevant patches applied - i.e. latest cumulative PS6 Web Services patch).

If however you need to invoke the generic soap-based transfer utility standalone outside an Oracle Home, you will need to extract the relevant libraries from the patched PS6 home and incorporate these in to the client classpath manually.
Dependent libraries sourced from any other location (JDeveloper, non-FA Middleware homes etc) are NOT certified.

The RIDC-based transfer utility (oracle.ucm.fa_client_11.1.1.jar) should have no additional library dependencies. The feature-set Java library that bundles the RIDC-based transfer utility repackages the RIDC classes and leverages the HTTP client provided by the JVM.

Program Options

For the Oracle Fusion Applications 11g use-case, the transfer utilities have been configured with a specific set of default settings and restrictions in place. This includes settings such as:

These defaults/restrictions are set inside .properties files (e.g. UploadTool.properties) found in the oracle/ucm/client directory of the transfer utility jar file.

Standard program options applicable for the Fusion Applications use-case are described below:

DownloadTool Program Options (for FA)
-------------------------------------

--url               Content Server Protocol-Specific Connection URL
--username          Username to leverage
--password          Password supplied on command-line
--passwordFile      Password read from text file on first line
--policy            JAX/WS Client Policy - e.g. oracle/wss_username_token_over_ssl_client_policy

--dID               ID uniquely identifying a specific revision of a content item to download; ID is unique across repository

Alternatively, provide dDocName and RevisionSelectionMethod to identify the dID to leverage

--dDocName          ID identifying a content item; multiple revisions of a doc can share the same dDocName value - but otherwise it is unique;
--RevisionSelectionMethod Which revision to download; Valid values: Latest / LatestReleased.  Defaults to Latest

--outputFile        Output/Destination local file to write; if not provided dOriginalName of file provided at checkin time is utilized.

Notes:
A content item is comprised of one or more revisions of a file.
Revisions of a content item share the same dDocName value.
Every revision in the system has a unique dID value allowing direct access.

To download a specific revision of a content item, specify the unique dID identifier.
To download the latest (or latest released) revision of a content item, specify a dDocName value and a revision selection method.


UploadTool Program Options (for FA)
-----------------------------------

--url               Content Server Protocol-Specific Connection URL
--username          Username to leverage
--password          Password supplied on command-line
--passwordFile      Password read from text file on first line
--policy            JAX/WS Client Policy - e.g. oracle/wss_username_token_over_ssl_client_policy

--primaryFile       Fully-qualified path of local primary file to upload

--dDocAccount       Destination Security Account

--dDocTitle         Document Title

--dDocName          If wanting to version an existing document - provide existing document's dDocName value
--checkout          Perform checkout first if adding a new revision [true/false(default)]
----ignoreCheckoutErrorNeg22 ignore error -22 when performing a checkout. This indicates the user has already checked-out the document. [true(default)/false]

Notes:
A content item is comprised of one or more revisions of a file.
Revisions of a content item share the same dDocName value.
Every revision in the system has a unique dID value allowing direct access.

When creating a new content item, system generated dDocName and dID values will be returned.
To add a version/revision to an existing content item, specify --dDocName when performing the checkin.
Note that the existing content item must be checked out in order to add a new revision.


SearchTool Program Options (for FA)
-----------------------------------

--url               Content Server Protocol-Specific Connection URL
--username          Username to leverage
--password          Password supplied on command-line
--passwordFile      Password read from text file on first line
--policy            JAX/WS Client Policy - e.g. oracle/wss_username_token_over_ssl_client_policy

--allDocs           Search all documents including old revisions [true/false(default)]; By default we search only the latest released

--dID               field expression - Search on unique id (number)
--dDocName          field expression - Search on content item identifier (string)
--dDocTitle         field expression - Search on document title (string)

--QueryText         Explicit query text to invoke to locate documents
--SearchQueryFormat Format the supplied search query text was provided in; defaults to UNIVERSAL

--SortField         Sort search query results based on the specified metadata field
--SortOrder         The sort order: ASC (ascending) / DESC (descending); defaults to ASC
--SortSpec          Sort search query results based on multiple criteria using the specified custom ORDER BY

--StartRow          The row to begin the search results display (after having applied any sort); defaults to 1
--EndRow            The row to end the search results display
--ResultCount       Maximum number of search results to return to client; defaults to 20
                    See notes below regarding the upper limit for this setting.

--defaultFields     Output core metadata fields (dID, dDocName, dDocTitle, dDocLastModifiedDate, dDocLastModifier) [true(default)/false]
--moreFields        Output a more detailed set of metadata fields (fields above plus dOriginalName, VaultFileSize etc) [true/false(default)]
--fields            User-specified fields to render e.g. --fields=dID,dOriginalName,VaultFileSize --delimiter=, --defaultFields=false

Notes:
The tool accepts either a full --QueryText query string from the caller, or will dynamically synthesize one by ANDing together
individual field search expressions (dID/dDocName/etc) supplied as program options.

Standard search configuration employed by the server limits the maximum number of results that can be returned in a search.
For DATABASE.METADATA and DATABASE.FULLTEXT engines, this is 10000 items, and for the ORACLETEXTSEARCH engine, 2000 items.

See Advanced SearchTool Program Options for information on available query operators, additional search field expressions and formatting of output data.


StorageTool Program Options (for FA)
------------------------------------

--url               Content Server Protocol-Specific Connection URL
--username          Username to leverage
--password          Password supplied on command-line
--passwordFile      Password read from text file on first line
--policy            JAX/WS Client Policy - e.g. oracle/wss_username_token_over_ssl_client_policy

--dryRun            Candidates for storage rule switch are identified but no actual migration to securefile is performed. [true(default)/false]
                    
--abortOnFirstFailure  Abort the migration process should an individual document migration fail [true/false(default)]

--reindex           Documents migrated should be completely reindexed [true/false(default)]

--allDocs           Old revisions of documents should be included in the search for candidate documents [true(default)/false]

--ResultCount       Maximum number of candidate documents to identify for storage rule switch for this invocation of the tool.
                    e.g. --ResultCount=100 will throttle the tool and restrict candidate documents to a maximum of 100.
                    See SearchTool notes above regarding the upper limit for this setting.

Notes:
This tool works by first invoking a search for candidate documents, followed by iterating through the results and individually triggering on each
document the storage rule switch. The server-imposed limit on maximum number of results that can be returned in a search consequently applies.

Documents will not actually be migrated to securefile storage unless --dryRun=false is specified.

Should a specific document fail migration, documents migrated prior to the failure remain migrated regardless of the --abortOnFirstFailure setting.

Unless otherwise recommended by Oracle, reindex should be set to false (or not provided) - meaning document should bypass refinery and indexer stages.

The following advanced networking options can be specified if required (common to all tools):

--socketTimeout     Override socket timeout (value is specified in seconds)

--proxyHost         HTTP[S] proxy host
--proxyPort         HTTP[S] proxy port number

--nonProxyHosts     No-proxy pattern defining hosts to which the proxy should not be applied - e.g. login.acme.com|*.internal.acme.com

--proxyUsername     Username (if applicable) for authenticating with the proxy
--proxyPassword     Password supplied on command-line for authenticating with the proxy
--proxyPasswordFile Password read from text file on first line for authenticating with the proxy

For debugging or silent invocation use-cases the options below are available (common to all tools):

--version           Print out tool revision/version

--ping              Perform PING_SERVER test to validate connection URL and credentials

--verbose           Verbose Output - log full Request/Response DataBinders
--quiet             Minimal Log Output
--silent            Log Messages Silenced

--log_file_name     Send program output to specified log file (rather than System.out)
--log_file_append   When value is true, log file is appended versus overwritten.

--simpleRIDCLogging RIDC debug messages are logged to the console

Connection URLs

The following connection mechanism are not generally available for FA consumption:

Sample Output

Sample upload invocation command - RIDC-based transfer utility:

java -classpath "oracle.ucm.fa_client_11.1.1.jar" oracle.ucm.client.UploadTool --url=http://ucmserver.com:16200/cs/idcplg
  --username=weblogic --password=welcome1 --primaryFile="/tmp/resume.doc" --dDocTitle="Resume of MSHANNON" --dDocAccount=/acme/sales

Alternatively:

java -jar oracle.ucm.fa_client_11.1.1.jar UploadTool --url=http://ucmserver.com:16200/cs/idcplg
  --username=weblogic --password=welcome1 --primaryFile="/tmp/resume.doc" --dDocTitle="Resume of MSHANNON" --dDocAccount=/acme/sales

Sample upload invocation command - generic soap-based utility:

If MW_HOME environment variable correctly set and jrf-client.jar found at standard location within 11g Middleware:

java -classpath "oracle.ucm.fa_genericclient_11.1.1.jar:$MW_HOME/oracle_common/modules/oracle.jrf_11.1.1/jrf-client.jar" 
  oracle.ucm.idcws.client.UploadTool --url=http://ucmserver.com:16200/idcws --policy=oracle/wss_username_token_client_policy
  --username=weblogic --password=welcome1 --primaryFile="/tmp/resume.doc" --dDocTitle="Resume of MSHANNON" --dDocAccount=/acme/sales

Alternatively:

java -jar oracle.ucm.fa_genericclient_11.1.1.jar UploadTool --url=http://ucmserver.com:16200/idcws --policy=oracle/wss_username_token_client_policy
  --username=weblogic --password=welcome1 --primaryFile="/tmp/resume.doc" --dDocTitle="Resume of MSHANNON" --dDocAccount=/acme/sales

If running outside an 11g Middleware - and explicitly specifying libraries:

export CUSTOM_CLASSPATH=/path/to/mwhome/extract//modules/com.bea.core.apache.commons.lang_2.1.0.jar:\
...
/path/to/mwhome/extract//oracle_common/modules/oracle.wsm.policies_11.1.1/wsm-seed-policies.jar:\
/path/to/mwhome/extract//oracle_common/modules/oracle.xdk_11.1.0/xml.jar:\
/path/to/mwhome/extract//oracle_common/modules/oracle.xdk_11.1.0/xmlparserv2_sans_jaxp_services.jar:\
/path/to/mwhome/extract//oracle_common/modules/org.jaxen_1.1.1.jar
(refer to JAX/WS Libraries)

java -jar oracle.ucm.fa_genericclient_11.1.1.jar UploadTool --url=http://ucmserver.com:16200/idcws --policy=oracle/wss_username_token_client_policy
  --username=weblogic --password=welcome1 --primaryFile="/tmp/resume.doc" --dDocTitle="Resume of MSHANNON" --dDocAccount=/acme/sales

Alternatively:

java -classpath $CUSTOM_CLASSPATH:oracle.ucm.fa_genericclient_11.1.1.jar oracle.ucm.idcws.client.UploadTool --url=http://ucmserver.com:16200/idcws
  --policy=oracle/wss_username_token_client_policy --username=weblogic --password=welcome1 
  --primaryFile="/tmp/resume.doc" --dDocTitle="Resume of MSHANNON" --dDocAccount=/acme/sales

Sample output:

Oracle WebCenter Content Document Transfer Utility
Oracle Fusion Applications
Copyright (c) 2013-2014, Oracle.  All rights reserved.
Performing upload (CHECKIN_UNIVERSAL) ...
Upload successful.
[dID=21537 | dDocName=UCMFA021487]

Sample download invocation command:

java -classpath "oracle.ucm.fa_client_11.1.1.jar" oracle.ucm.client.DownloadTool --url=http://ucmserver.com:16200/cs/idcplg
  --username=weblogic --password=welcome1 --dID=21537 --outputFile="/tmp/output.doc"

Alternatively:

java -jar oracle.ucm.fa_client_11.1.1.jar DownloadTool --url=http://ucmserver.com:16200/cs/idcplg
  --username=weblogic --password=welcome1 --dID=21537 --outputFile="/tmp/output.doc"

Sample output:

Oracle WebCenter Content Document Transfer Utility
Oracle Fusion Applications
Copyright (c) 2013-2014, Oracle.  All rights reserved.
Performing download (GET_FILE) ...
Download successful.
Wrote file "/tmp/output.doc".

The tools can also be invoked to perform a simple connection test by providing just the url, username, and password along with --ping option:

java -jar oracle.ucm.fa_client_11.1.1.jar DownloadTool --ping --url=http://ucmserver.com:16200/cs/idcplg
  --username=weblogic --password=welcome1

Sample output:

Oracle WebCenter Content Document Transfer Utility
Oracle Fusion Applications
Copyright (c) 2013-2014, Oracle.  All rights reserved.
Performing connection test (PING_SERVER) ...
Connection test successful.

The StorageTool is used to migrate applicable Oracle WebCenter Content documents created in Oracle Fusion Applications 11g Release 6 (11.1.6) and prior to securefile storage within the Oracle Database. By default it runs in dryRun (readonly) mode:

java -jar oracle.ucm.fa_client_11.1.1.jar StorageTool --url=http://ucmserver.com:16200/cs/idcplg
  --username=weblogic --password=welcome1

Sample output:

Oracle WebCenter Content Storage Migration Utility
Oracle Fusion Applications
Copyright (c) 2013-2014, Oracle.  All rights reserved.
Target storage rule "FusionStorageRule" identified on server.
Searching for candidate documents ...
Document with dID 205 is a candidate for storage migration.
Processed 1 documents, 1 are migration candidates, 0 require no migration.

To perform migration with the StorageTool --dryRun must be explicitly set to false:

java -jar oracle.ucm.fa_client_11.1.1.jar StorageTool --url=http://ucmserver.com:16200/cs/idcplg
  --username=weblogic --password=welcome1 --dryRun=false

Sample output:

Oracle WebCenter Content Storage Migration Utility
Oracle Fusion Applications
Copyright (c) 2013-2014, Oracle.  All rights reserved.
Target storage rule "FusionStorageRule" identified on server.
Searching for candidate documents ...
Performing storage migration for document with dID 205 ...
Processed 1 documents, 0 failed migration, 1 succeeded, and 0 skipped.

Advanced Program Options

The program options below are described for conciseness, but generally will not be utilized for the Oracle Fusion Applications 11g use-case:

Common to all tools:

--properties        Obtain program options from a properties file in classpath at the specified package-qualifed resource location
--propertiesFile    Obtain program options from a properties file at the specified file-path

Advanced DownloadTool Program Options
-------------------------------------

--outputDir         Can be leveraged in place of --outputFile to stream contents to a local file in specified output directory using dOriginalName provided at checkin time as the file name.
--md5               Return an MD5 message-digest of the downloaded stream as a 32 digit hexadecimal; --md5lowercase/--md5uppercase options are supported.
--md5Only           Whether to only perform MD5 operation without saving download stream to file system [true/false]
--rendition         Specify rendition to download: Primary / Web / Alternative

It is possible to include up to 10 custom key/value pairs in the service request binder provided to WebCenter Content using the following technique:
--k0                Custom binder metadata key - supplied to GET_FILE / DOC_INFO / DOC_INFO_BY_NAME
--v0                Custom binder metadata value associated with key (k0) above; e.g. --k0=XFND_EXPIRES --v0=1393231938509
...                 k1,v1,k2,v2,k3,v3,...
--k9                Custom binder metadata key; e.g. --k9=XFND_RANDOM
--v9                Custom binder metadata value associated with key (k9) above; e.g. --v9=8675309


Advanced UploadTool Program Options
-----------------------------------

--progressBar       (RIDC-based tool only) Present a progress bar showing upload progress

--primaryFileName   dOriginalName of primary file; If not specified defaults to filename of local source file being uploaded
--primaryContentType Content type of primary file; If not specified defaults to application/octet-stream

--dSecurityGroup    Destination Security Group; For FA import/export use-cases this is set by default to FAFusionImportExport
--dDocType          Destination Doc Type: Application / Binary / Document / System

--generateAlternate  A small text file is checked in as the "alternate" file alerting the user to consult the native/primary file. [true/false]; For FA import/export this defaults to true.
                    Enabling this option will significantly reduce post-processing checkin time should no rendition of the primary file be required.

--alternateFile     Fully-qualified path of local alternate file to upload; The file extension of the alternate file cannot be the same as that of the primary file.

--directory         Upload all files from the specified local directory
--threads           Number of concurrent upload worker threads to leverage when uploading files from a local directory
--throwOnThreadException whether in the event any task fails, the tool throws an exception at completion [true(default)/false]
                    Setting --throwOnThreadException=false can be useful in programmatic situations for processing UploadResults maps.

--Tool.AccountRequired Must a dDocAccount (Document Account) be specified at checkin [true/false]; For FA import/export this is intentionally set to true.

--Tool.AccountTransformed Should supplied account value be transformed [true/false]; For FA import/export this defaults to true.
                    When enabled, an input account value like "ACME/sales" is transformed to "ACME$/sales$"

It is possible to include up to 10 custom key/value pairs in the service request binder provided to WebCenter Content using the following technique:
--k0                Custom binder metadata key - supplied to CHECKIN_UNIVERSAL
--v0                Custom binder metadata value associated with key (k0) above; e.g. --k0=xComments --v0="Some Comments"
...                 k1,v1,k2,v2,k3,v3,...
--k9                Custom binder metadata key; e.g. --k9=dInDate
--v9                Custom binder metadata value associated with key (k9) above; e.g. --v9="2014-05-30 10:30:05Z"


Advanced SearchTool Program Options
-----------------------------------
As an alternate to --QueryText, one or more field search expressions can be provided:

--dID               Search on document id (number)
--dDocName          Search on document content name (string)
--dDocTitle         Search on document title (string)
--dOriginalName     Search on document original name /filename (string)
--dExtension        Search on document extension (string)
--xComments         Search on document comments field (string)

--dFileSize         Search on file size (number)

--dDocCreatedDate   Search on document create date (date)
--dDocLastModifiedDate Search on document last modified date (date)
--dInDate           Search on document release date (date)

--dSecurityGroup    Search on document security group (string)
--dDocAccount       Search on document account (string)

--dDocType          Search on document type (string)
--dFormat           Search on document format (string)

--dDocCreator       Search on document creator (string)
--dDocLastModifier  Search on document last modifier - revision specific (string)
--dDocAuthor        Search on document author - revision specific (string)

--dRevisionID       Search on document revision id (number); likely requires --allDocs option be set

--xStorageRule      Search on document storage rule (string)

--xCollectionID     Search on document stored in specified Folders_g collection


Supported operators for number fields: =, <=, >=, !=
Supported operators for string fields: =, !=, %=, !%=, ^=, $= 
Supported operators for date fields: <=, >=

Examples: 
--dID=5          : dID equals 5
--dID!=50        : dID not equal to 50
--dID<=100       : dID less than or equals 100
--dID>=100       : dID greater than or equals 100
--dDocName=FA123 : dDocName matches FA123
--dDocName^=FA   : dDocName starts with FA
--dDocName$=23   : dDocName ends with 23
--dDocName%=123  : dDocName contains substring 123
--dDocName!%=789 : dDocName does not contain substring 789
--dDocName!=FAFA : dDocName does not match FAFA
--dInDate>=2013-12-22 11:17:44Z : dates passed are always in iso8601 format with client time zone set to UTC


--collectionPath    Search for documents present in the Folders_g collection with the specified xCollectionPath; e.g. /Contribution Folders/CRM
                    The collection associated with the specified path is retrieved and its collection id is subsequently supplied to the ensuing search by way of an xCollectionID expression.

Formatting options:
--padData           whether to pad/crop search result data [true(default)/false] - applies to both field headers and the field values.
--writeFieldHeading write field headings out prior to the actual search results [true(default)/false]
--writeFieldNames   prefix each output search field with its field name [true/false(default)]

--delimiter         the delimiter string to output between each search result field (and field header)

--writeRowPrefix    whether to output row prefix string at the start of each row of results [true/false(default)]
--rowprefix         the string to output at the start of each row of results when writeRowPrefix flag is set

--writeRowSuffix    whether to output row suffix string at the end of each row of results [true/false(default)]
--rowsuffix         the string to output at the end of each row of results when writeRowSuffix flag is set

--fields            user supplied output fields to render; The --defaultFields is by default enabled which results in core fields always getting rendered;
                    If the caller specifies --defaultFields=false (and --moreFields=false), then only the fields listed in the --fields property will get output;
                    If on the other hand the default fields are set to render, fields listed in the --fields property augment/override the default included fields.
                    Fields are typically specified in the format dID,dDocName etc; they can also optionally include left/right pad information which is used when --padData is enabled.
                    e.g. dID#r10,dDocName#l30  means to right pad dID so that it is 10 characters in size, left pad 30 dDocName etc

--writeCounts       whether to output search result set size and total rows count matched by the query [true(default)/false]

--triggerRowsCount  whether the server should perform a count(*) query so as to accurately populate the total rows count [true(default)/false]

Advanced StorageTool Program Options
------------------------------------

--QueryText         An explicit query to invoke to locate candidate documents for storage migration
                    If no query text is supplied, the tool defaults to finding documents that don't match the target storage rule
--SearchQueryFormat Format the supplied search query text was provided in; defaults to UNIVERSAL

--SortField         Sort search query results based on the specified metadata field
--SortOrder         The sort order: ASC (ascending) / DESC (descending); defaults to ASC
--SortSpec          Sort search query results based on multiple criteria using the specified custom ORDER BY

--StartRow          The row to begin the search results display (after having applied any sort); defaults to 1
--EndRow            The row to end the search results display

--targetRule        Target storage rule; For FA this is intentionally set to FusionStorageRule.

As an alternate to --QueryText, one or more field search expressions can be provided:

--dID               Search on document id (number)
--dDocName          Search on document content name (string)
--dSecurityGroup    Search on document security group (string)
--dDocCreatedDate   Search on document create date (date)
--dDocLastModifiedDate Search on document last modified date (date)
--dInDate           Search on document release date (date)
--dFileSize         Search on file size (number)
--xStorageRule      Search on document storage rule (string)

Supported operators for number fields: =, <=, >=, !=
Supported operators for string fields: =, !=, %=, !%=, ^=, $= 
Supported operators for date fields: <=, >=

Examples: 
--dID=5          : dID equals 5
--dID!=50        : dID not equal to 50
--dID<=100       : dID less than or equals 100
--dID>=100       : dID greater than or equals 100
--dDocName=FA123 : dDocName matches FA123
--dDocName^=FA   : dDocName starts with FA
--dDocName$=23   : dDocName ends with 23
--dDocName%=123  : dDocName contains substring 123
--dDocName!%=789 : dDocName does not contain substring 789
--dDocName!=FAFA : dDocName does not match FAFA
--dInDate>=2013-12-22 11:17:44Z : dates passed are always in iso8601 format with client time zone set to UTC

Troubleshooting

Problem
When invoking the RIDC-based transfer utility using a HTTP[S] connection protocol, the following messages appear:
Session invalid, reauthorizing user for session ID: null
Error - Http status: Moved Temporarily

Solution
Invoke tool with --simpleRIDCLogging option. Check (outbound) request headers to determine if a valid "Cookie" header is submitted to the server matching earlier received applicable (inbound) "Set-Cookie" response headers. If cookies do not appear to be correctly returned to the server, ensure a supported version of Java is being utilized.

Problem
When invoking the generic soap-based transfer utility, the following messages appear:
SEVERE: java.io.FileNotFoundException: ./config/jps-config.xml (No such file or directory)
INFO: WSM-09004 Component auditing cannot be initialized.
INFO: Recipient Alias property not configured in the policy. Defaulting to encrypting with signers certificate.

Solution
Specify through Java system properties locations to relevant configuration files:

java -Doracle.security.jps.config=/path/to/jps-config.xml -Djava.util.logging.config.file=/path/to/logging.properties ... UploadTool

where jps-config.xml at minimum looks something like ...
------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<jpsConfig xmlns="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd
           jps-config-11_1.xsd"
           schema-major-version="11"
           schema-minor-version="1">
    <serviceProviders>
      <serviceProvider name="audit.provider" type="AUDIT" class="oracle.security.jps.internal.audit.AuditProvider"/>
    </serviceProviders>
    <serviceInstances>
      <serviceInstance name="audit" provider="audit.provider" location="./audit-store.xml">
        <property name="audit.filterPreset" value="None"/> <!-- None (default), Low, Medium, All or Custom -->
        <!-- <property name="audit.customEvents" value="JPS:CheckAuthorization"/> -->
        <property name="audit.maxDirSize" value ="0"/>
        <property name="audit.maxFileSize" value ="1048576"/>
        <property name="auditstore.type" value="file"/>
        <property name="audit.loader.repositoryType" value="File" />
        <property name="audit.timezone" value="utc"/>
        <property name="audit.logDirectory" value="/C:/temp"/>
      </serviceInstance>
    </serviceInstances>
    <jpsContexts default="default">
        <jpsContext name="default">
            <serviceInstanceRef ref="audit"/>
        </jpsContext>
    </jpsContexts>
</jpsConfig>

audit-store.xml at minimum looks something like ...
------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AuditConfig xmlns="http://xmlns.oracle.com/ias/audit/audit-2.0.xsd"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.oracle.com/ias/audit/audit-2.0.xsd audit-2.0.xsd">
</AuditConfig>

logging.properties looks something like ...
------------------------------------------------------------
handlers=java.util.logging.ConsoleHandler
.level=WARNING
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level=FINEST
# oracle.j2ee.level=FINEST

Revision History

JAX/WS Libraries

Should use of the transfer utilities be required outside an Oracle Home, the following PS6 libraries extracted from a patched Fusion Apps 11g Middleware at minimum are required in classpath in order to make a successful JAX/WS connection to WebCenter Content:

$MW_HOME/modules/com.bea.core.apache.commons.lang_2.1.0.jar
$MW_HOME/modules/com.bea.core.stax2_1.0.0.0_3-0-1.jar
$MW_HOME/modules/com.bea.core.woodstox_1.0.0.0_4-0-5.jar
$MW_HOME/modules/glassfish.jaxb_1.1.0.0_2-1-14.jar
$MW_HOME/modules/javax.ejb_3.0.1.jar
$MW_HOME/modules/javax.mail_1.1.0.0_1-4-1.jar
$MW_HOME/modules/javax.management.j2ee_1.0.jar
$MW_HOME/modules/javax.servlet_1.0.0.0_2-5.jar
$MW_HOME/modules/javax.xml.rpc_1.2.1.jar
$MW_HOME/modules/ws.api_1.1.0.0.jar
$MW_HOME/oracle_common/modules/oracle.dms_11.1.1/dms.jar
$MW_HOME/oracle_common/modules/oracle.fabriccommon_11.1.1/fabric-common.jar
$MW_HOME/oracle_common/modules/oracle.http_client_11.1.1.jar
$MW_HOME/oracle_common/modules/oracle.iau_11.1.1/fmw_audit.jar
$MW_HOME/oracle_common/modules/oracle.idm_11.1.1/identitystore.jar
$MW_HOME/oracle_common/modules/oracle.jmx_11.1.1/jmxframework.jar
$MW_HOME/oracle_common/modules/oracle.jmx_11.1.1/jmxspi.jar
$MW_HOME/oracle_common/modules/oracle.jps_11.1.1/jps-api.jar
$MW_HOME/oracle_common/modules/oracle.jps_11.1.1/jps-audit.jar
$MW_HOME/oracle_common/modules/oracle.jps_11.1.1/jps-common.jar
$MW_HOME/oracle_common/modules/oracle.jps_11.1.1/jps-internal.jar
$MW_HOME/oracle_common/modules/oracle.jps_11.1.1/jps-unsupported-api.jar
$MW_HOME/oracle_common/modules/oracle.jrf_11.1.1/jrf-api.jar
$MW_HOME/oracle_common/modules/oracle.logging-utils_11.1.1.jar
$MW_HOME/oracle_common/modules/oracle.odl_11.1.1/ojdl.jar
$MW_HOME/oracle_common/modules/oracle.osdt_11.1.1/osdt_core.jar
$MW_HOME/oracle_common/modules/oracle.osdt_11.1.1/osdt_saml.jar
$MW_HOME/oracle_common/modules/oracle.osdt_11.1.1/osdt_wss.jar
$MW_HOME/oracle_common/modules/oracle.osdt_11.1.1/osdt_xmlsec.jar
$MW_HOME/oracle_common/modules/oracle.pki_11.1.1/oraclepki.jar
$MW_HOME/oracle_common/modules/oracle.webservices_11.1.1/orasaaj-rt.jar
$MW_HOME/oracle_common/modules/oracle.webservices_11.1.1/orawsdl.jar
$MW_HOME/oracle_common/modules/oracle.webservices_11.1.1/orawsrm.jar
$MW_HOME/oracle_common/modules/oracle.webservices_11.1.1/wsclient-rt.jar
$MW_HOME/oracle_common/modules/oracle.webservices_11.1.1/wssecurity.jar
$MW_HOME/oracle_common/modules/oracle.webservices_11.1.1/wsserver.jar
$MW_HOME/oracle_common/modules/oracle.wsm.agent.common_11.1.1/wsm-agent-core.jar
$MW_HOME/oracle_common/modules/oracle.wsm.agent.common_11.1.1/wsm-agent-fmw.jar
$MW_HOME/oracle_common/modules/oracle.wsm.agent.common_11.1.1/wsm-pap.jar
$MW_HOME/oracle_common/modules/oracle.wsm.common_11.1.1/wsm-pmlib.jar
$MW_HOME/oracle_common/modules/oracle.wsm.common_11.1.1/wsm-policy-core.jar
$MW_HOME/oracle_common/modules/oracle.wsm.common_11.1.1/wsm-secpol.jar
$MW_HOME/oracle_common/modules/oracle.wsm.policies_11.1.1/wsm-seed-policies.jar
$MW_HOME/oracle_common/modules/oracle.xdk_11.1.0/xml.jar
$MW_HOME/oracle_common/modules/oracle.xdk_11.1.0/xmlparserv2_sans_jaxp_services.jar
$MW_HOME/oracle_common/modules/org.jaxen_1.1.1.jar
Note use of the JRF Web Service client feature-set jar (wsclient_extended.jar) is not currently recommended, as it is unlikely to contain important fixes present only in the individual jars mentioned above.