RIS (Retail Information System)

RIS is retail information system at Schiphol airport used for tracking of retailers` sales & payments statistics.

We have implemented an interface to generate specific RIS files and send sales & payments data (stored in RIS files per retailer) to Schiphol by FTP upload.

Basic flow:

POS -> POS ticket (sale/refund) -> RIS Web Service (store POS tickets) -> RIS database -> RIS Export Service (load & process POS tickets, generate) -> RIS files for each retailer daily -> FTP upload -> Schiphol RIS FTP

Retailers:
AP1 fig1

​Code base

TFS: $DefaultCollectoin/Projects​ /RIS (TSFC)

RIS server (BOV-RIS)

RDP: spl-2.bovertis.nl

Ask Peter Bakker or Jeroen Vijverberg for access to RIS server.

RIS Web Service

Web service which is used for receiving of POS tickets from retailers (Point-of-Sales).

POS tickets are stored in the RIS database from where they are picked up by the RIS Export Service for processing.

Note: There must be RIS plugin installed / configured on retailer`s POS system to send tickets into our RIS Web Service.

Web Service URL: http://spl-2.bovertis.nl/RIS/RISWebService.svc

Logs: C:\Bovertis\RISExportSvc\Logs\RISWebService_YYYYMMDD.log

Failed tickets folder.: *C:\Bovertis\RISExportSvc\FailedTickets* .TCK

Note:

  • in case of issues with RIS database, POS tickets are stored into failed tickets folder as .TCK files.
  • then there is an automatic process (job) which runs at night to store failed POS tickets into RIS database (for later processing)

RIS Export Service

Windows NT service is responsible for generating of RIS files for each configured company on daily basis.

Generated RIS files: *C:\Bovertis\RISExportSvc\Export* .dat

Uploaded RIS files: *C:\Bovertis\RISExportSvc\Export* .dat.uploaded

Logs: C:\Bovertis\RISExportSvc\Logs\RISExportSvc_YYYYMMDD.log

Scheduled “recurring jobs” which run every day at night:

  • Process failed tickets

    • if there are any failed POS tickets in “FailedTickets” folder they are loaded (.TCK files) and stored into RIS db
    • executed daily at 00:01
  • Process tickets

    • processing tickets loaded from RIS db which has not been processed yet and creating new export batch for company/date
    • executed daily at 00:05
  • Generate RIS files

    • loading not exported batches and trigger “RISFileJob” per company to generate RIS file for each company/date
    • executed daily at 00:10
  • Send RIS files to FTP

    • load RIS files (.dat) and send them to Schiphol PROD FTP server if company has this option “SendRISFilesToFtpProd” set to “1”
    • executed daily at 01:00
  • Recurring Jobs: http://localhost:8080/recurring

    AP1 fig2

RIS Dashboard (Hangfire)

AP1 fig3

RIS dashboard (for managment of queued jobs) is accessible locally on the RIS server.

Dashboard URL: http://localhost:8080/

Failed jobs: http://localhost:8080/jobs/failed
AP1 fig4

Sample failed job (FTP upload job):

  • in this case upload of RIS file to FTP server failed (for some network reason or so, more details can be checked in RIS Export Service logs)

  • it is possible to execute the job again - enqueue job with Requeue button
    AP1 fig5

  • after you click “Requeue” job should be enqueued by RIS Export Service for execution (run job again)

  • then you should see this job in “Enqueued” list -> “Processing” list -> “Succeeded” list or “Failed” list in case it fails again
    AP1 fig6

Notes

  • Gerzon retailer has POS tickets from more companies: 25 (default) and 66+67 which are POS tickets from shop-in-shop.
  • See FB 13065 for more details
  • We export one Gerzon RIS file for all 3 companies -> we treat child companies tickets (66+67) as if they had parent company ID (25)
  • ParentCompanyId must be configured in RIS.CompanyMappings table for child (shop-in-shop) companies, in this case Gerzon (Accessorize)
    AP1 fig7

How to run failed export / FTP upload jobs manually again?

In case there is some issue with Schiphol FTP or another issue Export or FTP Upload jobs can fail.

Then Support should connect to Hangfire Dashboard and navigate to Failed jobs and Requeue jobs which have failed:

http://spl-2.bovertis.nl:8080/jobs/failed
AP1 fig8