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
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
RIS Dashboard (Hangfire)
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
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
-
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
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)
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: