pasUnity 4.51.0.0 RTM

Written By Gary Fletcher

Blogs pasUNITY Products

pasUnity 4.51.0.0 RTM is now generally available.

This release contains a significant number of new capabilities, performance improvements, new macro commands, designer enhancement, UI changes, and system requirements.

UI Improvements

The first thing you will notice upon logging in is the iconography throughout the application has changed.  Each job step type and impeller type now has its own individual icon which should allow you to identify and locate specific steps and impellers quickly as you adjust to the new iconography.  You will also notice that the iconography is themed.  For example, all job steps and impellers relating to matrix or drop box capabilities will all have a consistent color schema and slight variations of the same image.  Basically, the iconography of an impeller now matches the job steps that are typically used to respond to work enqueued by that impeller.

You do not have to do math any more.  In places where we would have asked you to provide a value in bytes (storage limits, etc.) we now have a data size interval editor that lets you choose a unit (such as Kilobyte or Megabyte) and will then automatically handle the conversion to bytes behind the scenes.

As you navigate around between similar items in the UI you will notice that the previously used tab is now being tracked and automatically defaulted on the newly selected item.  For example, maybe you wanted to compare the parameter value on several different jobs.  Just click a job and switch to the parameter tab.  The next job you click on will load into the UI and already be on the parameter tab for a quick compare.

The About application dialog now provides a lot more detail about your environment than ever before.  It details every active reference by pasUnity to .NET assemblies on your system including those from .NET Core and .NET Standard and even dynamically compiled assemblies that are memory resident only.  The About dialog can also be used to generate system information reports and get detailed version info for your operating system, the application, and all referenced assemblies.


Job Changes

On the Notifications tab in the job designer you now have the ability to select a mail account for sending the outgoing SMTP job notifications.  Previously, notifications were sent using the account configured at the agent level but this can now be overridden at the job level for more granular control.

Previous versions featured an Enable Startup Processing option on the job.  After upgrading to the latest version of pasUnity this option is removed from the UI.  Any job previously marked with option will automatically have a new Startup Impeller added to the job with additional configuration options to give you more control over how this feature works.  See Startup impeller changes below.

Impeller Changes

This version introduces the Startup impeller.  Previous version had and Enable Startup Processing option at the job level.  The upgrade process migrates this setting to the new Startup impeller automatically.  The Startup impeller allows you to automatically queue and execute work immediately after the Processing Agent start.  It also allows for the configuration of an execution delay.  Let's say that you have a server where some of the services are not always starting up correctly after a restart due to a lack of network connectivity or a timeout or some such thing.  You could create a job with a Startup impeller configured with a three minute execution delay to attempt to start any service that had not started by that time.  Future dated work is added to the queue and in three minutes time the Processing Agent kicks in and restarts that service.

Remote impeller enhancements in this version are numerous.  First, and most exciting is the ability to use Macro commands in the connection strings and SQL script for dynamic parameters.  This allows for several new use cases when building Remote impellers for use from the pasPortal.  Obviously, no work is actually running when these macros are being evaluated so some execution-context sensitive macros will not be available but system, agent, and job level macros and tokens are available.  Let's say you have several Remote impellers that need to share the same credentials.  Well now you can use the <KeyValuePair> or <Credential> macros within those impellers to avoid hard-coding them.

DropBox impeller enhancements are all about simplicity.  Previously you would have to create several parameters by hand using the DropBox impeller tokens.  For example, you would create a parameter called DataFileName and set it equal to {DATAFILE-NAME} on the DropBox impeller itself or in a later job step using <DataFileProperty|<Parameter|DataFileID>|FileName|default.txt> syntax in the event that your DropBox impeller had multiple-file activation criteria.  This is now obsolete.  Each DropBox Monitor row on the DropBox impeller now has a column for each of the attributes you would commonly use and all you have to do is enter the name of a parameter that you want it to populate and the impeller will take care of everything for you.  No more need to write macro expressions for simple assignments.

While many impellers require a specific action or context in order to enqueue work some (like the StartupRemote, or Schedule impellers) do not and those impellers can be used to start a job up immediately by right-clicking the impeller and choosing the Background Enqueue or Interactive Execute (only available on the local agent) option.  Makes testing a lot easier.

Job Step Changes

Job Runner job step has been greatly enhanced so that it can now activate jobs not only on other agents in the same farm but remote agents in other farms.  After adding a service client to your pasUnity configuration file for the remote instance and enabling pasPortal integrated security a job can be configured that can logon to remote pasUnity agents via web services and activate any remote impeller for which they have Execute permissions assigned.  Additionally, this job step has been enhanced so that it can autodetect and populate the parameters that are expected on the remote impeller.

Managed Code and Managed Assembly have been updated with a few quality of life enhancements.  In addition to improvement to the syntax highlighting and code completion features there are some new keyboard shortcut.  CTRL+G for go to line and CTRL+SHIFT+D for auto layout (formatting and coloring).  

SQL Script

The SQL Script job step has undergone the greatest bit of change in this release.  It is significantly more powerful and flexible than ever before (and only slightly more complicated) and deserves a section all to itself in these release notes.

The biggest change you will see is that your SQL batch variables (or SQL parameters as you will see in a moment) can be strongly types.  Previously, everything was a string and was declared as nvarchar(max) for SQL Server or just as string types in ODBC and OLEDB.  Now you can access all the common data types of the destination system including dates, decimals, floats, booleans, etc.  And it does not stop there either.  You can even access user-defined types and table types when working with SQL Server or binary and BLOB types with any type of database.

While strong types are definitely a cool feature the ability to pass in values from macro expressions or capture values into unity string parameters opens up the SQL Script job step to a wide array of new possibilities.

All of this sets the groundwork for another new feature: you can choose the command type that you want to execute.  The default command type is batch mode (which was the legacy behavior) but you now also have a stored procedure command type that lets you invoke stored procedures directly and work with their parameters (return, input, input/output, and output) directly.

Ultimately one of the most powerful features in this release is being able to pass data tables as parameters to SQL batches and stored procedures.  Have you ever wanted to use a mapping sheet from the pasPortal directly in code?  Well now you can.  When a job starts it has the ability to cache pasPortal lookups directly in memory where they can be accessed by the <Lookup> macro.  Well now you pipe the names of those lookup sheets into table type variables and stored procedure parameters and work with them directly in native SQL.

Support has also been added for 64-bit ODBC and OLEDB connection string builders similar to what was previously available in the 32-bit builds.  There is now full feature parity in 32 and 64 bit versions of pasUnity.

Designer Live Parsing

The Macro Designer, Regex Designer, and Query Designer have all received significant updates that allow you to not only write but in many cases test the macro commands and see actual context-sensitive data in your test results.  For example, you may have a parameter defined on a Job named ServerName.  You can now click on a job step and write a macro that accesses that parameter using <Parameter|ServerName> syntax and when you execute the macro expression the actual configured value on the job is returned instead of a blank value. Just open the designer from a yellow control on any Job, Impeller, or Job Step and see it in action.

Work Queue Management

Sometimes a job will fail and it will require you to manually take a corrective action outside the product.  When this happens what do you do with the failed work in the queue?  If you delete it you have no record of it happening.  If you kick the work off again it may end up double-posting some data to an accounting system.  What do you do?  You mark it complete.  There is a new column in the Work queue that looks like a black X.  If you click this button you will be prompted for a reason why the work is being manually marked as complete.  The work is then marked as complete with a success code so that the job log indicates a successful outcome and the file shows green in the Matrix.  The job log is annotated with the identity of the user that marked the work as complete, along with any comments they provide, and the contents of any previous failure logs are retained for posterity.

Additionally, the Work Processing Wizard has been augmented so that you can mark work as complete in a mass update operation.

Escape Macro

An Escape macro command was added to the product.  It is exceedingly useful when you are building managed code, SQL statements, batch files, XML documents, HTML snippets, or any other type document or markup where you may need to inject or handle special characters in a string to ensure that you generate valid syntax or markup.  It includes functionality for escaping HTML and XML element and attribute content as well as C#, SQL, or any other language or markup that uses single or double quote characters in the markup or syntax.

System Requirements

Prerequisites have changed.  The installer will now require that .NET Framework 4.7.1 or higher is required.  Previously 4.7.0 was required.  This change allows us to use a .NET Standard capabilities that significantly enhances our ability to provide syntax highlighting and code completion for modern .NET Roslyn compilers.  We are also dropping support for SQL Server 2008 R2 and below.  It has been more than a decade since these products were released and they are no longer under support.  pasUnity is supported on SQL Server 2012  and above.  This opens up a significant amount of new capabilities in the database engine.

Follow Us

2024-04-19 07:05:41
© 2003 - 2024 pasUNITY, Inc. | Terms Of Use | Privacy Statement