Build a bot to upload documents to Document Automation

Build a bot to upload documents to a specific learning instance for processing and extraction.

Prerequisites

  • Ensure you have the name of the destination learning instance.
  • If you have an adequate amount of Bot Runners connected. For instructions on connecting a Bot Runner, see step 5 of Set up your Document Automation environment.
    Note: You need a dedicated Bot Runner for this bot and additional Bot Runners for the extraction and download bots, depending on the average number of pages in the documents. Review the explanation below for more guidance on how many Bot Runners are needed.
  • Decide on the scheduling interval for deploying this bot with a maximum interval of every thirty minutes.
  • Determine the average number of pages in the documents awaiting upload.
This bot is necessary for end-to-end automation of the document extraction process. When deployed, the bot checks if there are enough Bot Runners to handle the documents, by comparing the number of files already uploaded against a calculated value. The calculation considers the number of Bot Runners, scheduling interval, and average number of pages in the documents.
Note: This step is important as it controls the number of documents being uploaded to ensure smooth processing and avoid overloading the Bot Runners, which might cause a time-out error.
To determine the number of Bot Runners needed, consider the following:
  • One Bot Runner can process a single-page document in one minute.
  • One Bot Runner can process a two-page documents in two minutes.
  • One Bot Runner can process 1440 single-page documents in one day.
  • Two Bot Runners can process two single-page documents in one minute.
Note: The current Bot Runner driven architecture of Document Automation is a constraint to facilitate the real-time or near-real-time processing.
Use this equation to determine how many Bot Runners are needed:
Number of Documents to Process per day * Average Number of Pages per document / 1440 = Number of Bot Runners
Note: If the equation result is not an integer, you must round up to the next whole number to obtain an adequate number of Bot Runners. For example, if the equation result is 4.2, you will need 5 Bot Runners.

To learn more, search for the Document Automation Developer course in Automation Anywhere University: RPA Training and Certification (A-People login required).

As an example, if you want to process 10,000 documents each day with an average of one page per document, you need seven Bot Runners:
10,000 documents * 1 page per document / 1440 = 7 Bot Runners

Procedure

To build the bot, follow these steps:

  1. Navigate to Automation > Private tab and click Create a bot.
    Ensure you do not place the bot in the Document Workspace folder.
  2. Provide a name for the bot, such as Extraction-Scheduler.
  3. Create the following variables: Create a variable
    Variable name Description Data type Value
    File_Count Increments with each loop iteration to count the number of files uploaded for processing. Number 0
    Extraction_DeviceCount Number of Bot Runner devices connected to the Control Room Number Enter the number of connected Bot Runner devices
    Scheduler_Interval Scheduling interval in minutes Number Enter the interval for which you will schedule this bot to run when you deploy it (minimum 2 min,maximum 30 min)
    Average_Pages Average number of pages per document Enter the approximate average number of pages in the documents
    FilesInFolder Holds file name and extension Dictionary --
    SourcePath File path to the folder containing documents awaiting upload to Document Automation String Enter the file path
    OutputPath File path to the folder containing the extracted data and invalid or failed documents String Enter the file path where you want the extraction output
  4. Insert a Loop action to iterate through all the documents in a specific file path.
    1. Double-click or drag the Loop action.
    2. Select the For each file in folder iterator.
    3. Insert the SourcePath variable into the Folder path field.
    4. Insert the FilesInFolder variable into the Assign file name and extension to this variable field.
  5. Insert an If action to compare the number of documents uploaded for processing to the number of Bot Runner devices multiplied by a scheduling interval and divided by the average number of pages.
    Note: You must include this equation to limit the number of files uploaded for processing at one time to ensure that the Bot Runners are able to process the documents.
    1. Drag the If action into the Loop container.
    2. Select the Number condition.
    3. Insert the File_Count variable into the Source value field.
    4. Select the Less than operator.
    5. Enter the following into the Target value field: $Extraction_DeviceCount$*$Scheduler_Interval$/$Average_Pages$
  6. Insert If: Else and Loop: Break actions to end the loop if the condition is not met:
    1. Drag the If: Else action beside the If action in the Loop container.
    2. Drag the Loop: Break action into the If: Else container.
  7. Insert an error handling mechanism to log any possible errors:
    1. Drag the Error handler: Try action into the If container.
    2. Drag the Error handler: Catch action beside the Error handler: Try action.
    3. Drag a Delay action below the Error handler: Catch action.
    4. Set a delay of 10 seconds.
  8. Configure actions to upload documents to the process associated with a specific learning instance.
    1. Drag the Process Composer: Create a request action below the Error handler: Try action.
      Note: You are pointing to a public process path that Document Automation creates automatically. For example, see the following image:
      Process-Composer-Public-Processor
    2. Mark the Set LearningInstanceName option and provide the name of the learning instance where to send the documents.
    3. Mark the Set InputFile option and enter $SourcePath$/$FilesInFolder{name}$.$FilesInFolder{extension}$.
    4. Mark the Set InputFileName option and enter $FilesInFolder{name}$.$FilesInFolder{extension}$.
    5. Mark the Set OutputFolder option and enter $OutputPath$.
    6. Drag the Number: Increment action below the Process Composer: Create a request action.
    7. Insert the File_Count variable into the Number and Assign output to variable fields.
      The Number action increases the value of File_Count by one each time a file is uploaded to the learning instance. As long as the value in File_Count is less than the total in the equation you entered in step 5, the bot can run another loop iteration to upload another document to the learning instance.
  9. Make a copy of the uploaded file to a different location on your desktop to keep track of which documents were successfully uploaded:
    1. Drag the File: Copy Desktop file action below the Number: Increment action.
    2. Enter $SourcePath$/$FilesInFolder{name}$.$FilesInFolder{extension}$ in the Source file field.
    3. Provide the folder path where to copy the files.
  10. Remove documents after they are uploaded to Document Automation so they do not get re-uploaded in the next iteration:
    1. Drag the File: Delete action.
    2. Enter $SourcePath$/$FilesInFolder{name}$.$FilesInFolder{extension}$ in the File field.
  11. Click Save.

The completed bot should resemble the one in the image below:

Screenshot of completed bot

Next steps

Publish the process and bot. See step 3 of Publish the learning instance to production