Documentation Center

Steps in the PublicationOutput Create method

Invoking the PublicationOutput Create method results in a number of steps being performed.

  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 the incoming folder for existence and for correctness of folder type.
  4. Retrieve the folder security fields and temporarily store the security fields.
  5. Validate the incoming LogicalId:
    • If no LogicalId is provided, a new LogicalId with a new GUID is generated.
    • If a LogicalId is provided, check whether the logical object already exists or not.
  6. Verify that the user has write access to the folder or logical object.
  7. Start the transaction.
  8. If the logical object exists, lock the logical object.
  9. Initialize the logical object (in memory):
    • If the logical object does not yet exist, create the logical object (in memory). Copy the security fields from the folder.
    • Otherwise, initialize all necessary metadata.
  10. Initialize the version object (in memory):

    • If the version object does not exist, create the version object (in memory):
      • If the baseline is not provided, create a new baseline:
        • If the previous version of the publication output exists, create a copy of the baseline.
        • Otherwise, create an empty baseline.
      • If the baseline complete mode is not provided, initialize the baseline complete mode with the default value, which is VBASELINECOMPLETEMODELATESTAVAILABLE.
    • Otherwise, initialize all necessary metadata.
  11. Create the language object (in memory):

    • If the status is not provided, initialize the status with the default value, which is VPUBSTATUSTOBEPUBLISHED.
    • Create the revision object and set the blob-related fields.
  12. Check the initial status and set the status type.
  13. 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 objectISHPublication
      FMAPIDThe unique identifier of the logical level (= LogicalId) 
      VERSIONThe version number1.1.1
      FISHPUBLNGCOMBINATIONThe language combinationen+fr
      DOC-LANGUAGEThe individual languages used in the language combinationfr
      FISHOUTPUTFORMATREFThe label of the output formatPDF (A4 Manual)
      EDTThe EDT specified on the output formatEDTPDF
      ISHUserGroupThe element name of the usergroupVUSERGROUPSYSTEMMANAGEMENT
      CurrentActionThe current actionCreate
      ISHLevel

      The level

      logical, version, lng
    • Initialize the plugins.
  14. Retrieve the metadata used by the plugins.
  15. Run the plugins in the order specified in the Plugin Configuration Xml.
  16. Check the initial status and set the status type.
  17. 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.
  18. 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.
  19. Start the background tasks from the plugins.
  20. Commit the transaction.