* '''Department User Fields''': Additional user fields available at department level
* '''UI & Wizard Options''': General UI and wizard option refinements
* '''Supplier Category/Type Support''': Added supplier category and type classification with UI improvements
* '''Other Party Contact Methods''': Refactored Other Party contact methods with ComboBox support
* '''Statement Aging''': Refactored statement aging logic for out-of-period allocations
* '''Registry Item Handling''': Refactored AddRegistryItem to return BoolReturn with status for improved error handling
=== Version 6.1.16.3 Pre Release ===
* '''Graph Updates''': Updated graph components
* '''Warning Cleanup''': General codebase warning cleanup and tidy-up
=== Version 6.1.16.2 ===
=== Version 6.1.16.2 ===
* [[File:TriButtonZinMsgBox.png|thumb|170px]]
* [[File:TriButtonZinMsgBox.png|thumb|170x170px]]'''ZinMessageBox''': Added custom message box component for runtime scripting to allow for custom 'tri button' layouts and new custom icons.
'''ZinMessageBox''': Added custom message box component for runtime scripting to allow for custom 'tri button' layouts and new custom icons.
* '''Document Scripting''': Message box now available to runtime document scripts via Business Layer
* '''Document Scripting''': Message box now available to runtime document scripts via Business Layer
* General tweaks and refinements
* General tweaks and refinements
Line 72:
Line 33:
* '''Code Cleanup''': Tidied warnings throughout the codebase
* '''Code Cleanup''': Tidied warnings throughout the codebase
=== Version 6.1.14.1 Release Features: ===
=== Version 6.1.14.1 Release Features: ===
Document Manager:
Document Manager:
Line 100:
Line 60:
** ASB (''In Active Development'')
** ASB (''In Active Development'')
** Kiwibank (''In Active Development'')
** Kiwibank (''In Active Development'')
Import File Admin
Import File Admin
Line 116:
Line 75:
* Additional Code Support to allow for up to 5 Codes
* Additional Code Support to allow for up to 5 Codes
** Eg: Could be used to track Registration Number of a Vehicle to A Department, Trailers, ID Numbers etc for AP Invoices etc.
** Eg: Could be used to track Registration Number of a Vehicle to A Department, Trailers, ID Numbers etc for AP Invoices etc.
== Web Services & Scheduled Services ==
ASP.NET Core Web API built on .NET 10, hosted as a Windows Service, providing external API access to Zinform data and a runtime scripting platform for custom integrations and scheduled tasks.
=== Data API ===
Full CRUD RESTful API with configurable entity endpoints:
* '''Entity Endpoints''': Expose any Zinform database entity via configurable route aliases (e.g. <code>/api/data/customers</code>, <code>/api/data/invoices</code>)
* '''Per-Endpoint Access Control''': Each endpoint individually configurable for Read, Create, Update, and Delete permissions
* '''Paging & Sorting''': Built-in pagination with configurable max page sizes, multi-field ordering (ascending/descending)
* '''Filtering''': Query string filters (<code>?filter.Name=Smith</code>) and advanced POST query with operators including eq, neq, gt, gte, lt, lte, contains, startswith, endswith, between, in, isnull, isnotnull
* '''Nested Filter Logic''': AND/OR filter groups with nested sub-groups for complex queries
* '''Field Selection''': Request specific fields to reduce payload size
* '''Endpoint Discovery''': <code>GET /api/data</code> lists all available enabled endpoints with their permissions
=== Scripted API ===
Custom API endpoints powered by Roslyn C# runtime compilation:
* '''Custom Endpoints''': Define custom routes (e.g. <code>/api/script/myintegration</code>) with C# script bodies compiled and cached at runtime
* '''ImportScripter Pattern''': Scripts follow the same <code>ImportScripter</code> class pattern used in the Zinform desktop application for consistency
* '''Full Business Layer Access''': Scripts receive a <code>BusinessLayerMain</code> instance providing full access to all Zinform business logic
* '''Request/Response Model''': Custom <code>ZinHttpRequest</code> / <code>ZinHttpResponse</code> objects with access to query parameters, JSON body, headers, and authenticated user identity
* '''Per-Method Control''': Each scripted endpoint configurable for specific HTTP methods (GET, POST, PUT, DELETE)
* '''Script Caching''': Compiled scripts are cached with SHA256 hash-based invalidation — scripts recompile automatically when updated
* '''Endpoint Discovery''': <code>GET /api/script</code> lists all available scripted endpoints with descriptions
=== Script Execution API ===
Direct script execution endpoint for ad-hoc or remote scripting:
* '''Remote Script Execution''': POST C# scripts to <code>/api/script/execute</code> for server-side execution
* '''ZinParameters Support''': Pass key/value parameters to scripts, matching the desktop runner interface
* '''Timeout Control''': Configurable execution timeout (up to 5 minutes) with cancellation support
Orchestrated background task system driven by database-stored service definitions:
* '''Service Orchestrator''': Master hosted service that manages the lifecycle of all background workers
* '''Dynamic Configuration''': Service definitions stored in the database — add, update, enable, or disable services without restarting the application
* '''Automatic Change Detection''': Polls DB every 60 seconds for definition changes; workers are started, stopped, or restarted as needed using RowVersion tracking
* '''Roslyn Script Execution''': Each service runs a C# script body with full Business Layer access
* '''Run Tracking''': Automatic tracking of run count, fail count, last run time, last output/error, and next scheduled run
* '''User Data Fields''': Five custom user data fields (User0–User4) per service definition for script-accessible configuration
* '''API Key''': Static API key authentication via <code>X-Api-Key</code> header for legacy/simple integrations
* '''Anonymous''': Unauthenticated access for public endpoints
* '''Per-Endpoint Auth Schemes''': Each data and scripted endpoint can specify which authentication schemes are accepted
=== Subscriber Access Control ===
* '''Subscriber Middleware''': Validates subscriber keys and stores subscriber context for downstream use
* '''Per-Endpoint Subscriber Permissions''': Subscribers can be granted access to specific data endpoints and scripted endpoints independently
* '''Encrypted Subscriber Keys''': Subscriber authentication keys with encryption support
=== Administration ===
* '''Admin Console''': Localhost-only admin interface for service management
* '''Swagger / OpenAPI''': Full Swagger UI documentation with all authentication schemes documented
* '''Service Definition Admin''': Admin UI in Zinform desktop for managing service definitions, scripted endpoints, API endpoints, and request metrics
* '''Request Metrics''': Built-in request tracking for monitoring API activity
* '''Windows Service Hosting''': Runs as a Windows Service or under IIS
=== Coming Soon: ===
=== Coming Soon: ===
Organisation Settings:
Organisation Settings:
Revision as of 20:56, 12 March 2026
Release Details
Current Release: 6.1.16.2
Version 6.1.16.2
ZinMessageBox: Added custom message box component for runtime scripting to allow for custom 'tri button' layouts and new custom icons.
Document Scripting: Message box now available to runtime document scripts via Business Layer
General tweaks and refinements
Statement Generation Improvements:
Major SQL and CTE optimizations for faster, more accurate financial statements
Fixed transaction allocation logic to properly handle bidirectional allocations
Improved running balance calculations for aged arrears
Enhanced deduplication strategies to prevent duplicate transactions in statements
Better handling of current month transactions vs historical aging buckets
Version 6.1.16.1
Progress Bar Improvements: Updated progress bar to handle child loops and display status correctly for better user feedback during long operations (Allows for more complex looping within runtime scripting)
Version 6.1.16.0
Departments Launch: Added department management functionality (moved away from Zinform 5)
BCTI Enhancements: Changes to enhance BCTI (Buyer Created Tax Invoice) Generation
Document Functions: Updated and improved document functions
Customer/Supplier Display Fixes: Fixed display of customers and suppliers for statements and documents
License Management Fix: Fixed opening organization license on first requirement