Documentation Center

Steps in the DocumentObj Create method

Invoking the DocumentObj Create method creates a content object (logical, version and language) by performing a number of steps.

Here are the steps that the DocumentObj Create method executes when invoked:
  1. Validate all incoming parameters by verifying the following:
    • All required parameters are present.
    • No system fields have been supplied.
    • All parameters contain a valid value.
  2. Initialize the folder (if provided).
  3. Validate that the incoming folder exists and has the correct folder type.
  4. Retrieve and temporarily store the folder's security fields.
  5. Validate the incoming logical identifier:
    • If none is provided, generate a new logical identifier with a new GUID.
    • If a logical identifier is provided, check whether the logical object already exists.
  6. Verify that the user has write access to the folder or logical object.
  7. Start the transaction.
  8. Initialize the logical object (in memory):
    • If the logical object does not yet exist, create it (in memory). Copy the security fields from the folder.
    • Otherwise, initialize all necessary metadata.
  9. Initialize the version object (in memory):

    • If the version object does not exist, create it (in memory).
    • Otherwise, initialize all necessary metadata.
  10. Create the language object (in memory):
    • Check the initial status.
    • Create the revision object and set the blob-related fields.
  11. Initialize the plugin engine:
    • Find the Plugin Configuration XML.
    • Conditionally filter the Plugin Configuration XML using the following conditions:
      ConditionNameCondition on...Example
      ISHTypeThe InfoShare type of the objectISHMasterDoc, ISHModule, ISHLibrary, ISHIllustration, ISHTemplate
      FMAPIDThe unique identifier at the logical levelGUID-10FFE1D1-EDE2-4F92-BAB5-66B546607868
      VERSIONThe version number1.1.1
      DOC-LANGUAGEThe languagefr
      FSOURCELANGUAGEThe source languageen
      FRESOLUTIONThe label of the resolutionLow
      EDTThe EDT specified on the output formatEDTXML
      ISHUserGroupThe element name of the usergroupVUSERGROUPSYSTEMMANAGEMENT
      CurrentActionThe current actionCreate
      ISHLevelThe level logical, version, lng
    • Initialize the plugins.
  12. Retrieve the metadata used by the plugins.
  13. Run the plugins in the order specified in the Plugin Configuration XML.
  14. Check the initial status and set the status type.
  15. Validate that there are not multiple languages provided when submitting XML.
  16. Update the information in the database:
    • Create all objects and set the new metadata.
    • Link the version object with the logical object.
    • Link the language object with the version object.
    • Link the language with the new revision object.
    • Stream the blob to the database.
  17. When creating a new logical object,:

    • Lock the parent folder.
    • Retrieve the folder security fields, check that the values match the ones stored in step 4.
    • Link the logical object with the parent folder.
  18. Start any background tasks that the plugins wanted to start.

  19. Commit the transaction.