Data Structures for Report Desk Defaults and Enforcements


Release Date: 12/13/18

In Elliott V8.5, Netcellent introduced the Report Desk feature. In Report Desk, users can save their input values, as well as output option in templates and re-use them in the future. In Report Desk, the system prompts you to input the selection of your data. For example, you can choose to print a list of term codes from A - Z like the following:


Then you can choose the "Save" tab to save your current input value. See sample screen below:



Once the template is saved, you can choose the "Use" tab to re-use the previously saved template. See sample screen below:



In this article, we will discuss how we save data into the table SYRWTPLT (System Report Desk Template Table) and SYRWOUTP (System Report Desk Output Settings) from a technical point of view to explain how Elliott Report Desk works:

The following is a list of columns in the table SYRWTPLT:


When you choose to save the template, the majority of the data is stored in the SYRWTPLT_SELECTIONS column in XML format. It has the data type LONGVARCHAR. The maximum physical limitation with LONGVARCHAR is 2GB. The operation through the insert statement limits the size to 15,000 bytes. You can insert more than 15,000 bytes by using parameterized insert (we use this option in our code). The maximum data that can be returned in a single call is 64KB. For all practical purposes, we can assume this column can store all necessary data for Report Desk input values.

This table has a combo key consisting of the following four columns:
  • SYRWTPLT_LOGIN: Login ID in the format of Domain\User.
  • SYRWTPLT_COMP_NO: Elliott company ID. Will have value from 00 - 99.
  • SYRWTPLT_FL_REPORTID: The Report Desk Report ID. Example: ARTYPLST.B.1.1.0
  • SYRWTPLT_SEQ_NO: Increment from value 1 for different template saved. It can also have a value of -2 to stand for default (user=domain/user) or enforcement (user=SUPERVISOR.)
Saving as Default
When a user chooses to save, and if the user checked the "Use this template for the default values of this report" option, then that template is saved under the SYRWTPLT_SEQ_NO = -2. There can only be one record like this. So if there were another record that was previously saved under  -2, the original record will be saved under a new sequence number so the value is not lost. The default record only affects the same user. If a template was previously saved as "Default," and the user chooses to un-check the "Default" option, then the -2 record will be deleted and saved as regular record with the new sequence number assigned.

Saving Output Settings
Similar to saving input settings, output settings can be saved for future use.  This happens in three possible ways:
  • Enforcements specified by SUPERVISOR
  • Defaults specified by the user
  • Last-used settings automatically saved and re-used
Output settings are stored in the SYRWOUTP table.  Here is its struture:


Saving as Enforcement
When a user logs into Elliott as a SUPERVISOR, on the Printing tab for Disk and Email there's a checkbox for "Destination Enforced."  If a SUPERVISOR selects this option, it means other users printing the same report must also select the same output destination with the same options. In the legacy printing of Elliott V8.2, this was mainly for enforcing consistency with PDF PostOffice. But it can be used for various purposes, such as when a SUPERVISOR chooses to enforce that all postings must be posted to disk, or that certain printings to CSV or XLSX are meant for automation integration and that other applications must specify a fixed file path and name.

If a SUPERVISOR chooses to turn on "Destination Enforced," then a SYRWOUTP record will be saved as follows:
  • SYRWOUTP_LOGIN: Login ID will be hardcoded as "SUPERVISOR."
  • SYRWOUTP_COMP_NO: Elliott company ID. Will have value from 00 - 99.
  • SYRWOUTP_FL_REPORTID: The Report Desk Report ID. Example: ARTYPLST.B.1.1.0
  • SYRWOUTP_SEQ_NO: The value will be hard coded as -2.
Only the value related to the enforced tab will be saved in this record. If a report was previously enforced, and the SUPERVISOR / -2 record exists and SUPERVISOR chooses to un-enforce both Disk and Email tabs, than that SUPERVISOR / -2 record will be deleted.

When a non-SUPERVISOR user goes to the "Use" tab, the record saved under "SUPERVISOR" will not be displayed in the list since they are used for the special purpose of enforcement.

Saving User Defaults
When the user presses the Save button on the parameter input screen and then checks the Use this template for the default values of this report option and also checks Save output options with this template, then both the input and output settings will be saved and re-used as the default settings when the user runs this report in the future.  In this case, the SYRWOUTP key columns will be stored as follows:
  • SYRWOUTP_LOGIN: Login ID in the format of Domain\User.
  • SYRWOUTP_COMP_NO: Elliott company ID. Will have value from 00 - 99.
  • SYRWOUTP_FL_REPORTID: The Report Desk Report ID. Example: ARTYPLST.B.1.1.0
  • SYRWOUTP_SEQ_NO: The value will be hard coded as -2.
Saving Last-Used Settings
Each time a report is run by a user, a SYRWOUTP record is created with sequence number set to -1.  After the first time a user runs a particular report, the existing -1 record will be deleted before the new one is saved. 

Absent any enforcement record for a report, the output settings in the user's -1 record will be used to set default output options.  If an enforcement record for this report is found, the Disk tab and/or Email tab settings (based on the SUPERVISOR's enforcement settings)  will be joined with the last-used settings on any tab not enforced by SUPERVISOR.

EMK / JEG

Developer Documentations

  1. Received Code 9999 with Web Services Call
  2. Received Return Status Code 3 When Using Elilogin Login Method
  3. Elliott Web Service Requirements
  4. Elliott eStore Checklist
  5. LN API
  6. FN API
  7. RN API
  8. IN and DF API Change (V9.0)
  9. FA API Changes (V9.0)
  10. VA API Changes (V9.0)
  11. CartService
  12. EliarachService
  13. ElicshtxService
  14. EliattrbService
  15. ElisyscdService
  16. EliNoteService
  17. El2rstimService
  18. EliOrderService
  19. ItemInquiry
  20. EliitmiqService
  21. EliShiptoService
  22. El2getfrService
  23. Steps Required to Test ReportWriter in V8.2
  24. Installation of ElliottService, NETcellent’s Web Services for Elliott
  25. ResellerFinder
  26. EliaptrxService
  27. VendorInquiry
  28. EliloginService
  29. ElislsmnService
  30. EliserhsService
  31. EliatpobService
  32. ElievprcService
  33. ElihdtrxService
  34. ElicuswlService
  35. QueryTurnaround
  36. InvoiceInquiry
  37. ElicustmService
  38. EligetcdService
  39. OrderInquiry
  40. EliordiqService
  41. EliecontService
  42. EliautdpService
  43. El2CrCrdService
  44. Log-Timer / ElliottTimer.Ini Support
  45. Alpha Document Number Support (V8.5/V9.0)
  46. ElliottService System.TypeInitializationException
  47. Feature - Printing API to Dynamically Set Number of Copies
  48. The Values and Meanings of Distribution Types - ARDISFIL, APDISFIL, IMDISFIL, BMDISFIL
  49. DD API Changes (V9.0)
  50. PA API (8.5)
  51. Validate License API
  52. AP API
  53. TP API: Temporary Path
  54. Data Structures for Report Desk Defaults and Enforcements
  55. COBOL to VB Interface Programs
  56. IN API: Option to Support Files and Folders Validation
  57. FF API: File Functions
  58. ID API
  59. LK: Links API
  60. FFLNearYou
  61. Report Desk Developing and Debugging
  62. Developing a New Elliott V8.6 Report Desk User Defined Report (UDR)
  63. CustomerInquiry
  64. Elliott API (JSON Web Service)
  65. Animating COBOL Code in Elliott V8.5
  66. Preliminary Programming Changes for Elliott 8.6
  67. CV API
  68. System Lock File Requirements
  69. How to Write Test Codes for C# ESS Projects
  70. Solving the Inability to Debug Elliott on a New Server
  71. Report Desk: Developing Custom Reports
  72. Report Desk Tables
  73. Report Desk Database Delivery Strategy

Feedback and Knowledge Base