Ga naar hoofdinhoud

Implementatie van workflow

Stappen

Werkstroom / workflow

Maak een werkstroom aan met de stappen in deze werkstroom

Procesacties

Maak de overgangen tussen de processtappen.

E-mailprocessen

E-mailproces vraagt om een werkstroom. Niet verplicht

Voeg ook de e-mailprocesstappen toe. Vaak zijn dat er twee.

Item types

Zowel item_type als item_subtype

Item Subtype vraagt om E-mailproces. Verplicht veld.

E-mailsjablonen

Maak eventueel de map aan waarin de afbeeldingen van dit proces worden opgeslagen.

Werkstroom app inrichten

Maak de views op orde

  • state id

Access

Ingelogd => $user_id

item_owner_id is user_id? => Ja, toegang als eigenaar item_addressee_id is user_id? => Ja, toegang als manager

PHP Scripts

BeforeAdd

OnShowAddForm

// Set filters for pulldown database joins: // 1. item_process_state_id / Processtatus
// Show current state // ex. id=22 // => id=$process_state_id => $where_process_state // Add: initial process state // Edit: // 2. item_process_action_id / Procesactie // Depends on current state and access rights current user // process_state_before_id=24 AND process_action_access_id IN (1,3) // => process_state_before_id=$process_state_id AND process_action_access_id IN (1,3) => $where process_action_access_id IN (1,2) // Add: current state = initial state, access

// Ad 1. // Initial process state of the process $process_state_id = (int) 22; // = Nieuw $where_process_state = 'id =' . $process_state_id;

// Ad 2. // Set default value in case no process has been selected yet: f.e. at opening of the form. $where_process_id = '';

// Get process_id from URL after refresh
if (isset($_GET['process_id'])) {
$process_id = $_GET['process_id'];
$where_process_id = '`process_id` = ' . $process_id . ' AND ';
}
// Set filter for process_id
$process_id = 7; // Complaint Process
$where_process = '`process_id` = ' . $process_id . ' AND ';

$where_process_state = '`process_state_before_id` = '. $process_state_id . ' AND ';

$where = $where_process . ' ' . $where_process_state;
// echo $where;

After Add

// Set id of next state
$process_action_id = (int) 21; // = Nieuw
modJNInterfacebuilderWorkflow::setNextState($id_added_record, $process_action_id);

BeforeEdit

OnShowEditForm

// Set filters on 'process_id', 'process_state_before_id'

// This filter is set in OnShowAddForm and needs to be set to empty  in edit mode.
$where_process_state_id= '';
// echo "where_process_state_id: " . $where_process_state_id . "<br />";


// Initialize variables
$process_state_id = '';
$where_process = '';
$where_process_state = '';

// GET RECORD_ID
$record_id = $_GET['edit_id'];

// GET PROCESS_ID
// Option 1: No change in process_id dropdown
$process_id = 7; // Complaint Process
// Option 2: Change in process_id dropdown: get process_id from URL after refresh
if (isset($_GET['process_id'])) {
$process_id = $_GET['process_id'];
}
// echo $process_id . "<br />";

// Set filter on process_id
$where_process = '`process_id` = ' . $process_id . ' AND ';

// GET STATE_ID
$data_source = 'jnxt_jne_wfm_items';
$field_name = 'item_process_state_id';
$where_field_name = 'id';
$process_state_id = modJNInterfacebuilderWorkflow::getValue($data_source, $field_name, $where_field_name, $record_id);
// echo $process_state_id . "<br />";

// Set filter on process_state_id
if (isset($process_state_id)){
$where_process_state = '`process_state_before_id` = '. $process_state_id . ' AND ';
}

$where = $where_process . ' ' . $where_process_state;
// echo $where . "<br />";
// die();

AfterEdit

// Set id of next state
// echo "phpcode - edit_id: " . $edit_id . "<br />";
modJNInterfacebuilderWorkflow::setNextState($edit_id, $process_action_id);

BeforeDelete

AfterDelete

Javascript

Javascript for Add form

/* selectElement('object_status_id', '1'); */
/* selectElement('item_addressee_id', '1'); */

/* Positie in dropdown vasthouden */
const params = new URLSearchParams(window.location.search)
params.has('pos')

var myselect = document.getElementById("sg0_gp0_item_process_action_id");
myselect.options.selectedIndex = params.get('pos')

Javascript for Edit form

Elements

De volgende elementen moeten aanwezig zijn om een goede vulling te krijgen van de items tabel: id number created_by created_by modified_by modified_by organisation_id

organisation_id

return "4";

Make hidden yes

item_type_id

return "13";

Make hidden yes

item_subtype_id

Categorie Pulldown - database join jnxt_jne_wfm_item_subtypes id
item_type_id = 13 item_subtype_name_nl_NL

item_process_state_id

Proces & processtap Pulldown - database join wfm_v02_process_states_list id
$where_process_state process_process_state_option_nl_NL Readonly Add yes Readonly Edit yes

item_process_action_id

Actie Action Button SQL where $where process_action_access_id IN (1,2)

item_startdate

Default value Add (Eval)

echo date('Y-m-d\TH:i');

Readonly Add yes Readonly Edit yes

item_enddate

$start_date = date('Y-m-d H:i');
$date = strtotime($start_date);
$date = strtotime("+7 day", $date);
echo date('Y-m-d\TH:i', $date);

item_email_addressees

E-mail naar Checkbox multiple SQL where id <> 3 SQL order process_action_access_nl_NL Checkboxtable jnxt_jne_wfm_process_action_access Checkbox Label process_action_access_nl_NL