Process Management

After installation of the package three new modules are added to script task activities and sequence flow actions of process management.

Process Modules

To see the new modules:

  1. Go to the Process Management screen of the administrator interface.

  2. Create a new process or select an existing process that contains a script task activity.

  3. Click on the Activities item in the Available Process Elements widget in the left sidebar.

  4. Create a new script task activity or edit an existing one.

  5. Select one of the new scripts in the Script drop-down.

    • AppointmentDataPull

    • AppointmentDataPush

    • LinkWithAppointment

  6. Click on the Save button, if the Configure button is not visible next to the Script drop-down.

  7. Click on the Configure button to add parameters (key-value pairs) for the script.

AppointmentDataPull

A module to fetch data from a linked appointment.

Process Management Module AppointmentDataPull

Process Management Module AppointmentDataPull

Linked appointment condition section

This section is used to search for appointments.

Filters can be added with key-value pairs. There is logical AND relation between the filters if more than one filter is added. Logical OR relation can be added by multiple values separated by ,.

Desired behavior section

If more than one appointments are found in the section above, the desired behavior can be defined here.

Possible values:

  • Copy attributes from the appointment that was found first

  • Copy attributes from the appointment that was found last

  • Ignore appointment, do not copy anything

Process ticket attributes section

With this module the process ticket attributes can be updated. The key is the attribute of the process ticket. The value can be a pre-defined text, an attribute from the linked appointment in form of an OTRS tag or a concatenation of both. The <OTRS_APPOINTMENT_*> OTRS tag prefix can be used here.

Examples:

Key

Value

Priority

5 very high

DynamicField_Location

<OTRS_APPOINTMENT_Location>

Title

From: <OTRS_APPOINTMENT_Title>

See also

See the AppointmentDataPull and the AppointmentSearch() API reference.

AppointmentDataPush

A module to insert data to a linked appointment.

Process Management Module AppointmentDataPush

Process Management Module AppointmentDataPush

Linked appointment condition section

This section is used to search in the linked appointments.

Filters can be added with key-value pairs. There is logical AND relation between the filters if more than one filter is added. Logical OR relation can be added by multiple values separated by ,.

Linked appointment attributes section

Here can be set the linked appointment attributes to be updated. The key is the attribute of the linked appointment. The value can be a pre-defined text, an attribute from the process ticket in form of an OTRS tag or a concatenation of both. The <OTRS_TICKET_*> OTRS tag prefix can be used here.

Examples:

Key

Value

state

closed successful

Priority

<OTRS_TICKET_Priority>

Title

Process: <OTRS_TICKET_DynamicField_ProcessManagementProcessID>

See also

See the AppointmentDataPush and the AppointmentSearch() API reference.

LinkWithAppointment

A module to link appointments.

Process Management Module LinkWithAppointment

Process Management Module LinkWithAppointment

Appointment matching section

This section is used to search for appointments.

Filters can be added with key-value pairs. There is logical AND relation between the filters if more than one filter is added. Logical OR relation can be added by multiple values separated by ,.

The key Limit limits the number of appointments returned. This field is mandatory.

Link type section

Here can be defined the link type for found appointments. Possible values are Normal, Parent or Child.

See also

See the LinkWithAppointment and the AppointmentSearch() API reference.

API Reference

These API references are not available online, but they are included in this manual.

AppointmentDataPull API

NAME

Kernel::System::ProcessManagement::Modules::AppointmentDataPull - A module to fetch data from a linked appointment.

DESCRIPTION

All AppointmentDataPull functions.

PUBLIC INTERFACE

new()

Don't use the constructor directly, use the ObjectManager instead:

    my $AppointmentDataPullObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::Modules::AppointmentDataPull');

Run()

Run Data

my $Success = $AppointmentDataPullObject->Run(
    UserID                          => 123,
    Ticket                          => \%Ticket,  # required
    ProcessEntityID                 => 'P123',
    ActivityEntityID                => 'A123',
    SequenceFlowEntityID            => 'T123',
    SequenceFlowActionEntityID      => 'TA123',
    Config => {

        ConfigSearchKeyValueList {
            # Appointment title (optional)
            Title => '%SomeText1%,%SomeText2%',

            # Appointment location (optional)
            Location => '%SomeText1%,%SomeText2%',

            # Appointment description (optional)
            Description => '%SomeText1%,%SomeText2%'

            # Appointment calendars
            CalendarIDs => '1,2,3',
            Calendars   => 'CalendarA,CalendarB',

            # Appointment teams
            TeamIDs => '1,2,3',
            Teams   => 'TeamA,TeamB',

            # Appointment resources
            ResourceIDs => '1,2,3',

            # DynamicFields (optional) as single or comma separated values.
            DynamicField_FieldNameA => 'Empty=1',
            DynamicField_FieldNameB => 'Equals=123,456',
            DynamicField_FieldNameC => 'Like=value*',
            DynamicField_FieldNameD => 'GreaterThan=2001-01-01 01:01:01',
            DynamicField_FieldNameE => 'GreaterThanEquals=2001-01-01 01:01:01',
            DynamicField_FieldNameF => 'SmallerThan=2002-02-02 02:02:02',
            DynamicField_FieldNameG => 'SmallerThanEquals=2002-02-02 02:02:02',

            # AllDay appointments
            AllDay => 1,

            # Appointments created more than 60 minutes ago (appointment older than 60 minutes)  (optional)
            AppointmentCreateTimeOlderMinutes => 60,

            # Appointments created less than 120 minutes ago (appointment newer than 120 minutes) (optional)
            AppointmentCreateTimeNewerMinutes => 120,

            # Appointments with create time after ... (appointment newer than this date) (optional)
            AppointmentCreateTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with created time before ... (appointment older than this date) (optional)
            AppointmentCreateTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments started more than 60 minutes ago (appointment start time older than 60 minutes)  (optional)
            AppointmentStartTimeOlderMinutes => 60,

            # Appointments started less than 120 minutes ago (appointment start time newer than 120 minutes) (optional)
            AppointmentStartTimeNewerMinutes => 120,

            # Appointments with start time after ... (appointment start time newer than this date) (optional)
            AppointmentStartTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with start time before ... (appointment start time older than this date) (optional)
            AppointmentStartTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments ended more than 60 minutes ago (appointment end time older than 60 minutes)  (optional)
            AppointmentEndTimeOlderMinutes => 60,

            # Appointments ended less than 120 minutes ago (appointment end time newer than 120 minutes) (optional)
            AppointmentEndTimeNewerMinutes => 120,

            # Appointments with end time after ... (appointment end time newer than this date) (optional)
            AppointmentEndTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with end time before ... (appointment end time older than this date) (optional)
            AppointmentEndTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments which are inside the given period. Both values must be given for this filter. (optional)
            AppointmentPeriodTimeNewerDate => '2006-01-09 00:00:01',
            AppointmentPeriodTimeOlderDate => '2006-01-19 23:59:59',
        }

        ConfigDropdown => {
            Behavior => 'NoCopy',       #  'NoCopy', 'CopyFirstLinked' or 'CopyLastLinked' only
        },

        UserID => 123,     # optional,to override the UserID from the logged user

        # Value set:
        #   * Key is the attribute of the process ticket where the data will be set
        #   * Value is the value to be set, supporting smart tags <OTRS_APPOINTMENT_*> from the resulting linked
        #     appointment after match and behavior filters
        #
        #   Example:
        #   * To set process ticket title to be exactly the linked appointment title:
        #     Title => '<OTRS_APPOINTMENT_Title>',
        #   * To set the process ticket dynamic field NameX to an static value (not real pull):
        #     DynamicField_NameX => 'someValue',
    }
);

- `Ticket` contains the result of TicketGet including DynamicFields.

AppointmentDataPush API

NAME

Kernel::System::ProcessManagement::Modules::AppointmentDataPush - A module to insert data to a linked appointment.

DESCRIPTION

All AppointmentDataPush functions.

PUBLIC INTERFACE

new()

Don't use the constructor directly, use the ObjectManager instead:

    my $AppointmentDataPushObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::Modules::AppointmentDataPush');

Run()

Run Data

my $Success = $AppointmentDataPushObject->Run(
    UserID                          => 123,
    Ticket                          => \%Ticket,  # required
    ProcessEntityID                 => 'P123',
    ActivityEntityID                => 'A123',
    SequenceFlowEntityID            => 'T123',
    SequenceFlowActionEntityID      => 'TA123',
    Config => {

        ConfigSearchKeyValueList {
            # Appointment title (optional)
            Title => '%SomeText1%,%SomeText2%',

            # Appointment location (optional)
            Location => '%SomeText1%,%SomeText2%',

            # Appointment description (optional)
            Description => '%SomeText1%,%SomeText2%'

            # Appointment calendars
            CalendarIDs => '1,2,3',
            Calendars   => 'CalendarA,CalendarB',

            # Appointment teams
            TeamIDs => '1,2,3',
            Teams   => 'TeamA,TeamB',

            # Appointment resources
            ResourceIDs => '1,2,3',

            # DynamicFields (optional) as single or comma separated values.
            DynamicField_FieldNameA => 'Empty=1',
            DynamicField_FieldNameB => 'Equals=123,456',
            DynamicField_FieldNameC => 'Like=value*',
            DynamicField_FieldNameD => 'GreaterThan=2001-01-01 01:01:01',
            DynamicField_FieldNameE => 'GreaterThanEquals=2001-01-01 01:01:01',
            DynamicField_FieldNameF => 'SmallerThan=2002-02-02 02:02:02',
            DynamicField_FieldNameG => 'SmallerThanEquals=2002-02-02 02:02:02',

            # AllDay appointments
            AllDay => 1,

            # Appointments created more than 60 minutes ago (appointment older than 60 minutes)  (optional)
            AppointmentCreateTimeOlderMinutes => 60,

            # Appointments created less than 120 minutes ago (appointment newer than 120 minutes) (optional)
            AppointmentCreateTimeNewerMinutes => 120,

            # Appointments with create time after ... (appointment newer than this date) (optional)
            AppointmentCreateTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with created time before ... (appointment older than this date) (optional)
            AppointmentCreateTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments started more than 60 minutes ago (appointment start time older than 60 minutes)  (optional)
            AppointmentStartTimeOlderMinutes => 60,

            # Appointments started less than 120 minutes ago (appointment start time newer than 120 minutes) (optional)
            AppointmentStartTimeNewerMinutes => 120,

            # Appointments with start time after ... (appointment start time newer than this date) (optional)
            AppointmentStartTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with start time before ... (appointment start time older than this date) (optional)
            AppointmentStartTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments ended more than 60 minutes ago (appointment end time older than 60 minutes)  (optional)
            AppointmentEndTimeOlderMinutes => 60,

            # Appointments ended less than 120 minutes ago (appointment end time newer than 120 minutes) (optional)
            AppointmentEndTimeNewerMinutes => 120,

            # Appointments with end time after ... (appointment end time newer than this date) (optional)
            AppointmentEndTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with end time before ... (appointment end time older than this date) (optional)
            AppointmentEndTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments which are inside the given period. Both values must be given for this filter. (optional)
            AppointmentPeriodTimeNewerDate => '2006-01-09 00:00:01',
            AppointmentPeriodTimeOlderDate => '2006-01-19 23:59:59',
        }

        UserID => 123,     # optional,to override the UserID from the logged user

        # Value set:
        #   * Key is the attribute of the linked appointments where the data will be pushed
        #   * Value is the value to be set, supporting smart tags <OTRS_TICKET_*> from the current process ticket e.g.
        #
        #   Example:
        #   * To set linked appointments title to be exactly the process ticket title:
        #     Title => '<OTRS_Ticket_Title>',
        #   * To set the location name to an static value:
        #     Location => 'Meeting Room',
    }
);

- `Ticket` contains the result of TicketGet including DynamicFields.

LinkWithAppointment API

NAME

Kernel::System::ProcessManagement::Modules::LinkWithAppointment - A module to link appointments.

DESCRIPTION

All LinkWithAppointment functions.

PUBLIC INTERFACE

new()

Don't use the constructor directly, use the ObjectManager instead:

    my $LinkWithAppointmentObject = $Kernel::OM->Get('Kernel::System::ProcessManagement::Modules::LinkWithAppointment');

Run()

Run Data

my $Success = $LinkWithAppointmentObject->Run(
    UserID                          => 123,
    Ticket                          => \%Ticket,  # required
    ProcessEntityID                 => 'P123',
    ActivityEntityID                => 'A123',
    SequenceFlowEntityID            => 'T123',
    SequenceFlowActionEntityID      => 'TA123',
    Config => {

        ConfigSearchKeyValueList {
            AppointmentID => 1234,
            AppointmentID => [1234, 1235],

            # Appointment title (optional)
            Title => '%SomeText1%,%SomeText2%',

            # Appointment location (optional)
            Location => '%SomeText1%,%SomeText2%',

            # Appointment description (optional)
            Description => '%SomeText1%,%SomeText2%'

            # Appointment calendars
            CalendarIDs => '1,2,3',
            Calendars   => 'CalendarA,CalendarB',

            # Appointment teams
            TeamIDs => '1,2,3',
            Teams   => 'TeamA,TeamB',

            # Appointment resources
            ResourceIDs => '1,2,3',

            # DynamicFields (optional) as single or comma separated values.
            DynamicField_FieldNameA => 'Empty=1',
            DynamicField_FieldNameB => 'Equals=123,456',
            DynamicField_FieldNameC => 'Like=value*',
            DynamicField_FieldNameD => 'GreaterThan=2001-01-01 01:01:01',
            DynamicField_FieldNameE => 'GreaterThanEquals=2001-01-01 01:01:01',
            DynamicField_FieldNameF => 'SmallerThan=2002-02-02 02:02:02',
            DynamicField_FieldNameG => 'SmallerThanEquals=2002-02-02 02:02:02',

            # AllDay appointments
            AllDay => 1,

            # Appointments created more than 60 minutes ago (appointment older than 60 minutes)  (optional)
            AppointmentCreateTimeOlderMinutes => 60,

            # Appointments created less than 120 minutes ago (appointment newer than 120 minutes) (optional)
            AppointmentCreateTimeNewerMinutes => 120,

            # Appointments with create time after ... (appointment newer than this date) (optional)
            AppointmentCreateTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with created time before ... (appointment older than this date) (optional)
            AppointmentCreateTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments started more than 60 minutes ago (appointment start time older than 60 minutes)  (optional)
            AppointmentStartTimeOlderMinutes => 60,

            # Appointments started less than 120 minutes ago (appointment start time newer than 120 minutes) (optional)
            AppointmentStartTimeNewerMinutes => 120,

            # Appointments with start time after ... (appointment start time newer than this date) (optional)
            AppointmentStartTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with start time before ... (appointment start time older than this date) (optional)
            AppointmentStartTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments ended more than 60 minutes ago (appointment end time older than 60 minutes)  (optional)
            AppointmentEndTimeOlderMinutes => 60,

            # Appointments ended less than 120 minutes ago (appointment end time newer than 120 minutes) (optional)
            AppointmentEndTimeNewerMinutes => 120,

            # Appointments with end time after ... (appointment end time newer than this date) (optional)
            AppointmentEndTimeNewerDate => '2006-01-09 00:00:01',

            # Appointments with end time before ... (appointment end time older than this date) (optional)
            AppointmentEndTimeOlderDate => '2006-01-19 23:59:59',

            # Appointments which are inside the given period. Both values must be given for this filter. (optional)
            AppointmentPeriodTimeNewerDate => '2006-01-09 00:00:01',
            AppointmentPeriodTimeOlderDate => '2006-01-19 23:59:59',
        }

        ConfigDropdown => {
            Behavior => 'NoCopy',       #  'NoCopy', 'CopyFirstLinked' or 'CopyLastLinked' only
        },

        UserID                      => 123,     # optional,to override the UserID from the logged user
    }
);

- `Ticket` contains the result of TicketGet including DynamicFields.
Scroll to Top