Section: main

=FF=

 

 

FastForward

 

What is FastForward?

How does FastForward work?

Steering tags processed on HTTP request

The HTTP POST request

Mapping tags processed on the spreadsheet refresh

How to install FastForward on the desktop?

How to program the server part?

Tips for developing and debugging FastForward applications

Bugs

Copyright

 

What is FastForward?

The FastForward framework allows fast development of 3-tier spreadsheet applications accessing any sort of data stored on a server. The spreadsheet is used as a browser, which can send and receive data using HTTP POST request. The request and response data can be edited in a common way in the spreadsheet. Which data is sent to the server and how the response is mapped back to the spreadsheet, is described by tags. The project implements a spreadsheet add-on and data manipulation library for the server site.

 

How does FastForward work?

 

Steering tags processed on HTTP request

The tags are case insensitive. They are always placed in the first column (‘A’) and used during the upload for steering the build of the body for the HTTP POST request. They described always the row, which they start. Rows without any tag are left out. There are following steering tags:

 

Tag

Description

URL

The tag describes the Uniform Resource Locator (RFC 3986) of the web server, the request should be posted to. The URL should be placed in the second column (‘B’), other columns are not processed.

POST

It states which columns should be send to the server and what is the name of each column. Blank cell means, that the column is not sent to the web server.

VALUE

The tag has to follow the ‘POST’ tag one or several times (otherwise the table has a header but is empty). Cell values from columns, which are prescribed in the row tagged by ‘POST’, are extracted and send to the web server.

END

The tag stops further sheet processing.

 

The HTTP POST request

An example of a body of the HTTP POST request, sent by the HTTP Request Manager to the URL (settled by the ‘URL’ steering tag), is shown below:

 

post; t1_column_name1; t1_column_name2          # Table with 2 columns

value; t1_cell_value11; t1_cell_value12                  # and 2 rows with data

value; t1_cell_value21; t1_cell_value22

post; t2_column_name1; t2_column_name2          # Empty table, no values sent up

post; t3_column_name                                             # Table with only 1 column

value; t3_cell_value                                                 # and 1 value

 

Mapping tags processed on the spreadsheet refresh

The tags are case insensitive. They can be placed everywhere, where it makes sense. They steer, how the data sent by the server is mapped back to the cells in the spreadsheet. There are following mapping tags:

 

Tag

Description

\noop

No operation. The processing goes to the cell in the next column. The tag prevents overwriting cell values in the sheet.

\eor

End of row. Cells after this tag are no more overwritten. The processing starts in the next row.

\eou

End of update. Cells and rows after this tag are no more overwritten. This is the end of the spreadsheet update.

 

How to install FastForward on the desktop?

You should have a Perl 5.8.x distribution from ActiveState and OpenOffice 2.2 installed:

If you wish to remove FastForward:

If you like to install the files according to your wishes, customize the parameters in the scripts. They are all self-explanatory.

You need an Apache server to test your desktop installation. vmFastForward - a virtual machine for VMware Player & Co with all the needed components installed can be found in the project downloads area. You need only to check the ip (linux command: ifconfig eth0) and update your spreadsheet and the server template (only for http://*.*.*.*/demo).

How to program the server part?

For more details, how to program applications on the server look at the man page and the examples directory of the perl package Apache::FastForward as well as the man page of Apache::FastForward::Spreadsheet.

 

Tips for developing and debugging FastForward applications

§       The interprocess data exchange is based on directories, check if they are set in a correct way.

§       Make a CSV dump of the sheet, move it to a directory, execute the http-rm.pl and check the result.

§       Check if the URL on the server template is the same as in the sheet.

§       Be ware that for a spreadsheet a value is entered into cell, when the focus is moved away from the cell.

§       Check the server template versus your sheet, if some values disappear or show up in a mysterious way.

§       Be ware of not mixing templates and work sheets (lines like “post, item, quantity, \eor” sent up to the server will be interpreted as a table with columns: item, quantity, \eor).

§       If debugging check by assertion at what place in your program the template is dumped down to the spreadsheet editor.

§       If changes affecting cell numbering are made to the spreadsheet after a template has been transferred to the server, the template should be updated.

§       If your cell formula disappears after a call to the server, check the position of ‘\eor’ – probably it is set this way that it allows overwriting the cell.

§       If a chart is embedded into sheet, an error in OO VisualBasic can appear during the first call – simply ignore it will work next call (poor behavior of OO scripting).

§       If VMware Player for the Apache part is used, it is better to set the connection to ‘bridged’ (if dhcp exists). ‘NAT’ is activated by default but throws connection error from time to time on a poor staffed machine and when VMware is pending idle for some time (just make a call again – it should work now).

§       While testing wait for the message box “No sheet update (no http response found)!”, otherwise OpenOffice crashes.

 

Bugs

Any suggestions for improvement are welcomed!

If a bug is detected or nonconforming behavior, please send an error report to <jerzy dot wachowiak dot xdash at interia dot pl>.

 

Copyright

Copyright 2006 Jerzy Wachowiak < jerzy dot wachowiak dot xdash at interia dot pl >

The FastForwad framework is free software; you can redistribute it and/or modify it under the terms of the Apache 2.0 license.

 

Author: Jerzy Wachowiak; Version: 1.3; Last update: 2007-06-01.

=FF=

 

SourceForge.net Logo