If you have a comment on this topic, contact Aptify Documentation. If you want to return to the Aptify Community Site, please click here.

Aptify 5.5.2 Release Notes

First published in October 2014.

This document provides an overview of the new features and resolved issues found in Aptify version 5.5.2. The content of this document is broken down into the following sections:

Important Notes and Issues

Support for Microsoft SQL Server 2014 as a Platform for Aptify

With the release of Aptify 5.5.2, Aptify has conducted testing using SQL Server 2014 and no compatibility issues have been identified. Please contact the Support team if you run into any problems or have questions about using Aptify with this version of SQL Server. (Issue 19213)

Support for Microsoft Windows 8.1 as a Platform for Aptify Desktop

With the release of Aptify 5.5.2, Aptify has conducted testing using Windows 8/8.1 and no compatibility issues have been identified. Please contact the Support team if you run into any problems or have questions about using Aptify with these versions of Windows. (Issue 19213)

Office 2013 Compatibility with Aptify

With the release of Aptify 5.5.2, Aptify has conducted testing using Microsoft Office 2013 with Aptify and except for the configuration issue with the Outlook Dashboard component described below (which affects both 32-bit and 64 bit versions), no other compatibility issues have been identified. When using the 32-bit version of Office 2013 with Aptify, the Outlook Dashboard is configured correctly, but when you attempt to view the properties for the Outlook Dashboard, an error occurs. When using the 64-bit version of Office 2013 with Aptify, you are unable to configure the Outlook Dashboard. (Issue 17411)

Create and Deploy Text File to Object Repository to Indicate that 5.5.2 Is Installed

After installation, Aptify 5.5.2 creates a text file in the object repository, called 552Installed that indicates that version 5.5.2 has been installed. This file enables administrators to identify the installed version of Aptify. (Issue 19366)

New Features (Aptify Framework)

The following new framework features have been included in Aptify 5.5.2:

Administrator/Developer

The following new administrator/developer features are included in Aptify 5.5.2:

Add Clone Method to UserCredentials Object

Aptify 5.5.2 adds the ability to clone the current UserCredentials object with the option to not transfer the DefaultTransactionID to the new UserCredentials object. In some cases, when operating in a multi-threaded environment, it is necessary to provide a new instance of the UserCredentials object to a thread to ensure that threads do not update the same UserCredentials object across threads. The Clone method provides a simple way to create new instances of the UserCredentials object, populated with the correct information. To do this, the IAptifyDataServices object is updated by establishing two Clone methods for the UserCredential class, one with a boolean parameter, TransferDefaultTransactionID, and another with no parameter which is equivalent to the first Clone method with the parameter set to true. (Issue 19859)

Add New Event Definition That Is Fired after Successful Completion of Entities Entity Save

Sometimes it may be useful to run a process flow after all entity object processing has occurred, not just when saving the entity information to the database (like the AfterSave event definition provides). For example, Aptify uses several process flows to generate how entity forms are displayed through Aptify's browser interface. Some of these process flows require the baseline form templates that are not generated until after the entity information is saved to the database. Starting with 5.5.2, Aptify adds a new event definition, AfterEntitySaveCompleted, which is fired after the successful completion of the Entities entity save. This occurs after all activities, like baseline form template generation and process component generation. (Issue 15127)

Create a Public Shared Method To Access the Non-Instance-Based Functionality of the ScheduledMeetingTransferWizForm's FlowDownCompanyID() Method

Aptify 5.5.2 updates the ScheduledMeetingTransferWizForm.vb by adding the Public Shared SetCompanyFromPerson() method. This was done to support the Meeting Transfer wizard over the Aptify web interface (but the wizard will not be available for users of that interface until the next release). (Issue 18228)

Multi Entity Grid Does Not Allow Dynamic Sorting

In Aptify 5.5.1 and earlier, a developer can set the sort order for a multi-entity grid using the grid's ColumnDataSourceOrderByField and RowdataSourceOrderByField properties, but these fields do not support dynamic sorting of the grid through code. Aptify 5.5.2 adds two new public properties, OrderByField() and WhereClause(), which can be set through code to dynamically sort a multi-entity grid's results. (Issue 18532)

Need Meeting Conflict Functions to be Overridable

Aptify 5.5.2 updates the AptifyOrdersEntity object to allow the following meeting conflict functions to be overridden:

  • CheckMeetingsSessionsConflictionInRegistered()
  • CheckMeetingsSessionsConflictionInCurrentOrderLine()

(Issue 16086)

Support Streams for Adding and Updating Attachment

Starting with 5.5.2, Aptify includes support for adding and updating attachments from a stream. To do this, Aptify updates the AptifyAttachments class' AddAttachment and UpdateFile methods to include the ability to pass in a stream as a parameter. Keep in mind the following when working with these methods:

  • When a stream is provided, it is used as the attachment's binary data.
  • File/LocalFilename is only used to update the Name and LocalFilename properties when a stream is provided.
  • When a stream is not provided, LocalFilename is used to load the file into a stream before loading the stream into the database. (Issue 14867)

Application Server

The following new application server feature is included in Aptify 5.5.2:

Create an Application Servers Group to Secure Application Service Processing and Service Improvement

With 5.5.2, Aptify creates a new Groups record named Application Servers. This group is used to secure entities and database objects that are intended only for application server processing. In addition, Aptify 5.5.2 includes enhancements to the Aptify Async Processor so it is more robust when handling multi-threading issues. See Installing the Aptify 5.5.2 Update for more information about the updates made to the Aptify application server for 5.5.2.

 

Note

Starting with 5.5.2, the Aptify user accounts that are configured to run the Application Server service should be members of this group.

(Issue 15438 and 19119)

Aptify Web Interface

Once Aptify 5.5.2 is installed, you can install the 5.5.2 version of the Aptify web interface. See Implementing the Aptify Web Interface for more details.

IMPORTANT NOTE CONCERNING APTIFY WEB IMPLEMENTATIONS

It is important that you review and follow the steps in Implementing the Aptify Web Interface to ensure a successful implementation of the Aptify web interface. It is also important to note that client-side configurations (form layout controls, etc.) will not work as-is and will need to be re-implemented for the Aptify web interface. In additional, beside the items mentioned in the documentation, there may be several post-installation modifications and optimizations required.

 

It is highly likely that Aptify will need to get involved to iron out any issues that arise during setup and implementation. You can choose to do the implementation yourself, or utilize Aptify's "Get to the Web" support package to help your organization. With this package, Aptify will:

  • Install Aptify 5.5.2 Core and Web
  • Review business processes
  • Identify Web configuration gaps
  • Staff Training
  • Production deployment
  • UAT and Go-live Support

If you are interested in taking advantage of this package, contact clientsuccess@aptify.com.

Form Template Administration

The following new form template features are included in Aptify 5.5.2:

Add FormTemplatePartBindings Subtype to Form Template Parts Viewer

Aptify 5.5.2 updates the Form Template Parts Viewer Form to include a new tab, Bindings, with the Caption set to the Display Name for the Entity FormTemplatePartBindings. The tab contains a Subtype Control bound to FormTemplatePartBindings. (Issue 15239)

Update Context Form Template Selection Logic

Aptify includes the ability to display different forms based on the usage context. Contextual forms are displayed based on filter rules. With 5.5.1 and earlier, top level forms with filter rules are considered along with top-level forms that do not have filter rules based on the standard selection process (rank and then ID). However, there may be cases where one wants the filtered form to display even when forms without filters exist. Therefore, starting with 5.5.2, Aptify updates the system to always look at top-level forms with filter rules first when considering forms that have the same rank. If the current record does not meet the criteria of any of those forms with filter rules, the system uses the form with no filter rules of that same rank:

  • Check for top-level form templates for the specified entity.
  • Pick the form to use based on rank. If there is a filter rule-based form and a non-filter rule form of the same rank, the filter rule-based form is evaluated first.
  • If it is a filter rule-based form and the record does not meet the criteria, the system moves to the next form template (either to a non-filter rule form of the same rank or to the next form in rank or ID).

If multiple forms with filter rules exist with the same rank, the system processes each one in succession based on ID until a match is found (i.e., record meets the criteria of a form's filter rules). Otherwise, the non-filter rule form of the same rank or the next in the list based on rank will be used. In general, Aptify recommends using different ranks for each context-based form template for a given entity. With this update, we will always check for context-based form templates first before considering the non-context-based form templates, assuming the forms all have the same rank. (Issue 17299)

e-Business

The following new feature is included in Aptify 5.5.2 to support Aptify e-Business 5.5.2:

Note

Refer to the Aptify e-Business 5.5.2 Release Notes for additional information.

 

Generic Entity Updates for One Way Hash Implementation

Aptify e-Business 5.5.2 includes a new model to secure Web User passwords, one-way hash encryption. To support this new model, Aptify 5.5.2 includes several updates including updates to the AptifyGenericEntityBase, AptifySecurityKey, and AptifyGenericEntity assemblies to support one-way hash encryption. Note that Aptify 5.5.2 includes the framework-level updates required for one-way hash encryption, it does not implement one-way hash encryption. To implement this new functionality, please install e-Business 5.5.2. (Issue 19261)

Framework

The following new Framework application features are included in Aptify 5.5.2:

Add Support to the Process Flow Engine for any Type of Object

Aptify 5.5.2 adds the ability to pass any object to an asynchronous process flow by serializing to and deserializing from JSON (JavaScript Object Notation). In previous releases only objects that were Aptify Generic Entity objects were supported. The addition of this function will enable the use of complex input properties other than Generic Entity objects. Customers can use this functionality in their own Process Flows, if they have a Process Flow where they want to pass in an Object that is something other than an Aptify Generic Entity. (Issue 19917)

Aptify Desktop: Support for the Aptify Outlook Add-In on Outlook 2013

The Aptify Outlook Add-In released with 5.5.1 only supports Outlook 2007 and Outlook 2010. For 5.5.2, Aptify has released a new version of the Outlook Add-In that works with Office 2013. In addition, Aptify has renamed the existing add-in to identify it as for use with Outlook 2007 and Outlook 2010. (Issue 19821)

Entity Fields Soft Links Support: Update EntityFields with SupportsSoftLinks Attribute Field

The first release of Aptify's browser interface introduces Soft Links. Soft Links provide the ability to use formatted text to link to an entity record within existing text fields. Not all entity fields support Soft Links. Aptify 5.5.2 adds a new field, SupportsSoftLinks, to the EntityFields Entity so that a developer or administrator can enable or disable Soft Links support for character-based fields. This is a bit field that is set to true on fields that support Soft Links. The Aptify Framework uses this attribute to determine whether or not Soft Link processing is required when the field changes and it can also be used by the UI to provide Soft Link management in the control bound to a field that supports Soft Links. (Issue 15436)

Show Linked Fields on Merge Wizard

In Aptify 5.5.1, when two records are merged, the Merge wizard displays linked fields using an ID number rather than the linked record's name. For example, when merging two Persons records, the CompanyID as one of the fields but not the Company Name. Other fields including PrimaryFunctionID, Status, MemberTypeID, PreferredCurrencyTypeID, PrefCommMethodID also display as IDs and not as the field names, as desired. Aptify 5.5.2 updates the Merge wizard so that it also shows the virtual fields tied to the linked fields to provide more meaningful information to users. Note that virtual fields that cannot be set directly, appear with a gray background, while fields that can be set as surviving value have a white background. (Issue 13592)

Update Code Script Control to Work with Fields that are not Embedded Links to Scripts Entity

Aptify 5.5.2 updates the Windows control for the Code Script Control form component to display and update text for a field that is not an Embedded Link to the Scripts entity. This is to support how text is displayed in the Aptify Web interface. In addition, to display the same field in the Aptify Desktop client, the Code Script Control displays and updates the Text field directly and the control is configured with no language-based formatting. (Issue 19294)

Update Windows Desktop Client Metadata Wizard to Match Aptify Web Interface Functionality

Aptify 5.5.2 updates the metadata wizard functionality so that the Aptify Desktop client functionality for displaying entity records, displaying message boxes, and reacting to message box button clicks matches the functionality implemented in the Aptify web interface. In Aptify 5.5.1 and earlier, the Aptify Desktop client handled Display Entity Record and Display Message Box within the Wizard Processor Component. Starting with Aptify 5.5.2, the process flow result is returned to the Wizard UI and processed. See Defining When Process Flows are Run for a Wizard and About the Wizards Form for more information. (Issue 17731)

Wizards: Make Any Page Be A Finish Page


Aptify 5.5.2 adds the ability to make any page in a metadata wizard a finish page, which allows for more complex wizards. See Defining Wizard Pages and About the Wizard Pages Form for more information. (Issue 19708)

Messaging

The following new Messaging functionality feature is included in Aptify 5.5.2.

Update to Messaging Interface to Pass in Message Run Values On Load

Aptify 5.5.2 updates the Aptify messaging functionality to allow an organization to programmatically pass in values to pre-populate the Bulk Messaging dialog on load. For example, if a client wants a particular message template to load by default when a user opens the Messaging dialog and pre-populate attachments and To/CC information. (Issue 16465)

Process Pipeline

The following new Process Pipeline functionality features are included in Aptify 5.5.2.

Add ProcessFlowRunID to the Context Object When Process Flow Is Executed From Process Flow Runs Record

Aptify 5.5.2 updates the AptifyProcessFlowEngine object so that when a process flow is executed from a Process Flow Runs record, the ID of the Process Flow Runs record that initiated the process flow is displayed in the Context object. (Issue 19634)

Create Abstract Base Class for Process Components that Trigger Import Engines

Several steps are identical for choosing and triggering an IImporter, IImportMatch, or IImportPost implementation within a process component. To avoid code duplication, Aptify 5.5.2 includes an abstract base class which inherits from ProcessComponentBase. The process component implementations specific to each engine remains in separate classes which inherit from the new base class. To implement this solution, the existing ImportRunsImportComponent.vb has been refactored to inherit from the new base class and use it. (Issue 17851)

New Process Components

Aptify 5.5.2 includes several new process component to streamline the process of process flow creation. See details about these process components below.

  • Get Entity Attribute: Retrieves the value of an entity attribute (AttributeValue as the output property) based on the entity name (EntityName as an input property) and attribute name (AttributeName as an input property). Keep in mind the following when working with this process component:
  • If EntityName is blank or does not match an existing entity, the process component returns FAILED.
  • If AttributeName is blank, the Process Component returns FAILED. If any exception is thrown, the process component returns FAILED.
  • In all other cases, the process component returns SUCCESS.
  • If an entity attribute isn't found, an empty string will be returned in AttributeValue and the Result Code will be SUCCESS. (Issue 17252)
  • AptifyExportToExcelProcessComponent: Exports views in Excel in multiple sheets. It can update an existing Excel file or create a new file. (Issue 19322)
  • Get Array Value Process Component: Accesses SelectedItems in an array within a process flow. (Issue 17854)
  • Clear Subtype Records: Clears the records in a subtype (Issue 17853)
  • Create Backorders: Creates backorders (Issue 18673)
  • Get Entity Metadata: Gets generic entity metadata (Issue 19097)
  • Get File Column Headers As Array: To get the column headers from a file (Issue 17766)
  • Get Latest Attachment File:To get the file location of an attachment (Issue 17739)
  • Get Logged In Aptify User: Gets the ID of the logged-in Aptify user (Issue 17806)
  • Get Logged In Employee: Gets the ID of the logged-in employee (Issue 18042)
  • Generate Import Run Details: Triggers importing of the data into Import Run Details records from ready-to-import Import Runs record. (Issue 17808)
  • Match Import Run Details and Post Import Run Details: Triggers match and post on an import runs record (Issue 17846)
  • Make SQL Identifier Process Component Tester: Turns an arbitrary string into a valid non-delimited SQL identifier (Issue 17864)

Improvements to the Process Flows Delete Process

With Aptify 5.5.1 and earlier, a process flow could not be deleted if it is linked to one or more process flow steps. Aptify 5.5.2 improves the process flow delete process so that linked Process Flow Steps records are removed when possible. In most cases, deleting a Process Flows record that has steps will now delete both the process flow and steps.

 

Note

If one or more steps has dependencies or for some other reason cannot be deleted, the process flow delete will fail (as it did in previous versions of Aptify). If any part of the delete operation fails, the process flow will not be deleted and returned to its original state. 

(Issue 6737)

Setup Program

The following new Setup Program features are included in Aptify 5.5.2.

Melissa Data Rank Changed During 5.5.1 and Higher Installs

Starting with Aptify 5.5.1, Aptify added support for the web service version of Melissa Data. This feature inadvertently changed the ranking of the Melissa Data Address Verification Systems records. The record with ID 3 (which is the web service version of Melissa Data) is ranked 1 and the record with ID 1 (which is the older version which is installed directly on local machines) is ranked 3. With this ranking, ID 3 takes precedence. If an organization is not using the web service version of Melissa Data, the verification will not work until the ranks are changed. See Installing the Aptify 5.5.2 Update for more information about re-configuring the Address Verification Systems as needed post-installation. (Issue 19960)

Setup Should Handle Framework-only Install

Aptify 5.5.2 updates the setup program to handle Framework only installs, by grouping Framework and non framework code in setup. In addition, a check was added for CRM entities before applying CRM updates. (Issue 19868)

Viewing System

The following new Viewing System features are included in Aptify 5.5.2.

Base View Wizard and Support for Sub-Types

In Aptify 5.5.1, the user manually adds all the needed fields when creating base views. Aptify 5.5.2 improves the user experience of creating alternate base views with a new wizard that creates base views for a specified entity. This wizard shows the user all of the available fields for the current entity or linked entities (including subtypes of the current entity), and provides options to select desired fields from any of these entities to include in the base view. See Using Multiple Base Views for more details. (Issues 17289 and 15330)


New Features (Core Business Applications)

The following new Aptify Core Business Application features have been included in Aptify 5.5.2:

 

Accounting

The following new Accounting feature is included in Aptify 5.5.2.

Separate Service Charge Credit GL Entry Not Recorded For Refund Payments

In Aptify 5.5.1, when a refund payment is generated and the payment type is configured to charge a service fee, the Cash account is credited with the entire payment amount including the service fee. Depending on a client's configuration, this scenario may require the accounting staff to perform an additional step to manually create a GL entry for the service charge and reduce the Cash account GL entry amount by the fee. Aptify 5.5.2 updates the Accounting system so that an organization can create a separate credit entry for the reversal of the service fee charged at the time payment was made. (Issue 16986)

Advertising

The following new Advertising features are included in Aptify 5.5.2:

Advertising Word Counter Should Count Website Address as One Word

In Aptify 5.5.1, there are some instances where the Aptify word counter functionality counts punctuation both in dollar amounts and web addresses as individual words. This drives up the total count of the words, impacting the price on the associated invoice. Aptify 5.5.2 improves the Aptify word counter functionality to ignore punctuation and count certain types of data (web addresses, email addresses, etc.) as single words. (Issue 17329)

Convert Insertion Order Options Amount Label to an Active Button

When a user clicks the Options Amount hyperlink on the Advertising Insertion Orders record, the corresponding Advertising Options record is opened. In Aptify 5.5.1 and earlier, the Options Amount field uses a special-purpose form component, Advertising Link Label. However, the same functionality can be performed using the generic Active Button form component. Aptify 5.5.2 replaces the Advertising Link Label form component to display the Options Amount so that it uses the relevant stock Active Button functionality. (Issue 18320)

Business Applications

The following new Business Applications features are included in Aptify 5.5.2:

Add ExtendedProductRecordID property to Products Entity Object

Aptify 5.5.2 adds a public property to the Products Entity Object that exposes the ID of the linked Extended Product record. For new Product records and Products that do not have an Extended Product Entity, a value of -1 will be returned. (Issue 15153)

Create a Process Component to Check the 'Captured' Status of a Payment

Aptify 5.5.2 adds a process component, Payment Capture Status Checker. Given an Order ID and optionally a Payment GE, this component checks whether the Payment is captured as calculated by the Payment Entity's PaymentCaptureStatus() method. The Result Codes are TRUE, FALSE, and FAILED; TRUE if the Payment is captured, FALSE if not, and FAILED if an exception occurs. An Output Property, "ErrorString", will contain any errors. (Issue 18043)

Improve Performance of Proximity Search Feature

In prior releases of Aptify, the Proximity Search wizard can take a long time to return results, depending on the nature of the search criteria. In addition, the search does not cross country borders, and does not support queries with multiple proximity search filters. Aptify 5.5.2 updates the Proximity Search object as follows to improve the performance of the wizard:

  • Adds a new function that takes the country code and zip code as the origin and the radius to search within.
  • Adds filters within the function to limit as much as possible the number of records in the postal code table that must be processed by using simple comparisons.
  • Limits distance calculations to zip codes that have met the filter criteria to reduce the amount of query time spent doing calculations.

(Issue 6615)

Optimize Database Objects to Replace View Calls with Table Calls

Aptify 5.5.2 updates several Database Objects for stored procedures so that they call tables directly rather than views. These updates are limited to a set of sps used in internal processing that already grant EndUsers default access to execute or run (an individual user would never call these directly, they are called programmatically in code to retrieve or set certain values as defined by the business logic). Changing the calls to use the Person table instead improves overall system performance.
The database objects updated in this issue are:

  • spCheckForCompanyMatch
  • spCheckForPersonMatch
  • spGetCurrentSubscriberList
  • spGetFulfillmentRecipients
  • spGetProductInfo
  • spGetSubsDeliveryAddress
  • spGetCompanyDivisionName

(Issue 18364)

Campaigns

The following new Campaigns feature is included in Aptify 5.5.2:

Add Campaign Filter Relationship to Campaign List Detail

Aptify 5.5.2 adds a many-to-many filter to the Campaign List Detail entity so users can filter campaign list detail information based on the associated campaign. (Issue 13601)

Composite Engagement Score

Aptify 5.5.2 adds the Composite Engagement Score (CES) tool to the applications that are available to install in your Aptify environment during system setup. The CES application can be used by an organization to measure engagement of its membership, both at a given point in time and over longer intervals. CES is flexible enough to accommodate a variety of inputs that drive the aggregate score and allow for changes in its calculation method over time, all while providing a mechanism for historical comparison. CES starts with an organization determining the key performance indicators (KPIs) that are related to the organization's strategic goals, and determining the importance (or weight) of these KPIs in relation to the strategic goals. The KPIs are defined within a CES Plan record. CES periodically runs process flows that calculate the KPIs and the Composite Engagement Score for an organization's members. The results can be viewed in each Persons/Companies record, in the CES Plan record, the CES Scores record, and in views.

The CES results can be used by an organization to analyze the data to understand current member engagement and use trend analysis to proactively act to improve member engagement. The data can also be used to assist in the on-going selection of KPIs, and in analysis of how the organization is using CES to ensure that the maximum benefit is returned from the application.

 

Note

You can find a list of views for CES in Understanding the CES Views

Education Management System

The following new Education Management System add-on application feature is included in Aptify 5.5.2:

Auto-Populate Class Information On Orderline When Registering For A Class

In Aptify 5.5.1, when a staff user enters a Class product on an order, the Class field in the order line does not populate automatically. It must be manually filled in every time. Aptify 5.5.2 provides a default implementation that will automatically populate the field with the next applicable class based on Start Date. Also, the implementation is flexible in that it allows an organization to modify the selection logic, if desired.


This functionality is currently not implemented in the Aptify 5.5.2 web interface.

(Issue 18165)

Meetings

The following new Meetings features are included in Aptify 5.5.2:

Move SelectedItems Logic From Meeting Transfer Wizard Form To Object

Aptify 5.5.2 updates the Meeting Transfer wizard, moving the business logic for SelectedItems from the UI code to the Object implementation so that it can be wrapped in a process component without an unnecessary UI dependency. (Issue 18224)

Move TransferMeetingRegistrants() Logic From Meeting Transfer Wizard Form to Object

Aptify 5.5.2 updates the Meeting Transfer wizard, moving the business logic for TransferMeetingRegistrants()from the UI code to the Object implementation so that it can be wrapped in a process component without an unnecessary UI dependency. (Issue 18143)

New Meeting Wizard Should Sort Topic Code Links by Topic Code ID

Aptify 5.5.2 updates the logic that copies Topic Codes from an existing meeting to a new meeting to sort the existing meeting's Topic Code Links by ID before copying. This change resolves a problem in a client environment that has a configuration to automatically link to parent topic codes after linking to a child topic code. (Issue 18484)

Replace Registration Count by Meeting (for Next 30 Days) Pivot Table with an Aggregated List View

In Aptify 5.5.1, the Registration Count by Meeting (for Next 30 Days) Pivot Table that is included on the default Meetings dashboard can timeout on many systems. Aptify 5.5.2 replaces that pivot table with an aggregated list view that shows the same count of registrations as the pivot table and other fields. (Issue 17306)

Order Entry/Payments

The following new Order Entry/Payments features are included in Aptify 5.5.2:

Ability to Turn Off the Last Payment Method Auto Selection Functionality

Aptify 5.5.2 adds the ability to disable the Last Payment method auto selection functionality. In Aptify 5.5.1, the last payment method used by the person is auto selected as the default method when an order is placed for the person next time. In some instances, this is not useful. This feature adds an attribute, DoLastPaymentFlowdown that gives an administrator the ability to disable or enable the Last Payment method auto selection globally.

This attribute determines whether a Bill To person's last payment method automatically flows down to the current order once the Bill To person is set or updated. When set to 1 (the default setting), the flowdown occurs. When set to 0, the flowdown is disabled and the Payment Type does not update to match the person's last payment method. Note that when enabled, the flowdown only occurs when the Bill To party is specified for the first time or modified on a new or saved quotation orders. The flowdown does not occur for saved orders with Type set to something other than Quotation. (Issue 15109)

Add Suppress Confirmation Emails Option to Bulk Orders

If a user is creating bulk orders with a status of Regular, the bulk order process will send emails to the recipients, since the Suppress Confirmation Emails option will be cleared on all of the generated orders. In Aptify 5.5.1, the Suppress Confirmation Email option was added to the Orders form, the Cancellation wizard, and the Meeting Transfer wizard. Aptify 5.5.2 adds the Suppress Confirmation Email option to the Bulk Orders form. If this option is selected on the Bulk Orders form, it should be selected on all generated orders, so email messages do not go out. See Using the Bulk Order Wizard for more information. (Issue 18270)

Allow a User to Change the Ship To or Bill To Person/Company on a Shipped Order

In Aptify 5.5.1, a user can change the Billing Address on an order if the AllowChangingBillingAddressOfShippedOrder entity attribute in Orders is set to 1. The Orders form's layout control prevents a user from changing the Ship To/Bill To persons and companies. The restriction is not at the Orders entity level. For example, if you use In Place Editing, you can modify these fields on a shipped order, assuming you don't change the Ship To Phone or Address.

Aptify 5.5.2 adds a new entity attribute, AllowChangingShipToBillToOfShippedOrder. This attribute supports a pipe-delimited set of Aptify Groups. If a user is a member of a specified group, then he/she should be able to modify the ShipToID, ShipToCompanyID, BillToID, and BillToCompanyID on the order. This limits this functionality to a configurable set of Aptify users. If the attribute is blank or does not exist, then the existing functionality would control (the UI would not let a user change these values). To prevent confusion, rather than have the fields enabled on Shipped Orders for authorized users, Aptify only will show the button to authorized users instead (based on membership in the groups specified in the entity attribute). (Issue 18005)
 

This functionality is available only in the Desktop client.

Allow Sales Tax Override

There is a Sales Tax calculation engine that is used by the Orders Entity object to calculate tax on the Order. Changing the values on the Order or OrderLineTaxes will be temporary because any changes to the Order will trigger a recalculation of the Sales Tax. Persons and Companies support Sales Tax Exempt Codes, which are respected by the Sales Tax calculation engine. So, if a Sales Tax is to be charged on an Order Line or Shipping and the Company (if Bill To Company is provided) or Person (if not Bill To Company is provided, the Persons Tax Exempt info is used) is tax exempt, that Sales Tax will not be calculated and applied to the Order. The Point of Sale application introduces the ability to override the Sales Tax calculation, regardless of the Tax Exempt information stored with the Company or Person. To support this functionality, the Sales Tax calculation engine now includes an override at the Orders Entity level. When the override is set, the Sales Tax Calculation engine will not calculate the Sales Tax and will leave whatever tax amounts are already in place. Effectively, it is a bypass to the Sales Tax calculation engine once it has been set.

Aptify 5.5.2 contains the following changes to enable this feature:

  • Add a new Field to the Orders Entity, OverrideTaxCalc. A bit field with a default value of 0.
  • The Sales Tax calculation engine is updated to check the Orders.OverrideTaxCalc field. If it is set to 0, the existing process occurs. If it is set to 1, the Sales Tax calculation process is bypassed, leaving whatever calculations are already in place. The Orders Entity and its plug-ins is now responsible for any tax calculations. Nothing in core Aptify changes those values, regardless of the changes that occur on the Order, unless and until the OverrideTaxCalc field is set to 0. If that happens, the Sales Tax calculations occur as expected.
  • In the SalesTax class in AptifySalesTax, the two CalculateSalesTax methods (one that takes an Orders Entity object and the other takes an OrderLines Entity object) and the CalculateSalesTaxOnShipment method are updated to check the value of Orders.OverrideTaxCalc. If it's set to 1, bypass the Sales Tax Calculation and return to the caller. If it's set to 0, execute the Sales Tax calculation logic that is already in place.
  • For Point of Sale, the Process Flow that creates the Order sets the OverrideTaxCalc field on Orders to 1 before adding OrderLines when the Point of Sale Order has the Tax Exempt flag set. With that in place, no Sales Tax should be calculated on the Order. (Issue 15271)

Disable Payment Flowdown on Quotation Orders

In Aptify 5.5.1, there is an issue where the Last Payment Type flowdown is occurring when the Bill To Person is modified on saved quotation orders. Aptify 5.5.2 updates the OrderAddressFlowdown object to ensure that the Last Payment Type flowdown does not occur when the Bill To Person is modified on a saved quotation orders. In addition, the DoLastPaymentFlowdown attribute was added to the Orders entity. This attribute is used to control the PayType flowdown as per last order of person. If it is set to 0, the flowdown does not occur, and if it is set to 1 then existing flowdown functionality takes place. (Issue 18027)

Invoice Consolidation Wizard: Allow Combining Orders Based on Company

In Aptify 5.5.1, a user can manually apply a credit memo tied to one person at a company to an open order tied to a second person at the same company. However, the Invoice Consolidation wizard only works to consolidate invoices based on the PersonID. Aptify 5.5.2 updates the logic in the wizard to support applying credit memos between orders that all have the same BillToCompanyID. To do this, two objects, AptifyInvoiceConsolidation and AptifyInvoiceConsolidationWizard, were updated. (Issue 18682)

Make the SetupOrderDetails Function Overridable in Standing Orders Entity Object

Aptify 5.5.2 updates the SetupOrderDetails function of the StandingOrdersEntity to be overridable. This change enables a user to modify the information on the extended order detail entity for a new product. (Issue 15363)

Orders: Add Computed Virtual Field Based on ShipDate to Remove Time Component and Change OrderDate_NoTime to Computed

In Aptify 5.5.1, when a user creates a view with a filter as Orders.ShipDate <= <a specific date>, there can be situations where certain orders shipped on that day can be excluded from the view. This can happen when the ShipDate field also has a specific time included that will exclude it from the resultset. Aptify 5.5.2 updates Orders by adding the ShipDate_NoTime computed field. In addition, the OrderDate_noTime field was updated so that it is now computed (as opposed to calculated). (Issue 18738)

Provide a Process To Automatically Update Saved Payment Method Through Orders/Payments Form

In Aptify 5.5.1 and earlier, there is no automatic way to update a Saved Payment Method (SPM) sub-type record to ensure that the credit card information is kept up to date for subsequent orders or payments. Aptify 5.5.2 changes the application to ensure that the user can update an SPM sub-type record automatically when processing a new order or payment. (Issue 14310)

Reference Transaction: System Should Automatically Renew All the Reference Transaction Numbers that are About to Expire

Aptify 5.5.2 adds the ability for the system to automatically renew all the Reference Transaction numbers that are about to expire. This feature provides the following:

  • A Scheduled task (Renewal Reference Transaction) which fires a process flow (Reference Transaction Renewal) that renews reference transactions that are expired or nearing expiration by performing another Zero Dollar Authorization (ZDA) or One Dollar Authorization (ODA).
  • The process flow evaluates Person and Company saved payment methods that are going to expire within the next 30 days. The source data is provided by two views deployed by the 5.5.2 setup program and owned by sa.
  • The process flow generates a new reference transaction number for any qualifying saved payment method in a source view. Note that if the current expiration date of the reference transaction is same as the expiration date of the credit card then those saved payment methods are not renewed (since the card is set to expire).
  • The scheduled task is disabled by default. You need to enable it and configure the Scheduled Task settings to turn it on.

(Issue 11902)

Update AttendeeID_Email Virtual Field to Use Email1 in OrderMeetingDetail

Aptify 5.5.2 updates the AttendeeID_Email virtual field in the OrderMeetingDetail entity to link to Email1 field directly instead of linking to the Persons virtual field (Email). This change improves system performance when the entity regenerates vwOrderMeetDetail, as it uses Person instead of vwPersons. (Issue 18365)

Update Subscription's Subscriber and Recipient If Ship To/Bill To Information Changed on a Shipped Order

Apty 5.5.2 updates the Orders system so that when the BillTo and/or ShipTo person/company changes on a shipped order, the SubscriberID (maps to BillToID), SubscriberCompanyID (maps to BillToCompanyID), RecipientID (maps to ShipToID), and RecipientCompanyID (maps to ShipToCompanyID) on any Subscriptions record tied to that order should update with the new information. This feature includes the following changes:

  • When applicable, the Order Line's Recipient and Recipient Company changes with the new settings.
  • When there are multiple subscription order lines on the order, the subscription for each order line is updated with these changes and the Subscriber and/or Recipient is automatically changed on the Subscription related to the order.
  • When a change is made by a user to the BillTo and/or ShipTo Person in an order, the system searches for any Subscriptions related to that order. When the system finds related Subscriptions, the system asks the user if they want to apply the changes to Subscriber and/or Recipient Person of Subscription as well. If the User selects yes, the update is applied to all of the relevant subscriptions.
  • When BillTo and/or ShipTo Person are changed on an order, the BillTo and/or ShipTo Person is also automatically changed on any open Subscription Renewal Quotation Orders, since it is possible that a user changes the order's ShipTo/BillTo information after the Subscription Renewal process has already occurred.
  • When subscription and order data is updated automatically, there is no flow down of additional information. In other words, only the Recipient, Subscriber, BillTo and ShipTo fields change while no other fields (such as address information) change automatically.

(Issue 18006)

Subscription and Membership

The following new feature was added to the Subscription and Membership system as part of Aptify 5.5.2.

Update Subscription Wizard to Dynamically Select Ship To/Bill To Person for Company Subscription Renewals

Aptify 5.5.2 updates the Subscription Renewal wizard to dynamically select a person to use as the Ship To and Bill To Person when renewing a company subscription. This person may be different from the one currently specified on the Company's subscription.
This feature modifies the subscription renewal object and adds a new field and metadata. Once 5.5.2 is applied, you can use the following workflow to dynamically set the Ship To and Bill To Person for Company Subscriptions:

  • For any subscription products (including memberships) that are offered to Companies, a user should identify the Function that the system will use to determine the Ship To/Bill To Person on a company subscription renewal on a Products record's Subscriptions tab.
    • This is a link box to the Functions entity. It is a new field that appears at the bottom of the Products form's Subscription > General tab.
    • This function can be set by a user for any of the system's subscription products. It only will have meaning for Company subscriptions and only if the relevant option is checked in the Subscription Renewal wizard.
  • When a user launches the Subscription Renewal wizard against a set of subscriptions, the wizard prompt should show a new checkbox called "Identify Contact Person by Function for Company Subscriptions".
    • If not checked, then the existing system functionality remains intact (the ShipTo/BillTo information flows down from the subscription).
    • When checked, the system will use the logic described below to locate the person to use on a company subscription's renewal quotation order.
    • A company subscription can be identified by Subscriptions.PurchaseType = Company.
  • The identified Recipient company's person will be used as the ShipToID and as the OrderLines.SubscriberID. If the Subscriber Company is different from the Recipient Company, then the Subscriber company's person will be used as the BillToID.
  • The Subscription's SubscriberCompanyID flows down to the order's BillToCompanyID and the Subscription's RecipientCompanyID flows down to the order's ShipToCompanyID and OrderLines.SubscriberCompanyID.
  • If the user checks the "Identify Contact Person by Function for Company Subscriptions", and completes the wizard, while creating the renewal quotation orders for the subscriptions in the view, the system:
    • Identifies if the subscription is a Company Subscription. If an individual subscription, it processes as it currently does and skips the steps in the section.
    • If a Company subscription, identify the Function that is identified for the subscription's Product. If a function is not specified, then use the current logic (flow down from the subscription).
    • If the Function is specified, then for the Recipient Company, identify the single Person to specify on the order using these rules in order. If for some reason the Recipient Company is blank (which should not be the case), use the subscription's existing RecipientID on the order.
      • Rule 1: Retrieves person with the highest ID directly linked to the company with the specified function as the primary function
      • Rule 2: Retrieves person with the highest ID directly linked to the company with the specified function in his/her function list
      • Rule 3: Retrieves person with the highest ID indirectly linked to the company via a person company record with the specified function as that PersonCompanies record's primary function
      • Rule 4: Retrieves person with the highest ID indirectly linked to the company via a person company record with the specified function in that PersonCompanies record's function list
      • Rule 5: If Rules 1 to 4 produces no match, then select the Person tied to the company with the lowest ID.
      • Rule 6: If no match for Rule 5, then select the Person with the lowest ID who has a PersonCompanies record for the Company.
      • If no match for any of the rules, carry forward the RecipientID from the subscription.
  • The identified person is used as the ShipToID and OrderLines.SubscriberID on the quotation order that is being generated.
  • If the subscription's SubscriberCompanyID <> RecipientCompanyID, repeat the process above (following the same rules) to identify the BillTo Person on the order (who would be tied to the Subscriber Company). If for some reason the Subscriber Company is blank while the RecipientCompanyID has a value, use the subscription's existing SubscriberID on the order.

 

Note

This functionality is only available to users of the Aptify Desktop client.  

(Issue 17899)

Resolved Issues (Aptify Framework)

The following framework related issues have been resolved in the Aptify 5.5.2:



Administrator and Developer Resolved Issues

The following issues were resolved in the Administrator and Developer areas in Aptify 5.5.2.

Allow Clients to Configure Which Top Level Addresses Appear in Addresses Control

In Aptify 5.5.1 and earlier, users must add code to define which top level addresses appear in the addresses control. Aptify 5.5.2 replaces logic in the AptifyAddressControls code's LoadTopLevelAddresses function so it retrieves the field list from a form component input property that is defined at the form template part input map to allow users to do this by defining a form template part input map value, rather than creating code. (Issue 17003)

An Add Overload Method in Generic Entity's AptifyDataFieldsBase Class Calls itself

In Aptify 5.5.1, the AptifyDataFieldsBase class in the Generic Entity base has several Add method overloads. The Add method that accepts a single parameter in an AptifyDataFieldBase object calls itself (Me.Add(Value)). This causes an infinite recursion and the application halts. Aptify 5.5.2 updates the Add method to call the Add overload that accepts an AptifyDataFieldBase object and a Key value, where the Key value will be provided by the AptifyDataFieldBase object's Name property. (Issue 18740)

Entity Unpacker fails if Called from Code for new Entity having required Linked Field

In Aptify 5.5.1, the Entity Unpacker fails when it is called from a new entity with a required linked field. Aptify 5.5.2 updates the system so that the Entity Unpacker does not fail for this issue. In addition, this release updates how input of a non-numeric default value for the ID field is handled. (Issue 15243)

Optimize spUpdateProductInventory Stored Procedure

Aptify used the spUpdateProductInventory procedure to update Product Inventory information based on the contents of an Order. It is called during the Order Save. Aptify 5.5.2 updates this stored procedure to make it more efficient by consolidating SQL statements, using base tables instead of base views, and using the NOLOCK Hint on all tables, instead of just on the first table in the SQL statement. (Issue 17714)

ScheduledMeetingTransferWizForm's FlowDownCompanyID() has Incorrect Comments And Contains Unused Code

The current version of the FlowDownCompanyID() function in ScheduledMeetingTransferWizForm.vb file of the ScheduledMeetingTransferWizard object has incorrect comments and unused code. Aptify 5.5.2 updates the FlowDownCompanyID() function in the ScheduledMeetingTransferWizard object to remove inaccurate comments and unused code. (Issue 18229)

ScheduledMeetingTransferWizObject's LoadOrderInfo() Catches Exceptions But Does Not Publish Them

The current version of the LoadOrderInfo() function in ScheduledMeetingTransferWizObject.vb file in the ScheduledMeetingTransferWizard object catches exceptions, but does not process them. Aptify 5.5.2 updates the LoadOrderInfo() function in the ScheduledMeetingTransferWizard object to publish the exceptions. (Issue 18230)

Application Server

The following issue was resolved in the Application Server service in Aptify 5.5.2.

Application Server Service Improvements to Exception Handling and Other Minor Improvements

In Aptify 5.5.1 and earlier, problems were reported with multi-threading for the Application Server. Aptify 5.5.2 updated the Aptify Asynchronous Processor to be more robust to handle previously unhandled exceptions. (Issue 19119)

Form Template Administration

The following issues were resolved in the Form Template Administration area in Aptify 5.5.2.

Color Picker Cannot Be Added Via Visual Designer

In the current version of Aptify , the Color Picker tool cannot be added via Visual Designer. Aptify 5.5.2 modifies the system to ensure that the FieldName property is defined before attempting to turn it into a string.
The Color Picker form component can be added to the Visual Designer list by selecting the Add To Designer Toolbox option in the Color Picker Form Components record. Note that this form component is used by default on a single form, on the Units tab of the Expo form for the Avail. Color and Taken Color fields. (Issue 18784)

Focus Is Not On First Field When Using Save and New Button

In Aptify 5.5.1, when you open a new form, sometimes the cursor is not active in the first field on the form. This occurs when opening a new form using the Save & New button. It is active in the last field used on the previously saved form instead of the first field. Aptify 5.5.2 updates the form templates functionality to ensure that when a new form is opened, the cursor is always active in the field at the top of the form. (Issue 19133)

Form Template Load Optimization: Bypass Refresh logic triggered immediately after Show logic

In Aptify 5.5.1, when loading a Form Template Form, after the Configuration logic is executed, the Show logic is executed and, finally, the Refresh logic. In most cases, the Refresh logic executes the same logic that Show has just completed. Aptify 5.5.2 updates the process of loading a Form Template Form to ensure that the logic executes as expected. (Issue 16144)

Framework

The following issues were resolved in the Framework application as part of Aptify 5.5.2.

Admin License Required to Add a Dashboard Button to Switch to Application Specific Dashboard

In Aptify 5.5.1, if a user with an End User license attempts to configure a dashboard button to use the Switch Dashboard Action Type to switch to a specific application, a permission error appears when the Application link box is clicked to select an application. The error does not appear when the steps are repeated for a user with an Administrative license. Starting with 5.5.2, Aptify allows a user with an End User license to configure this type of dashboard button. (Issue 15105)

AptifyApplication Entity Property Should Return Nothing/Null When No Matching Entity is Found

In Aptify 5.5.1, when the AptifyApplication object's entity property is accessed and no matching entity is found (based on either the EntityID or Name passed in as a parameter) then the value of the property should be null. However, it returns a partially configured EntityInfo object. Aptify 5.5.2 updates the entity property overloads to ensure a null value is returned when no matching entity is found. (Issue 15413)

Aptify Becomes Unresponsive When Running an Entity Bulk Operation through a Dashboard Button

In Aptify 5.5.1, when an Entity Bulk Operation is run through a dashboard button, the operation appears to run successfully and the records are updated but Aptify becomes unresponsive and needs to be closed. Note that this appears to be an issue only when running the operation through a dashboard button. The process runs correctly when executed directly through a list view or as a process flow. Aptify 5.5.2 updates the Entity Bulk Operation functionality so that bulk operations can be successfully run through a dashboard button. (Issue 14419)

Aptify May Close Unexpectedly When Working With the HTML Editor

In Aptify 5.5.1, when working with the HTML editor control and switching between the Preview and HTML tab, Aptify may crash, depending on the contents in the HTML control. The problem is caused by extra spaces that are added in the HTML code. To resolve this issue, Aptify 5.5.2 updates the HTML control functionality to remove the extra spaces from the HTML contents when a user switches between tabs. (Issue 17970)

Aptify Merging Tool Displays Fields with Same Values for Selected Records

When using the Aptify Merging dialog, the left column of the dialog displays the names of the fields that differ between the two records. By default, the tool only displays those top-level entity fields that contain different data for the selected records. However, with Aptify 5.5.1 and earlier, the tool may display fields that contain the same data. Aptify 5.5.2 updates the Aptify Merging functionality so that only the fields that contain different data are displayed when using the Aptify Merging dialog. In addition, if none of the top-level entity fields contain the same data, a dialog is displayed alerting the user that there are no differences between the records (as shown below), however, a user can still proceed with the merging process as needed. (Issue 17031)


Aptify Web: Old HTML5 Web Metadata for Entities Can Be Returned for Sub-Types and Embedded Entities

In the Aptify 5.5.1 Web interface, the HTML5 Web Entity Metadata contains the metadata for sub-type and embedded Entities. However, when the metadata for a sub-type Entity or Entity that is used as an Embedded Entity is generated, the metadata for the related Entities is not automatically regenerated. This can lead to a situation where the metadata from sub-types or embedded Entities is out of date and, depending on the order that the Entity metadata is requested, it may be current or out-of-date. If the Embedded Entity metadata is requested first, it will retrieve the current information. However, if an Entity that includes the Embedded Entity is requested first, the metadata stored with the top-level Entity, may be out-of-date. The Aptify 5.5.2 Web interface resolves this by having the HTML5 Web Entity Metadata generator also regenerate the Entity metadata for parent Entities and all Entities that reference the Entity as an Embedded Linked Entity. To do this, the AptifyHTML5WebMetadataGenerator object is updated. (Issue 20155)

Change Employees.FirstLast field to Computed from Calculated

In Aptify 5.5.1 and earlier, computed fields are treated the same as calculated fields. Calculated fields are calculated by the Base View. On the other hand, computed fields exist in the Table so the base table can be used. One example where this updates is useful is with Employees FirstName and LastName concatenated together (FirstLast field). If a Computed column is used, an Entity that joins to Employees and pulls in that Field will be able to join to the Base Table instead of the Base View. Starting with 5.5.1, generated Base Views use the Base Table for joins when a joined field is a computed field. This update provides a much simpler join. With Aptify 5.5.2, Aptify modifies the Employees.FirstLast field from a calculated field to a computed field and regenerates Base Views for entities where Employees.FirstLast is a Joined field as part of the improvements described above. (Issue 15056)

Connection Is Not Released When Form With ELV Tab Is Closed

In Aptify 5.5.1, there is a scenario that takes place when a form with a view tab is opened and the view within the tab is executed. Upon closing the form, a connection to the database for that view is not released back to the connection pool. This causes the form load to eventually fail due to the application's memory utilization which will increase every time you open the form and load the view. The problem is particularly apparent for forms that load a view on the default tab. Aptify 5.5.2 fixes the Entity List View and View Container Form Component connection leaks and ensures that system performs as expected. (Issue 16152)

Data Combo Box Default Value May Show Stale Information

In Aptify 5.5.1, a situation can occur where a data combo box's value does not update as expected when using the Aptify <%[field name]%> markup syntax to populate the DisplaySQL property. Aptify 5.5.2 updates the Windows Control functionality to ensure that the data combo box value displays the expected information. (Issue 17718)

Drop Down Values Displayed As Single Row Item on Multi Entity Grid Form Component

In Aptify 5.5.1, if the Multi Entity grid used on a form has a column that is a drop down, the values displayed in the drop down list appear as a single row item separated by commas. Due to this, individual values cannot be selected. Aptify 5.5.2 updates the multi grid component as follows to resolve this issue:

  • Fixes the bug with the drop down
  • Adds an option to hide the toolbar
  • Adds the ability to rename the Selected column when the mode is Exists.
  • Adds an option to specify the list of fields displayed with a pipe-separated input string instead of relying on the field's DefaultInView
  • Adds descriptions of every input value
  • Updates the drop down list functionality to align with the drop down combo functionality used by the form template generator.
  • Adds an option to prevent the deletion of subtype records when all fields in the row have been removed (this helps enable the dynamically generated fields usage)
  • Updates MultiEntityGrid object to display last item in drop down list completely.

(Issue 15003)

Entity Save Operation Drops Full Text Indexes And Does Not Create It Back

Aptify has an issue that when an entity has full text index search configured and the entity is saved, the regeneration process is invoked, and the full text indexes are dropped, but not recreated again. Aptify 5.5.2 updates the AptifyEntitiesEntity object to drop the full text indexed views created on the base table before regenerating the base table of entity. (Issue 19645 and 19760)

Excel Integration Exports Data to Incorrect Columns When List View Contains Image Field

The Aptify Excel Integration feature does not support export of columns containing images (for example, a photo from a Persons record). However, with Aptify 5.5.1 and earlier, if the view contains an image column, the view data may be exported into the wrong columns. If the image field is the last column in the view, view results are exported correctly in excel for non-image fields. Aptify 5.5.2 updates the excel integration functionality so that columns are exported in the correct order. Note that exporting columns containing images is still not supported. That is, the photo itself is not exported and the image column in Excel will be blank. (Issue 15272)

FindMultiple Function in Generic Entity Base Does Not Match on Value

In Aptify 5.5.1, an issue occurs where the FindMultiple function in the generic entity base returns incorrect results. Aptify 5.5.2 updates the FindMultiple function to do a proper comparison of the field's value and the value passed in to resolve the issue. (Issue 15311)

Full Text Index: Indexed View Can Fail Upon Creation When Row Set Security is Enabled

In Aptify 5.5.1, when an entity has row set security enabled, and a full text Index is created on that entity, the Grant SQL Text for the generated Indexed view may not be created correctly. This occurs when the order of the fields in the full text index is different than the order of the fields in the entity. Aptify 5.5.2 updates the logic in the Grant SQL Text generator to use the name of the field in the full text index to match the name of the field in the entity so the indexed field is created correctly. (Issue 19212)

Importing Data through Generic Import Fails on MS Excel 64 bit

The Generic Import process provides the ability to import external data in Excel files into Aptify. In Aptify 5.5.1 and earlier, the import process fails when attempting to import Microsoft Excel 2010 64-bit files. Aptify 5.5.2 documents the solution for this problem. To use the Generic Import wizard with 64-bit Excel, please install the 2007 Office System Driver: Data Connectivity Components, which is available for download at http://www.microsoft.com/en-in/download/confirmation.aspx?id=23734 (filename: AccessDatabaseEngine.exe). (Issue 13367)

Make SubType Functions Overridable in Bound Controls

Aptify 5.5.2 updates several functions in the Aptify Windows Control assembly so they can be overridden within the Aptify SubType control. These updates were previously made in Aptify 4.5 Service Pack 3, but were not ported forward to the 5.x code base. Aptify 5.5.2 applies the function signature updates from 4.5 SP3 to 5.5.1 to support existing client configurations that may override those functions. (Issue 17724)

Optimize Sub-Queries Option Checked on All Copied Views

Aptify 5.5 introduced the ability to generate filters related to the same related service as separate sub-queries or a single query as in earlier versions. This is controlled by the Optimize Sub-Queries option on the View Properties dialog. When this option is selected, separate sub-queries are created. When this option is cleared, a single query is created. However, there is a scenario when the option may be selected when not expected. This occurs when the Optimize Sub Queries field defaults to 1 (that is, the option is selected on new views by default) and copying a view that has the option unchecked. In this case, the option is selected and can change the results of the view. Aptify 5.5.2 updates the stored procedure used to copy views to ensure that the Optimize Sub-Queries option is not selected by default. (Issue 15424)

Review Use of GetPricingPermissions in ProductPrice GetPrice Function

In Aptify, the ProductPrice object includes a function called GetPrice, which calls the GetPricingPermissions function to retrieve the user's permission for that product to do things like select different prices, allow overrides, or set the price to 0. However, the object never validates the permissions. Aptify 5.5.2 removes the unused call to retrieve the permissions from the ProductPrice object, which will improve server performance. (Issue 15281)

Save And Close Operation May Cause Record To Save With Incorrect Values

In Aptify 5.5.1, there is a scenario that occurs when a client has business logic that sets value for certain fields in the creation of New Records. If the user selects the Save and Close option (as opposed to selecting Save or Save and New), the record initially saves as per the logic defined but the user entered value is detected as a change that causes the save prompt to appear. Due to this save prompt, if user clicks on Yes button, a record can save with values which may not be as per their business rules. Aptify 5.5.2 updates the Save and Close configuration to respect client business logic and ensure that records save as expected. (Issue 17791)

Show Price in Currency Format in Product Price Sub-Type Grid

In Aptify 5.5.1, there is a scenario where currency format may not be displayed in certain scenarios. For example, on the Prices form, a price is shown with a currency symbol and the correct number of decimal places. However, if you see price in a sub-type grid, it displays without the currency symbol and includes four decimal places. Aptify 5.5.2 updates sub-type grid functionality to ensure that currency displays appropriately, including the currency type and correct number of decimal places. (Issue 17328)

Silent Error When Canceling a Generic Metadata Wizard

With Aptify 5.5.1 and earlier, where a user working in an environment with the Desktop client and Web interface installed is using the Desktop client to run a Generic Metadata wizard, clicks Cancel, and confirms the cancellation by clicking OK, a silent error is logged in the exception viewer. Aptify 5.5.2 updates the AptifyWizardProcessorObject object so that cancelling any generic metadata wizard should not log an error through the Desktop client or Web interface. (Issue 19131)

SQL Time Out Error Displays for Large Data Set When Running Proximity Wizard

In Aptify 5.5.1 and earlier, a SQL time out error may be generated when running the Proximity wizard on a large data set using the Farther Than' or Farther or Exact Distance options. Aptify 5.5.2 updates the proximity search functionality to resolve this issue. (Issue 14679)

Sub-type Entity Creation May Fail Due To Long Top Level Entity Name

In Aptify 5.5.1, sub-type entity creation may fail when the Top Level entity name is long. The failure is due to the character limit (50 characters) of the Index Name that gets automatically generated for a Sequence in EntityIndexes. Aptify 5.5.2 increases the SQL size of the Name field in EntityIndexes to 128 characters so that the subtype can save successfully for Top Level entities with long names. (Issue 15403)

Support GETDATE and GETDATE() as an Input Property to a Date/Time Process Flow Step Input Property

In Aptify, the Process Flow Engine validates a process flow step's input properties based on the data type and date/time requirement that the source value is a valid date. GETDATE and GETDATE() should also be considered valid. Aptify 5.5.2 updates the AptifyProcessFlowEngine object to add support for GETDATE and GETDATE() as a source value for date/time input properties on a process flow step. When a generic entity is involved, the Process Flow Engine translates that special value to the current date and time. (Issue 19916)

Temporary View May Fail to Load Due to Missing TOP 1000 Syntax

When a user upgraded to Aptify 5.5.1, temporary views that return a large data set might fail to load and cause Aptify to become unresponsive. This issue occurred because Aptify 5.5.1 removes the TOP syntax from temporary views. Aptify 5.5.2 updates the EntityListView object to ensure that the TOP syntax remains in the temporary views. (Issue 15449)

Topic Codes: Default Value Field Has No Associated Functionality

Currently in Aptify, there is an issue where the Default Value field in the Topic Codes form does not allow the user to select a default topic code value. When a default value is specified for a topic code, and the topic code is activated for the first time, the default value is displayed. Aptify 5.5.2 updates the AptifyTopicCodesControl object so that in this scenario, the user is able to select a default topic code value for the Numeric, Text, or Multiple Choice topic code value types. When the Value Type field is set to NumericText, or Multiple Choice, the default value can be either no entry (blank), or a value of the same value type. For example, a topic code with a Numeric value type could have a numeric default value or a topic code with a Multiple Choice value would select a default value from the defined options. (Issue 3644)

Update RowsSelected Index in AptifySubType Code

In Aptify 5.5.1 and earlier, a user is sometimes unable to retrieve the proper RowsSelected Index of subtype controls. Aptify 5.5.2 updates the AptifyWindowsControls object by modifying the RowsSelected Index in AptifySubType Code. (Issue 19423)

Updating Photo Causes Save Operation to Loop for Persons

In Aptify 5.5.1, when you update the Photo field on the Persons record, the Save operation gets called repeatedly. This can cause issues, especially when the photo is updated programmatically, such as when using the Social Network integration process flow. Aptify 5.5.2 updates the photo save process so that changing the photo on the Persons record does not cause the Save operation to be called repeatedly. (Issue 13322)

Messaging

The following issues were resolved in the Messaging system as part of Aptify 5.5.2.

Aptify Messaging Freezing When Sending Messages Repeatedly from Person Form

In Aptify 5.5.1 and earlier, there is a scenario when a user attempts to send email repeatedly, the message dialog may failed to respond as expected, resulting in the application freezing. Aptify 5.5.2 updates the bulk messaging functionality such that users should encounter this problem much less frequently.
Please note that as part of this resolution, the Bulk Messaging progress bar will no longer appear if:

  • The bulk message was initiated by clicking an email icon on a form.
  • A user selects five or less records in a view before clicking the bulk messaging icon.

The progress bar will continue to appear if:

  • A user selects 6 or more records in a view before clicking the bulk messaging icon.
  • The user clicks the bulk messaging icon from a view without selecting any records first (in which case, the message run's recipient list is based on all records in the view).

(Issue 17722)

Bulk Messaging Fails If Sending a Report to a Large Distribution List and Other Issues

In Aptify 5.5.1, there is a scenario that occurs when a user attempts to send an email with a report to a large distribution list. A new report object is created and not removed, overloading the report function and causing the email distribution to fail. In addition the auto-filter functionality incorrectly generates reports for recipients. Aptify 5.5.2 updates the bulk messaging configuration to address the reporting and message delivery issue, as well as resolves some performance related issues to ensure that reports and messages are generated appropriately and deliver as expected. (Issue 17789)

Message Action Not Executed When Message Is Scheduled

Aptify includes support for triggering an action to take place when a message is sent (Message Actions). For example, Aptify can create a Contact Logs record with the message text that is sent to each of a message run's recipients, and link that contact log to the appropriate records. However, in 5.5.1, messages sent using the message scheduling feature do not create Contact Logs as expected. This is because the Message Action is not tied to the Message Runs record created by the messaging scheduling process. Aptify 5.5.2 updates the process flow responsible for executing message schedules to explicitly copy any Message Actions found on the selected Message Templates record to the new Message Runs record. (Issue 16260)


Note

If you want to generate Contact Logs records for messages sent via message scheduling, you must add the Create Contact Log message action to each Message Template that may be used by the Message Schedule.  

Message Template Overwrites Information on Message Runs Record

In Aptify 5.5.1, when using the Bulk messaging feature to send emails, Aptify creates a Message Runs record that stores information of the message template used among other details of the message. If the template was used as a starting point to compose the message and additional modification was done before sending it, the Message Runs record stores the latest information, which could be different than the linked template. For example, the Subject and text of the message could be different than the one in the message template used. In such cases, upon opening the Message Runs record, certain information from the Template appears to be flowed down to the Message Run. This can cause data to be overwritten unintentionally in case the record is saved after any intentional modification done. Aptify 5.5.2 updates the code of Message Runs Entity so that if the old MessageTemplateID and current MessageTemplateID do not match, the PopulateMessageTemplate is called, otherwise it is not called. (Issue 14253)

Suppress GUI When Processing Messages Programmatically

With Aptify 5.5.1, there is a scenario where some clients may experience issues processing bulk messages when using an App Server. Many times when this scheduled task runs, an error is logged in the event log on the Application Server stating "Message: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation". Aptify 5.5.2 updates the system's configuration to log an exception error encountered during message processing in the exception log rather than display the error in a message box, which cannot be displayed in an application server environment. (Issue 18889)

Unable to Change Password for Some User in Aptify

In Aptify 5.5.1, some system administration users (sa users) are not able to change their own password due to changes in role assignments of Aptify system administrators in SQL Server. In previous versions of Aptify, sa users are tied to the sysadmin role, in Aptify 5.5 and higher, they are tied to the dbowner role. If an administrative user is not part of the sysadmin role, they receive a SQL error when attempting to change their password. Aptify 5.5.2 updates the password logic to recognize both types of Aptify system administrators (i.e., sysadmins and dbowners), and now all system administration users are able to change their password. (Issue 19048)

Virtual Field Information Gets Incorrectly Saved for InTable Field

In Aptify 5.5.1, if a developer adds new or modifies any existing fields on the Entities viewer form, the Virtual Fields tab gets enabled. But if the developer then checks the In Table field after adding Virtual Field details, the Virtual Fields tab gets disabled but that information incorrectly gets saved to database. Aptify 5.5.2 updates the system to ensure that the virtual field information is correctly saved. (Issue 17314)

Process Flows

The following issue was resolved in the Process Flows system as part of Aptify 5.5.2.

Problem Loading Process Flow Step When Executing Process Flow

In Aptify 5.5.1, the Process Flow Step cache fails to load when the Result Code for a Process Component Step no longer exists, but a Process Flow Step Action Map exists. Aptify 5.5.2 adds error checking to the Aptify prevent an exception from being logged. (Issue 16072)

ValueTester: Invalid Type Comparison Throws Incorrect Error And IsBlank/IsNotBlank Are Not Actually Supported For Dates

In Aptify 5.5.1, when using unsupported operators with the ValueTest process component, the error message always indicates that the operators are not supported for text/string fields, even when you are comparing a numeric or DateTime field. In addition, using the IsBlank/IsNotBlank operators on DateTimes throws an error. Aptify 5.5.2 updates the ValueCheckerProcessComponents object to ensure that the error messages are generated as expected. (Issue 19678)

Setup Program

The following issue was resolved in the Setup Program as part of Aptify 5.5.2.

Release Contains Generated Stored Procedure

In Aptify 5.5 and 5.5.1, when new fields are created in an earlier version of Aptify, and then updated to the current release, the spupdate stored procedure may not include the new field after installing 5.5.1. Aptify 5.5.2 updates the setup program to ensure that the spupdate stored procedure contains the new field as expected. (Issue 19032)

Viewing System

The following issues were resolved in the Viewing System as part of Aptify 5.5.2.

Views with NOT Filters are not Working If User Does Not Enter a Space after NOT

In the current version of Aptify, views with NOT filters are not working in the Desktop client if you do not add a space after NOT. Aptify 5.5.2 updates the AptifyViewsEntity object to ensure that views using NOT filters work as expected whether or not the user adds a space after NOT. (Issue 19789)

Base Views: Cannot Create Additional Base Views against a Virtual Entity

Aptify 5.5.1 added the ability to add additional base views to an entity to improve the record search feature and the viewing system. However, additional base views cannot be created for a virtual entity. When this is attempted, the changes are not saved and error is logged in session exception. Aptify 5.5.2 updates the AptifyEntitiesEntity object to allow a user to save an Entity base view record against a virtual entity successfully.

 

Note

There are specific situations where a user will need to manually edit the generated base view to have the additional base views work as expected. If the Entity field in the new base view has its In Table option cleared in the Options tab of the Fields Record, and the Virtual Field Type is set to None in the Virtual Field tab of the Fields Record, that field is not included in select clause of the multiple base View. In this instance, you must manually edit the generated base view to ensure that all of the fields defined in the base view metadata have corresponding entries in the database object' SELECT clause. 

(Issue 17191)

Base Views: Create a new DB Object for EntityBaseViews spGetRecordSingle

In Aptify 5.5.1, a new entity, EntityBaseViews, was added that generates the stored procedure for spGetRecordSingle with the name spGetEntityBaseView, which matches the existing stored procedure name. Due to this, the exiting stored procedure gets linked to spGetRecordSingle. Aptify 5.5.2 adds a new stored procedure, spGetEntityBaseViewEntityRecord, and links it to spGetRecordSingle. (Issue 17275)

Base Views: Export to Excel: View Display Names Not Used if View Is Based on a Multiple Base View

In an Aptify 5.5.1 environment with multiple base views, if you create a view that is based on a non-default base view (i.e., one of the new base views) and you modify the Display Name for the fields in that view's properties dialog, the modified display names show up in the list view as expected. But if you export to Excel, then it uses the original field name, even if the Use Display Names option is selected in the Export wizard (applies to both export types). Aptify 5.5.2 updates an object file to ensure that the modified display names show up when the view is exported to Excel. (Issue 16737)

Base Views: Fields from Additional Base Views Not Available for User with Messaging

When using the Aptify messaging feature, you can select a field from the message source. For example, inserting the First Name field personalizes each message with the first and last name of the recipient. However, there is a scenario where a field is not available. This occurs when the field is part of a multiple base view. In this scenario, the field is not available from the Select Field dialog, and if the user attempts to add the field manually, an error occurs and the message is not sent. Aptify 5.5.2 updates the Base Views functionality so that if the user of the messaging feature opens from a form, the available fields are from the primary base view, and if the user opens from an ELV that is based on an alternate base view, the available fields are from the alternate base view. These fields are the only ones available for that message run. (Issue 16814)

Base Views: Modify Restriction on Calculated Fields in New Base Views So Warning Rather Than Hard Failure

In Aptify 5.5.1, there is a scenario that may occur when working with multiple base views in 5.5.1. Aptify 5.5.1 includes a restriction that prevents an entity from having two calculated fields with the same name even if they are in different base views. Aptify 5.5.2 updates the system configuration to remove the restriction on naming calculated fields in different base views. (Issue 17291)

Base Views: vwPersonsWithCommittees Is Missing Metadata That Causes Error During Unpacking

In the Aptify Base View, vwPersonsWithCommittees the join information in the vwEntityBaseViewFields is missing. This causes issues during the unpacking of the Persons entity. Aptify 5.5.2 updates the metadata for multiple base views to include a JoinForeignKey where applicable. (Issue 18528)

Base Views: FindBasicSearchItemsToSearch Attribute Does Not Work for Related Base View Fields That Are Not Part of Main Entity Field List

In Aptify, there is an issue where the FindBasicSearchItemsToSearch attribute does not work for related Base view fields that are not part of main entity field list. The Find results work correctly only for Base view fields which are part of the main entity. Aptify 5.5.2 updates the AptifyGenericFind object to ensure that the FindBasicSearchItemsToSearch attribute works as expected. (Issue 15280)

Base Views: While creating base views, and joining two entities, joined foreign key does not show all the available options

In Aptify 5.5.1, there is an issue where Aptify Desktop client users are unable to see all of the options available in the drop down list box for the Join Foreign Key field, while joining two entities to create a base view. For example, Persons has four or more AddressID fields. If you create a field in a multiple base view to show HomeAddressLine1 and you select the Joined field type, only AddressID shows up (but you want HomeAddressID).

Aptify 5.5.2 updates the Viewing system so that when a user creates base views, and joins two entities, the Joined Foreign Key field shows all the available options. (Issue 17301)

EntityBaseViewName field on Views Entity Produces An Error

In Aptify 5.5.1, when a user attempts to create a view of a service that has a name with more than 50 characters, an error displays. Aptify 5.5.2 updates the EntityBaseViewName field on the Views Entity, and updates a non-generated Database Object, spCreateViewNew, to correct this issue. (Issue 17730)

Most Recently Used Views Does Not Show the View

Aptify has an issue where the first time a user logs in and clicks on any view, and then goes to the Most Recently Used Views, the selected view is not displayed in that list. Aptify 5.5.2 updates two objects, AptifyViewPlugIn, and EntityListView to ensure that the selected view is displayed in the Most Recently Used Views list. (Issue 19018)

Sub-View Name Caption is Missing for Hierarchy View

In Aptify 5.5.1, the Sub-View name Caption is missing from the Hierarchy view. It is working as expected in Aptify 5.5. Aptify 5.5.2 updates the EntityListView DLL to return the Sub-View name Caption to the Hierarchy view. (Issue 15336)

Resolved Issues (Core Business Applications)

The following core Aptify Business Application issues have been resolved in the Aptify 5.5.2: