Friday, April 27, 2012

HEAT – Contains the following features:
  • Crystal 2008 Compatibility
  • HEAT Compatibility with Exchange/Office 2010
  • BPAM automatic reconnect to dB server upon dB connectivity failure
  • Automatic Ticket Generator (ATG) reinstate include service crashing issue, enhancement to consumption of Message text, and subject line parsing for CustID
  • Enhancement Fixes to Call Logging, HEAT Web UI, HSS, HMC Processor & Administrator issues, and LDAP.
Contact The Marks Group for assistance with Heat Upgrades


Alarms Shift
Shift + F11
Assignment, Acknowledge
Assignment, New
Assignment, Resolve
Call ID, Go to
Call Map, Go to
Call on Hold, Place
Call Record Browse, Display
Clear a Date or Time Field
Customer Types, Change
Navigate to Detail Screen
Fill in System Date/Time
 Display Calendar in Date Field
Navigate to Journal
New Call
New Journal
Quick Close
Refresh Call Record
Refresh Active Call Group
Save Ticket
Spell Check
Toggle between upper and lower panes
Unlock or Lock Call Record


If you need to make only minor changes to your system, you can use Quick Customize. The Quick Customize mode is a unique Edit Set feature that allows you to make simple changes without creating and committing an entire Edit Set. Minor changes include modifying forms, grids, and Views, and changing certain field attributes. Quick Customize cannot be used to create tables or fields. Because the Quick Customize mode cannot be used to change the underlying structure of your system, users do not need to be logged out in order to apply the changes. The Quick Customize dialog box uses the same basic interface as a regular Edit Set with a few exceptions: table and field creation tools are unavailable.

IMPORTANT: Committing changes using the Quick Customize mode increments the version field in the HEATDb table just as an Edit Set would do. As a result, any Edit Set created before the Quick Customize changes contains an earlier version number and is not committed.

Quick Customize provides the following advantages:

  • Speed in implementing changes. 
  • Ability of users to remain logged on.

Users do not see changes until they next log on to HEAT.

With Quick Customize you cannot:

  • Create tables (including Table Types, Table Views, and connections to External tables) 
  • Create fields  
  • Edit the name, type, or size of existing fields

With Quick Customize you can:

  • Edit Forms
  • Edit grids 
  • Change most field attributes (such as default values, Validation, and flags)

When you are satisfied with your Quick Customize changes, you can apply them with a single click. Because users do not need to be logged off of HEAT in order to apply the changes to the database, users can only view the changes once they log off and on again.

Note: Like an Edit Set, HEAT allows you to test the integrity of your Quick Customize changes before you apply them to your live system. This process is called Verify Quick Changes.


When someone is working in a Call Record, it is automatically locked. It remains locked until the record is saved, closed, or changes are abandoned. You cannot unlock a call that is locked by another user. If you attempt to modify a call locked by another user a warning dialog box opens.

During a typical workday, the Call Logging process may see a heavy volume of activity, and calls lock and unlock continuously. Click the Refresh Group button to ensure the most recent information is displayed.

To Lock or Unlock a Call Record:

  • Click the Lock button located on the main toolbar. The button turns from an unlocked to a locked padlock.  
  • Click again to revert back to the unlocked status or select File > Unlock Call Record or File > Unlock All My Calls.

View Locked Call Records
You must be granted the appropriate security rights by your HEAT administrator in order to view this list.
To View Locked Calls:
  • Select Accessory > Locked Calls. The Locked Calls dialog box opens.
  • You can choose to view calls locked by all users or by individual trackers; select the desired option from the Tracker drop-down list.

Wednesday, April 25, 2012

Crystal Reports : Using Drill Down

Did you know what Drill Down actually does? You see this term all over the place in Crystal; field properties, Group Name, etc. What it allows you to do is this:

When you have at least one Group defined (which gives you your Group Tree alongside the left of the Preview), you can right-click on any one of the Groups (from the Tree) and select "Drill Down".

You'll notice that this separates the Group you clicked on into it's own tab in the Preview window. This can make it easy to only review Groups you're having an issue with. The other neat thing is that when you are on a Drill Down Tab, using File | Print | All will only print the Group, and not the entire report.

It is mostly for this reason that I encourage end-users to whenever possible, use the Report directly from the Viewer (or Preview pane). It allows for interaction with the printed report; especially if you are using Hyperlinks to web pages or to files on your intranet.

Try it!

Crystal Reports : Conditional Running Totals

So, being Crystal Reporters, we are used to exceptions, right? For instance, management wants a Count of records on a report, but ONLY IF certain criteria is met. They want a totaling of Sales dollars, but ONLY THE ONES that happened between a specific date range. Now, the most usual way to deal with this is to simply modify your Selection Criteria. Unless of course they want to see "all the rows", but only get the special totals as described. In this case, we cannot constrain our Selection Criteria any further.

This is very typical, and can be handled in a variety of different ways. Many folks will use the Running Total object, which is a good way. I, however, prefer to use a combination of formulas to make this happen. It allows more flexibility down the road when more changes are required.

So, let us assume we need to count records only where the CONTACT1.CREATEON falls within a certain date (i.e. 1/1/2012 to 1/17/2012). Because of this, we cannot insert a simple Summary, which will of course count all the records.

The first thing I do is create a "testing" formula, which returns a 1 or 0, depending on a condition like this;

Formula @ShouldRecordCount:
IF {CONTACT1.CREATEON} >= "01/01/2012" AND {CONTACT1.CREATEON} <= "01/17/2012"

So, now if we drag this new formula onto the report we can see it returning a 1 or 0, depending on our CREATEON value. Now it's an easy procedure to create a simple Summary (Insert | Summary) on {@ShouldRecordCount}, which will of course total all those 1's and 0's.

To make it nicer, you need NOT have the @ShouldRecordCount formula on the report itself. All formulas are evaluated, regardless of whether or not they appear on the report. It's very common to see several of these "testing formulas" on a single report, each returning 1's or 0's to be subtotaled by simply summaries. Give it a try!

ProTip: Experienced Crystal Reporters will undoubtedly realize that the same functionality is achieved though using a Running Total object. The reason I prefer this method is that it allows (in my opinion) easier editing of the Conditional code and the ability to re-use @ShouldRecordCount in other areas of the report.

Crystal Reports : Deriving "Last Week" at Run Time

An oldy but a goody; I used this just the other day as a client was printing the same report for "last week" and was getting tired of explicitly entering the Begin and End Date parameters.

Suppose a report needs to only print records with dates from last Monday through Friday. You could of course provide a date range parameter and let the user choose for each printing of the report.

You could however, use the nifty LastFullWeek function in crystal to return these values automatically.

The first thing to keep in mind here is that LastFullWeek will actually return a Date Range, NOT a Date Value. In order to see what dates LastFullWeek is actually returning, we will need to create two formula fields. {@DateStart} and {@DateEnd}.

The code for {@DateStart} : MINIMUM(LastFullWeek)
The code for {@DateEnd} : MAXIUMUM(LastFullWeek)

Drag those two fields onto your report. You'll see that in the Crystal Universe, the LastFullWeek starts on a SUNDAY and ends on a SATURDAY. So if we just want Monday through Friday, we need to do some tweaking.

The code for {@DateStart} : MINIMUM(LastFullWeek) + 1
The code for {@DateEnd} : MAXIUMUM(LastFullWeek) - 1

Now the formulas are returning Monday to Friday and we can use them in our Selection Criteria thusly (assuming we are looking at a field called {HISTORY.ONDATE})

{HISTORY.ONDATE} IN {@DateStart} TO {@DateEnd}.

Try it!

Crystal Reports : Commenting Code in Formulas

Did you know that you can save programming Comments within your Formula Code? You simply prefix each commented line with "//", like this;

//Formula to choose correct descriptions - 04/23/2012 Justin Hill
//If we can't find the code, simply return UNKNOWN

This is a great way to comment very complex formulas, and really shines when you need to come back to them after time has passed and you might have forgotten what you did!

Crystal Reports : Dealing with Dates as Plaintext

It is often that you might see date values being stored in plaintext. That is, in a String data type (opposed to Date or DateTime). Now, let's imagine we are trying to perform some date math on a field. Something simple, like calculating the number of days that have passed.

Let us assume our data field {CONTACT1.KEY4} is actually a String field, and we see a mix and match of formats, like so;


January 1st, 12

Jan 1 12

Jan 1st 2012 on and so forth. Our first task is to convert the actual incoming field data into a Date Type so we can easily perform our math. Because all we really want to do is create a formula where we can use the following expression; CURRENTDATE - {CONTACT1.KEY4}.

To convert our {CONTACT1.KEY4} to a Date Type, create a new formula and use the following code:


..which just tried to convert our plaintext date to an actual Date value. But if you're working with a mix and match of date formats, you may get the following error:

Bad Date Format String

...and this will prevent the report from running at all. What is actually happening is that values like '01/01/2012' and 'Jan 1 2012' are "valid", while values like 'Jan 1 12' are not. So, we now need to do some testing within our formula, like so;


When we use the ISDATE() function, we are testing to see if Crystal thinks the input is a "valid date". And only if this is TRUE do we continue on and actually convert our date value. So now we should be able to run our report without interruption. For the "bad" date values, our formula will return blanks.

ProTip: If you need to clean up the underlying database before your report can be useful, you could always add ISDATE({CONTACT1.KEY4}) = FALSE to your Select Expert to run a list of all "bad" date values.

QuickBooks: Exporting Chart of Accounts

“Can you help me?  I need to send the chart of accounts from my QuickBooks file to someone for review.  I can’t figure out how to do that.  Thanks.”

It is very easy to send your chart of accounts as a report or Excel document per the following instructions:

Report Menu -> List -> Account Listing

When you get into the report screen you will find all the choices available to you.  You can export to Excel, save as a PDF or even email it to someone directly from this screen.

QuickBooks: Fixed asset tracking

Tracking the book value of long-term assets as they decline over time can be a tricky business. The amount by which they depreciate can affect not only the worth of a business, but the size of a tax bill. It's important to develop good record-keeping habits where such fixed assets are concerned. It's also important for accountants and their clients to work together to make sure all the necessary information is being recorded so both financial statements and tax returns are correct.

Tracking fixed assets with fixed asset items enables you to record such information about an asset as purchase date and price, whether the asset was new or used when purchased, and the asset's sale price if you decide to sell it. You can also generate customizable reports listing all your fixed assets.

The simplest way to create a fixed asset item is while you are entering the transaction used to purchase it, but sometimes you may want to create a fixed asset item directly from the Fixed Asset Item list. For example:
·         You intend to purchase or have already purchased several items that you want to track as fixed assets, such as a suite of office machines
·         You pay for a fixed asset with cash.
·         You transfer a personal asset to your business.
·         You pay for a business asset with personal funds. 

To do this task
To do this task
1.      Go to the Lists menu and click Fixed Asset Item List.
2.      Click Item at the bottom of the list and click New to open the New Item window. Fixed Asset is preselected as the item type.
3.      In the Asset Name/Number field, enter an identifying name or number for your fixed asset.
What you enter here appears on fixed asset item reports. Enter a name or number that will help you distinguish this item from all others on the list.
4.      Click the Asset Account drop-down list and choose an asset account, or create a new one.
5.      Enter purchase information:
o    Purchase Description: Enter a brief description of the purchase of your fixed asset.
o    New/Used: Select whether your asset is new or used.
o    Date: Enter the date you purchased your fixed asset, or click the pop-up calendar icon to the right of the field and select one. Today's date is selected by default.
o    Cost: Enter the cost of your fixed asset.
o    Vendor/Payee: Enter the name of the vendor from whom you purchased the asset.
Important: The Vendor/Payee name is not saved to your Vendor list when you save this fixed asset item to your Fixed Asset Item list. Click Vendor Center and add the vendor there if necessary.
6.      (Optional) Enter asset information:
o    Asset Description: Enter a brief description of your fixed asset.
o    Location: Enter a location; for example, if your asset is real estate, enter an address. If your business has more than one location, enter where your asset has been placed into service.
o    PO Number: Enter the number of the purchase order you used to purchase your asset, if applicable.
o    Serial Number: Enter the serial number or VIN of your asset.
o    Warranty Expires: If applicable, enter the date the warranty for your asset expires.
o    Notes: Enter any notes concerning your asset that you want to track.
7.      Leave the sales information blank and click OK.

Note: When recording any transactions involving your fixed asset, be sure to choose the appropriate fixed asset item from the Items tab or Item column. This enables you to track depreciation and other costs.