There is a very flexible high-performance reporting API available. These APIs are called readers. Currently three different reader exist:
Class | Description |
---|---|
/PCH/CL_BPF_RD_RPROCESS | The Process Reader is used to read processes based on many different selection criteria. |
/PCH/CL_BPF_RD_RPROCESS_LISTNG | The Enhanced Process Reader is based on the above mentioned Process Reader but extends the available fields for better readability (e.g. Name of the user, Status description, ...) |
/PCH/CL_BPF_RD_RACTIVITY | The Activity Reader is used to read based on activities but also provides information about its parents objects (part process, process). |
The usage of all the readers is quite simple (see example at the end of the chapter):
Create a result table based on data dictionary structures or tables or even create the results table based on local type definitions.
Create an instance of a reader.
Set selection criteria using various SET_ Methods.
Retrieve the result using the Method READ.
The readers automatically optimize the database access based on the selection criteria and only selects the necessary data according to the provided results table passed into the READ method.
Optionally the fields to select can be restricted using the method SET_REQUESTED_FIELDS before the read if only a few fields of the results table should be filled up.
Selection criteria
The available selection criteria depends on the type of the reader. All the methods for setting selection criteria accept generic input values and will be automatically converted for the selection. The following types of criteria are supported:
Single value
List of values (table)
Range structure (single record)
Range table
If jus
If just a single value or a list of values is set, they are meant to include these criteria. Use ranges if exclusion or different types of comparison is needed.
Supported fields
The supported tables and fields are described below.
Field | Description |
---|---|
Process Reader | |
/PCH/BPF_RPRC | Contains all the runtime information about a process. Please refer to this structure to see the available fields. |
Enhanced Process Reader (in addition to the Process Reader) | |
STATUS_DESC | Description of the process status (e.g. Completed) |
PRIORITY_DESC | Description of the priority (e.g. Low) |
OBJECT_TYPE_EXT | Description of the object type (e.g. Material) |
BEZEI | Description of the process |
PROCESS_ID | External ID of the process |
VERSION | Version of the process |
INITIATOR_NAME | Full name of the process initiator (e.g. Hans Müller) |
OBJECT_KEY_EXT | Object key in external representation (e.g. without leading zeros) |
CREATED_NAME | Full name of the user who has (technically) created the process |
STARTED_NAME | Full name of the user who has (technically) started the process |
COMPLETED_NAME | Full name of the user who has finished the process |
CANCELLED_NAME | Full name of the user who has aborted the process |
OVERDUE_SINCE | Overdue in days if a process is overdue |
Activity Reader | |
/PCH/BPF_RACT | Contains all the runtime information about an activity. Please refer to this structure to see the available fields. |
/PCH/BPF_RSPC | Contains all the runtime information about the corresponding part process. Please refer to this structure to see the available fields. |
/PCH/BPF_RPRC | Contains all the runtime information about the corresponding process. Please refer to this structure to see the available fields. |
TITLE | Title of the corresponding workitem |
ACTIVITY_ID_EXT | External id of the activity |
ACTIVITY_DESC | Description of the activity |
PARTPROCESS_ID_EXT | External id of the part process |
PARTPROCESS_DESC | Description of the part process |
PROCESS_ID_EXT | External id of the process |
PROCESS_DESC | Description of the process |
PRIORITY_DESC | Description of the priority (e.g. Low) |
Field | Description |
---|---|
Process Reader | |
/PCH/BPF_RPRC | Contains all the runtime information about a process. Please refer to this structure to see the available fields. |
Enhanced Process Reader (in addition to the Process Reader) | |
STATUS_DESC | Description of the process status (e.g. Completed) |
PRIORITY_DESC | Description of the priority (e.g. Low) |
OBJECT_TYPE_EXT | Description of the object type (e.g. Material) |
BEZEI | Description of the process |
PROCESS_ID | External id of the process |
VERSION | Version of the process |
INITIATOR_NAME | Full name of the process initiator (e.g. Hans Müller) |
OBJECT_KEY_EXT | Object key in external representation (e.g. without leading zeros) |
CREATED_NAME | Full name of the user who has (technically) created the process |
STARTED_NAME | Full name of the user who has (technically) started the process |
COMPLETED_NAME | Full name of the user who has finished the process |
CANCELLED_NAME | Full name of the user who has aborted the process |
OVERDUE_SINCE | Overdue in days if a process is overdue |
Activity Reader | |
/PCH/BPF_RACT | Contains all the runtime information about an activity. Please refer to this structure to see the available fields. |
/PCH/BPF_RSPC | Contains all the runtime information about the corresponding part process. Please refer to this structure to see the available fields. |
/PCH/BPF_RPRC | Contains all the runtime information about the corresponding process. Please refer to this structure to see the available fields. |
TITLE | Title of the corresponding workitem |
ACTIVITY_ID_EXT | External id of the activity |
ACTIVITY_DESC | Description of the activity |
PARTPROCESS_ID_EXT | External id of the part process |
PARTPROCESS_DESC | Description of the part process |
PROCESS_ID_EXT | External id of the process |
PROCESS_DESC | Description of the process |
PRIORITY_DESC | Description of the priority (e.g. Low) |
Example
TYPES: BEGIN OF ts_result , object_id TYPE /pch/bpf_rprc-object_id , object_key TYPE /pch/bpf_rprc-object_key , object_type TYPE /pch/bpf_rprc-object_type , status TYPE /pch/bpf_rprc-status , status_desc TYPE string , END OF ts_result , tt_results TYPE STANDARD TABLE OF ts_result WITH DEFAULT KEY , tt_status TYPE STANDARD TABLE OF /pch/bpf_rstatus WITH DEFAULT KEY . DATA: lo_reader TYPE REF TO /pch/cl_bpf_rd_rprocess_listng , lt_result TYPE tt_results . TRY. CREATE OBJECT lo_reader. lo_reader->set_process_state( VALUE tt_status( ( /pch/if_bpf_constants=>c_runtime_status-ready ) ( /pch/if_bpf_constants=>c_runtime_status-started ) ) ). lo_reader->set_activity_agents( ia_range = sy-uname iv_member_type = /pch/if_bpf_constants=>c_type-user ). lo_reader->read( IMPORTING et_data = lt_result ). CATCH /pronovia/cx_invalid_obj_type /pronovia/cx_invalid_para. RETURN. ENDTRY.