Sunday 10 February 2019

Artificial Intelligence Tutorial

Robotic Process Automation (RPA) Tutorial: What is, Tools & Example

What is Robotic Process Automation?

Robotics Process Automation(RPA) allows organizations to automate task just like a human being was doing them across application and systems. Robotic automation interacts with the existing IT architecture with no complex system integration required.
RPA can be used to automate workflow, infrastructure, back office process which are labor intensive. These software bots can interact with an in-house application, website, user portal, etc. The RPA is a software program which runs on an end user's pc, laptop or mobile device. It is a sequence of commands which are executed by Bots under some defined set of business rules.
The main goal of Robotics process automation process to replace repetitive and boring clerical task performed by humans, with a virtual workforce. RPA does not require the development of code, nor does it require direct access to the code or database of the applications.
What You Will Learn:

Why Robotic Process Automation?

Consider the following scenario in a typical enterprise
  1. The business climate is ever changing. An enterprise needs to continuously evolve its product, sales, marketing, etc. process to grow and stay relevant
  2. A typical enterprise uses multiple and disconnected IT systems to run its operations. With change in Business process, these IT systems are not changed frequently due to budget, timing, and implementation complexity issues. Hence, the business process does not map the technical process mapped in the IT system.
  3. To overcome this technical and organization debt human workforce is hired to fill the gap between systems and processes. Example: A company made changes in Sales process such that a mandatory 50% advance is required to confirm the booking of its product. But this is not coded in the IT system yet. A human worker will have to manual check the Invoice and payment details and process the sales order only if 50% advance is made.
The problem? --- Humans
With any change in the business process, a company would need to hire new employees or train existing employees to map IT system and business process. Both solutions are time and money consuming. Also, with any succeeding business process change will also need hiring or re-training.
Enter RPA
With Robotic automation, the company can deploy virtual workers who mimic human workers. In case of a change in process, a change in few lines of software code is always faster and cheaper than retraining hundreds of employees.
Here, are some reasons why Robotics Process Automation is advantageous
  • A human can work average 8 hours a day whereas robots can work 24hours without any tiredness.
  • The average productivity of human is 60% with few errors as compared to Robot's productivity which is 100% without any errors.
  • Robots handle multiple tasks very well compared to a human being

Example of RPA

Consider the following Invoice Processing Business process
DescriptionCan be Automated via RPA?
Open invoice email from the supplier and print it for recordsYes

Barcode ScanningManual

Create work item in a legacy software systemYes

Enter PO to retrieve InvoicesYes

Check supplier name is correct or not?Yes

Key Invoice, Data and AmountYes

Match PO and InvoiceYes

Check if Amount is matches or not?Yes

If amount match Matches Invoice, Calculate TaxYes

Complete Invoice ProcessingYes

Work Item ClosedYes

If Amount does not match Hold, follow with vendorYes

Supplier accepts or resends InvoiceYes

If Supplier name is incorrect to hold a pass to exception teamYes

Flag for exception handlingYes

Differences between Test Automation and RPA

There is multiple overlaps between a Test Automation Tool and RPA tool. For instance, they both drive screen, keyboard, mouse, etc. and have similar tech architecture. But following are the key differences between the two
ParameterTest AutomationRPA
GoalReduce Test execution time through automationReduce headcount through automation
TaskAutomate repetitive Test CasesAutomate repetitive Business processes
CodingCoding knowledge required to create Test ScriptsWizard-driven, and coding knowledge not required
Tech ApproachSupports limited software environment. Example: Selenium can support only web applications.Supports a wide array of software environments
ExampleTest cases are automatedData entry, forms, loan processing, is automated
ApplicationTest Automation can be run on QA, Production, Performance, UAT environmentsRPA is usually run only on production environments
ImplementationIt can automate a product.It can automate a product as well as a service.
UsersLimited to technical users.Can be used across the board by all stakeholders.
RoleActs as a virtual assistant.Acts as a virtual workforce.
AICan execute only what is coded.Many RPA tools come with an AI engine can process information like a human
Again, RPA tools like UIPath, Blueprism can be used for test automation. Vice versa, advanced automation tools like UFT can be used for RPA if you have good coding skill. But RPA tools for more fit for purpose.

RPA Implementation Methodology

Planning

In this phase, you need to Identify processes which you want to automate. Following checklist will help you identify the correct process
  • Is the process manual & repetitive?
  • Is the process Rule-based?
  • Is the input data is in electronic format and is readable?
  • Can existing System be used as it is with no change?
Next, steps in planning phase are
  • Setup project team, finalize implementation timelines and approach.
  • Agree on solution design for performing RPA processes.
  • Identify logging mechanism that should be implemented to find issues with running bots.
  • Clear roadmap should be defined to scale up RPA implementation

Development

In this phase, you start developing the automation workflows as per agreed plan. Being wizard driven, the implementation is quick

Testing

In this phase, you run Testing cycles for in-scope automation to identify and correct defects

Support & Maintenance

Provide continuous support after going live and helps in immediate defect resolution. Follow general maintenance guidelines with roles and responsibilities with business and IT support teams.

Best Practices of RPA Implementation

  • One should consider business impact before opting for RPA process
  • Define and focus on the desired ROI
  • Focus on targeting larger groups and automating large, impactful processes
  • Combine attended and unattended RPA
  • Poor design, change management can wreak havoc
  • Don't forget the impact on people
  • Governance of the project is foremost thing in RPA process. Policy, Corporate, Government compliance should be ensured.

General Use of RPA

1. Emulates Human Action:
Emulates human execution of the repetitive process using various application and systems.
2. Conduct high-volume repeated tasks:
Robotics process automation can easily simulate rekeying of data from one system to another. It performs tasks like data entry, copying, and pasting.
3. Perform Multiple Tasks:
Operates multiple and complex tasks across multiple systems. This helps to process transactions, manipulate data and send reports.
4. 'Virtual' system integration:
This automation system can transfer data between disparate and legacy systems by connecting them at the user interface level instead of developing new data infrastructure.
5. Automated report generation:
Automates the extraction of data to comes up with accurate, effective and timely reports.
6. Information validation and auditing:
Resolves and cross-verify data between different systems to validate and check information to provide compliance and auditing outputs.
7. Technical debt management:
Helps to reduce technical debt by reducing the gap between systems, preventing the introduction of custom implementations.
8. Product management:
It helps to bridge the gap between IT systems and related product management platforms by automated updating of both systems.
9. Quality Assurance:
It can be beneficial to QA processes which cover regression testing and automating customer use case scenarios.
10. Data migration:
Allows automated data migration through systems which is not possible using traditional mediums, like document, spreadsheets or other source data files.
11. Gap solutions:
Robotic automatic fills the gaps with process deficiencies. It includes may simple tasks as password resets, the system resets, etc.
12. Revenue forecasting:
Automatically updating financial statements to predict revenue forecasting.

Application of RPA

IndustryUsage
Healthcare
  • Patient registration
  • Billing
HR
  • New employee joining formalities
  • Payroll process
  • Hiring shortlisted candidates
Insurance
  • Claims Processing & Clearance
  • Premium Information
Manufacturing & Retail
  • Bills of material
  • Calculation of Sales
Telecom
  • Service Order Management
  • Quality Reporting
Travel & Logistic
  • Ticket booking
  • Passenger Details
  • Accounting
Banking and Financial Services
  • Cards activation
  • Frauds claims
  • Discovery
Government
  • Change of Address
  • License Renewal
Infrastructure
  • Issues Processing
  • Account setup and communication

Robotic Process Automation tools

Selection of RPA Tool should be based on following 4 parameters:
  1. Data: Easy of reading and writing business data into multiple systems
  1. Type of Tasks mainly performed: Ease of configuring rules-based or knowledge-based processes.
  1. Interoperability: Tools should work across multiple applications
  1. AI: Built-in AI support to mimic human users
Popular Robotic Automation Tools:
1) Blue prism
Blue Prism is a Robotic Process Automation software. It provides businesses and organizations with an agile digital workforce.
2) Automation AnyWhere
Automation Anywhere is a developer of robotic process automation (RPA) software.
3) UiPath
UiPath is Robotic Process Automation software. It helps organizations efficiently automate business processes.
Download link: https://www.uipath.com/

Benefits of RPA

Some benefits that RPA can provide to your organization:
  1. Large numbers of the process can easily have automated.
  2. Cost are reduced significantly as the RPA takes care of repetitive task and saves precious time and resources.
  3. Programming skills are not needed to configure a software robot. Thus, any non-technical staff can set up a bot or even record their steps to automate the process.
  4. Robotic process automation support and allows all regular compliance process, with error-free auditing.
  5. The robotic software can rapidly model and deploy the automation process.
  6. The defects are tracked for each test case story and the sprint.
  7. Effective, seamless Build & Release Management
  8. Real time visibility into bug/defect discovery
  9. There is no human business which means there is no need for time for the requirement of training.
  10. Software robots do not get tired. It increases which helps to increase the scalability.
Disadvantages of RPA:
Let's not forgot some cons of the RPA process:
  1. The bot is limited to the speed of the application
  2. Even small changes made in the automation application will need the robots to be reconfigured.

Myths of RPA:

  1. Coding is required to use RPA software
    That's not true. To use Robotics Process Automation tools, one needs to understand how the software works on the front-end and can how they can use for automation.
  1. RPA software does not require human supervision
    This is an illusion because humans are needed to program the RPA bot, feed them tasks for automation and manage them.
  2. Only large big companies can afford to deploy RPA
    Small to medium-sized organizations can deploy RPA to automate their business. However, initial costing will be high but can be recovered in 4-5 years.
  3. RPA is useful only in industries that rely heavily on software
RPA can be used to generate automated bills, invoice, telephone service, etc. which are used across industries irrespective of their software exposure.

DockerTutorial


Docker Topics List

  1. What is Docker?
  2. Docker - Containers
  3. Why use containers?
  4. Features of Docker
  5. Components of Docker
  6. Installing Docker on Linux
  7. Docker - Installation
  8. Docker - Hub
  9. Docker - Images
  10. Docker - Working with Containers
  11. Docker - Architecture
  12. Docker - Container and Hosts
  13. Docker - Configuring
  14. Docker - Containers and Shells
  15. Docker - File
  16. Docker - Building Files
  17. Docker - Public Repositories
  18. Docker - Managing Ports
  19. Docker - Private Registries
  20. Docker - Building a Web Server Docker File
  21. Docker - Instruction Commands
  22. Docker - Container Linking
  23. Docker - Storage
  24. Docker - Networking
  25. Docker - Setting Node.js
  26. Docker - Setting MongoDB
  27. Docker - Setting NGINX
  28. Docker - Toolbox
  29. Docker - Setting ASP.Net
  30. Docker - Cloud
  31. Docker - Logging
  32. Docker - Compose
  33. Docker - Continuous Integration
  34. Docker - Kubernetes Architecture
  35. Docker - Working of Kubernetes
  36. Docker - Overview
  37. Docker Interview Questions And Answers Part1
  38. Top Docker Interview Questions Part 2
  39. Docker Interview Questions Part 3

Saturday 2 February 2019

Angular custom preloading strategy

Angular custom preloading strategy



To control when a lazy loaded module is downloaded onto the client machine, we use preloadingStrategy property. We discussed this in detail  of Angular 6 tutorial.

Let us say in our Angular project, we have 2 lazy loaded modules 
  • EmployeeModule
  • AdminModule
If we set, preloadingStrategy property to PreloadAllModules, then both the lazy loaded modules will be preloaded in the background. 

RouterModule.forRoot(appRoutes, {preloadingStrategy: PreloadAllModules})

On the other hand, if we set preloadingStrategy property to NoPreloading, then none of the lazy loaded modules will be preloaded. 

RouterModule.forRoot(appRoutes, {preloadingStrategy: NoPreloading})

So with the following 2 built-in preloadingStrategy options, we can either preload, all lazy loaded modules or none of them. 
  • PreloadAllModules
  • NoPreloading
But, what if we want to preload some of the modules and not the other. In our case, let's say we want to preload EmployeeModule, but not the AdminModule. This is when, we create our own Custom Preloading Strategy. 

Steps for creating Custom Preloading Strategy in Angular

Step 1 : To create a Custom Preloading Strategy, create a service that implements Angular's built-in PreloadingStrategy abstract class

To generate the service, use the following Angular CLI command 
ng g s CustomPreloading

This command generates a file with name custom-preloading.service.ts. Modify the code in that file as shown below. 

import { Injectable } from '@angular/core';
import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
// Since we are creating a Custom Preloading Strategy, this service
// class must implement PreloadingStrategy abstract class
export class CustomPreloadingService implements PreloadingStrategy {

  constructor() { }

  // PreloadingStrategy abstract class has the following preload()
  // abstract method for which we need to provide implementation
  preload(route: Route, fn: () => Observable<any>): Observable<any> {
    // If data property exists on the route of the lazy loaded module
    // and if that data property also has preload property set to
    // true, then return the fn() which preloads the module
    if (route.data && route.data['preload']) {
      return fn();
    // If data property does not exist or preload property is set to
    // false, then return Observable of null, so the module is not
    // preloaded in the background
    } else {
      return of(null);
    }
  }
}

Step 2 : Import CustomPreloadingService and set it as the Preloading Strategy 

In app-routing.module.ts, import CustomPreloadingService 

import CustomPreloadingService from './custom-preloading.service';

Set CustomPreloadingService as the Preloading Strategy 

RouterModule.forRoot(appRoutes, {
  preloadingStrategy: CustomPreloadingService
})

Modify the 'employees' route, and set preload property to true or false. Set it to true if you want the EmployeeModule to be preloaded else false. 

const appRoutes: Routes = [
  { path: 'home', component: HomeComponent },
  { path: '', redirectTo: '/home', pathMatch: 'full' },
  {
    path: 'employees',
    // set the preload property to true, using the route data property
    // If you do not want the module to be preloaded set it to false
    data: { preload: true },
    loadChildren: './employee/employee.module#EmployeeModule'
  },
  { path: '**', component: PageNotFoundComponent }
];