SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Utilities 400 | System i Solutions | Using triggers to improve your business processes




  Using triggers to improve
  business processes
  Steve Close
  Utilities 400 Limited.

Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                                   Triggers
 - One of the most underused
   features on the operating system

 - Can cause a trigger to be
   executed (“fired”!) whenever a
   record is added, updated, deleted
   or read from a file

 - Triggers can call any program to
   perform additional business logic
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                   Add a Trigger
 - To add a trigger to a file use
   command ADDPFTRG

 - Triggers are always added to a
   physical file, but trigger occurs
   however record is accessed




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                   Add a Trigger




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                             Gotcha (i)
      Need to get an exclusive lock
      on a file to be able to add or
                   remove a trigger

 Solutions:
 1)        Log on late at night when
           nobody is using the system.




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                             Gotcha (i)
      Need to get an exclusive lock
      on a file to be able to add or
                   remove a trigger

 Solutions:
 2)        Give up!




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                             Gotcha (i)
     Need to get an exclusive lock
     on a file to be able to add or
                  remove a trigger

 Solutions:
 3) Write a little application to perform
    the add remove triggers
           a) Create a file with add/remove
           flag and all the attributes for the
           command
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                             Gotcha (i)
     Need to get an exclusive lock
     on a file to be able to add or
                  remove a trigger

 Solutions:
 3) Write a little application to perform
    the add remove triggers
           b) write a program that runs at an
           appropriate time that reads this
           file, performs actions and deletes
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                           Gotcha (ii)
  Once a job has fired the trigger
      the program referenced on
   trigger gets locked to the job.

 Solution:
 Write a generic trigger program that is
 called by any trigger that you ever add.
 This trigger program analyses the string
 passed to it by the trigger and reads a file
 to decide which program to call, passing
 the trigger data to it.
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                          Gotcha (iii)
       The execution of the logic
  defined in the trigger becomes
        part of the I/O operation
                  against the file.
 Solutions:
 If adding any long running operations
 as part of a trigger make sure it
 submits the job, preferably to a multi
 threaded job queue.


Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                                              Data
     What data is passed by the
  operating system to the trigger
                       program?

 Two parameters:
 1)        A long string containing control
           information followed by the
           before and after images of the
           record processes.


Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                                              Data
     What data is passed by the
  operating system to the trigger
                       program?

 Two parameters:
 2)        A 4 byte binary number containing
           the length of the string passed.




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                                              Data
        Trigger control information.
       1-10                 Name of the file being triggered
       11-20                Library of the file being triggered
       21-30                Member being triggered
       31                   Trigger event
                            1 = Insert 2 = Delete
                            3 = Update 4 = Read
       32                   Trigger time
                            1 = After
                            2 = Before
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                                              Data
        Trigger control information.
       37-40                CCSID of the file (4 byte binary)
       41-44                RRN of the record being processed
                            (4 byte binary)
       49-52                Offset to the before image of the
                            record (4 byte binary) (orgoffset)
       53-56                Length of the before record (orglen)
       57-60                Offset to the after image of the
                            record (newoffset)
       61-64                Length of the after record (newlen)
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



                                              Data
    To extract the before image in
                            RPG:-
      Eval orgrecord=%subst(buffer:orgoffset:orglen)
      Eval newrecord=%subst(buffer:newoffset:newlen)




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



         Generic program
  The last thing the generic program needs
  to do is access the file you have created
  to decide which program to call.

  For instance this file would tell the
  generic program that when a record
  is add to file CUSTOMER in library
  SHOWMEDEMO that it should call the
  relevant program
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



         Generic program
  Recommend that all is a generic program
  and then pass to each individual routine

  1)        The current user (Defined in
            the program status data area
            of the generic program




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



         Generic program
  Recommend that all is a generic program
  and then pass to each individual routine

  2)        The trigger event (Insert,
            Update, etc.)
  3)        The trigger time (Before or
            After)



Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



         Generic program
  Recommend that all is a generic program
  and then pass to each individual routine

  4)        The before image
  5)        The after image




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



         Generic program
  In the called program defined two data structures:-

  d b_recordstr e ds                     extname(CUSTOMER) prefix(b_)
  d a_recordstr e ds                     extname(CUSTOMER) prefix(a_)

  Then move the before image into structure b_recordstr
       move the after image into structure a_recordstr



Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



         Generic program
  You now have all fields from the before image available
  to the program, for example:

  B_BALANCE
  B_NUMORDS




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



         Generic program
  And all the fields from the after image, for example:

  A_BALANCE
  A_NUMORDS




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



            Client Examples
  Sending an email to
  customer services when a
  customer goes over their
  credit limit, maybe
  attaching a spreadsheet to
  all their open invoices

Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



            Client Examples
  Creating a workflow for
  order acceptance including
  order acknowledgement,
  picking lists, delivery notes
  and invoices


Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



            Client Examples
  Creating an audit log of
  any changes to fields on
  required files. Can log user,
  date and time, program
  name, and before and after
  image of any or all fields.

Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



            Client Examples
  Replicate the data via an
  SQL statement into other
  tables or applications




Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



        Other commands
  CHGPFTRG                       Change trigger, can change status to
                                 *ENABLED or *DISABLED – needs
                                 exclusive lock
  RMVPFTRG                       Removes a trigger – needs exclusive
                                 lock

  PRTTRGPGM                      List all the triggers in a particular
                                 library *ALL

Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



               Considerations

  Consider writing your generic trigger
  program to read a file of triggers to
  ignore. In this way you can turn any
  particular trigger off and back on without
  needing to have an exclusive lock.


Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes



          Happy Shooting!
  Keep your trigger finger handy! Should
  you wish to learn more on how we helped
  businesses with their automation
  requirements please contact me.


  sclose@uti400.com
  www.uti400.com
Your data, where, when and how you want it…
Utilities 400 | System i Solutions | Using triggers to improve your business processes




    Questions and Answers

  Steve Close
  Utilities 400 Limited.
Your data, where, when and how you want it…

Más contenido relacionado

Similar a Utilities 400 NiSUG Trigger Presentation

香港六合彩
香港六合彩香港六合彩
香港六合彩taoyan
 
Importance of ‘Centralized Event collection’ and BigData platform for Analysis !
Importance of ‘Centralized Event collection’ and BigData platform for Analysis !Importance of ‘Centralized Event collection’ and BigData platform for Analysis !
Importance of ‘Centralized Event collection’ and BigData platform for Analysis !Piyush Kumar
 
Library Management System using oracle database
Library Management System using oracle databaseLibrary Management System using oracle database
Library Management System using oracle databaseSaikot Roy
 
AMB110: IT Asset Management – How to Start When You Don’t Know Where to Start
AMB110: IT Asset Management – How to Start When You Don’t Know Where to StartAMB110: IT Asset Management – How to Start When You Don’t Know Where to Start
AMB110: IT Asset Management – How to Start When You Don’t Know Where to StartIvanti
 
Principles Of Data Quality Management
Principles Of Data Quality ManagementPrinciples Of Data Quality Management
Principles Of Data Quality ManagementMonica Turner
 
SplunkLive! Presentation - Data Onboarding with Splunk
SplunkLive! Presentation - Data Onboarding with SplunkSplunkLive! Presentation - Data Onboarding with Splunk
SplunkLive! Presentation - Data Onboarding with SplunkSplunk
 
IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...
IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...
IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...George Grammatikos
 
Practical operability techniques for distributed systems - Velocity EU 2017
Practical operability techniques for distributed systems - Velocity EU 2017Practical operability techniques for distributed systems - Velocity EU 2017
Practical operability techniques for distributed systems - Velocity EU 2017Skelton Thatcher Consulting Ltd
 
Systems Analysis And Role Of The Systems Analyst
Systems Analysis And Role Of The Systems AnalystSystems Analysis And Role Of The Systems Analyst
Systems Analysis And Role Of The Systems AnalystAshley Lovato
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and designRobinsonObura
 
London atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slidesLondon atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slidesRudiger Wolf
 
ITAM Portfolio-The Big Umbrella-Slideshare.pptx
ITAM Portfolio-The Big Umbrella-Slideshare.pptxITAM Portfolio-The Big Umbrella-Slideshare.pptx
ITAM Portfolio-The Big Umbrella-Slideshare.pptxSandeep Bhatia
 
Logicaworks brochure
Logicaworks brochureLogicaworks brochure
Logicaworks brochureAshwini Rath
 
SharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real lifeSharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real lifeToni Frankola
 
HotButton Solutions : HotLeap Tracker Brochure v1.9
HotButton Solutions : HotLeap Tracker Brochure v1.9HotButton Solutions : HotLeap Tracker Brochure v1.9
HotButton Solutions : HotLeap Tracker Brochure v1.9Nathan Watt
 
Implementing and auditing security controls part 2
Implementing and auditing security controls   part 2Implementing and auditing security controls   part 2
Implementing and auditing security controls part 2Rafel Ivgi
 
15 hacks for better ITAM with ServiceDesk Plus
15 hacks for better ITAM with ServiceDesk Plus15 hacks for better ITAM with ServiceDesk Plus
15 hacks for better ITAM with ServiceDesk PlusLeeben Amirthavasagam
 
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptxFAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptxgattamanenitejeswar
 

Similar a Utilities 400 NiSUG Trigger Presentation (20)

香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Libnova ICoC
Libnova ICoCLibnova ICoC
Libnova ICoC
 
Importance of ‘Centralized Event collection’ and BigData platform for Analysis !
Importance of ‘Centralized Event collection’ and BigData platform for Analysis !Importance of ‘Centralized Event collection’ and BigData platform for Analysis !
Importance of ‘Centralized Event collection’ and BigData platform for Analysis !
 
Library Management System using oracle database
Library Management System using oracle databaseLibrary Management System using oracle database
Library Management System using oracle database
 
AMB110: IT Asset Management – How to Start When You Don’t Know Where to Start
AMB110: IT Asset Management – How to Start When You Don’t Know Where to StartAMB110: IT Asset Management – How to Start When You Don’t Know Where to Start
AMB110: IT Asset Management – How to Start When You Don’t Know Where to Start
 
Principles Of Data Quality Management
Principles Of Data Quality ManagementPrinciples Of Data Quality Management
Principles Of Data Quality Management
 
SplunkLive! Presentation - Data Onboarding with Splunk
SplunkLive! Presentation - Data Onboarding with SplunkSplunkLive! Presentation - Data Onboarding with Splunk
SplunkLive! Presentation - Data Onboarding with Splunk
 
IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...
IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...
IT PRO | Connections 2020 : Introduction to Logic Apps and automation solutio...
 
Practical operability techniques for distributed systems - Velocity EU 2017
Practical operability techniques for distributed systems - Velocity EU 2017Practical operability techniques for distributed systems - Velocity EU 2017
Practical operability techniques for distributed systems - Velocity EU 2017
 
Systems Analysis And Role Of The Systems Analyst
Systems Analysis And Role Of The Systems AnalystSystems Analysis And Role Of The Systems Analyst
Systems Analysis And Role Of The Systems Analyst
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and design
 
London atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slidesLondon atlassian meetup 31 jan 2016 jira metrics-extract slides
London atlassian meetup 31 jan 2016 jira metrics-extract slides
 
ITAM Portfolio-The Big Umbrella-Slideshare.pptx
ITAM Portfolio-The Big Umbrella-Slideshare.pptxITAM Portfolio-The Big Umbrella-Slideshare.pptx
ITAM Portfolio-The Big Umbrella-Slideshare.pptx
 
Audit and syslog lightning talk
Audit and syslog lightning talkAudit and syslog lightning talk
Audit and syslog lightning talk
 
Logicaworks brochure
Logicaworks brochureLogicaworks brochure
Logicaworks brochure
 
SharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real lifeSharePoint Governance: stories, myths, legends and real life
SharePoint Governance: stories, myths, legends and real life
 
HotButton Solutions : HotLeap Tracker Brochure v1.9
HotButton Solutions : HotLeap Tracker Brochure v1.9HotButton Solutions : HotLeap Tracker Brochure v1.9
HotButton Solutions : HotLeap Tracker Brochure v1.9
 
Implementing and auditing security controls part 2
Implementing and auditing security controls   part 2Implementing and auditing security controls   part 2
Implementing and auditing security controls part 2
 
15 hacks for better ITAM with ServiceDesk Plus
15 hacks for better ITAM with ServiceDesk Plus15 hacks for better ITAM with ServiceDesk Plus
15 hacks for better ITAM with ServiceDesk Plus
 
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptxFAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
 

Último

activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 

Último (20)

activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 

Utilities 400 NiSUG Trigger Presentation

  • 1. Utilities 400 | System i Solutions | Using triggers to improve your business processes Using triggers to improve business processes Steve Close Utilities 400 Limited. Your data, where, when and how you want it…
  • 2. Utilities 400 | System i Solutions | Using triggers to improve your business processes Triggers - One of the most underused features on the operating system - Can cause a trigger to be executed (“fired”!) whenever a record is added, updated, deleted or read from a file - Triggers can call any program to perform additional business logic Your data, where, when and how you want it…
  • 3. Utilities 400 | System i Solutions | Using triggers to improve your business processes Add a Trigger - To add a trigger to a file use command ADDPFTRG - Triggers are always added to a physical file, but trigger occurs however record is accessed Your data, where, when and how you want it…
  • 4. Utilities 400 | System i Solutions | Using triggers to improve your business processes Add a Trigger Your data, where, when and how you want it…
  • 5. Utilities 400 | System i Solutions | Using triggers to improve your business processes Gotcha (i) Need to get an exclusive lock on a file to be able to add or remove a trigger Solutions: 1) Log on late at night when nobody is using the system. Your data, where, when and how you want it…
  • 6. Utilities 400 | System i Solutions | Using triggers to improve your business processes Gotcha (i) Need to get an exclusive lock on a file to be able to add or remove a trigger Solutions: 2) Give up! Your data, where, when and how you want it…
  • 7. Utilities 400 | System i Solutions | Using triggers to improve your business processes Gotcha (i) Need to get an exclusive lock on a file to be able to add or remove a trigger Solutions: 3) Write a little application to perform the add remove triggers a) Create a file with add/remove flag and all the attributes for the command Your data, where, when and how you want it…
  • 8. Utilities 400 | System i Solutions | Using triggers to improve your business processes Gotcha (i) Need to get an exclusive lock on a file to be able to add or remove a trigger Solutions: 3) Write a little application to perform the add remove triggers b) write a program that runs at an appropriate time that reads this file, performs actions and deletes Your data, where, when and how you want it…
  • 9. Utilities 400 | System i Solutions | Using triggers to improve your business processes Gotcha (ii) Once a job has fired the trigger the program referenced on trigger gets locked to the job. Solution: Write a generic trigger program that is called by any trigger that you ever add. This trigger program analyses the string passed to it by the trigger and reads a file to decide which program to call, passing the trigger data to it. Your data, where, when and how you want it…
  • 10. Utilities 400 | System i Solutions | Using triggers to improve your business processes Gotcha (iii) The execution of the logic defined in the trigger becomes part of the I/O operation against the file. Solutions: If adding any long running operations as part of a trigger make sure it submits the job, preferably to a multi threaded job queue. Your data, where, when and how you want it…
  • 11. Utilities 400 | System i Solutions | Using triggers to improve your business processes Data What data is passed by the operating system to the trigger program? Two parameters: 1) A long string containing control information followed by the before and after images of the record processes. Your data, where, when and how you want it…
  • 12. Utilities 400 | System i Solutions | Using triggers to improve your business processes Data What data is passed by the operating system to the trigger program? Two parameters: 2) A 4 byte binary number containing the length of the string passed. Your data, where, when and how you want it…
  • 13. Utilities 400 | System i Solutions | Using triggers to improve your business processes Data Trigger control information. 1-10 Name of the file being triggered 11-20 Library of the file being triggered 21-30 Member being triggered 31 Trigger event 1 = Insert 2 = Delete 3 = Update 4 = Read 32 Trigger time 1 = After 2 = Before Your data, where, when and how you want it…
  • 14. Utilities 400 | System i Solutions | Using triggers to improve your business processes Data Trigger control information. 37-40 CCSID of the file (4 byte binary) 41-44 RRN of the record being processed (4 byte binary) 49-52 Offset to the before image of the record (4 byte binary) (orgoffset) 53-56 Length of the before record (orglen) 57-60 Offset to the after image of the record (newoffset) 61-64 Length of the after record (newlen) Your data, where, when and how you want it…
  • 15. Utilities 400 | System i Solutions | Using triggers to improve your business processes Data To extract the before image in RPG:- Eval orgrecord=%subst(buffer:orgoffset:orglen) Eval newrecord=%subst(buffer:newoffset:newlen) Your data, where, when and how you want it…
  • 16. Utilities 400 | System i Solutions | Using triggers to improve your business processes Generic program The last thing the generic program needs to do is access the file you have created to decide which program to call. For instance this file would tell the generic program that when a record is add to file CUSTOMER in library SHOWMEDEMO that it should call the relevant program Your data, where, when and how you want it…
  • 17. Utilities 400 | System i Solutions | Using triggers to improve your business processes Generic program Recommend that all is a generic program and then pass to each individual routine 1) The current user (Defined in the program status data area of the generic program Your data, where, when and how you want it…
  • 18. Utilities 400 | System i Solutions | Using triggers to improve your business processes Generic program Recommend that all is a generic program and then pass to each individual routine 2) The trigger event (Insert, Update, etc.) 3) The trigger time (Before or After) Your data, where, when and how you want it…
  • 19. Utilities 400 | System i Solutions | Using triggers to improve your business processes Generic program Recommend that all is a generic program and then pass to each individual routine 4) The before image 5) The after image Your data, where, when and how you want it…
  • 20. Utilities 400 | System i Solutions | Using triggers to improve your business processes Generic program In the called program defined two data structures:- d b_recordstr e ds extname(CUSTOMER) prefix(b_) d a_recordstr e ds extname(CUSTOMER) prefix(a_) Then move the before image into structure b_recordstr move the after image into structure a_recordstr Your data, where, when and how you want it…
  • 21. Utilities 400 | System i Solutions | Using triggers to improve your business processes Generic program You now have all fields from the before image available to the program, for example: B_BALANCE B_NUMORDS Your data, where, when and how you want it…
  • 22. Utilities 400 | System i Solutions | Using triggers to improve your business processes Generic program And all the fields from the after image, for example: A_BALANCE A_NUMORDS Your data, where, when and how you want it…
  • 23. Utilities 400 | System i Solutions | Using triggers to improve your business processes Client Examples Sending an email to customer services when a customer goes over their credit limit, maybe attaching a spreadsheet to all their open invoices Your data, where, when and how you want it…
  • 24. Utilities 400 | System i Solutions | Using triggers to improve your business processes Client Examples Creating a workflow for order acceptance including order acknowledgement, picking lists, delivery notes and invoices Your data, where, when and how you want it…
  • 25. Utilities 400 | System i Solutions | Using triggers to improve your business processes Your data, where, when and how you want it…
  • 26. Utilities 400 | System i Solutions | Using triggers to improve your business processes Client Examples Creating an audit log of any changes to fields on required files. Can log user, date and time, program name, and before and after image of any or all fields. Your data, where, when and how you want it…
  • 27. Utilities 400 | System i Solutions | Using triggers to improve your business processes Client Examples Replicate the data via an SQL statement into other tables or applications Your data, where, when and how you want it…
  • 28. Utilities 400 | System i Solutions | Using triggers to improve your business processes Other commands CHGPFTRG Change trigger, can change status to *ENABLED or *DISABLED – needs exclusive lock RMVPFTRG Removes a trigger – needs exclusive lock PRTTRGPGM List all the triggers in a particular library *ALL Your data, where, when and how you want it…
  • 29. Utilities 400 | System i Solutions | Using triggers to improve your business processes Considerations Consider writing your generic trigger program to read a file of triggers to ignore. In this way you can turn any particular trigger off and back on without needing to have an exclusive lock. Your data, where, when and how you want it…
  • 30. Utilities 400 | System i Solutions | Using triggers to improve your business processes Happy Shooting! Keep your trigger finger handy! Should you wish to learn more on how we helped businesses with their automation requirements please contact me. sclose@uti400.com www.uti400.com Your data, where, when and how you want it…
  • 31. Utilities 400 | System i Solutions | Using triggers to improve your business processes Questions and Answers Steve Close Utilities 400 Limited. Your data, where, when and how you want it…