March 31, 2018

RPA

Evolution of RPA  DO/Learn/Think

Do (Structure data and rule base flow)

- RPA Tool (Automation anywhere, UiPath,etc..)
- VBA (Macro)
- VBScript/ BAT files/ Powershell
- Javascript/Jquery
- Excel formula

Learn (Unstructured data and complex process)
Need to train the BOT frequently to match the decision-making frequency depending on the diversity of the input data.
- Python
- Machine Learning
- Deep Learning
- Cognitive Learning

Think (BOT can take a decision)
- AI

Advantage of RPA

- Frees up employees to do higher-value work
- Save FTE
- Speed  up the processing time (Reduce SLA)
- Work for 24*7
- Communicate with multiple technologies (can eliminate development efforts)
- Checker BOT
- Maker BOT
- Generate Report (data massage)
- Process improvement
- Data migration
- Higher outcome quality
- Scalability and agility
etc...

Timeline of a project in RPA

- BRD not having all the details
- Not getting application access on time
- POC
- It is depending on many factors like Project Complexity, RPA tool used, Citrix automation or not, available reusable assets (bots, libraries and etc) and the project team size.
- Change in requirement post development


RPA can fail due to below reason

Organizational pitfalls:
- Lack of time commitment from the local team
- Lack of leadership buy-in
- Lack of IT ownership
- Unclear responsibilities
- Unrealistic expectation
- Communication between operation and application team

Process pitfalls:
- Choosing a process with insignificant business impact
- Choosing a too complex process
- Choosing a process where better custom solutions exist
- Lack of focus in process selection
- Striving for end-to-end automation when it is not cost-effective
- Business exception (data is not proper)

Technical pitfalls:
- Should follow SDLC properly
- Architecture and Authentication
- Choosing a solution that requires intensive programming
- System exception (an application bugs)

Post-implementation pitfalls:
- Operation team governance
- Scalability
- Maintenance

Test Cases for Automation

- Test case executed with a different set of data
- Test case executed with complex business logic
- Test case executed with a different set of users

- Test case Involves a large amount of data




AI Product


- Chatbot
- Voicebot
- Siri/Cortana
etc...

January 27, 2018

Oracle and SQL Server Topics

Oracle Topics

-          Installation of Oracle client
-          Tablespace
-          DBF file
-          Relation between tablespace and DBF file
-          User
-          Role and permission
-          Pseudo columns
-          Save point,Rollback and commit
-          Insert,delete,update and select
-          Equi join and non equi join
-          Natural join
-          Cross join/ Cartesian join
-          Self join
-          Left, Right and full outer join
-          Column format
-          Aggregate, Number and Conversion function
-          Buffer command
-          IN/ Exist
-          Subquery
-          Table
-          View
-          Index
-          Materialize view
-          Exception handling
-          Cursor
-          Trigger
-          Function
-          Procedure
-          Package
-          Dynamic SQL
-          Loops
-          Array
-          Collection
-          PL/SQL Debugger, PL/SQL Profiler, PL/SQL Tuning Tips
-          Replication
-          Job

http://sql-plsql.blogspot.in/2007/05/oracle-plsql-nested-tables.html

http://dotnetmentors.com/sql/sql-server-common-table-expression-with-examples.aspx
https://www.tutorialgateway.org/sql-server-cte/


Common table expression (CTE) is a temporary named result set that you can reference within a SELECT, INSERT, UPDATE, DELETE or MERGE statement.

SQL Server supports two types of CTEs-recursive and nonrecursive.

WHEN TO USE

  • If you need to reference/join the same data set multiple times you can do so by defining a CTE. Therefore, it can be a form of code reuse.
  • After declaration of table, you can refer the table created multiple times in scope of the same query.
  • Can be used in place of views or temporary tables.
  • Recursive query is easily created through CTE.
  • Instead of cursor


Syntax of CTE
With CTE_name <col1,col2,..>
<CTE_query>
select <col1,col2,..>
from CTE_name

October 9, 2017

RPA(Automation Anywhere)

TIps for AA
  1. Web object can capture with Object cloning, manage window control or manage web control.
  2. Control room client can be bot runner or bot creator
  3. IQBOT is vision BOT
  4. Always use a variable to make the things dynamic and set the value in variable from external mapping file.
  5. Avoid system variable Date - instead, use Date + Month + year because returned format is inconsistent depending upon the environment
  6. Excel, CSV/Text, browser session cannot be shared across tasks
  7. Subtask should be small
  8. MetaBot licenses are consumed on first logged in,first allocation basis
  9. To access the column value in table use index 1,2,3 like $dataset columns(1)$
  10. Do use copy & paste and shortcut keystrokes
  11. Don't use differing variable between tasks (Quick map)
  12. Avoid too many subtasks
  13. Avoid bi-directional dependencies between the task
  14. Reduce the unnecessary steps
  15. Configurable BOT
    1. Pro - Give liberty to extend/modify
    2. Con - Complex - Less User-friendly due to more configuration
AA Control room (VSI) consist of
Below components are present
1.     .Net framework
2.     IIS
3.     IE
4.     Schedule service
5.     AAE Control room API
6.     AAE Control room Site
7.     AAE analytics

Share data & service – Below components are present
1.     File repository
2.     Web socket service
3.     Sql server
4.     SAN

AAE Client Setup
1.     AAE client setup
2.     .Net Framework
3.     IE
4.     SVN

Control room Installation approaches
1.     Standalone – all components can install in single VM
2.     Distributed
1.     Application servers – VM1, VM2…
2.     Shared data & service – VM3
3.     Disaster recovery –VM4
4.     AAE Analytics – VM5

What is the method to get RPA analytics data?
1.     Tag – tag the variable
2.     Log – start capturing real time data log
3.     Analyze – Generate the reports based on historical data

AA - Surface Automation Techniques
1.     Should always capture only image 2 which in turn will dynamically load the bigger image which is image1.
2.     Repeat the capture of image 2 till the image 1 section gets autoloaded and Run the Quick test to ensure the images are captured successfully.
3.     Identify the combination of Match Percentage and Tolerance by running the automation several times in different user logins.
4.     Whenever the required image is in a multicolored background and during automation execution if unable to identify the image then change the mode to Monochrome.
5.     When the required image is black and white background, the Gray scale mode can be used to identify the image if required.

Question and Answer

Which option in AA is used to read entire cells in excel?
Select one:
a. Get Multiple cells
b.  Go to cell
c. Get all cells 
d. Enough to work with
e. All the above

Which of the below options are available in AA to activate sheet in excel?
i) Sheet By Index
ii)Sheet By Name
Select one:
a. Both i & ii 
b. Only i
c. Only ii

Is it possible to check broken link using web recorder in AA?

Select one:
a. False
b. True 

Which of the following activities can be performed using Read From CSV-Text Command in AA?
Select one or more:
a. Use encoding options: ANSI, UNICODE, and UTF8. 
b. Read multiple lines in CSV or text files 
c. None of the above
d. Read List Separated or Tab delimited data from a CSV file. 

PDF Integration in AA supports both encrypted and unencrypted files.
Select one:
a. True 
b. False

What are the actions that can be performed in image recognition once the image is found?
Select one:
a. Double Click
b. Left Click
c. Right Click
d. All of the above 

 To compare, find, split and join strings which feature in AA can be used?
Select one:
a. Object cloning
b. Keystrokes
c. Variable operation
d. String operation 

Which of the following privileged user can run the bots?
Select one:
a. Bot runner
b. Bot Creator
c. All of the above 

How do we allocate an existing license from one user to another user in the same Machine?
Select one:
a. Create a new user and upload the license file
b. Deactivate the existing user, create a new user and login with the credentials 
c. Create a new user and login with the credentials in client

Choose the commands that supports Secure Recording mode
Select one or more:
a.  All the above
b.  Object cloning 
c.  All the commands in the Enterprise client
d.  Image Recognition 
e.  OCR

Does the PDF integration command supports to extract the structured text? If so select appropriate option below
Select one:
a. All the above
b. Extract form fields
c. PDF to image
d. Extract text 

If at all the Credential information needs to be stored in centralized location, then what are all the options available AA?
Select one:
a.  Windows Vault
b.  Automation Anywhere Credential Manager 
c.  Automation Anywhere Credential Vault
d.  Windows Credential Manager

Which of the following actions can be performed by the user with Bot runner role?
Select one:
a. Can run the tasks using the 'One Time Only' schedule option only.
b. Can add, edit and delete schedules for tasks on your Client machine 
c. All of the above
d. Can create and run the tasks.

Which of the following is the best option to extract the data from Flatened PDF?
Select one:
a. All of the above
b. Extract Text 
c. OCR
d. Extract Form Fields

September 16, 2017

RPA(UiPath)

Do the Automation by creating Workflow of Process.
Good Part about this tool is (can call .Net function in condition like .Trim, ToString, etc)

UiPath consist of 3 part

1) UiPath Robot - Robots can work unattended (run without human supervision in any environment, be it virtual or not) or as assistants (human triggers the process).


2) UiPath Orchestrator (server) - a web application that enables you to deploy, schedule, job, monitor and manage Robots and processes. It consists of
  • Robot  -list of robot available in environment
  • Process - list of process
  • Asset - list of asset that is reusable component
  • Queues - list of Pending task
  • Schedules - list of scheduled process
  • Job - list of jobs created
  • Logs - capture the running process log

3) UiPath Studio (Client) - it uses .NET workflow and it helps us to design automation processes in a visual manner, through diagrams.

The UiPath Studio interface

Activities panel - contains all the actions we need to automate different applications - like clicking and typing - and other data-processing actions
Workflow Designer - this is where you build your automation project
Properties panel - where you can change different parameters and settings of the selected activity
  • Workflow - Can create by Flowchart (Complex process) and Sequence (small process)  or we can use sequence as reusable part in flowchart
  • Variable - we can define type,scope,value
  • Activities - 300 activities related to programming,Web services, Email, web,window,Citrix,excel, pdf, database,OCR,Image recognizance, Terminal,SAP etc
  • 4 Type of Recorder - Basic, Desktop, Web, Citrix
  • UIExplorer - Use to catch control
  • Data scraping - Extract the data from web application
  • Publish - Publish to workflow to connected orchestrator
  • Debugging and exception handling
  • Excel Automation
  • PDF Automation
  • Citrix Automation
  • Email Automation
  • SAP Automation
  • Project organization
  • User event
Best Practices

  • Bot must be reliable, efficient, maintainable, extensible
  • choose appropriate wf
  • Flowchart: Main wf is best suited
    • Easier to understand
    • Overview of full process
    • easier to test
  • Break process in small workflow (invoke command)
  • Sequence- Suited for sequential workflow
  • Use try-catch


Study material
Academy

UiPath Studio guide

UiPath Robot

Activities guide


Get the certificate by learning UiPath
https://www.uipath.com/academy/certifications

You will be able to download UiPath Studio and obtain a free license for the use of the software for 60 days
https://www.uipath.com/download-free-automation-software-trial


August 6, 2017

Node,js

What is Node.js?
- Node.js enables JavaScript to be used for server-side scripting
- It has an event-driven architecture capable of asynchronous I/O
- It contains a built-in library to allow applications to act as a Web server without software such as Apache HTTP Server or IIS
- It is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side.
- It contains 2 type of modules
- Built in module
- Custom module


Where should we use it? 
It became the best choice in Real Time web

- Node.js works on a non-blocking I/O model that makes it clean and usable, ideal for the data-intensive real-time applications that have to perform in varied environments.
- It is useful for Real time web application like chat, video and audio streaming, uploading files, browser games etc.
-It can Insert, Delete, Select, Update a record in database.

How to implement in .Net project
- install .Node.js setup from site
-Install node.js template for visual studio but we can use other IDE because it uses javascript lang only



August 5, 2017

Software design concepts


Software design Principle
  • Should have Domain and software knowledge
  • Give more time to rewrite the design of software
  • Take the time to review design
  • Keep the code simple. Simple help you to solve critical problem
  • Make small method
  • Single level of abstraction - 
  • YAGNI - You aren't gonna need it (or you don't have much idea about it) wait to implement it later (cost of implementation will be less if we postponed) 
  • High Cohesive - Like things stay together (indirectly one responsibility)
  • Low coupling - Keep less dependency between the class
  • DRY - Don't repeat the code
  • Single Responsibility Principle - Give only one responsibility to single object
  • Open Closed Principle - Open for extension but close for modification
  • Liskov Substitution Principle - Derived class must completely substitutable for their base types
  • Interface Segregation Principle - Clients should not be forced to depend upon interfaces that they do not use.
  • Dependency Inversion Principle - removing direct dependencies between classes.  
  • If we can't name a variable or function properly it may be sign..we have not yet understood its true purpose.
  • Modularity -  dividing the software into uniquely named and addressable components
  • Understand design pattern

https://msdn.microsoft.com/en-us/library/ee658098.aspx

http://www.oodesign.com/

https://code.msdn.microsoft.com/windowsapps/OOPS-Principles-SOLID-7a4e69bf

http://ecomputernotes.com/software-engineering/techniques-for-maintenance


Software Architecture and Design
http://msdn.microsoft.com/en-us/library/ee658093.aspx


Design Fundamentals
http://msdn.microsoft.com/en-us/library/ee658116.aspx

MSDN Library
http://msdn.microsoft.com/en-us/library/ms123401.aspx

Pattern and Practice
http://msdn.microsoft.com/en-us/library/ff921345.aspx


June 12, 2017

Tips for writing better BOT

BOT Cycle
  • Requirement gathering - Analysis, feasibility, automation scope
  • Design - To be Process, Technical, solution document
  • Scripting - convert process into script
  • Testing - check the accuracy of script
  • Script review
  • KT to support team - create user guide for operation team
  • Deployment
  • Maintainance - Script versioning, Monitoring and fixing bug
RPA developer deals with operation, security and end user.
BOT perform low-level tasks freeing up Human Resources for more demanding jobs.

Factor experienced while creating BOT in WinAutomation or Automation Anywhere

Requirement

- Is the Process automatable
- If not, What are steps can automate? to make it faster
- Check the As-is process
- Check the in Scope and out of scope of project
- Do quick PoC to check compatibility

Design

- Analysis the Risk Matrix (No of transaction, No of FTE)
- Make proper design of BOT for modification or scaling
- Design user-friendly TO BE PLAN
- Present the TO BE PROCESS to Operation Team

Coding (
Adjust or fit the script 100% accuracy)

- Add Authentication for starting of BOT.The bot must run by the authenticated user only.
- Clean up before starting BOT
- Check Login before start working
- Trim and validate data before pass it to BOT
- Data security (Encryption) is also important
- Make the reusable Function/framework/bot
- keep your BOT simple and focused and make a proper region or Comment
- Release the resources if not required
- Find the multiple ways to solve a problem and then choose the best plan
- BOT process must be secure (Authenticated user) and compliance

- Make Milestone log
- Logs and Exception handling and Error notification is important


- Looping the action ( probability 100%)
- Used jQuery to find object
- case-insensitive data
- Use regular expression
Use  dynamic delay/wait for control
- Have scalability of bot
- create reusable bots
- identify time-consuming steps
- identify the scope of automation through  feasibility study/poc
- focus on FTE
- parallel workflow help to speed up things
- RPA tool should work with all kind of platform.
- transaction log on which bot run
- pop-up handle
- clean up the old session before starting new
- BoT logic should be less depend upon user data.
- input - process- output (correct/incorrect)

- Avoid use of OCR, IR and Keystroke


Testing

- Testing BOT properly. We can't skip this step after making modification in BOT
- Performance of website could vary on different environment (DEV, UAT, PROD) due data size, network or etc.

Approval/signoff for Deployment

- Analysis the Risk Matrix (No of transaction, No of success and fail ratio, No of FTE )

Maintenance

- Monitor and maintenance of BOT
- Generate Operational and Audit-related report

Risk handling

- What if BOT fail?
- How much time to rectify the issue?
- Check the loss of company due to BOT fail
- Set up Disaster recovery


Reusable component

- BOT Framework
- Error handling mail
- log creation
- BOT authentication
- Email script
- reusable macro/Excel formula
- Clean up before and after BOT run


Automation anywhere can not handle long term complex process because this tool is still have bugs and currently they have latest AA 11 version. I hope they have resolved some the issue from this product

- AA player get hanged
- session timeout
-Memory consumption issue
-scheduler not trigger

- It does not have feature to fetch data from unstructure PDF table
- It does not work properly with Flex technology


https://exceljet.net/blog/29-ways-to-save-time-with-excel-formulas