Translation

type: CDATA
#!/usr/bin/perl
# --
# Copyright (C) 2001-2021 OTRS AG, https://otrs.com/
# --
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --

use strict;
use warnings;
use utf8;

## nofilter(TidyAll::Plugin::OTRS::Perl::Dumper)

# use ../ as lib location
use File::Basename;
use FindBin qw($RealBin);
use lib dirname($RealBin);

use JSON;
use REST::Client;

# This is the HOST for the web service the format is:
# <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl
my $Host = 'http://localhost/otrs/nph-genericinterface.pl';

my $RestClient = REST::Client->new(
{
host => $Host,
}
);

# These are the Controllers and Providers the format is:
# /Webservice/<WEB_SERVICE_NAME>/<RESOURCE>/<REQUEST_VALUE>
# or
# /WebserviceID/<WEB_SERVICE_ID>/<RESOURCE>/<REQUEST_VALUE>
#
# See the documentation on how to setup Providers.
#
# This example will retrieve the Ticket with the TicketID = 1 (<REQUEST_VALUE>)
my $GetControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket/1';

# This example is the base URL for Ticket Create
my $CreateControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket';

# This example will update the Ticket with the TicketID = 1 (<REQUEST_VALUE>)
my $UpdateControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket/1';

# This is the base URL for Ticket Search
my $SearchControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket';

# This is the base URL for Ticket history with the TicketID = 1 (<REQUEST_VALUE>)
my $HistoryControllerAndRequest = '/Webservice/GenericTicketConnectorREST/TicketHistory/1';

# TicketGet Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $GetParams = {
UserLogin => "some agent user login", # to be filled with valid agent login
Password => "some agent user password", # to be filled with valid agent password
};

# Build GetParams as part of the URL for REST-GET requests
my $QueryParams = $RestClient->buildQuery( %{$GetParams} );
$GetControllerAndRequest .= $QueryParams;

$RestClient->GET($GetControllerAndRequest);

my $GetResponseCode = $RestClient->responseCode();

if ( $GetResponseCode ne '200' ) {
print "Get request failed, response code was: $GetResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Get response was:\n";
print Dumper($Data);

}

# TicketSearch Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $SearchParams = {
UserLogin => "some agent user login", # to be filled with valid agent login
Password => "some agent user password", # to be filled with valid agent password
Queues => ['Raw'],
};

# Build SearchParams as part of the URL for REST-GET requests
$QueryParams = $RestClient->buildQuery( %{$SearchParams} );
$SearchControllerAndRequest .= $QueryParams;

$RestClient->GET($SearchControllerAndRequest);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $SearchResponseCode = $RestClient->responseCode();

if ( $SearchResponseCode ne '200' ) {
print "Search request failed, response code was: $SearchResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Search Response was:\n";
print Dumper($Data);

}

# TicketCreate Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $CreateOrUpdateParams = {
UserLogin => "some agent user login", # to be filled with valid agent login
Password => "some agent user password", # to be filled with valid agent password
Ticket => {
Title => 'some ticket title',
Queue => 'Raw',
Lock => 'unlock',
Type => 'Unclassified',
State => 'new',
Priority => '3 normal',
Owner => 'some agent user login',
CustomerUser => 'customer-1',
},
Article => {
Subject => 'some subject',
Body => 'some body',
ContentType => 'text/plain; charset=utf8',
},
};

my $CreateJSONParams = encode_json $CreateOrUpdateParams;

my @CreateRequestParam = (
$CreateControllerAndRequest,
$CreateJSONParams
);

# We have to use REST-POST requests in order to send UserLogin and Password correctly
# though other REST methods would fit better.
$RestClient->POST(@CreateRequestParam);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $CreateResponseCode = $RestClient->responseCode();

if ( $CreateResponseCode ne '200' ) {
print "Create request failed, response code was: $CreateResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Create Response was:\n";
print Dumper($Data);

}

# TicketUpdate Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $UpdateJSONParams = encode_json $CreateOrUpdateParams;

my @UpdateRequestParam = (
$UpdateControllerAndRequest,
$UpdateJSONParams
);

# We have to use REST-PATCH requests in order to send UserLogin and Password correctly
# though other REST methods would fit better.
$RestClient->PATCH(@UpdateRequestParam);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $UpdateResponseCode = $RestClient->responseCode();
if ( $UpdateResponseCode ne '200' ) {
print "Update request failed, response code was: $UpdateResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Update response was:\n";
print Dumper($Data);

}

# TicketHistoryGet Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $HistoryParams = {
UserLogin => "some agent user login", # to be filled with valid agent login
Password => "some agent user password", # to be filled with valid agent password
TicketID => [1],
};

# Build SearchParams as part of the URL for REST-GET requests
$QueryParams = $RestClient->buildQuery( %{$HistoryParams} );
$HistoryControllerAndRequest .= $QueryParams;

$RestClient->GET($HistoryControllerAndRequest);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $HistoryResponseCode = $RestClient->responseCode();

if ( $HistoryResponseCode ne '200' ) {
print "History request failed, response code was: $HistoryResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "History Response was:\n";
print Dumper($Data);

}

8816/83310
Context English Hungarian State
TicketSearch operation returns a list of Ticket IDs that matches a predefined criteria. A TicketSearch művelet azon jegyazonosítók listáját adja vissza, amelyek illeszkednek az előre meghatározott feltételekre.
<TicketSearch>
<!--You have a MANDATORY CHOICE of the next 3 items at this level-->
<!--Optional:-->
<UserLogin>?</UserLogin>
<!--Optional:-->
<CustomerUserLogin>?</CustomerUserLogin>
<!--Optional:-->
<SessionID>?</SessionID>
<!--Optional:-->
<Password>?</Password>
<!--Optional:-->
<Limit>?</Limit>
<!--Zero or more repetitions:-->
<TicketNumber>?</TicketNumber>
<!--Zero or more repetitions:-->
<Title>?</Title>
<!--Zero or more repetitions:-->
<Queues>?</Queues>
<!--Zero or more repetitions:-->
<QueueIDs>?</QueueIDs>
<!--Optional:-->
<UseSubQueues>?</UseSubQueues>
<!--Zero or more repetitions:-->
<Types>?</Types>
<!--Zero or more repetitions:-->
<TypeIDs>?</TypeIDs>
<!--Zero or more repetitions:-->
<States>?</States>
<!--Zero or more repetitions:-->
<StateIDs>?</StateIDs>
<!--Zero or more repetitions:-->
<StateType>?</StateType>
<!--Zero or more repetitions:-->
<StateTypeIDs>?</StateTypeIDs>
<!--Zero or more repetitions:-->
<Priorities>?</Priorities>
<!--Zero or more repetitions:-->
<PriorityIDs>?</PriorityIDs>
<!--Zero or more repetitions:-->
<Services>?</Services>
<!--Zero or more repetitions:-->
<ServiceIDs>?</ServiceIDs>
<!--Zero or more repetitions:-->
<SLAs>?</SLAs>
<!--Zero or more repetitions:-->
<SLAIDs>?</SLAIDs>
<!--Zero or more repetitions:-->
<Locks>?</Locks>
<!--Zero or more repetitions:-->
<LockIDs>?</LockIDs>
<!--Zero or more repetitions:-->
<OwnerIDs>?</OwnerIDs>
<!--Zero or more repetitions:-->
<ResponsibleIDs>?</ResponsibleIDs>
<!--Zero or more repetitions:-->
<WatchUserIDs>?</WatchUserIDs>
<!--Zero or more repetitions:-->
<CustomerID>?</CustomerID>
<!--Zero or more repetitions:-->
<CustomerUserLogin>?</CustomerUserLogin>
<!--Zero or more repetitions:-->
<CreatedUserIDs>?</CreatedUserIDs>
<!--Zero or more repetitions:-->
<CreatedTypes>?</CreatedTypes>
<!--Zero or more repetitions:-->
<CreatedTypeIDs>?</CreatedTypeIDs>
<!--Zero or more repetitions:-->
<CreatedPriorities>?</CreatedPriorities>
<!--Zero or more repetitions:-->
<CreatedPriorityIDs>?</CreatedPriorityIDs>
<!--Zero or more repetitions:-->
<CreatedStates>?</CreatedStates>
<!--Zero or more repetitions:-->
<CreatedStateIDs>?</CreatedStateIDs>
<!--Zero or more repetitions:-->
<CreatedQueues>?</CreatedQueues>
<!--Zero or more repetitions:-->
<CreatedQueueIDs>?</CreatedQueueIDs>
<!--Zero or more repetitions:-->
<DynamicField>
<Name>?<Name>
<!--You have a MANDATORY CHOICE of the next 6 items at this level-->
<!--Optional:-->
<Equals>?</Equals>
<!--Optional:-->
<Like>?</Like>
<!--Optional:-->
<GreaterThan>?</GreaterThan>
<!--Optional:-->
<GreaterThanEquals>?</GreaterThanEquals>
<!--Optional:-->
<SmallerThan>?</SmallerThan>
<!--Optional:-->
<SmallerThanEquals>?</SmallerThanEquals>
</DynamicField>
<!--Optional:-->
<Ticketflag>
<!--Optional:-->
<Seen>?</Seen>
</Ticketflag>
<!--Optional:-->
<From>?</From>
<!--Optional:-->
<To>?</To>
<!--Optional:-->
<Cc>?</Cc>
<!--Optional:-->
<Subject>?</Subject>
<!--Optional:-->
<Body>?</Body>
<!--Optional:-->
<FullTextIndex>?</FullTextIndex>
<!--Optional:-->
<ContentSearch>?</ContentSearch>
<!--Optional:-->
<ConditionInline>?</ConditionInline>
<!--Optional:-->
<ArticleCreateTimeOlderMinutes>?</ArticleCreateTimeOlderMinutes>
<!--Optional:-->
<ArticleCreateTimeNewerMinutes>?</ArticleCreateTimeNewerMinutes>
<!--Optional:-->
<ArticleCreateTimeNewerDate>?</ArticleCreateTimeNewerDate>
<!--Optional:-->
<ArticleCreateTimeOlderDate>?</ArticleCreateTimeOlderDate>
<!--Optional:-->
<TicketCreateTimeOlderMinutes>?</TicketCreateTimeOlderMinutes>
<!--Optional:-->
<ATicketCreateTimeNewerMinutes>?</ATicketCreateTimeNewerMinutes>
<!--Optional:-->
<TicketCreateTimeNewerDate>?</TicketCreateTimeNewerDate>
<!--Optional:-->
<TicketCreateTimeOlderDate>?</TicketCreateTimeOlderDate>
<!--Optional:-->
<TicketLastChangeTimeOlderMinutes>?</TicketLastChangeTimeOlderMinutes>
<!--Optional:-->
<TicketLastChangeTimeNewerMinutes>?</TicketLastChangeTimeNewerMinutes>
<!--Optional:-->
<TicketLastChangeTimeNewerDate>?</TicketLastChangeTimeNewerDate>
<!--Optional:-->
<TicketLastChangeTimeOlderDate>?</TicketLastChangeTimeOlderDate>
<!--Optional:-->
<TicketChangeTimeOlderMinutes>?</TicketChangeTimeOlderMinutes>
<!--Optional:-->
<TicketChangeTimeNewerMinutes>?</TicketChangeTimeNewerMinutes>
<!--Optional:-->
<TicketChangeTimeNewerDate>?</TicketChangeTimeNewerDate>
<!--Optional:-->
<TicketChangeTimeOlderDate>?</TicketChangeTimeOlderDate>
<!--Optional:-->
<TicketCloseTimeOlderMinutes>?</TicketCloseTimeOlderMinutes>
<!--Optional:-->
<TicketCloseTimeNewerMinutes>?</TicketCloseTimeNewerMinutes>
<!--Optional:-->
<TicketCloseTimeNewerDate>?</TicketCloseTimeNewerDate>
<!--Optional:-->
<TicketCloseTimeOlderDate>?</TicketCloseTimeOlderDate>
<!--Optional:-->
<TicketPendingTimeOlderMinutes>?</TicketPendingTimeOlderMinutes>
<!--Optional:-->
<TicketPendingTimeNewerMinutes>?</TicketPendingTimeNewerMinutes>
<!--Optional:-->
<TicketPendingTimeNewerDate>?</TicketPendingTimeNewerDate>
<!--Optional:-->
<TicketPendingTimeOlderDate>?</TicketPendingTimeOlderDate>
<!--Optional:-->
<TicketEscalationTimeOlderMinutes>?</TicketEscalationTimeOlderMinutes>
<!--Optional:-->
<TTicketEscalationTimeNewerMinutes>?</TTicketEscalationTimeNewerMinutes>
<!--Optional:-->
<TicketEscalationTimeNewerDate>?</TicketEscalationTimeNewerDate>
<!--Optional:-->
<TicketEscalationTimeOlderDate>?</TicketEscalationTimeOlderDate>
<!--Optional:-->
<ArchiveFlags>?</ArchiveFlags>
<!--Zero or more repetitions:-->
<OrderBy>?</OrderBy>
<!--Zero or more repetitions:-->
<SortBy>?</SortBy>
<!--Zero or more repetitions:-->
<CustomerUserID>?</CustomerUserID>
</TicketSearch>
<TicketSearch>
<!--Ezen a szinten a következő 3 elemből kell KÖTELEZŐEN VÁLASZTANI-->
<!--Választható:-->
<UserLogin>?</UserLogin>
<!--Választható:-->
<CustomerUserLogin>?</CustomerUserLogin>
<!--Választható:-->
<SessionID>?</SessionID>
<!--Választható:-->
<Password>?</Password>
<!--Választható:-->
<Limit>?</Limit>
<!--Nulla vagy több ismétlődés:-->
<TicketNumber>?</TicketNumber>
<!--Nulla vagy több ismétlődés:-->
<Title>?</Title>
<!--Nulla vagy több ismétlődés:-->
<Queues>?</Queues>
<!--Nulla vagy több ismétlődés:-->
<QueueIDs>?</QueueIDs>
<!--Választható:-->
<UseSubQueues>?</UseSubQueues>
<!--Nulla vagy több ismétlődés:-->
<Types>?</Types>
<!--Nulla vagy több ismétlődés:-->
<TypeIDs>?</TypeIDs>
<!--Nulla vagy több ismétlődés:-->
<States>?</States>
<!--Nulla vagy több ismétlődés:-->
<StateIDs>?</StateIDs>
<!--Nulla vagy több ismétlődés:-->
<StateType>?</StateType>
<!--Nulla vagy több ismétlődés:-->
<StateTypeIDs>?</StateTypeIDs>
<!--Nulla vagy több ismétlődés:-->
<Priorities>?</Priorities>
<!--Nulla vagy több ismétlődés:-->
<PriorityIDs>?</PriorityIDs>
<!--Nulla vagy több ismétlődés:-->
<Services>?</Services>
<!--Nulla vagy több ismétlődés:-->
<ServiceIDs>?</ServiceIDs>
<!--Nulla vagy több ismétlődés:-->
<SLAs>?</SLAs>
<!--Nulla vagy több ismétlődés:-->
<SLAIDs>?</SLAIDs>
<!--Nulla vagy több ismétlődés:-->
<Locks>?</Locks>
<!--Nulla vagy több ismétlődés:-->
<LockIDs>?</LockIDs>
<!--Nulla vagy több ismétlődés:-->
<OwnerIDs>?</OwnerIDs>
<!--Nulla vagy több ismétlődés:-->
<ResponsibleIDs>?</ResponsibleIDs>
<!--Nulla vagy több ismétlődés:-->
<WatchUserIDs>?</WatchUserIDs>
<!--Nulla vagy több ismétlődés:-->
<CustomerID>?</CustomerID>
<!--Nulla vagy több ismétlődés:-->
<CustomerUserLogin>?</CustomerUserLogin>
<!--Nulla vagy több ismétlődés:-->
<CreatedUserIDs>?</CreatedUserIDs>
<!--Nulla vagy több ismétlődés:-->
<CreatedTypes>?</CreatedTypes>
<!--Nulla vagy több ismétlődés:-->
<CreatedTypeIDs>?</CreatedTypeIDs>
<!--Nulla vagy több ismétlődés:-->
<CreatedPriorities>?</CreatedPriorities>
<!--Nulla vagy több ismétlődés:-->
<CreatedPriorityIDs>?</CreatedPriorityIDs>
<!--Nulla vagy több ismétlődés:-->
<CreatedStates>?</CreatedStates>
<!--Nulla vagy több ismétlődés:-->
<CreatedStateIDs>?</CreatedStateIDs>
<!--Nulla vagy több ismétlődés:-->
<CreatedQueues>?</CreatedQueues>
<!--Nulla vagy több ismétlődés:-->
<CreatedQueueIDs>?</CreatedQueueIDs>
<!--Nulla vagy több ismétlődés:-->
<DynamicField>
<Name>?<Name>
<!--Ezen a szinten a következő 6 elemből kell KÖTELEZŐEN VÁLASZTANI-->
<!--Választható:-->
<Equals>?</Equals>
<!--Választható:-->
<Like>?</Like>
<!--Választható:-->
<GreaterThan>?</GreaterThan>
<!--Választható:-->
<GreaterThanEquals>?</GreaterThanEquals>
<!--Választható:-->
<SmallerThan>?</SmallerThan>
<!--Választható:-->
<SmallerThanEquals>?</SmallerThanEquals>
</DynamicField>
<!--Választható:-->
<Ticketflag>
<!--Választható:-->
<Seen>?</Seen>
</Ticketflag>
<!--Választható:-->
<From>?</From>
<!--Választható:-->
<To>?</To>
<!--Választható:-->
<Cc>?</Cc>
<!--Választható:-->
<Subject>?</Subject>
<!--Választható:-->
<Body>?</Body>
<!--Választható:-->
<FullTextIndex>?</FullTextIndex>
<!--Választható:-->
<ContentSearch>?</ContentSearch>
<!--Választható:-->
<ConditionInline>?</ConditionInline>
<!--Választható:-->
<ArticleCreateTimeOlderMinutes>?</ArticleCreateTimeOlderMinutes>
<!--Választható:-->
<ArticleCreateTimeNewerMinutes>?</ArticleCreateTimeNewerMinutes>
<!--Választható:-->
<ArticleCreateTimeNewerDate>?</ArticleCreateTimeNewerDate>
<!--Választható:-->
<ArticleCreateTimeOlderDate>?</ArticleCreateTimeOlderDate>
<!--Választható:-->
<TicketCreateTimeOlderMinutes>?</TicketCreateTimeOlderMinutes>
<!--Választható:-->
<ATicketCreateTimeNewerMinutes>?</ATicketCreateTimeNewerMinutes>
<!--Választható:-->
<TicketCreateTimeNewerDate>?</TicketCreateTimeNewerDate>
<!--Választható:-->
<TicketCreateTimeOlderDate>?</TicketCreateTimeOlderDate>
<!--Választható:-->
<TicketLastChangeTimeOlderMinutes>?</TicketLastChangeTimeOlderMinutes>
<!--Választható:-->
<TicketLastChangeTimeNewerMinutes>?</TicketLastChangeTimeNewerMinutes>
<!--Választható:-->
<TicketLastChangeTimeNewerDate>?</TicketLastChangeTimeNewerDate>
<!--Választható:-->
<TicketLastChangeTimeOlderDate>?</TicketLastChangeTimeOlderDate>
<!--Választható:-->
<TicketChangeTimeOlderMinutes>?</TicketChangeTimeOlderMinutes>
<!--Választható:-->
<TicketChangeTimeNewerMinutes>?</TicketChangeTimeNewerMinutes>
<!--Választható:-->
<TicketChangeTimeNewerDate>?</TicketChangeTimeNewerDate>
<!--Választható:-->
<TicketChangeTimeOlderDate>?</TicketChangeTimeOlderDate>
<!--Választható:-->
<TicketCloseTimeOlderMinutes>?</TicketCloseTimeOlderMinutes>
<!--Választható:-->
<TicketCloseTimeNewerMinutes>?</TicketCloseTimeNewerMinutes>
<!--Választható:-->
<TicketCloseTimeNewerDate>?</TicketCloseTimeNewerDate>
<!--Választható:-->
<TicketCloseTimeOlderDate>?</TicketCloseTimeOlderDate>
<!--Választható:-->
<TicketPendingTimeOlderMinutes>?</TicketPendingTimeOlderMinutes>
<!--Választható:-->
<TicketPendingTimeNewerMinutes>?</TicketPendingTimeNewerMinutes>
<!--Választható:-->
<TicketPendingTimeNewerDate>?</TicketPendingTimeNewerDate>
<!--Választható:-->
<TicketPendingTimeOlderDate>?</TicketPendingTimeOlderDate>
<!--Választható:-->
<TicketEscalationTimeOlderMinutes>?</TicketEscalationTimeOlderMinutes>
<!--Választható:-->
<TTicketEscalationTimeNewerMinutes>?</TTicketEscalationTimeNewerMinutes>
<!--Választható:-->
<TicketEscalationTimeNewerDate>?</TicketEscalationTimeNewerDate>
<!--Választható:-->
<TicketEscalationTimeOlderDate>?</TicketEscalationTimeOlderDate>
<!--Választható:-->
<ArchiveFlags>?</ArchiveFlags>
<!--Nulla vagy több ismétlődés:-->
<OrderBy>?</OrderBy>
<!--Nulla vagy több ismétlődés:-->
<SortBy>?</SortBy>
<!--Nulla vagy több ismétlődés:-->
<CustomerUserID>?</CustomerUserID>
</TicketSearch>
This operation is used to get all the history entries from a ticket or tickets. Ez a művelet az összes előzménybejegyzés lekéréséhez használható egy jegyből vagy jegyekből.
<TicketHistoryGet>
<!--You have a MANDATORY CHOICE of the next 2 items at this level-->
<!--Optional:-->
<UserLogin>?</UserLogin>
<!--Optional:-->
<SessionID>?</SessionID>
<!--Optional:-->
<Password>?</Password>
<!--1 or more repetitions:-->
<TicketID>?</TicketID>
</TicketHistoryGet>
<TicketHistoryGet>
<!--Ezen a szinten a következő 2 elemből kell KÖTELEZŐEN VÁLASZTANI-->
<!--Választható:-->
<UserLogin>?</UserLogin>
<!--Választható:-->
<SessionID>?</SessionID>
<!--Választható:-->
<Password>?</Password>
<!--1 vagy több ismétlődés:-->
<TicketID>?</TicketID>
</TicketHistoryGet>
Web Service Configuration Webszolgáltatás-beállítás
The following is a basic but complete web service configuration file in YAML format to use all the Ticket Connector operations with the SOAP network transport. In order to use it in OTRS you need to copy the content, save it into a file and call it <filename>GenericTicketConnectorSOAP.yml</filename>, and import it into OTRS in the Web Services screen in the Admin panel by clicking in the "Add web service" button from the overview screen and then clicking in the "Import web service" button in the add screen. A következő egy alap, de teljes webszolgáltatás beállítófájl YAML formátumban az összes jegy csatlakozó művelet használatához SOAP hálózati átvitellel. Azért, hogy használhassa az OTRS-ben, ki kell másolnia a tartalmát, el kell mentenie egy <filename>GenericTicketConnectorSOAP.yml</filename> nevű fájlba, és importálnia kell az OTRS-be az adminisztrációs panelen lévő Webszolgáltatások képernyőn a „Webszolgáltatás hozzáadása” gombra kattintva az áttekintő képernyőről, majd ezután a „Webszolgáltatás importálása” gombra kattintva a hozzáadás képernyőn.
---
Debugger:
DebugThreshold: debug
TestMode: 0
Description: Ticket Connector SOAP Sample
FrameworkVersion: 3.4.x git
Provider:
Operation:
SessionCreate:
Description: Creates a Session
MappingInbound: {}
MappingOutbound: {}
Type: Session::SessionCreate
TicketCreate:
Description: Creates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketCreate
TicketUpdate:
Description: Updates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketUpdate
TicketGet:
Description: Retrieves Ticket data
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketGet
TicketSearch:
Description: Search for Tickets
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketSearch
TicketHistoryGet:
Description: Retrieves history of a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketHistoryGet
Transport:
Config:
MaxLength: 100000000
NameSpace: http://www.otrs.org/TicketConnector/
Type: HTTP::SOAP
RemoteSystem: ''
Requester:
Transport:
Type: ''
---
Debugger:
DebugThreshold: debug
TestMode: 0
Description: Jegycsatlakozó SOAP minta
FrameworkVersion: 3.4.x git
Provider:
Operation:
SessionCreate:
Description: Létrehoz egy munkamenetet
MappingInbound: {}
MappingOutbound: {}
Type: Session::SessionCreate
TicketCreate:
Description: Létrehoz egy jegyet
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketCreate
TicketUpdate:
Description: Frissít egy jegyet
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketUpdate
TicketGet:
Description: Lekéri a jegyadatokat
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketGet
TicketSearch:
Description: Jegyek keresése
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketSearch
TicketHistoryGet:
Description: Lekéri egy jegy előzményeit
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketHistoryGet
Transport:
Config:
MaxLength: 100000000
NameSpace: http://www.otrs.org/TicketConnector/
Type: HTTP::SOAP
RemoteSystem: ''
Requester:
Transport:
Type: ''
Similar example can be done for the REST network transport, REST web services uses HTTP operations such as "POST", "GET", "PUT", "PATCH" etc. This operations in conjunction with a URI path called resource defines a OTRS Generic Interface Operation or Invoker (depending on the communication way). Hasonló példát lehet készíteni a REST hálózati átvitelhez. A REST webszolgáltatások olyan HTTP műveleteket használnak, mint például „POST”, „GET”, „PUT”, „PATCH”, stb. Ezek a műveletek egy erőforrásnak hívott URI-útvonallal együtt határoznak meg egy OTRS általános felület műveletet vagy meghívót (a kommunikációs módszertől függően).
The following example uses /Session resource for SessionCreate, /Ticket resource for TicketSearch and TicketCreate and resource /Ticket/{TicketID} for TicketGet and TicketUpdate (Where {TicketID} is the actual TicketID value of a ticket e.g. /Ticket/123). In order to use it in OTRS you need to copy the content, save it into a file and call it <filename>GenericTicketConnectorREST.yml</filename>, and import it into OTRS in the Web Services screen in the Admin panel by clicking in the "Add web service" button from the overview screen and then clicking in the "Import web service" button in the add screen. A következő példa a /Session erőforrást használja a SessionCreate műveletnél, a /Ticket erőforrást a TicketSearch és a TicketCreate műveleteknél, valamint a /Ticket/{TicketID} erőforrást a TicketGet és a TicketUpdate műveleteknél (ahol a {TicketID} egy jegy aktuális jegyazonosító értéke, például /Ticket/123). Azért, hogy használhassa az OTRS-ben, ki kell másolnia a tartalmát, el kell mentenie egy <filename>GenericTicketConnectorREST.yml</filename> nevű fájlba, és importálnia kell az OTRS-be az adminisztrációs panelen lévő Webszolgáltatások képernyőn a „Webszolgáltatás hozzáadása” gombra kattintva az áttekintő képernyőről, majd ezután a „Webszolgáltatás importálása” gombra kattintva a hozzáadás képernyőn.
---
Debugger:
DebugThreshold: debug
TestMode: '0'
Description: Ticket Connector REST Sample
FrameworkVersion: 3.4.x git
Provider:
Operation:
SessionCreate:
Description: Creates a Session
MappingInbound: {}
MappingOutbound: {}
Type: Session::SessionCreate
TicketCreate:
Description: Creates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketCreate
TicketGet:
Description: Retrieves Ticket data
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketGet
TicketSearch:
Description: Search for Tickets
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketSearch
TicketUpdate:
Description: Updates a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketUpdate
TicketHistoryGet:
Description: Retrieves history of a Ticket
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketHistoryGet
Transport:
Config:
KeepAlive: ''
MaxLength: '100000000'
RouteOperationMapping:
SessionCreate:
RequestMethod:
- POST
Route: /Session
TicketCreate:
RequestMethod:
- POST
Route: /Ticket
TicketGet:
RequestMethod:
- GET
Route: /Ticket/:TicketID
TicketSearch:
RequestMethod:
- GET
Route: /Ticket
TicketUpdate:
RequestMethod:
- PATCH
Route: /Ticket/:TicketID
TicketHistoryGet:
RequestMethod:
- GET
Route: /TicketHistory/:TicketID
Type: HTTP::REST
RemoteSystem: ''
Requester:
Transport:
Type: ''
---
Debugger:
DebugThreshold: debug
TestMode: '0'
Description: Jegycsatlakozó REST minta
FrameworkVersion: 3.4.x git
Provider:
Operation:
SessionCreate:
Description: Létrehoz egy munkamenetet
MappingInbound: {}
MappingOutbound: {}
Type: Session::SessionCreate
TicketCreate:
Description: Létrehoz egy jegyet
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketCreate
TicketGet:
Description: Lekéri a jegyadatokat
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketGet
TicketSearch:
Description: Jegyek keresése
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketSearch
TicketUpdate:
Description: Frissít egy jegyet
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketUpdate
TicketHistoryGet:
Description: Lekéri egy jegy előzményeit
MappingInbound: {}
MappingOutbound: {}
Type: Ticket::TicketHistoryGet
Transport:
Config:
KeepAlive: ''
MaxLength: '100000000'
RouteOperationMapping:
SessionCreate:
RequestMethod:
- POST
Route: /Session
TicketCreate:
RequestMethod:
- POST
Route: /Ticket
TicketGet:
RequestMethod:
- GET
Route: /Ticket/:TicketID
TicketSearch:
RequestMethod:
- GET
Route: /Ticket
TicketUpdate:
RequestMethod:
- PATCH
Route: /Ticket/:TicketID
TicketHistoryGet:
RequestMethod:
- GET
Route: /TicketHistory/:TicketID
Type: HTTP::REST
RemoteSystem: ''
Requester:
Transport:
Type: ''
Perl SOAP Requester Perl SOAP kérelmező
The following code is a Perl script that can connect to OTRS via the generic interface. In order to perform the operations provided by the Ticket Connector, it uses two Perl CPAN modules SOAP::Lite and Data::Dumper. Please make sure that your environment is capable to use these modules before you try to run the script. A következő kód egy Perl-parancsfájl, amely képes kapcsolódni az OTRS-hez az általános felületen keresztül. Azért, hogy a jegy csatlakozó által biztosított műveleteket végrehajtsa, két Perl CPAN modult használ: SOAP::Lite és Data::Dumper. Győződjön meg arról, hogy a környezete képes ezen modulokat használni, mielőtt megpróbálná a parancsfájlt futtatni.
#!/usr/bin/perl -w
# --
# otrs.SOAPRequest.pl - sample to send a SOAP request to OTRS Generic Interface Ticket Connector
# Copyright (C) 2001-2021 OTRS AG, https://otrs.com/
# --
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --

use strict;
use warnings;

# use ../ as lib location
use File::Basename;
use FindBin qw($RealBin);
use lib dirname($RealBin);

use SOAP::Lite;
use Data::Dumper;

# ---
# Variables to be defined.

# this is the URL for the web service
# the format is
# <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl/Webservice/<WEB_SERVICE_NAME>
# or
# <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl/WebserviceID/<WEB_SERVICE_ID>
my $URL = 'http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnector';

# this name space should match the specified name space in the SOAP transport for the web service.
my $NameSpace = 'http://www.otrs.org/TicketConnector/';

# this is operation to execute, it could be TicketCreate, TicketUpdate, TicketGet, TicketSearch
# or SessionCreate. and they must to be defined in the web service.
my $Operation = 'TicketCreate';

# this variable is used to store all the parameters to be included on a request in XML format. Each
# operation has a determined set of mandatory and non mandatory parameters to work correctly. Please
# check the OTRS Admin Manual in order to get a complete list of parameters.
my $XMLData = '
<UserLogin>some user login</UserLogin>
<Password>some password</Password>
<Ticket>
<Title>some title</Title>
<CustomerUser>some customer user login</CustomerUser>
<Queue>some queue</Queue>
<State>some state</State>
<Priority>some priority</Priority>
</Ticket>
<Article>
<Subject>some subject</Subject>
<Body>some body</Body>
<ContentType>text/plain; charset=utf8</ContentType>
</Article>
';

# ---

# create a SOAP::Lite data structure from the provided XML data structure.
my $SOAPData = SOAP::Data
->type( 'xml' => $XMLData );

my $SOAPObject = SOAP::Lite
->uri($NameSpace)
->proxy($URL)
->$Operation($SOAPData);

# check for a fault in the soap code.
if ( $SOAPObject->fault ) {
print $SOAPObject->faultcode, " ", $SOAPObject->faultstring, "\n";
}

# otherwise print the results.
else {

# get the XML response part from the SOAP message.
my $XMLResponse = $SOAPObject->context()->transport()->proxy()->http_response()->content();

# deserialize response (convert it into a perl structure).
my $Deserialized = eval {
SOAP::Deserializer->deserialize($XMLResponse);
};

# remove all the headers and other not needed parts of the SOAP message.
my $Body = $Deserialized->body();

# just output relevant data and no the operation name key (like TicketCreateResponse).
for my $ResponseKey ( keys %{$Body} ) {
print Dumper( $Body->{$ResponseKey} );
}
}
#!/usr/bin/perl -w
# --
# otrs.SOAPRequest.pl - minta egy SOAP kérés küldéséhez az OTRS általános
# felület jegy csatlakozójának
# Copyright (C) 2001-2021 OTRS AG, http://otrs.com/
# --
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU AFFERO General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# or see http://www.gnu.org/licenses/agpl.txt.
# --

use strict;
use warnings;

# A ../ használata a lib helyeként
use File::Basename;
use FindBin qw($RealBin);
use lib dirname($RealBin);

use SOAP::Lite;
use Data::Dumper;

# ---
# Meghatározandó változók.

# Ez az URL a webszolgáltatáshoz
# A formátum:
# <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl/Webservice/<WEBSZOLGÁLTATÁS_NEVE>
# vagy
# <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl/WebserviceID/<WEBSZOLGÁLTATÁS_AZONOSÍTÓJA>
my $URL = 'http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnector';

# Ennek a névtérnek egyeznie kell a SOAP-átvitelben megadott névtérrel a webszolgáltatásnál.
my $NameSpace = 'http://www.otrs.org/TicketConnector/';

# Ez a végrehajtandó művelet, amely lehet: TicketCreate, TicketUpdate, TicketGet, TicketSearch
# vagy SessionCreate. És ezeket meg kell határozni a webszolgáltatásban.
my $Operation = 'TicketCreate';

# Ez a változó egy kérésnél felvenni kívánt összes paraméter tárolásához használható
# XML-formátumban. Minden egyes műveletnek egy meghatározott kötelező és nem kötelező
# paraméterek halmaza van a helyes működéshez. Nézze meg az OTRS adminisztrációs
# kézikönyvet azért, hogy beszerezhesse a paraméterek teljes listáját.
my $XMLData = '
<UserLogin>valamilyen felhasználói bejelentkezés</UserLogin>
<Password>valamilyen jelszó</Password>
<Ticket>
<Title>valamilyen cím</Title>
<CustomerUser>valamilyen ügyfél-felhasználó bejelentkezés</CustomerUser>
<Queue>valamilyen várólista</Queue>
<State>valamilyen állapot</State>
<Priority>valamilyen prioritás</Priority>
</Ticket>
<Article>
<Subject>valamilyen tárgy</Subject>
<Body>valamilyen törzs</Body>
<ContentType>text/plain; charset=utf8</ContentType>
</Article>
';

# ---

# Egy SOAP::Lite adatszerkezet létrehozása a megadott XML-adatszerkezetből.
my $SOAPData = SOAP::Data
->type( 'xml' => $XMLData );

my $SOAPObject = SOAP::Lite
->uri($NameSpace)
->proxy($URL)
->$Operation($SOAPData);

# Hiba keresése a SOAP-kódban.
if ( $SOAPObject->fault ) {
print $SOAPObject->faultcode, " ", $SOAPObject->faultstring, "\n";
}

# Egyébként az eredmények kiírása.
else {

# Az XML-válaszrész lekérése a SOAP-üzenetből.
my $XMLResponse = $SOAPObject->context()->transport()->proxy()->http_response()->content();

# A válasz visszaalakítása (átalakítás egy Perl-szerkezetre).
my $Deserialized = eval {
SOAP::Deserializer->deserialize($XMLResponse);
};

# Az összes fejléc és a SOAP-üzenet egyéb nem szükséges részeinek eltávolítása.
my $Body = $Deserialized->body();

# Csak a fontos adatok kiírása, és a műveletnév kulcsot nem (mint például
# TicketCreateResponse).
for my $ResponseKey ( keys %{$Body} ) {
print Dumper( $Body->{$ResponseKey} );
}
}
Perl REST Requester Perl REST kérelmező
The following code is a Perl script that can connect to OTRS via the generic interface. In order to perform the operations provided by the Ticket Connector, it uses three Perl CPAN modules JSON, REST::Client and Data::Dumper. Please make sure that your environment is capable to use these modules before you try to run the script. A következő kód egy Perl-parancsfájl, amely képes kapcsolódni az OTRS-hez az általános felületen keresztül. Azért, hogy a jegy csatlakozó által biztosított műveleteket végrehajtsa, három Perl CPAN modult használ: JSON, REST::Client::Lite és Data::Dumper. Győződjön meg arról, hogy a környezete képes ezen modulokat használni, mielőtt megpróbálná a parancsfájlt futtatni.
#!/usr/bin/perl
# --
# Copyright (C) 2001-2021 OTRS AG, https://otrs.com/
# --
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --

use strict;
use warnings;
use utf8;

## nofilter(TidyAll::Plugin::OTRS::Perl::Dumper)

# use ../ as lib location
use File::Basename;
use FindBin qw($RealBin);
use lib dirname($RealBin);

use JSON;
use REST::Client;

# This is the HOST for the web service the format is:
# <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl
my $Host = 'http://localhost/otrs/nph-genericinterface.pl';

my $RestClient = REST::Client->new(
{
host => $Host,
}
);

# These are the Controllers and Providers the format is:
# /Webservice/<WEB_SERVICE_NAME>/<RESOURCE>/<REQUEST_VALUE>
# or
# /WebserviceID/<WEB_SERVICE_ID>/<RESOURCE>/<REQUEST_VALUE>
#
# See the documentation on how to setup Providers.
#
# This example will retrieve the Ticket with the TicketID = 1 (<REQUEST_VALUE>)
my $GetControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket/1';

# This example is the base URL for Ticket Create
my $CreateControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket';

# This example will update the Ticket with the TicketID = 1 (<REQUEST_VALUE>)
my $UpdateControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket/1';

# This is the base URL for Ticket Search
my $SearchControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket';

# This is the base URL for Ticket history with the TicketID = 1 (<REQUEST_VALUE>)
my $HistoryControllerAndRequest = '/Webservice/GenericTicketConnectorREST/TicketHistory/1';

# TicketGet Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $GetParams = {
UserLogin => "some agent user login", # to be filled with valid agent login
Password => "some agent user password", # to be filled with valid agent password
};

# Build GetParams as part of the URL for REST-GET requests
my $QueryParams = $RestClient->buildQuery( %{$GetParams} );
$GetControllerAndRequest .= $QueryParams;

$RestClient->GET($GetControllerAndRequest);

my $GetResponseCode = $RestClient->responseCode();

if ( $GetResponseCode ne '200' ) {
print "Get request failed, response code was: $GetResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Get response was:\n";
print Dumper($Data);

}

# TicketSearch Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $SearchParams = {
UserLogin => "some agent user login", # to be filled with valid agent login
Password => "some agent user password", # to be filled with valid agent password
Queues => ['Raw'],
};

# Build SearchParams as part of the URL for REST-GET requests
$QueryParams = $RestClient->buildQuery( %{$SearchParams} );
$SearchControllerAndRequest .= $QueryParams;

$RestClient->GET($SearchControllerAndRequest);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $SearchResponseCode = $RestClient->responseCode();

if ( $SearchResponseCode ne '200' ) {
print "Search request failed, response code was: $SearchResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Search Response was:\n";
print Dumper($Data);

}

# TicketCreate Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $CreateOrUpdateParams = {
UserLogin => "some agent user login", # to be filled with valid agent login
Password => "some agent user password", # to be filled with valid agent password
Ticket => {
Title => 'some ticket title',
Queue => 'Raw',
Lock => 'unlock',
Type => 'Unclassified',
State => 'new',
Priority => '3 normal',
Owner => 'some agent user login',
CustomerUser => 'customer-1',
},
Article => {
Subject => 'some subject',
Body => 'some body',
ContentType => 'text/plain; charset=utf8',
},
};

my $CreateJSONParams = encode_json $CreateOrUpdateParams;

my @CreateRequestParam = (
$CreateControllerAndRequest,
$CreateJSONParams
);

# We have to use REST-POST requests in order to send UserLogin and Password correctly
# though other REST methods would fit better.
$RestClient->POST(@CreateRequestParam);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $CreateResponseCode = $RestClient->responseCode();

if ( $CreateResponseCode ne '200' ) {
print "Create request failed, response code was: $CreateResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Create Response was:\n";
print Dumper($Data);

}

# TicketUpdate Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $UpdateJSONParams = encode_json $CreateOrUpdateParams;

my @UpdateRequestParam = (
$UpdateControllerAndRequest,
$UpdateJSONParams
);

# We have to use REST-PATCH requests in order to send UserLogin and Password correctly
# though other REST methods would fit better.
$RestClient->PATCH(@UpdateRequestParam);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $UpdateResponseCode = $RestClient->responseCode();
if ( $UpdateResponseCode ne '200' ) {
print "Update request failed, response code was: $UpdateResponseCode\n";
}
else {

# If the request was answered correctly, we receive a JSON string here.
my $ResponseContent = $RestClient->responseContent();

my $Data = decode_json $ResponseContent;

# Just to print out the returned Data structure:
use Data::Dumper;
print "Update response was:\n";
print Dumper($Data);

}

# TicketHistoryGet Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
#