1 BPM Business Process Management Advantage Business Creations.
Post on 31-Mar-2015
239 Views
Preview:
Transcript
1
BPMBPMBusiness Process Business Process ManagementManagement
Advantage Business Advantage Business CreationsCreations
Session ObjectiveSession Objective
Provide a solid understanding of how BPM interfaces with the business object
Demonstrate and use Pre and Post Processing directives
Demonstrate effective BPM writing and debugging techniques◦ Using informational message◦ Using Progress comment text
Demonstrate extending the wizard with 4GL(ABL) programming
Demonstrate using database tables and fields outside of the method dataset
Session AssumptionsSession AssumptionsYou can effectively use the condition
and action wizard in BPM
You have base working knowledge of Personalization and Customization
This class extends education and does not use examples in other class materials
At Course completion you At Course completion you willwillEffectively write BPMs beyond the
wizard.
Receive documentation for all workshops.
Receive recordings of all workshops with embedded documentation
Receive the .bpm examples
AgendaAgendaBusiness Object BasicsBPM OverviewBPM Workshops
1. Set field values outside dataset using UpdateTableBuffer
2. Use a method to set fields other than Update
3. Use 4GL(ABL)to read records from a table outside dataset
4. Calculate and Roll Up Totals from Detail to Header
5. Epicor 9 BPM Data Form Designer
Q & A
Business Object BasicsBusiness Object BasicsBusiness object controls all input and out from
the database
Contains all rules for processing records
Contains a normalized relationship between tables and field in the actual database
Contains methods for interfacing with dataCan be called by web services, smart client,
web client or other program
Business Objects and Method Business Objects and Method DirectivesDirectives
◦Business Object Part SalesOrder
◦Method Part.Update SalesOrder.ChangeMiscCode Part.ChangePartNum
7
Methods in a Business Methods in a Business ObjectObject
An internal procedure or function. These are used to enter, calculate and view data.
Delete by ID◦ Used to delete records (sometimes)
Get by ID◦ Used to retrieve records for specific ID◦ Returns all the data
Get List◦ Used in searches◦ Returns key data
Get New◦ Used to create a new record
Get Rows◦ Used to retrieve specific data for a group of records
Update◦ Used to add, update and delete records◦ Most common method to use in BPM
Directives - Contains all rules Directives - Contains all rules for processing recordsfor processing records
Pre-Processing Directives-used to intercept data before it reaches the database.◦Temporary Tables-dataset used to compare to
the existing dataset, ttPartBase Processing -used in place of base
code; difficult to use effectivelyPost-Processing- used to intercept data
returning from the database through the Business Object.
– action to takes place after the record has been successfully validated and updated.
9
Can be called by web Can be called by web services, smart client, web services, smart client, web client or other programsclient or other programsClient Server (Smart Client)
◦A BPM is an application that resides between the Smart Client (Vantage/Epicor installation on local PC) and the Business Objects.
◦Various Forms and Programs
10
Simple Flow DiagramSimple Flow Diagram
User \ Program
Business ObjectFunctional Name
Data Base
Pre-Processing Post-Processing
MethodsttTableName.FieldName
TableName.FieldName
4GL(ABL) Program
Business Process ManagementBusiness Process Management
Execution flow before BPMExecution flow before BPM
Smart Client or Web Service
4GL(ABL)
Code
(Server)
Database
Method Call (e.g. Update Customer)
Call Method Return Result
Data
Data
Business Process ManagementBusiness Process Management
Execution flow with BPMExecution flow with BPM
Smart Client or Web Service
4GL(ABL)
CodeDatabase
BPM (Pre) BPM (Post)
Method Call (e.g. Update Customer)Data
Data
Using the Tracing OptionsUsing the Tracing OptionsEnabled from the main menuWrites the information to a file for
review◦ Identifies the relevant Business Object◦ Identifies Method-trigger used to invoke
BPM.◦ Data -positive proof of what is being called
when needed◦ Maps out the flow of data as an user
interacts with a form.
BPM Setup ReviewBPM Setup ReviewMethod Search
◦Search by Business Object / By Method
◦Necessary when a BPM does not already exist for a given BO and Method
BPM Review BPM Review Directive Search
◦Used to search for existing BPM’s◦Useful for grouping associated BPM’s
Conditions – Overview Conditions – Overview Pre-Process
◦Advance Procedures Example – As it appears in the Actions
window [custom source code]
Post-Process◦This directive has been enabled from
the specified directive Used when condition in the Pre-Process to
enable an action in the Post-Process.
Row ModsRow ModsConditions
◦Row Mods Updated (RowMod = ‘U’) Added (RowMod = ‘A’) Deleted (RowMod = ‘D’) Changed (RowMod = ‘U’ or RowMod =
‘A’)
Actions – OverviewActions – OverviewPre-Process
◦Send e-mail synchronously based on the designed template
◦Execute 4GL(ABL) code Example – execute 4GL(ABL) update ship
via The verbage ‘update ship via’ is accomplished by
commenting out the first line in 4GL(ABL) code.
◦Show informational message based on the designed template Issue a warning – can include data from
fields related to the transaction to help debug
Actions – Overview Actions – Overview Post-Process
◦ Call the specified Epicor Service Connect Workflow specify how
◦ Attach hold of the specified type Must set up holds first in Hold Type Maintenance
under Business Process Management/Setup\Hold Type
This action is also available in Pre-Process
QueriesQueriesQueries are written using the progress or
4GL(ABL) language◦ Resources
BAQ’s Progress 4GL(ABL) Handbook Progress 4GL(ABL) Reference Progress Programming Handbook (available for download from
the Progress website).◦ 4GL(ABL) format Example –
for each ttPartTran where (ttPartTran.RowMod = 'U' or ttPartTran.RowMod = 'A' and ttPartTran.TranType = 'MFG-STK') ,
each JobHead each JobPart where JobHead.JobNum = ttPartTran.JobNum and
JobPart.JobNum = ttPartTran.JobNum and(Jobhead.QtyCompleted - JobPart.ReceivedQty) <
ttPartTran.TranQty English translation – Show me when someone attempts to
receive more parts into stock from a job than are currently reported complete on that job.
Queries Queries
Queries Queries
Advanced & 4GL Code Advanced & 4GL Code ActionsActions
Advanced Procedure◦In any Condition
or Action Box there is a button labeled ‘Advanced’
◦Enter 4GL(ABL) code
Advanced & 4GL(ABL) Code Advanced & 4GL(ABL) Code Actions Actions
4GL(ABL) Actions◦ Used to execute 4GL(ABL) code which can
consist of any combination of queries, definition of variables, calculations, updating fields, and or calling other progress functions/programs Ex. of a function: Run lib\UpdateTableBuffer.p(input
BUFFER<Table>:Handle,’<Field>’,<Value>)
◦ When to use Advance Procedure or execute 4GL(ABL) Code?
Advanced & 4GL(ABL) Code Advanced & 4GL(ABL) Code Actions Actions
4GL(ABL) Code◦ Run lib\UpdateTableBuffer.p(input BUFFER
<Table>:HANDLE, '<Field>',<Value>) Used to update fields in tables unrelated to the current
transaction
◦ Assign Used to update a field in table related to the current
transaction
Advanced & 4GL(ABL) Code Advanced & 4GL(ABL) Code Actions Actions 4GL(ABL) Constants
◦DCD-USERID Current User ID
◦CUR-PLANT Plant transacting in
◦CUR-COMP Company transacting in (ID)
◦CUR-COMP-NAME Company Name (see Company
Maintenance)
THANK YOU!THANK YOU!◦ BPM Interactive Workshops
#1 & #2 will utilize the Epicor Knowledge Mentorto demo; then attendees will work on each workshop.
#3 & #4 will utilize Live Vantage 8.03.407c to demo; then attendees will work on each workshop.
#5 Live in Epicor 9
◦ General Q&A
BPM Ex1BPM Ex1
Set field values outside dataset using UpdateTableBufferSet field values outside dataset using UpdateTableBuffer
Objective: Default Material Burden % rate at Part based on PartClass.Update. In this example material burden % rate will be used but the concept can be applied to a number of methods.
Concepts◦Using a method to set field values outside
data set using UpdateTableBuffer.p command.
◦Using calculations within a directive
BPM Ex2BPM Ex2
Setting Field Before UpdateSetting Field Before Update
Objective: Default order misc amount based on total order amount. In this example we will use misc charge but the concept can be applied to a number of methods.
Concepts◦ Using a method to set fields values before
update◦ Using calculations within a directive
BPM Ex3BPM Ex3
Setting Fields from Another TableSetting Fields from Another Table
Objective: Default fields from the part master. In this example we will use the order line but the concept can be applied to a number of methods.
Concepts◦ Population of fields before the record is saved◦ Using Post Processing Directive◦ Using the information message as a debug tool◦ Using Method directive without a condition◦ Using 4GL(ABL) code to read records from a table
outside of the dataset
BPM Ex4BPM Ex4
Calculate and Roll Up TotalsCalculate and Roll Up TotalsObjective: Calculate and roll up
totals from a sub table to the header. In this example we will use the order line but the concept can be applied to a number of methods.
Concepts◦ Using 4GL(ABL) code to read records from a
table outside of the dataset◦ Using 4GL(ABL) variable to calculate and
accumulate totals
BPM Ex5BPM Ex5
BPM Data Form DesignerBPM Data Form DesignerObjective: E9 BPM Data Form Designer program creates custom forms that can then launch through BPM method directives
Concepts◦ Use “Call the named BPM Data Form using no
customization always” action within a directive.◦ Create simple form which contains text and two
buttons; data entry fields that update r database. ◦ Conditionally display a form or capture data
required against a specific transaction.
top related