OTM Workflow Best Practices - SRUJAN MATTERS OTM Workflow Best Practices By Lakshmi Padileti DATE: 14TH AUGUST 2012

  • Published on
    16-Mar-2018

  • View
    220

  • Download
    6

Embed Size (px)

Transcript

  • QUALITY MATTERS

    OTM Workflow

    Best Practices

    By

    Lakshmi Padileti

    DATE: 14TH AUGUST 2012

    www.srujantechnologies.com

  • Agenda

    Workflow Dependencies & Components

    Workflow Preparation & Design

    Workflow Setup Tips

    Business Scenarios Best Practices

    Documentation

  • Agenda

    Workflow Dependencies & Components

    Workflow Preparation & Design

    Workflow Setup Tips

    Business Scenarios Best Practices

    Documentation

  • Workflow Dependencies

  • Workflow Facts

    Workflow is NOT just agents

    What to use is the KEY for best

    workflow design

    One small mistake can cause the bigger

    performance issues

    Lot of new agent actions introduced, before writing

    traditional way, look for new actions

  • Major Workflow Components

    Automation Agents

    Schedule Jobs

    (Integration) Saved Queries

    Milestone Monitors

    VPD Profiles

    Action Checks and

    Many more

  • Integration Design

    Does it impact workflow design? How?

    Integration Components:

    Interface Design

    External System Setup

    Out XML Profiles

    Error Handling

  • Performance Tuning

    Again, does it impact workflow design? How?

    Major Performance Tuning Components

    Tuning Threads

    Tuning Connection Pools

    Server Level Tuning (JVM, Memory, etc)

    Minimizing Logs

  • Agenda

    Workflow Dependencies & Components

    Workflow Preparation & Design

    Workflow Setup Tips

    Business Scenarios Best Practices

    Documentation

  • Workflow Time Allocation

    Following chart gives high level time allocation for

    complex workflow setup

    This may vary depends on the complexity

    0%

    10%

    20%

    30%

    40%

    Design Build Test

    Time Allocation by Phase

    Time Allocation

  • Workflow Preparation

    Collect

    Requirement Discussions

    Analyze

    Understand & identify affected objects

    Prepare

    Document high level workflow setup

  • Workflow Preparation Analysis

    Analysis:

    Document all workflow related tasks before start the build

    phase

    Identify all the common components such as saved queries,

    agent events, schedule jobs, OTM workflow vs Integration

    layer changes, etc

    Analyze the proposed approach in terms of timing,

    performance, data accuracy, etc

  • Workflow Preparation Design

    Design:

    Avoid multiple agents triggering for same agent event

    Initiate the DB package with frequently used queries &

    complex business logic

    Introduce flags at object level for easy workflow &

    reports separation in multi phased/business process

    implementations

    Optimize the server resources by distributing schedule job

    timings

    Identification of interfaces & integration process

  • Workflow Preparation Design contd

    Process identification is

    key in workflow design

    Agents

    Saved Queries / Packages

    Schedule Jobs

    Milestones

    Action Checks

    User Security (VPD, etc)

    Anything else?

  • Agents:

    Identification of exact triggering conditions

    Identify similar requirements can go together

    Agents high level flow for each business scenario

    Identify key agent actions/lookup/queries

    Integrations:

    List of interfaces and data dependency

    Communication Method & List of Ext. Systems

    Out XML Profiles

    Workflow Preparation Design contd

  • Error Handling:

    Initiate process for proper technical error handling

    Identify the possible solutions for business exceptions

    Team:

    Allocate one dedicated team for workflow preparation to

    avoid redundancy

    Review the finalized process with different team before

    build phase starts

    Workflow Preparation Design contd

  • Workflow Preparation Sample

    Requirement: Copy the shipment quantities to shipment

    actuals received via shipment events

    Analyze: Identify when to copy actuals, for every

    shipment event or only Pickup or Delivery? Check any

    other requirements can marry with this one

    Prepare: Document the requirement & write the high

    level pseudo agent related to this requirement

  • Workflow Preparation Sample contd

    Prepare:

    Sample document

    for Agents

    Specification

    What might be

    poor design here?

  • Agenda

    Workflow Dependencies & Components

    Workflow Preparation & Design

    Workflow Setup Tips

    Business Scenarios Best Practices

    Documentation

  • Avoid triggering multiple agents for given agent

    event. This can cause serious problems if we mis-use.

    Avoid using WAIT action

    Careful while writing DSU Action:

    Default behavior refreshes entire Business Object Tree (I.e.

    Shipment, Stop, Ship Unit, etc.)

    Enable Parse SQL option to increase performance by

    only refreshing objects updated by SQL

    Use Do Not Refresh when performing multiple updates to

    the same object within one Agent

    Workflow Setup Agents

  • Similar actions should not trigger in parallel on same

    object.

    For ex, Recalc on date change & Rerate on locations

    change. There are chances we can expect these two

    changes at once

    Every agent must pass through the test cases

    Split the agents by business process

    Enforce the version controlling in the agents

    Workflow Setup Agents contd

  • Avoid writing all actions into one big agent

    Error Handler section should minimum notify users

    Before going to production, NO AGENT TECHNICAL

    FAILURES for any reason.

    The acceptable failures will be business exceptions but

    not technical exceptions

    Workflow Setup Agents contd

  • Workflow Setup Saved Queries

    Every SQL query must optimized by running explain

    plan

    When query is expected for heavy usage, validate

    the query with DBA for better performance

    Move the commonly used queries into DB package

    Avoid using OTM shipped views more than once in the

    same query

    When query is running longer time, negotiate with

    business team to compromise the requirements

  • Workflow Setup Ext. Systems

    Ext. systems configuration is simple and key

    Identify the BEST communication method to use, for ex,

    HTTP, Web Service, FTP, etc by analyzing the current

    environment

    MUST have an habit to use Out XML Profile with

    template option to reduce the xml size in ext. systems

    Try to create a separate ext. system for each

    interface even though they are referring to same URL

    Avoid using GLOG_* out xml profiles in notifications

  • Workflow Setup Schedule Jobs

    Query must be tuned to the greater extend

    Timing must be adjusted properly

    Avoid running different long running jobs at the same

    time

  • Workflow Setup Tuning

    Threads:

    A backlog of queued events and/or a long average wait

    time may indicate a need to increase threads

    Moving longer processing events to a dedicated thread

    group will increase throughput and reduce backlogs

    Workflow processing is monitored with the Event

    Diagnostics screen

    Increase the connection pool sizes to desired level

    based on the load test results

  • Logs

    Too much logging will impact on performance

    Avoid using Ad-Hoc logs (which are written for all

    users)

    Do not turn on too many logs for User logs as well,

    still impacts performance

  • Agenda

    Workflow Dependencies & Components

    Workflow Preparation & Design

    Workflow Setup Tips

    Business Scenarios Best Practices

    Documentation

  • Best Design Approaches

    Restrict the user access to see the orders & shipments

    related to their work location

    Create separate screen sets, manager layouts & menus?

    Create separate VPD profile and User Role?

    Create one VPD profile with different User Roles link via

    VPD context variables?

  • Best Design Approaches

    Send planned shipment to legacy when shipment

    tendered or accepted

    Send planned shipment when tendered & accepted

    Revise the requirement and try to send planned shipment

    at tender accepted time and introduce out xml profile to

    reduce the size of XML as low as possible

    With this approach, half of the transmissions for sending

    the planned shipments will be decreased

  • Best Design Approaches

    Recalc Shipment when shipment dates are changed,

    Rerate shipment when locations are changed

    Write one agent for Recalc when dates changed and

    another agent for Rerate when locations are changed

    One agent with conditional check for dates vs location

    changes. Introduce Rerate status to identify rating failures

    This will the avoid duplicate planning process when both

    dates and locations are changed at the same time

  • Best Design App