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:
-
Go to the Process Management screen of the administrator interface.
-
Create a new process or select an existing process that contains a script task activity.
-
Click on the Activities item in the Available Process Elements widget in the left sidebar.
-
Create a new script task activity or edit an existing one.
-
Select one of the new scripts in the Script drop-down.
-
AppointmentDataPull
-
AppointmentDataPush
-
LinkWithAppointment
-
-
Click on the Save button, if the Configure button is not visible next to the Script drop-down.
-
Click on the Configure button to add parameters (key-value pairs) for the script.
AppointmentDataPull
A module to fetch data from a linked appointment.
- 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.
- 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.
- 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.