When trying to make a chart using FusionWidgets, if you get any errors (or if the chart doesn't render), there could a lot of reasons for it. Here, we'll try and cover them up. We've divided the entire debugging process into two sections:

  • Basic Troubleshooting - Manual problem solving methods.
  • Using the Debug Mode - FusionWidgets v3 introduces the new Debug Window Mode, which helps you un-earth the problems with your chart. We'll cover that in next page.

Let's get to basic trouble shooting first. While creating your chart, if for some reasons you do not see your chart like it should, check for the following actions:

 
SWF Movie not Loading or No chart shown

When viewing your page containing the chart, if you see an endless loading progress bar in your browser, or if the right click menu (right click at the place where the chart is supposed to be) shows "Movie not loaded", check the following:

  • Check if the SWF path is properly provided in your HTML page is correct. Also, check if the SWF file actually exists there.
  • If you're working on a case-sensitive file system Operating System, check for the case of path and SWF file.
  • Check if you've Adobe Flash Player 8 (or above) installed on your machine.
  • Check whether you've enabled your browser to show ActiveX controls. Normally, all browsers are Flash-enabled.
"Error in Loading Data" message

If you get an "Error in Loading Data" message in your chart, it means that FusionWidgets could not find XML data at the specified URL. In that case, check the following:

  • Check if you've actually provided dataURL or dataXML. If you do not provide either, FusionWidgets looks for a default Data.xml file in the same path. However, if that is also not found, it shows the "Error in Loading Data" error.
  • If you're using dataURL method, paste this URL in your browser to check if it's returning a valid XML. Make sure there are no scripting or time-out errors and a valid XML is being returned. Also make sure that the XML isn't intermingled with HTML content. The data provider page should return clean XML only - not even HTML <head> or <body> tags.
  • If you've to pass parameters to your dataURL data provider page from FusionWidgets, make sure they're URLEncoded in the dataURL, when providing to FusionCharts. e.g., if your dataURL needs to be Data.asp?id=43&subId=454, you'll need to URL Encode it so that it becomes Data%2Easp%3Fid%3D43%26subId%3D454. Only then FusionWidgets will invoke the URL with proper parameters appended to it.
  • When using dataURL method, make sure that the SWF File and data provider page are on the same sub-domain. Due to Flash's sandbox security model, it cannot access data from external domains, unless otherwise configured.
"Invalid XML Data" message

If you get an "Invalid XML Data" message, it means that the XML data document is malformed. Check it again for common errors like:

  • Difference in case of tags. <chart> should end with </chart> and not </Chart> or </CHART>
  • Missing opening/closing quotation marks for any attributes. e.g., <chart caption=Monthly Sales' should be <chart caption='Monthly Sales'
  • Missing closing tag for any element.
  • If you're using any special characters in your XML, make sure they're properly encoded. Like, in dataXML method, % needs to be encoded as %25, & as %26 and so on. In dataURL method, you can provide most of the characters directly, without the need to encode.
  • In dataXML method, check for conflict of ' (XML Attribute Character) and " (HTML Parameter Character). For example, if you're using direct HTML embedding method, and using " for HTML parameters, then you need to make sure that all your XML attributes use ' as containers. Example: <param name="FlashVars" value="<chart showLabels='1' showValues='1'>...</chart>" />
  • If you've quotes as part of your data, XML Encode them to &apos; Example: <set name='John&apos;s House' />
  • To get more information on what the error in XML is, you can either use the Debug Window (explained next) or open the XML in your browser.

If you get a screen showing "The chart will appear within this DIV. This text will be replaced by the chart.", make sure that:

  • You've included reference to FusionCharts.js in your code.
  • You've copied FusionCharts.js at the right place.
  • You've included the proper path to this JS file in your HTML code.
"No data to display" message

If your chart shows a "No data to display" message, it could be the following scenarios:

  • Your XML data doesn't contain any data that could be plotted by FusionWidgets. In this case, your XML just contains the <chart> or <dataset> tags without any data between them.
  • You might be using a single-series chart SWF and providing data in multi-series format or vice-versa. In this case too, you'll get "No data to display" message.
  • In some Dual Y Combination charts, you need to provide atleast one data-set for both the axis. Otherwise, you'll get a "No data to display" message.
If you get a "... is not a function of ..." error when using any JavaScript API of the chart, make sure that:
  • You've set registerWithJS flag as 1 in the chart's constructor method.
  • You've not placed the chart inside a FORM element. When the chart is inside a FORM element, the browser cannot access the chart using DOM.
  • Make sure that you're not calling the JavaScript method before the chart has loaded and rendered. You need to use FC_Rendered function of chart to track the loading of chart as explained in the section "FusionWidgets and JavaScript"
  • Make sure that you're NOT running the chart from local file system (C:\ , D:\). Instead, run the chart from behind a server (localhost - IIS, Apache etc.). This is because the Flash Player security settings do not allow chart to JavaScript interaction on local file system by default, unless otherwise specifically set.

Next, we'll see how to use the Debug Window to trouble shoot.