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:


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.



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.


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)


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


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)


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)


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.



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:



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)


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)


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.



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)


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.



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)


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)


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)


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.



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:



The following issues were resolved the Accounting application in Aptify 5.5.2.

Batches Permissions Changes When Aptify Web Is Installed

In the current version of Aptify, if the initial release of the Aptify web interface is installed, permissions for the Batches entity are unintentionally modified, removing editing permission on Batches records for all users. Aptify 5.5.2 updates the Aptify Web installer so that the permissions on Batches records remain the same. (Issue 20212)

Payments in Batches Accounting Service Do Not Refresh When Using Find Button

In Aptify 5.5.1 and earlier, there is a scenario that may occur when a user opens a batch and attempts to use the Find button to look for another batch from an existing batch window, in this situation the list of payments associated with the batch does not refresh. You have to close the batch window and reopen to refresh the list. Aptify 5.5.2 updates the system configuration to ensure that when using the find function from the batch service the payment details are refreshed as expected. (Issue 17327)

System Does Not Work with Danish Currency Type (Kr) and Danish Regional Settings

In Aptify 5.5.1, the Accounting application has an issue where the user is unable to use the Danish Krone as a valid currency type. Aptify 5.5.2 updates an object to support use of the Danish Krone as a valid currency type.



Aptify does not support the use of a period in the currency symbol for the Danish Krone. The currency symbol for Danish Krone should be set to "Kr", not "Kr." 

 (Issue 19323).


The following issues were resolved in the Advertising add-on application in Aptify 5.5.2.


The issues resolved in this section are only applicable for organizations that have the Advertising add-on application for Aptify 5.5.2. 

Advertising - Deferred Income Redistributing to Incorrect GLs

Currently in Aptify, when creating an Advertising Insertion Order with Options Amounts, the deferred income goes into the correct deferred account (assuming that all the products are set to the same deferred GL), but when the process puts it back into revenue to recognize the income, it is putting the entire total into the GL account for the main advertising product (that is tied to the Product Issue which controls the Revenue Recognition Date), instead of applying the revenue for the options products to the appropriate Option Amounts GL account. Aptify 5.5.2 updates the Advertising Insertion Order functionality to ensure that deferred income is redistributed to the correct GL accounts for the main advertising product as well as the option product.



If an option product does not have a deferred income account specified, that product's revenue will be recognized on the order only and it will not be included in the deferral scheduled transactions generated by the insertion order. 

(Issue 15193)

Advertising Insertion Order: Deferred Revenue is Not Recognized When Recognition Date is Less Than Three Days into the Future

In Aptify 5.5.1 and earlier, deferred income entries are not generated for an Advertising Insertion Order whose product issue's Revenue Recognition Date is set to tomorrow or the day after. In this case, a Schedule Transactions record is not created and the revenue is considered as current revenue. For Advertising Insertion Orders with recognition dates set at least three days in the future and beyond, the appropriate scheduled transactions are created and taken into account against the appropriate GL account. Aptify 5.5.2 updates the Advertising Insertion Order logic to ensure that deferred income, scheduled transactions and GL codes are updated as expected whenever the product issue's Revenue Recognition Date is greater than the current date. (Issue 15290)

Advertising Insertion Order Invoice Report Cannot Be Run as Non-Admin User

As of Aptify 5.0 Service Pack 3, when a user that belongs to user group only attempts to run the Invoice report from the Advertising Insertion Orders service, an error is displayed that the vwCompany table cannot be found and the report is not run. If the report is run using an administrative ID, it works as expected. In Aptify 5.5.2, the Invoice report can be run from the Advertising Insertion Orders service by any type of user. (Issue 12035)

Cancelled Insertion Order is not Generating Reverse Entries

In Aptify 5.5.1, an error can occur when a user cancels an insertion order and ships it, causing the refund amount to become zero and the GL entries do not get generated. Aptify 5.5.2 updates the DoCancelOrder() function in the Advertising Insertion Order object to generate reverse GL entries for a cancelled insertion order.

Note that this problem occurs when the person on the Advertising Contract is linked to a company that is different from the contract's Advertiser Company. (Issue 19918)

Fields in Group Boxes on Insertion Orders General Tab Do Not Show Up

In Aptify 5.5.1 with the first Aptify web interface release, most of the fields on the General tab of the Insertions Orders form currently do not show up. This is because they appear below the groupboxes which contain them in the Parts list of the General Tab. Aptify 5.5.2 rearranges the Parts list so that the expected fields for the General tab appears in the Insertions Order form as expected. (Issue 18334)

Business Applications

The following issues were resolved in the Business Applications in Aptify 5.5.2.

Application Hangs When We Expand Division Tab of Companies for Multiple Records

In Aptify 5.5.1 and earlier, the application can hang when the user clicks the Division tab in the Companies form for multiple records. Aptify 5.5.2 updates the system so that clicking the Division tab in multiple Companies records does not cause Aptify to hang. (Issue 16930)

Aptify Termination Flowdown Behavior

In Aptify 5.0 Service Pack 3 and higher, if a user modifies the membership Termination Date for a company, that date flows down to this field for all Persons linked to the company automatically. This is not the desired behavior, as the termination date should only update for the Company Membership. Aptify 5.5.2 updates the application's configuration by adding a new entity attribute. When this attribute is set to 0, the Termination date does not flowdown to individual memberships and only updates the company membership details. (Issue 14164)

Changes Needed in 5.5.2 Desktop Application Image

Aptify 5.5.2 updates the Desktop Application image displayed after login to reflect this release, update the copyright dates and remove an unwanted line running from the middle of the image. In addition, Aptify 5.5.2 changes the startup.exe assembly. (Issue 19590)

Create Contact Log Process Component Should Support Setting Type and Category

In Aptify 5.5.1, the Contact Log process component always creates contact logs with a CategoryID of 1 and a TypeID of 3. These values may not be appropriate for every organization depending on how they have configured the Contact Log Types and Contact Log Categories metadata. Aptify 5.5.2 adds CategoryID and TypeID as input properties to the Create Contact Log process so an organization can define its own value for these fields. Note that if the input property is blank or does not exist, then the CategoryID defaults to 1 and the TypeID defaults to 3. (Issue 18214)

Extended Order Detail Form Template Selection Is Not Aware of Form Template Filter Rules

In Aptify 5.5.1 and earlier, the Extended Order Detail Form Template selection logic does not respect the Filter Rule on the Form Templates when selecting a Form Template to display for the extended Order Lines Entity. Aptify 5.5.2 updates the selection logic to respect the Filter Rule on the Form Templates when selecting a Form Template for the extended Order Lines Entity. (Issue 18648)

InvoiceNumber Not Set for Orders

In Aptify 5.5.1, the InvoiceNumber field in the Orders entity does not populate even when the GenerateInvoiceNumber attribute is set. This occurs whether you want to use the Order ID as the Invoice Number or if you have specified other logic for assigning an invoice number. Aptify 5.5.2 updates Aptify's logic to ensure it is updating the invoice number field correctly:

  • If the GenerateInvoiceNumber attribute in the Orders entity does not exist or exists with a value of 0, the system will not populate an order's InvoiceNumber field.
  • If the GenerateInvoiceNumber attribute is 1 and the GenerateInvoiceNumberStoredProcedure attribute is blank or does not exist, the system defaults to using spGetInvoiceNumber, which does not return a value. In this case, the InvoiceNumber is set to the OrderID.
  • If the GenerateInvoiceNumber attribute is 1 and the GenerateInvoiceNumberStoredProcedure attribute has a value of spGetInvoiceNumber, the system behaves the same as described above (the system uses the spGetInvoiceNumber procedure, which does not return a value by default, so the InvoiceNumber is set to the OrderID.
  • If the GenerateInvoiceNumber attribute is 1 and the GenerateInvoiceNumberStoredProcedure attribute is set to use a stored procedure other than spGetInvoiceNumber, the system executes the logic of the specified stored procedure to determine the invoice number for the current order and add that value to the InvoiceNumber field.



If you want to use the InvoiceNumberAssignment table referenced in the commented text within the spGetInvoiceNumber procedure, Aptify recommends that you copy and paste the commented text to a new database object and uncomment it (do not include the uncommented SELECT '' statement found at the end of spInvoiceNumber). Then add the new stored procedure name to the GenerateInvoiceNumberStoredProcedure attribute and confirm GenerateInvoiceNumber is set to 1. With these settings, Aptify should use the InvoiceNumberAssignment table to generate invoice numbers separately from OrderID. 

(Issue 5436)

New Case Wizard Requires a Company But Form Does Not

In Aptify 5.5.1, when you run the New Case Wizard, you have to submit a company for the case. But, if you create the case from the form, you do not need to enter a Company. The wizard should not require the Company if the form does not. Aptify 5.5.2 updates the New Case wizard so that the Company field is not required. (Issue 17429)

Problems with fnCurrencyConversion

In Aptify, there are several areas that use the fnCurrencyConversion function to display currency conversions. For example, on the Orders tab found on Persons and Companies records, there are fields that display the total order and balance amounts. If an order for a person or company is in a currency that is different than the Preferred Currency Type for the person/company, the order balance and total fields are translated into the customer's Preferred Currency Type using this function. Aptify 4.5 Service Pack 3 resolved the several issues related to this function, but this fix was not carried forward into Aptify version 5.x. Aptify 5.5.2 implements these which resolves the following issues related to the function fnCurrencyConversion, which is used to display currency conversion throughout the system:

  • With Aptify 5.5.1 and earlier, the object always uses the most recently created Currency Spot Rates record, rather than the most current spot rate. Sometimes an administrator may need to enter historic rates within a given period, and in this case, the most current spot rate would not be used. Starting with Aptify 5.5.2, Aptify updates the fnCurrencyConversion object to ensure the correct currency spot rate is selected when converting currency records for the situation described above.
  • With 5.5.1 and earlier, the fnCurrencyConversion object does not round to the number of digits of the conversion currency type (no rounding occurs). Starting with 5.5.2, Aptify updates the function to round to the proper number of decimals when displaying currency conversions based on the conversion currency type.
  • With 5.5.1 and earlier, when determining the proper spot rate to use to calculate a currency conversion, the fnCurrencyConversion function selects the indirect rate in preference to the direct rate if they both exist. However, this can cause issues when rounding currencies (especially when performing conversions between currencies with great differences in values and decimal places). Starting with 5.5.2, Aptify updates the function to ensure that when both a direct and indirect currency spot rate exists, the direct rate is used to determine the currency conversion spot rate. (Issue 15178)

Problems with Search by using Find In Column In the Contact Log Tab of Persons or Companies Record

In Aptify 5.5.1, the Find In Column functionality for list views produces an error when invoked from a view on a dashboard, on a form's tab or an entity browser. (See Issue 8332: Customer Management – Search Functionality Using Find In Column In the Contact Log Tab of Persons or Companies Record Does Not Work Properly in this document for a specific example of this issue). The column index that is used in the column search functionality is being reset incorrectly and can result in an error. Aptify 5.5.2 updates the Find In Column functionality logic to ensure that these types of searches are executed properly. (Issue 8402)

Update vwPersonEvents

In Aptify 5.5.1, there are situations where the same contact log can appear multiple times on the Contact Log tab of a Persons record (the single contact log may appear once for each Contact Log Category defined in the system). Aptify 5.5.2 updates the vwPersonEvents database object by adding an additional WHERE filter to define the CategoryID of a contact log. (Issue 18213)

ZDA Fails When Creating Saved Payment Method If Merchant Account Passes Additional Parameters

Currently in Aptify 5.5.1, if a Merchant Account is configured to pass Fraud Mapping parameters or Additional parameters to PayPal, then attempts to obtain a reference transaction number to use as a Saved Payment Method for a Person or Company fails. Likewise, attempts to save a quotation order also fails when trying to obtain a reference transaction number. In addition, there are scenarios where, if the CVV and fraud check options are checked in the Aptify Merchant Accounts record and payment processor, a zero dollar authorization (ZDA) reference transaction may fail. This can occur when attempting to create a Saved Payment Methods record or when saving a quotation order using a reference transaction credit card number. Aptify 5.5.2 resolves this issue by bypassing the Fraud Mapping and Additional Parameter settings when trying to obtain a reference transaction number with a ZDA or a $1 Auth/Void transaction, and ensures that regardless of the CVV and fraud check status, zero dollar authorizations process as expected. However, actual transactions tied to an order and a payment will continue to respect the Fraud Mapping and Additional Parameter settings. (Issue 15270)

Composite Engagement Score

The following issues were resolved in the CES application as part of Aptify 5.5.2. A separate CES stand-alone installer was available for 5.5.1 prior to including this feature in 5.5.2.

CES: Non-Sysadmin Users Should Be Able to Execute CES Plans

In Aptify 5.5.1, only a system administrator currently has the necessary permissions to execute the CES plans process. Aptify 5.5.2 updates the CES application to enable any user in the Administrators group to be able to execute the CES plans process. To do this, the Execute KPI was updated for CES plan process flow's rule and the AptifyCESProcessComponent and AptifyKPIProcessComponents DLLs were updated. (Issue 17741)

CES: Person's Clone Function Should Not Carry Forward the CES Value to the New Record

In Aptify 5.5.1, when you clone a Persons record, the cloned record has the same CES score as the original record. Apify 5.5.2 updates the AptifyPersonsEntity DLL so that the CES value is not forwarded to the new record when a person's record is cloned. (Issue 15199)

CES: Provide Users Group Read Access To CES Entities

In Aptify 5.5.1, there is an issue where a CES application user who is a member of Users group only accesses CES Score tab under Persons -> Analysis, the tab does not load and logs a permission error for vwCESScores. Aptify 5.5.2 updates several CES entities to ensure that members of Users group are given Read permissions. (Issue 19473)

Customer and Member Management

The following issues were resolved in the Customer and Member Management system in Aptify 5.5.2.

Contact Log Entity Plug-in: When Adding a Persons Link, Automatically Add Companies Link for the Person's Company

In Aptify 5.5.1, when a user adds a Persons Link to a Contact Log, an issue occurs where the link to a company is not maintained for the Person in the Contact Log. Aptify 5.5.2 adds logic to the Contact Log Entity Plug-In to ensure that the Companies Link is automatically added for the Person in the Contact Log. (Issue 15988)

Synchronizing Outlook Contacts to A Distribution List Creates A New Contact Each Time Wizard Is Run

In Aptify 5.5.1, if a user repeatedly runs the Outlook Synchronization Wizard to synchronize a person's contact information from Aptify to Outlook in a Contact folder with a distribution group, the wizard creates the same contact in Outlook multiple times. Aptify 5.5.2 updates an object to resolve this issue and prevent the creation of duplicate contacts. (Issue 19042)

Education Management System


The issues resolved in this section are only applicable for organizations that have the Education Management System add-on application. 


The following issues were resolved in the Education Management System add-on application in Aptify 5.5.2.

Cannot Create Class for a Meeting Type Course with Create Separate Meeting Product for Class Checked in Desktop Client with Aptify Web Installed

With Aptify 5.5.1, when a user in an environment with the Desktop client and Web interface installed has, using the Desktop client, created a course with a product type of meeting, and creates a class for that course with the Create Separate Meeting option cleared, the class record cannot be saved, and an error is reported in the exception log (Object reference not set to an instance of an object). Aptify 5.5.2 updates the ProductObject object to ensure that the class record in the above scenario can be saved. (Issue 19311)

Course Scope Filter Rule Does Not Support Topic Code Service

In Aptify 5.5.1, Course Scope filter rules are not supported in the Topic Codes Service. If a user attempts to include a Topic Code Entity record on a Courses Filter Rule Type an error is generated and a dialog informs the user the Topic Code is not supported. Aptify 5.5.2 updates the system configuration to include support for Topic Codes in Course Filtering rules. (Issue 17111)

Education Unit: Record Form Show Incorrect Name for Check box

In Aptify 5.5.1, the Education Record form check box Meeting Education Units should be External Source Verified. Aptify 5.5.2 corrects the Display Culture String set for this field, and regenerates the metadata for Education Units. (Issue 16000)


The following issue was resolved in the Expos system in Aptify 5.5.2.

Confirm ExpoCAD Integration with ExpoCAD 7.9

During Aptify 5.5.2 testing, the Aptify integration with ExpoCAD version 7.9 has been successfully validated. (Issue 18726)


The following issues were resolved in the Fundraising system in Aptify 5.5.2.

Fundraising: Original Order's Date Used For Order Date on a Cancelled Pledge Order

In Aptify 5.5.1, when a cash pledge is saved with a status of Written, Aptify creates an order for the pledge with an Order Date set to the pledge's Date Received. If that pledge is later canceled, Aptify creates a cancellation order, which also has its Order Date set to the pledge's Date Received. However, the Order Date on the cancellation should be the day on which the pledge was canceled and not the day on which the original pledge commitment was received. Aptify 5.5.2 updates the Pledges entity object to set the Order Date on a pledge's Cancellation Order to the day that the cancellation is processed and not the pledge's original Date Received. (Issue 18223)

Prohibit Users from Deleting Pledges In Written And Complete Stage

In Aptify 5.5.1, there is an issue where pledges in the written stage can be deleted even when there is an order linked to the pledge. Aptify 5.5.2 updates an object and create one new culture string for the warning message, updates logic for the delete functionality to validate the order status with respect to a generated order, and adds a culture string for displaying validation error to the user. (Issue 18476)

Using the Save and Close Functionality for a Pledge does not Link an Order or a Cancelled Order to the Pledge

In Aptify 5.5.1, when using the save and close function to generate an order in a written stage or trying to cancel the pledge, the order does not get linked to the pledge. Aptify 5.5.2 updates an object to ensure that an order or cancellation order gets linked to the pledge when using save and close. (Issues 18675)

Meeting and Housing Management

The following issues were resolved in the Meeting and Housing Management system in Aptify 5.5.2.

AddressLine1 and Country Fields in Meetings Entity Should Have Allow NULL Checked

Meetings.AddressLine1 and Meetings.Country are optional virtual fields linked to the Addresses entity. They are required if an address exists. But, if an address does not exist, these fields are treated differently than others in the viewing system because the virtual fields do not have the Allow NULL option selected in their definition. This can lead to a record being incorrectly excluded from views. Aptify 5.5.2 updates these fields to have the Allow NULL option selected by default for the Meetings.Country and Meetings.AddressLine1 fields. (Issue 14531)

Cannot Update Meeting Registration Status When Meeting Registration Has Exhibitor Specified

When registering for a meeting that is linked to an expo, exhibitor information can be specified through the meeting's order line detail record. However, when the Is Exhibitor option is selected, the meeting registration status cannot be changed and an "Object Reference not set to an instance of an object" error is logged. Aptify 5.5.2 resolves this error and the status can be changed. (Issue 16809)

Clearing the Registrant in the Related Meeting Session Dialog Overrides the Order Line

In Aptify 5.5, when a user adds a registrant to a meeting, there may be scenarios where a registrant's information is overwritten when a user attempts to modify sessions via the orderlines. For example, if a user creates an order for a Meeting with two sessions and then adds a new registrant, the user is then able to update the main meeting with the new registrant details. However if the user attempts to update the Related Meeting Sessions with a new registrant, the previous registration orderline (for the main meeting) is overwritten. Aptify 5.5.2 updates the configuration to ensure registrant details can be edited as expected and no information is overwritten incorrectly. (Issue 15198)

Error Displayed on Saving Meeting with Rooms Assigned if the Date Format Is Changed

In Aptify 5.5 and earlier there is a scenario when adding a Meeting Room to a Meeting product produces a date format error. The specific scenario occurs when a user that is tied to a culture that does not use the US date time format and is attempting to add a Room on the Meeting record, the system generates an unexpected error. Aptify 5.5.2 updates two objects and adds database objects to resolve this issue and prevent the error from occurring. (Issue 19621)

Execute Permission Error When Only Desired Sessions Are Selected When Using New Meeting Wizard

Aptify 5.5.1 has an issue where when a user creates a new meeting using the New Meeting Wizard, Aptify throws an error when trying to complete the wizard if a meeting has several sessions, and the user wants the new meeting to select only few of those sessions. Aptify 5.5.2 updates the New Meeting Wizard functionality to add Delete permissions for the Users group to the Meeting Cloning Wizard and Meeting Cloning Wizard Sessions entities. (Issue 19706)

Meeting->View -> Total Cancellations Field Not Updated as per Registered Meeting Cancellation Count

Aptify added a new Attendee Status Type in version 5.5.1 called Void from Cancellation. Prior to this addition, there would be two Meeting Registrations with the status of Cancelled for every meeting cancellation. With 5.5.1, there was one Meeting Registration marked as Cancelled (tied to the cancellation order) and one marked as Void from Cancellation (tied to the original order). However, the procedure that updated the Total Cancellations field in the Meetings service was not updated to accommodate the new Void from Cancellation status option. Aptify 5.5.2 updates the spUpdateMeetingTotal stored procedure so it counts Meeting Registrations that are updated to Void from Cancellation as cancelled registrations. (Issue 17922)

Meeting Registration Status Changes Unintentionally From Registered To Waiting

When registering for a meeting for multiple people and one or more people are put on wait list due to insufficient inventory, it can happen that people with confirmed registrations are being put on wait list unintentionally. After the order is saved, for order lines with confirmed Registrations, the Registration Status is unintentionally changed to "Waiting". Aptify 5.5.2 resolves this situation. (Issue 15213)

Meeting Resource Conflict Check Improvements

In Aptify 5.5.1, the logic that determines whether or not there is a resource conflict is not handling meetings or meeting resources that were at exactly the same time (Same Start and End Dates). Aptify 5.5.2 updates the logic to correctly identify overlapping resources while still allowing the End Date of one Meeting Resource to match the Start Date of another Meeting Resource without causing a conflict (Back to back resource usage is supported). (Issue 18678)

New Meeting Wizard: Dates Need to Push to Next Year If Day of Copied Meeting Has Passed

Aptify 5.5.1 includes a scenario where, when a user selects an existing meeting to copy using the New Meeting Wizard, the wizard may incorrectly select dates that have already passed for the new meeting. Aptify 5.5.2 updates the date calculation logic. If the copied meeting's month and day has already passed for the current year, then the wizard updates the dates to use next year. (Issue 15211)

New Meeting Wizard: Does Not Update Dates for Speakers and Hotel Information

Aptify 5.5.2 updates the New Meeting wizard so that it applies the new meeting's Start and End Dates for Speaker and Hotels if copying that information from the existing meeting to the new meeting. If a Meeting Speakers or Meeting Hotels record on the existing meeting has Start and End Dates specified, the wizard uses the new meeting's Start and End date to populate those fields on the new meeting. (Issue 18486)

New Meeting Wizard: Under Meetings Service Not Copy Product GL Accounts

In Aptify 5.5.1, the New Meeting wizard does not copy the existing meeting's General Ledger (GL) Accounts to the new meeting. Aptify 5.5.2 updates the New Meeting wizard so that it copies the existing meeting's GL Accounts to the new meeting. (Issue 18487)

Price Filter Rules are not Cloned Correctly When Creating Meeting using New Meeting Wizard

In Aptify 5.5, there is a scenario where Price Filter Rules do not work as expected when cloning prices records. A new filter rule record is not created correctly when the New Meeting Wizard is used. Aptify 5.5.2 updates the system configuration so Price filter rule records are created successfully when cloning meeting products using the New Meeting Wizard. (Issue 18087)

Product Prerequisites Message Does Not Appear For a Meeting Session Added Through Related Sessions Dialog

In Aptify 5.5, when a top-level meeting is added to the order line, and if that meeting has sessions, the Related Sessions dialog appears so the user can select a session to attend. If one or more sessions have a prerequisite and that condition is not met, a message should appear as defined in the Prerequisites tab, but does not. Aptify 5.5.2 updates an object so that the message alerting the user of the conditions that must be met when selecting sessions related to the top-level meeting. (Issue 18200)

Registration Status Does Not Update to "Void from Cancellation" on Order Meeting Detail

In Aptify 5.5.1, when cancelling a meeting registration order, after you create the cancellation order via the cancellation wizard, the original order may remain open during the cancellation process. In this case, you must manually refresh or close and reopen the original order which updates the registration status to "Void from Cancellation". When the original order is left open while processing the cancellation and you add a comment to the order line after the cancellation order has been processed and save the original order, the status does not get updated even after closing and reopening the original order. Aptify 5.5.2 updates the Orders layout control to address this issue. (Issue 18704)

ScheduledMeetingTransferWizObject's ValidateTransferDetails() Does Not Recognize No New Meeting As Unchanged Meeting

In Aptify 5.5.1, when validating a meeting transfer, a message is issued if the new attendee is the same as the old attendee, and the new meeting is the same as the old meeting. This message should also be issued if the new attendee is the same as the old attendee, and no new meeting has been chosen. Aptify 5.5.2 updates the Scheduled Meeting Transfer wizard validation logic to consider no-new-meeting-chosen the same as new-meeting-equals-old-meeting. (Issue 18234)

Session Dates That Include Time May Cause Calculation Problem for New Meeting Wizard

If a session date has a time component that is not on the hour (like 10:15 am), the date calculation in the New Meeting wizard may be incorrect when showing new sessions that could be created. Aptify 5.5.2 updates the MeetingCloneComponent DLL file to resolve this problem. (Issue 18485)

Order Entry/Payments

The following issues were resolved in the Order Entry/Payments system in Aptify 5.5.2.

Applying Payment to Another Order Shows a Balance of Zero for the Original Order

With Aptify 5.5.1, when a user applies a payment from a shipped order to another order, the order balance does not get updated on the original order and shows a balance of zero. Aptify 5.5.2 updates the trigger trPaymentDetailUpdateInsert, to ensure that the order balance is updated as expected. (Issue 19017)

Authorization Date Saved In GMT Instead Of Local Time for Credit Card Payments

In Aptify 5.5.1, a Payment Authorization's Authorization Date is stored in UTC (Coordinated Universal Time) rather than in the Aptify system's local time. The Authorization Date is found in the Payment Authorizations sub-type record on a Payments record's Authorizations tab. However, in Aptify 5.5 and earlier, the Authorization Date was stored in the system's local time. Aptify 5.5.2 reinstates that functionality so Authorization Date is once again recorded using the system local time. (Issue 18236)

Back-Order GL Entries Issue

In Aptify 5.5 and 5.5.1, there is a scenario that takes place when partially shipping an order with products from multiple companies. In this situation extra payment GLs are created which display more money paid than was actually submitted. When the same order is created and not partially shipped the payment GL entries are correct. Aptify 5.5.2 resolves this issue and ensures that GL entries are created as expected for partially shipped orders. (Issue 16302)

Badge Information Not Flowed Down Unless Order Meeting Details Form Is Viewed

Aptify e-Business 5.5.1 added functionality to pre-populate badge information for meeting order lines. However, this has caused a side effect that if the order line is not opened, the badge information does not get saved. So, some order meeting detail records in the database have badge information and some do not, depending on whether the order line was viewed or not. Aptify 5.5.2 updates two objects, AptifyOMDControls and AptifyOMDEntity, and created a new stored procedure, spGetBadgeInformation, to have the badge information flowdown functionality work as expected. (Issue 19076)

Bulk Order Wizard Becomes Unresponsive When Run Against a Large Dataset

In Aptify 5.5.1, a user may experience long delays when trying to run the Bulk Orders wizard to process a large number of orders. Aptify 5.5.2 updates the Bulk Orders process to improve the overall performance of the wizard. (Issue 17962)

Cannot Process a Shipped Expo Orders When Order Line Price Has Been Manually Changed

With Aptify 5.5.1, comments or invoice messages cannot be added to a shipped order with expo orderlines. This scenario can happen when the price for the expo orderline was changed manually when creating the order. This can have side effects when trying to modify any field on the shipped order that does not affect the financial integrity of the order. User will not be able to do so and will get similar error. Another scenario where the error prevents the order from processing further is when the user attempts to batch this type of order, or to regenerate GL entries using the Batch Wizard. Aptify 5.5.2 updates two objects, AptifyOBDEntity and OrderExpoDetailControl, to ensure that comments or invoice messages can be added to a shipped order with expo orderliness as expected. (Issue 17615)

Cannot Save a Bulk Orders Record with Large Number of Customer Records

With Aptify 5.5.1 and earlier, a user cannot save a record while adding a large number of sub-types. For example, if a user attempts to create a Bulk Order that includes 5000 Customers sub-type records, the Bulk Order will fail to save. Saving a large number of records may exceed the number of variables that can be declared as part of the save process. Aptify 5.5.2 updates the Aptify Generic Entity to modify variable usage so that records with a large number of sub-type entries will now save. (Issue 18724)

CCPartial Not Set for Reference Transactions Placed Using a Web Service

In Aptify 5.5, there may be a scenario where a client uses a web service to create Orders. If those orders are paid with a Reference Transaction payment type the order does not have CCPartial set. Orders placed within the Smart Client work but CCPartial is added by a separate function that is not called when the process is run from a web service. Aptify 5.5.2 updates the Payment Information object to set the CCPartial for reference transaction payments when placed via a web service. (Issue 19806)

Credit Memo for Generated Back Order Should not Credit Shipping Charges on New Order

In Aptify 5.5.1, there is a scenario when a credit memo is generated for a back order and incorrectly includes payment general entries for shipping charges on the credit memo. Aptify 5.5.2 adds a new entity attribute called CalculateShippingForBackorder. When set to 1, the system uses the current logic, which recalculates shipping charges on a backorder. When set to 0, the system assumes that all relevant shipping charges appear on the original order and separate shipping is not charged for the backorders. Credit memos created for backorders when CalculateShippingForBackorder is set to 0 no longer track any entries related to shipping charges. The only payment lines tracked in the credit memo deal with the individual backordered order lines and any applicable sales tax for those order lines. (Issue 17886)

Data Type Mismatch Between CCExpire and Reference Transaction Expiration Date

In Payment Information, the Credit Card Expiration date field is a Datetime field and the Reference Transaction Expiration Date is a Date field. This data type mismatch can cause a problem for reference transaction payment types. If a user enters a Credit Card Expiration date that is less than a year from today, Aptify will attempt to use the CCExpireDate as the reference transaction expiration date. However, if there is a time component to CCExpire (a time specified other than midnight) then that process fails due to the data type mismatch. Aptify 5.5.2 updates the ElectronicPaymentsVerisign DLL file to address this issue. (Issue 17018)

Description Override is Reverting the Changes Done if We Try to Change the Description First Time After Order Save

In Aptify 5.5 and higher, there is an issue where if the description override option if set, the description reverts to its original value if a user tries to change it on the order line after saving the Order. Aptify 5.5.2 updates the Order system to resolve the issue. (Issue 15292)

Do Not Attempt a ZDA for Quotation Orders If CCAccountNumber Field Is Blank

In Aptify 5.5, if a user creates a quotation order and the Bill To person's last payment method was a credit card reference transaction, an error occurs if the user tries to save the quotation without changing the payment type first. This error occurs because the system is attempting to perform a ZDA (Zero Dollar Authorization) for the reference transaction, which is correct if account information is being provided, but if the CCAccountNumber is left blank, the system should not attempt to perform a ZDA and instead should bypass this step and save the order. Aptify 5.5.2 updates the quotation order functionality to include a secondary condition instructing the system to bypass the AuthorizeElectronicPaymentZDA function when the CCAccountNumber field is blank, so the quotation order saves as expected in this scenario. (Issue 17131)

Duplicate GL Entries Generated When Same Order Is Shipped at the Same Time by Different Users

In Aptify 5.5.1, there are situations where two users attempting to ship the same order twice will cause the system to generate double GL entries. Aptify 5.5.2 adds functionality to prevent an order from being shipped twice. Note that in some cases, one user may receive a message indicating that an order has already shipped. If you encounter this message, you should refresh or close and reopen the order and then attempt your last operation. (Issue 19132)

Error When Updating the Credit Card Expiration Date for a Reference Transaction-Based Saved Payment Method

In Aptify 5.5.1, a credit card expiration error message appears when a user attempts to save a Persons record, if an associated Saved Payment Method is updated with a new credit card expiration date. Aptify 5.5.2 resolves this issue and ensures that a Persons record saves as expected when modifications are made to a saved payment method. (Issue 18237)

Improve Payment Information Validation When Payment Type Is Not Valid for the Organization

In Aptify, Payment Types can be filtered on Organizations. When an Order or Payment is created, the Payment Type can be validated against a list of Organizations (Filters). The Filters are enforced when the parent Entity contains an OrganizationID field. However, when the Payment Type is not valid for the Organization, validation fails, but an error string is not provided. Because of this, it can be difficult to identify that an invalid Payment Type is responsible for the validation failure. Aptify 5.5.2 updates the validation logic to include a descriptive message. This fix also adds an informative message when the Payment Type is not valid for the Organization. (Issue 15372)

Invoice Number Not Set Properly in Some Scenarios

In Aptify 5.5, the InvoiceNumber field in the Orders entity does not populate even when the GenerateInvoiceNumber attribute is set. This occurs whether you want to use the Order ID as the Invoice Number or if you have specified other logic for assigning an invoice number. Aptify 5.5.2 updates Aptify's logic to ensure it is updating the invoice number field correctly:

  • If the attribute is not set or disabled, any new orders saved after the attribute change does not have an Invoice Number generated (either on initial save or during subsequent order activity, such as shipping it).
  • If the attribute is enabled, any new orders saved after the attribute change should have the Invoice Number set after initial save.
  • Once the Invoice Number is set, there is no attempt to reset it during subsequent order activity.

(Issue 18410)

Localize AutoShip Failure Errors

Aptify 5.5.2 localizes messages that is displays when a user tries to save an order that qualifies for auto shipping that has already been shipped. (Issue 15096)

Mark To Market Object Calculation Uses System Date Rather Than Payment Date

In 5.5.1 Aptify allows you to back-date a payment. If this is a cross-currency payment, the spot rate effective as of the PaymentDate should be used rather than the rate that is in effect on the current day. If a payment is applied to a non-functional currency order, the MarkToMarket object is called before the payment is saved in order to revalue the order's functional A/R balance. The problem is that the MarkToMarket object always uses the system date to obtain its spot rate. This creates a problem for back-dated payments, since there will be a spot-rate mismatch. This behavior was previously fixed in Aptify 4.5 SP3 but was not carried forward to the Aptify 5.5 code branch. This behavior was addressed using hotfixes for Aptify 5.5 and Aptify 5.5.1. Aptify 5.5.2 updates the cross-currency functionality for payments to ensure that no spot-rate mismatches occur in this and subsequent releases. (Issue 17471)

Order Cancellation Failed for Kit Products Included with '0' QTY in Original Order

In Aptify 5.5.1, an error can occur when a sub-product in a Kit has a quantity of 0, and the user later attempts to cancel this order. Aptify 5.5.2 updates the Product Object DLL file and adds the ProductPartsEntity.Validate.ValidateKitQuantity culture string to ensure that sub-products cannot be added to a kit with a quantity of 0. (Issue 18516)

Order Cancellation Wizard Calculates Incorrect Cancelled Amount for Extended Product OrderLines With Manual Discount

In Aptify 5.5.1, there is a scenario where the Order Cancellation Wizard calculates "Cancelled Amount" incorrectly for order lines. This can occur with extended products when the discount is entered manually on the original order. The "Cancelled Amount" calculation does not deduct the manual discount from the extended price. As a result, the Cancelled Amount displays the non-discounted amount and incorrectly calculates the Refund Amount as well. Aptify 5.5.2 updates the Order Cancellation Wizard to respect manually applied discounts and ensure that all calculations are made as expected. (Issue 15260)

Order That Has Been Modified by Another Process Can Ship When Using Auto Ship Prompt Dialog

In Aptify 5.5.1, there is a scenario where an order can incorrectly ship in scenarios where the auto-ship function enabled. For example, if an order is created containing a product that uses auto-ship and that same order is modified by more than one user to contain more than one orderline, the auto-shipping and order calculations are not being processed correctly. GL entries, subscription records and Scheduled Transaction Group records are not being modified or updated as expected. Aptify 5.5.2 updates the Orders logic to ensure that the system verifies the following: order shipping status, orderline modifications, and orders totals. If any of the areas mentioned has been modified the user will receive a notification that the order cannot be saved and to reopen the order and refresh for the latest information.



The Aptify 5.5.2 resolution for this issue also resolves Issue 15110 (Duplicate Order GL Entries And Scheduled Transaction Groups Created For Same Order Shipped More Than Once).

(Issue 15262)

Orders Configuration that Sets PO Fields Fails If User Clicks Save and Close

In Aptify 5.5.1, there is a scenario where if an organization writes a configuration to automatically set the value for payment-related fields on an Order, the changes do no save or persist as expected. For example, a client upgrading from 4.5 to 5.5.1 encountered a problem with a configuration that programmatically sets the Purchase Order fields on an order. If a user clicks the Save button to save the order, then the system operates as expected. However, if a user clicks Save and Close, then the system unintentionally resets the value of Purchase Order fields to blank. Aptify 5.5.2 updates the system configuration to refresh the Payment Controls to ensure the Orders form behaves as expected, after these types of modifications. (Issue 16985)

Orders Entity Save Can Fail During Inventory Update without Providing Information about the Failure

When saving an Order, if the Inventory Update process fails the Order Save fails but no information is recorded to the Session Exceptions and no Error Information is returned about the failure. This makes it difficult to understand where the failure is occurred, and without that information it is difficult to diagnose and resolve the problem. Aptify 5.5.2 updates the AptifyOrdersEntity DLL file to ensure that any exception that occurs in the UpdateInventory method of the Orders Entity object is recorded and published. (Issue 17713)

Orders Form May Load with Disabled CCPartial Field Instead of CCAccountNumber When Credit Card Payment Type Loads by Default

In Aptify 5.5, if the default payment type that loads for an Order is a credit card or a credit card reference transaction, the order form loads that payment type as expected the first time you open the order in a session. However, if you process an order with that payment type and then open a new order, the new order form incorrectly displays a blank, disabled CCPartial field in place of the editable and blank CCAccountNumber field. Aptify 5.5.2 updates the Order configuration to ensure that Orders form loads as expected with a blank CCAccountNumber field when the default payment type is a credit card or credit card reference transaction type. (Issue 15315)

Price May Not Be Correct For Products That Are Purchased Together With a Membership Product

Aptify provides with the ability to specify whether or not member pricing should be given for products that are purchased together with a membership product. This is controlled through CheckOrderLineforMembership orders entity attribute with value of 1. Aptify has an issue where sometimes the price calculated for other products may not be correct. It appears that the price returned is always the best price among the price matrix and not necessarily the best price within the member type of the Membership Product. Aptify 5.5.2 updates the Orders Entity and Product Price objects to ensure that products purchased together with a membership are priced at the membership rate. (Issue 17602)

Problem with Inventory Location of Returned Items

Aptify 5.5.1 has an issue where returned items are identified with incorrect inventory locations. When an order is placed for a product, Aptify associates the order with the first inventory location ID available. The issue occurred when a user cancels the original order, generates a new order which updates the inventory location ID with a different value, and ships the order. Aptify would use the original inventory location ID instead of the new inventory location ID. Aptify 5.5.2 updates the AptifyOrdersEntity DLL file and the spGetOrderLineCancellationInfo database object to ensure that the correct inventory locations are identified for returned items, where when an order is cancelled, the order line details about the inventory location ID are copied from the original order's order line, where the correct information is stored. (Issue 14891)

Product Prerequisite Validation May Appear Inappropriately In a Particular Scenario

In Aptify 5.5.1, there is a scenario where a product prerequisite validation message appears inappropriately even when the prerequisite has been met in another order. This can happen when a prerequisite product A (in order to purchase product B) has been ordered with another product C, and C is cancelled, then product B is prevented from being purchased when ordered separately. This is incorrect as product A has already been purchased. Aptify 5.5.2 updates the AptifyProductRequisite DLL file to address this scenario. (Issue 19086)

Quotation Order Cannot Be Deleted When Order Contains Multiple Meeting and/or Multiple Expo Order Lines

In Aptify 5.5.1, a Quotation order containing multiple meeting order lines (i.e., 2 or more order lines for different meetings or meetings with sessions), cannot be deleted successfully. The dependency message appears and the Dependencies form displays links to Meeting Registration records, but the Meeting Registration records cannot be deleted. If the Quotation order contains single meeting order line, it can be deleted successfully. Aptify 5.5.2 updates the spDeleteOrderWPaySch database object to handle multiple OrderMeetingDetail and mutiple OrderBoothDetail records when deleting Orders with multiple Meeting orderlines and/or multiple Expo order lines. (Issue 19024)

Reference Transaction: Number Gets Incorrectly Overwritten for Saved Payment Methods with Same Credit Card Number

In Aptify 5.5.1 there is an issue where when a Persons record has two different Saved Payment Method (SPM) records for same credit card number, but tied to different Credit Card Reference Transaction Payment types (which in turn are tied to different Merchant Accounts). When one of the SPMs is used to pay for an order, the new reference transaction number received from the merchant account gets updated for both SPM records. This is incorrect, as the reference transaction number (and reference transaction expiration date) should only get updated for the SPM record that was used to pay for an order. Aptify 5.5.2 updates the credit card processing functionality to ensure the appropriate reference transaction number is updated when the same credit is associated with more that saved payment method. (Issue 17391)

Reference Transaction: Sequential Transaction Use Ref Transaction End Date and May Fail to Process

With 5.5.1 and earlier, when performing subsequent transactions based on an existing credit card reference transaction, Aptify transmits to PayPal the reference transaction expiration date as the credit card expiration date rather than the credit card's expiration date. This can cause some subsequent purchases against that reference transaction to fail if the credit card's processing bank rejects the transaction due to the mismatched credit card expiration date. Aptify 5.5.2 updates the reference transaction logic to pass the credit card expiration date to PayPal and not the reference transaction expiration date for all transactions. (Issue 18627)

Refund Button on Batched Payments Grayed Out

In Aptify 5.5.1, the Refund This Payment button is not available in the Payments record when the payment has been batched. However, one should be able to run the Refund wizard against batched payments. Aptify 5.5.2 enables the Refund This Payment button on already batched payments so that they can be refunded. (Issue 18996)

Remove Default In View from Payments.CCAccountNumber

In Aptify 5.5.1, there is an issue that occurs when the CCAccountNumber field in the Payments entity has the Default In View option selected. This causes the hashed value for encrypted card numbers to show in views and cards by default. Aptify 5.5.2 updates the settings for the Default In View option to ensure that it is no longer selected by default for views and cards. (Issue 19429)

Remove Duplicate Filter Statement from spGetQualifiedPricing

Aptify 5.5.2 updates the ProductPrice query in the spGetQualifiedPricing stored procedure to remove a redundant WHERE clause element in an Order Date. (Issue 15279)

Some Check Payments Are Incorrectly Saved with a CC Auth Type of Authorize

With Aptify 5.5 and 5.5.1, a number of clients have reported a situation where a check payment is saved with a CC Auth Type of Authorize rather than NA. This prevents the payments from being batched and requires a user to manually override the payment's CC Auth Type to complete the processing of that payment. Aptify staff has been unable to replicate this problem, but as a possible solution to this behavior, Aptify 5.5.2 updates the Payments entity to set the CC Auth Type to NA for payments with a base payment type of Check during the final stages of the Payment Save process. (Issue 18235)

Status and Date Expires Does Not Update When Auto Renewal Is Enabled from Desktop Client

In Aptify 5.5.1, an issue occurs when sometimes the Status and Date Expires fields for a Subscription record are not updated when an order for a subscription renewal comes from an e-Business site and a user has set the Auto Renew option on the Renewal tab of the Subscription record. Aptify 5.5.2 updates the SubscriptionEntity DLL file to ensure that the Status and Date Expires fields of the Subscription records are updated as expected, when the above scenario occurs. (Issue 15348)

System Should Not Recalculate Sales Tax for Batched Order

In Aptify 5.5.1, there is a scenario where an Order shipped in the past (when running an earlier version of Aptify) cannot be modified with new comments after the system has been upgraded. This issue is a result of the system attempting to recalculate the sales tax charge on that order and due to a rounding change in one of the recent versions, the order cannot be saved (because it has shipped). However, if an order has shipped, the system should not attempt to recalculate sales tax. Aptify 5.5.2 updates Aptify's configuration to ensure that Sales Tax is not recalculated for Shipped Orders, resolving the issue and allowing users to add comments as expected. (Issue 17203)

Update GetRefundedAmount Function in Orders Entity

In certain Aptify 5.5.1 environments, an error can occur where a user is unable to cancel a customer order that was paid with a credit card. This error occurs when the customer has a merchant account integration with a service that generates processor reference numbers that contain a mix of numbers, letters, and special characters. These processor reference numbers are added to the Payment Authorization records. When the GetRefundedAmount() function in the Orders Entity object is called during the cancellation process, the attempt to read the processor reference number causes the function to fail. Aptify 5.5.2 updates the GetRefundedAmount() function in the Orders Entity object, so that the orders paid using this merchant account integration can be cancelled as expected. (Issue 19806)

Update Payment Type Type References to Support Increased Field Size

In Aptify 5.5, the data type size for Payment Types has been increased. The PaymentTypes.Type field was adjusted in size from 25 characters to 35 characters to support the new Type of "Credit Card Reference Transactions" which requires 33 characters. However Aptify did not update the spGetPaymentTypeType stored procedure to support the increased field size. As a result a Credit Card Reference Transaction name can be returned truncated to only 25 characters. However, the relevant code in the Payments object expected the truncated value so the system operated as expected. However, client configurations that assume the full value may not function as expected. Aptify 5.5.2 updates the stored procedure and Payments object code to consistently support the entire term for the supported payment type types. (Issue 15190)

Update UpdateCCAuthNumber Function in Orders Entity to Wrap Reference Transaction in Quotes

In certain Aptify 5.5.1 environments, an error can occur when reference transactions IDs contain non-numeric characters. Aptify 5.5.2 updates the Orders Entity object so that reference transaction IDs are wrapped in quotes to ensure that the IDs are treated as strings by the spUpdateOrderCCAuthCode stored procedure. (Issue 19996)


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

HTML Tags Displayed in Comments Field When In View or Exported

When exporting a report to Microsoft Excel, HTML tags are sometimes copied into the Comments section. Aptify 5.5.2 adds a function, TranslateHTMLTextIntoSimpleText, to create a calculated field that will strip out the HTML tags, and then use that field in views. To use this technique, add a Calculated Virtual Field to the Persons record that calls the TranslateHTMLTextIntoSimpleText function for the Comments field.

When you add the Comments_NoHTML field to a view of Persons, the HTML gets stripped out. As an example, the following screen shot shows a view that shows the Comments filed twice, with the first Comments field is set up using the Comments_NoHTML field; the second Comments field is the standard Comments field.

(Issue 14879)

Report Names Not Ending With "artrialbalanceasof.rpt" May Not Load

Beginning with version 5.5, Aptify added special handling specifically for the A/R Trial Balance Report in the Report Wizard code so it could continue to operate as it did prior to version 5.5. These changes were required due to other modifications made to the Report Wizard in 5.5 (see the description of Issue 10924: Update Trial Balance Report So It Is List-Based in the Aptify 5.5 Release Notes for information). However, any client-specific A/R Trial Balance Reports that were based on the Aptify version may not function as expected due to this change. Aptify 5.5.2 updates the Report Wizard so that it successfully loads client-specific A/R Trial Balance Reports as long as the report contains this string somewhere in its file name (the string is not case sensitive): artrialbalanceasof. (Issue 19088)

Subscriptions and Membership

The following issues were resolved in the Subscriptions and Membership system as part of Aptify 5.5.2.

Subscription Products Start Date Not Adhering to Product Setting (Succession Rules)

In Aptify 5.5.1, an error can occur where the start date for a renewed subscription product ends up being the current date instead of the end date of the previous subscription product. Aptify 5.5.2 updates the OrdersEntity object to ensure that the start date of a renewed subscription product is set to the end date of the previous subscription product, as expected. (Issue 16748)

Subscription Renewal Wizard Creates Separate Quotation Orders for Same Person/Company

In Aptify 5.5.1, an issue exists with the Subscription Renewal wizard such that when it is run against a view of subscriptions that is sorted by SubscriberID, the wizard is unable to create a single quotation order for each Subscriber and Subscriber Company. Aptify 5.5.2 updates the wizard as follows to address the issue:

  • Added the Group Subscriptions with Same Subscriber Person on One Order checkbox.
  • Changed wizard heading from "Enter Date Value" to "Subscription Renewal Wizard".

(Issue 17568)

Subscription Start Date Plug-in and Order Ship Issue

In Aptify 5.5.1, an issue occurred where when the OrderGE.Save() method was used to ship the order (setvalue orderstatus=shipped), the Subscription Start Date plug-in was not executed. Aptify 5.5.2 updates the AptifyOrdersEntity DLL file to ensure that the Subscription Start Date plug-in works no matter what method is used to ship the order. (Issue 18358)

Non-Generated Database Object Table Changes

Below is a list of non-generated Database Objects that have been modified due to changes made with the release of Aptify 5.5.2. If your organization has modified objects from any of the database objects below while retaining the name of the original database object, additional modification will be necessary to integrate any changes made with upgrading to Aptify 5.5.2.


Note to Developers

If your organization has directly altered any of the objects below, those alterations will be overwritten when the core object is replaced during the upgrade process. If a modification to the functionality of a core database object is required, a copy of the core object should be created with a unique name. The modified functionality may then be implemented in the copied object. Again, the existing object itself should not be modified; developers should create a copy of the object using a different name if different functionality is required. See Best Practices When Developing for Aptify for more details.

Database Object Name
























































Copyright © 2014-2017 Aptify - Confidential and Proprietary