Just about any process works on information of some kind. Here we will define a BPM object which will contain information about the expense report itself, as well as the state of the expense report in terms of the process.
In a real world process you may not necesarily handle the expense report data with a BPM object. Instead, you might use a pointer, such as an ID, to access a record in a corporate database.
That said, you will always handle a at least some information within the BPM process. Here we show you how to do this by defining a BPM object.
To begin, first examine the expense report form that follows:
This is a simple form for submitting an expense report. In a paper process, the employee would submit this form along with the receipts for the items listed in it.
You can think of this form as containing three sections: a header, with basic information about the submittal, the items section, with the "contents" of the form, and the footer (review section), which contains processing information not originally submitted.
Both header and footer contain simple fixed information fields, such as names, dates, a yes/no option, and so forth, while the items section contains a variable number of entries. Since the items section is a bit more complicated to implement, we will begin with the fixed fields. Our first step is to list these fields and the type of data they contain:
| Field Name | Data Type |
|---|---|
| Submitted By | String |
| Submit Date | Date |
| Description | String |
| Cost Center | Integer |
| Total | Money |
| Reviewed By | String |
| Comments | String |
| Approved | Boolean |
To keep track of what you are doing, you can print the expense report form shown. Use either the provided PDF version, or the Microsoft Word version.