From f3615b0f5f172822bb6672ab8bfcfe5f50274954 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 20 Dec 2022 22:11:12 +0000 Subject: [PATCH] case 4357 --- docs/8.0/ayanova/docs/changelog.md | 155 +++++++++++++++-------------- docs/8.0/ayanova/mkdocs.yml | 2 +- server/AyaNova/biz/JobsBiz.cs | 8 ++ 3 files changed, 90 insertions(+), 75 deletions(-) diff --git a/docs/8.0/ayanova/docs/changelog.md b/docs/8.0/ayanova/docs/changelog.md index 71eb83bc..8f833607 100644 --- a/docs/8.0/ayanova/docs/changelog.md +++ b/docs/8.0/ayanova/docs/changelog.md @@ -8,218 +8,225 @@ See the [upgrade instructions](ops-upgrade.md) section of this manual for detail ## 2022 +### AyaNova 8.0.29 (2022-12-20) + +#### Fixed + +- UI: Part inventory data table was incorrectly showing the Delete and Tag extension when it should only show the export extension +- Server: fixed a bug that could cause a server crash attempting to process mass delete extension on unsupport object types + ### AyaNova 8.0.28 (2022-12-14) #### Fixed -- UI: Work order, Quote, PM were not recognizing record needs to be saved if the only change is in an address field +- UI: Work order, Quote, PM were not recognizing record needs to be saved if the only change is in an address field #### Added -- Server, App, Documentation, v8-migrate: Added Postal / ZIP code to physical address for all addressible objects +- Server, App, Documentation, v8-migrate: Added Postal / ZIP code to physical address for all addressible objects ### AyaNova 8.0.27 (2022-12-02) #### Added -- UI: [Service schedule](svc-schedule.md#create--modify--view-events) added Customer selection / edit link to new work order dialog to preselect Customer or create new one using [Open record button](ay-start-form-autocomplete.md#opening-selected-record) -- UI: All schedule forms click on Work order more info dialog added [Work order header's Summary text](svc-workorders.md#summary) below work order serial and customer name +- UI: [Service schedule](svc-schedule.md#create--modify--view-events) added Customer selection / edit link to new work order dialog to preselect Customer or create new one using [Open record button](ay-start-form-autocomplete.md#opening-selected-record) +- UI: All schedule forms click on Work order more info dialog added [Work order header's Summary text](svc-workorders.md#summary) below work order serial and customer name ### AyaNova 8.0.26 (2022-11-28) #### Changed -- Server: Removed unique Name requirement for User / Customer Contact -- App: Added `UserId` field to `ayClientMetaData` so report template scripts have access to the Id of the User rendering the report +- Server: Removed unique Name requirement for User / Customer Contact +- App: Added `UserId` field to `ayClientMetaData` so report template scripts have access to the Id of the User rendering the report ### AyaNova 8.0.25 (2022-11-25) #### Fixed -- UI: Home notifications could error out with "internal server error" rather than list of notifications +- UI: Home notifications could error out with "internal server error" rather than list of notifications #### Added -- Documentation: Multiple pages improved / expanded +- Documentation: Multiple pages improved / expanded ### AyaNova 8.0.24 (2022-11-21) #### Added -- Server: Added new internal API route `/api/v8/notify/direct-smtp` to support on demand notification scenarios -- Server, App: log to AyaNova event log when User sends a direct smtp message using new notify API route, can be viewed in [Event history](adm-history.md) -- Server: Report api utility methods ayPutToAPI, ayPostToAPI, ayGetFromAPI was incorrectly throwing exception on empty return body (202, 204 results) -- App: added `z_API send SMTP from work order report` example report to show how to use the new API notify via smpt method added to - send an email when a report is rendered automatically. - Note: this example report will only automatically install in new databases created after upgrading to this release. - For existing databases [download z_API send SMTP from work order report](https://ayanova.com/download/xtra/z_API send SMTP from work order report.ayrt) - and [import to AyaNova](adm-report-templates.md#import). +- Server: Added new internal API route `/api/v8/notify/direct-smtp` to support on demand notification scenarios +- Server, App: log to AyaNova event log when User sends a direct smtp message using new notify API route, can be viewed in [Event history](adm-history.md) +- Server: Report api utility methods ayPutToAPI, ayPostToAPI, ayGetFromAPI was incorrectly throwing exception on empty return body (202, 204 results) +- App: added `z_API send SMTP from work order report` example report to show how to use the new API notify via smpt method added to + send an email when a report is rendered automatically. + Note: this example report will only automatically install in new databases created after upgrading to this release. + For existing databases [download z_API send SMTP from work order report](https://ayanova.com/download/xtra/z_API send SMTP from work order report.ayrt) + and [import to AyaNova](adm-report-templates.md#import). ### AyaNova 8.0.23 (2022-11-18) #### Added -- Server, App, Documentation: Added [ayPutToAPI](ay-report-edit.md#api-convenience-functions) API convenience method to report renderer -- App: added `z_ayPutToAPI work order` example report to show how to use the new put method added to update a work order on render - Note: this example report will only automatically install in new databases created after upgrading to this release. - For existing databases [download z_ayPutToAPI work order](https://ayanova.com/download/xtra/z_ayPutToAPI work order.ayrt) - and [import to AyaNova](adm-report-templates.md#import). +- Server, App, Documentation: Added [ayPutToAPI](ay-report-edit.md#api-convenience-functions) API convenience method to report renderer +- App: added `z_ayPutToAPI work order` example report to show how to use the new put method added to update a work order on render + Note: this example report will only automatically install in new databases created after upgrading to this release. + For existing databases [download z_ayPutToAPI work order](https://ayanova.com/download/xtra/z_ayPutToAPI work order.ayrt) + and [import to AyaNova](adm-report-templates.md#import). ### AyaNova 8.0.22 (2022-11-14) #### Changed -- Server: Quote, Work order state's collections GET change to avoid any potential for non-deterministic ordering +- Server: Quote, Work order state's collections GET change to avoid any potential for non-deterministic ordering ### AyaNova 8.0.21 (2022-11-10) #### Changed -- UI: New Quote status object's _default_ Roles for who can set and who can remove changed to all compatible Roles (had some incompatible ones before) -- Server: Quote, Work order internal improvements to status change synchronization between header and state collection -- UI: Custom fields improved layout and clarity +- UI: New Quote status object's _default_ Roles for who can set and who can remove changed to all compatible Roles (had some incompatible ones before) +- Server: Quote, Work order internal improvements to status change synchronization between header and state collection +- UI: Custom fields improved layout and clarity #### Fixed -- UI: Home schedule form appointment item icons nudged upwards to layout fully visibly in month view +- UI: Home schedule form appointment item icons nudged upwards to layout fully visibly in month view #### Added -- UI: [Customer](customers.md#new-work-order) and [Unit](svc-units.md#new-work-order) form's menu's added new `New work order` option to directly create a new Work order with these items pre-selected -- UI,SERVER: Part inventory data table added Part Manufacturer as available column -- UI: `New customer` menu option added to [Home schedule](home-schedule.md#menu-options), [Service Schedule](svc-schedule.md#new-customer), [Units table](svc-units.md#new-customer-menu-option), [Workorders table](svc-workorders.md#new-customer-menu-option), [Quotes table](svc-quotes.md#new-customer-menu-option) and [PM table](svc-pms.md#new-customer-menu-option) -- Documentation: more screen shots and images, more to come +- UI: [Customer](customers.md#new-work-order) and [Unit](svc-units.md#new-work-order) form's menu's added new `New work order` option to directly create a new Work order with these items pre-selected +- UI,SERVER: Part inventory data table added Part Manufacturer as available column +- UI: `New customer` menu option added to [Home schedule](home-schedule.md#menu-options), [Service Schedule](svc-schedule.md#new-customer), [Units table](svc-units.md#new-customer-menu-option), [Workorders table](svc-workorders.md#new-customer-menu-option), [Quotes table](svc-quotes.md#new-customer-menu-option) and [PM table](svc-pms.md#new-customer-menu-option) +- Documentation: more screen shots and images, more to come ### AyaNova 8.0.20 (2022-11-03) #### Fixed -- UI,Server: Unit Model form implemented "Workorders", "Quotes", "Preventive Maintenance" menu items features to view list of those items for the open Unit Model -- UI,Server: Work order, Quote fixed several issues related to changing Status when restricted Role permissions were set for changing status -- UI: Customize form wasn't showing _full_ Translation keys in each field's subtitle -- UI: Translation form display text editing could cause item being edited to disappear if searched for and modified to no longer match search -- UI: Translation display edit allowed empty string +- UI,Server: Unit Model form implemented "Workorders", "Quotes", "Preventive Maintenance" menu items features to view list of those items for the open Unit Model +- UI,Server: Work order, Quote fixed several issues related to changing Status when restricted Role permissions were set for changing status +- UI: Customize form wasn't showing _full_ Translation keys in each field's subtitle +- UI: Translation form display text editing could cause item being edited to disappear if searched for and modified to no longer match search +- UI: Translation display edit allowed empty string #### Added -- Documentation: more [guided tours](tour-intro.md) added, many more to come -- UI: User settings added OK popup when changing the "Use browser's standard date time input controls" setting to help indicate it's instantly changed and doesn't require saving the form -- UI: Translation form items table was unsorted by default when first open form changed to sort by Key initially +- Documentation: more [guided tours](tour-intro.md) added, many more to come +- UI: User settings added OK popup when changing the "Use browser's standard date time input controls" setting to help indicate it's instantly changed and doesn't require saving the form +- UI: Translation form items table was unsorted by default when first open form changed to sort by Key initially ### AyaNova 8.0.19 (2022-10-29) #### Fixed -- Server: With generated sample data only, not production use, Work order and Quote could potententially not show as locked when set to a locking status +- Server: With generated sample data only, not production use, Work order and Quote could potententially not show as locked when set to a locking status #### Changed -- UI: Reduced whitespace on forms between fields and row heights in data tables to show more in less space +- UI: Reduced whitespace on forms between fields and row heights in data tables to show more in less space ### AyaNova 8.0.18 (2022-10-27) #### Fixed -- Server: expiration date of license and maintenance incorrectly stated "(utc)" time in log but is actually server local time -- UI: Evaluation license request page now properly shows that the company name and other details are _required_ and disables request button until filled in +- Server: expiration date of license and maintenance incorrectly stated "(utc)" time in log but is actually server local time +- UI: Evaluation license request page now properly shows that the company name and other details are _required_ and disables request button until filled in #### Changed -- Server: Erase database huge speed improvement; improves v8-migrate, sample data generation, manual erase by SuperUser in UI -- UI: Administration -> License page added _time_ in addition to existing _date_ for license and maintenance expiration -- UI: Administration -> License page only SuperUser account is offered the Erase Database menu option (no other user has rights to erase db) -- UI: Evaluate, show SuperUser only message _before_ showing generate options dialog rather than on submit -- UI: Evaluation request button now disabled when request is actively being processed +- Server: Erase database huge speed improvement; improves v8-migrate, sample data generation, manual erase by SuperUser in UI +- UI: Administration -> License page added _time_ in addition to existing _date_ for license and maintenance expiration +- UI: Administration -> License page only SuperUser account is offered the Erase Database menu option (no other user has rights to erase db) +- UI: Evaluate, show SuperUser only message _before_ showing generate options dialog rather than on submit +- UI: Evaluation request button now disabled when request is actively being processed ### AyaNova 8.0.17 (2022-10-12) #### Fixed -- Server: Report rendering would fail if Global setting Company physical address longitude or latitude were set to an empty string +- Server: Report rendering would fail if Global setting Company physical address longitude or latitude were set to an empty string ### AyaNova 8.0.16 (2022-10-12) #### Added -- Server: Debug log level diagnostic information for troubleshooting report generation issues during technical support +- Server: Debug log level diagnostic information for troubleshooting report generation issues during technical support ### AyaNova 8.0.15 (2022-09-30) #### Added -- UI, Server, Documentation: Misc. additions and changes for Subscription mode AyaNova +- UI, Server, Documentation: Misc. additions and changes for Subscription mode AyaNova #### Fixed -- Server: Automatic backup pruning to remove backup sets in excess of the [Number of backups to keep](ops-form-backup.md#number-of-backups-to-keep) setting was not deleting manual backup sets +- Server: Automatic backup pruning to remove backup sets in excess of the [Number of backups to keep](ops-form-backup.md#number-of-backups-to-keep) setting was not deleting manual backup sets ### AyaNova 8.0.14 (2022-09-29) #### Changed -- UI, Server, Documentation: Dashboard list widgets limited to maximum 100 items to prevent overwhelming and potentially freezing the browser with large quantities of data better viewed through filtered data tables +- UI, Server, Documentation: Dashboard list widgets limited to maximum 100 items to prevent overwhelming and potentially freezing the browser with large quantities of data better viewed through filtered data tables ### AyaNova 8.0.13 (2022-09-28) #### Changed -- UI, Server, Documentation: Bulk Tag and delete extensions changed to show progress and support cancellation of long running jobs +- UI, Server, Documentation: Bulk Tag and delete extensions changed to show progress and support cancellation of long running jobs #### Fixed -- UI: Dashboard issue potentially causing freeze / high memory usage with Reminders, Reviews and Scheduled dashboard widgets +- UI: Dashboard issue potentially causing freeze / high memory usage with Reminders, Reviews and Scheduled dashboard widgets ### AyaNova 8.0.12 (2022-09-27) #### Changed -- SERVER: internal change to batch jobs to prevent long running jobs from hogging CPU cycles in constrained environments +- SERVER: internal change to batch jobs to prevent long running jobs from hogging CPU cycles in constrained environments ### AyaNova 8.0.11 (2022-09-26) #### Fixed -- Multiple data tables had more than one column internally defined at the AyaNova server end as the row id column which could result in a table not displaying data and an error message showing in the AyaNova web app. This also meant that the extra row id columns were not able to be set to not display in the data table columns. +- Multiple data tables had more than one column internally defined at the AyaNova server end as the row id column which could result in a table not displaying data and an error message showing in the AyaNova web app. This also meant that the extra row id columns were not able to be set to not display in the data table columns. ### V8-Migrate plugin 8.0.3 (2022-09-23) #### Added -- UI: "copy to clipboard" button added to migration log display form to enable copy displayed migration log to clipboard -- UI: warning message indicating migration will fail if login to v8 server during migration +- UI: "copy to clipboard" button added to migration log display form to enable copy displayed migration log to clipboard +- UI: warning message indicating migration will fail if login to v8 server during migration #### Changed -- UI: Text displayed when migration ended to more clearly show if failed or completed properly -- Always attempt to send memo of log to SuperUser on any failure -- Always attempt to set v8 server state back to open even if earlier failure +- UI: Text displayed when migration ended to more clearly show if failed or completed properly +- Always attempt to send memo of log to SuperUser on any failure +- Always attempt to set v8 server state back to open even if earlier failure #### Fixed -- Not fail on empty v8 Part name due to missing v7 data but generate a unique placeholder instead +- Not fail on empty v8 Part name due to missing v7 data but generate a unique placeholder instead ### AyaNova 8.0.10 (2022-09-22) #### Added -- Documentation: Added Change log / release notes page and links to it -- Documentation: Personal History manual page added section about Ghostery and other similar browser extensions potentialy blocking event log history -- Documentation: several pages added section that clarifies SuperUser is not a normal account and specific information about SuperUser not having access to business data -- Documentation: ops-restore section added more detailed instructions regarding restoration and in particular setting rights and ownership when restoring to Linux server +- Documentation: Added Change log / release notes page and links to it +- Documentation: Personal History manual page added section about Ghostery and other similar browser extensions potentialy blocking event log history +- Documentation: several pages added section that clarifies SuperUser is not a normal account and specific information about SuperUser not having access to business data +- Documentation: ops-restore section added more detailed instructions regarding restoration and in particular setting rights and ownership when restoring to Linux server #### Changed -- License check: when using active trial license now does fast track license check to accomodate slow data migration scenarios where trial license would expire before migration has completed -- Metrics: changed the server's timespan for gathering daily metrics from beta period interval of every 12 hours to normal release interval of 24 hours -- Metrics: changed the default timespan for graphs from last 6 hours to last 7 days -- Metrics form: improved the timeline chart data points to be more clearly visible +- License check: when using active trial license now does fast track license check to accomodate slow data migration scenarios where trial license would expire before migration has completed +- Metrics: changed the server's timespan for gathering daily metrics from beta period interval of every 12 hours to normal release interval of 24 hours +- Metrics: changed the default timespan for graphs from last 6 hours to last 7 days +- Metrics form: improved the timeline chart data points to be more clearly visible #### Fixed -- Documentation: miscellaneous improvements and edits to documentation in multiple places -- Metrics form: fixed issue with some timeline charts not displaying properly +- Documentation: miscellaneous improvements and edits to documentation in multiple places +- Metrics form: fixed issue with some timeline charts not displaying properly #### Removed -- Evaluate form: removed various levels of trial data seeding, defaults to small only -- Profiler form: removed now that beta test and primary development has ended +- Evaluate form: removed various levels of trial data seeding, defaults to small only +- Profiler form: removed now that beta test and primary development has ended diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml index b340dde3..c1aa23f0 100644 --- a/docs/8.0/ayanova/mkdocs.yml +++ b/docs/8.0/ayanova/mkdocs.yml @@ -7,7 +7,7 @@ theme: site_name: AyaNova manual site_dir: '../../../server/AyaNova/wwwroot/docs' strict: true -copyright: Copyright © 2022 Ground Zero Tech-Works Inc. REV-2022-12-14 +copyright: Copyright © 2022 Ground Zero Tech-Works Inc. REV-2022-12-20 extra: generator: false # Extensions diff --git a/server/AyaNova/biz/JobsBiz.cs b/server/AyaNova/biz/JobsBiz.cs index 0d2198e7..a93460d4 100644 --- a/server/AyaNova/biz/JobsBiz.cs +++ b/server/AyaNova/biz/JobsBiz.cs @@ -374,12 +374,14 @@ namespace AyaNova.Biz /// internal static async Task ProcessJobAsync(OpsJob job) { + var JobDescription = $"{job.Name} - {job.JobType.ToString()}"; if (job.SubType != JobSubType.NotSet) JobDescription += $":{job.SubType}"; await LogJobAsync(job.GId, $"LT:ProcessingJob \"{JobDescription}\""); log.LogDebug($"ProcessJobAsync -> Processing job {JobDescription}"); IJobObject o = null; + try{ using (AyContext ct = ServiceProviderProvider.DBContext) { switch (job.JobType) @@ -420,6 +422,12 @@ namespace AyaNova.Biz await o.HandleJobAsync(job); } log.LogDebug($"ProcessJobAsync -> Job completed {JobDescription}"); + } + catch(Exception ex){ + await LogJobAsync(job.GId, $"LT:BatchJob \"{JobDescription}\" - LT:Failed "); + log.LogError(ex,$"ProcessJobAsync -> job failed {JobDescription}"); + await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Failed); + } }