Table of Contents

Retrieving tickets using the Ticketing Gateway API

Important

The Ticketing Gateway API is obsolete. It is not supported with STaaS and is no longer available from DataMiner 10.6.0/10.6.3 onwards.

Tickets can be retrieved in a number of ways. See the following examples.

Note

To filter tickets, you can pass a list of TicketLinks and a ticket filter.

  • If you pass a list of TicketLinks, you will receive all Tickets that have at least one matching TicketLink.
  • Ticket filters are FilterElements of type Ticket. They can be built using ANDFilterElement<Ticket> or ORFilterElement<Ticket>.

To filter tickets quickly, do the following:

  • use one of the default TicketingExposers (DataminerID, TicketID, or ResolverID), or
  • use ReflectiveExposer to create a custom filter.
  • Retrieving tickets by ticket field

    public Ticket RetrieveTicketByField()
    {
        var outputTickets = Helper.GetTickets(filter: ReflectiveExposer.DictField<Ticket, object>("CustomTicketFields","User").Equal("Jane"));
        if (outputTickets.Count() != 1) return null;
        return outputTickets.First();
    }
    
  • Retrieving tickets by state

    public Ticket RetrieveTicketByState()
    {
        var outputTickets = Helper.GetTickets(filter: ReflectiveExposer.DictField<Ticket, object>("CustomTicketFields","State").Equal(0));
        //Alternatively:
        var alternative = Helper.GetTickets(filter: ReflectiveExposer.DictField<Ticket, object>("CustomTicketFields","State") .Equal(new GenericEnumEntry<int>() { Name = "Created", Value = 0 }));
        if (outputTickets.Count() != 1) return null;
        return outputTickets.First();
    }
    
  • Retrieving tickets by link

    public Ticket RetrieveTicketByLink() {
        var outputTickets = Helper.GetTickets(new TicketLink[] { TicketLink.Create(new Skyline.DataMiner.Net.ElementID(123, 456)) });
        if (outputTickets.Count() != 1) return null;
        return outputTickets.First();
    }
    
  • Retrieving tickets by ticket field resolver

    public Ticket[] RetrieveTicketByResolverID(TicketFieldResolver resolver) {
        var outputTickets = Helper.GetTickets(filter: TicketingExposers.ResolverID.Equal(resolver.ID));
        return outputTickets.ToArray();
    }
    
  • Retrieving tickets page by page

    private static long PagingCookie = -1;
    private static int PageSize = 2;
    private static int totalTickets = 10;
    private IEnumerable<Ticket> RetrieveNextPage() {
        List<Ticket> result;
        //The maximum number of tickets retrieved by this method is pageSize * amount of DMAs in the DMS
        if (PagingCookie == -1)
        {
            result = Helper.NewPagingRequest(PageSize, out PagingCookie, out totalTickets, filter: TicketingExposers.DataMinerID.Equal(123)).ToList();
        }
        result = Helper.NextPagingRequest(PagingCookie).ToList();
        if (result.Count < PageSize) PagingCookie = -1;
        return result;
    }