HTTP Exporter
- Former user (Deleted)
- Zoe Baldwin
- Anthony George
This page is for data modellers who want to export data via HTTP.
Overview
An HTTP exporter outputs table data via a HTTP Datasource to an external web site or service, via HTTP.
To add a new HTTP exporter to an analysis model:
- Go to the model's toolbar → Create group.
- Click HTTP to expand the menu.
- Drag a HTTP Exporter onto the analysis model.
To add an existing HTTP exporter to an analysis model, in the model diagram toolbar:
- Go to the model toolbar → List group.
- Click HTTP to expand the menu.
- Click HTTP Exporter to open the list of available exporters.
- Drag an HTTP exporter into the analysis model.
The way that HTTP collector, exporter and header objects handle newlines in data depends on the data type.
String, XML and HTML
HTTP objects retain all newline characters in HTTP and XML data. To strip the newlines, add the following expression to the attribute expressions that use the data from the HTTP object
.replaceAll(in.value, "[\r\n]", ""
XML
As PhixFlow cannot include newlines in an attribute value, it automatically replaces newlines in JSON with a space. If you want the data to indicate where the newlines were, in the Statement Expression, specify the escape character \n
.
In the following sample of JSON, the paragraph symbol ↵ indicates a newline character.
{ “line1” : “Single line of text" “line2” : “Also a single line of text” “line3” : “Multiple lines of↵ text split over↵several lines” }
By default a HTTP collector retrieves...
Not sure how to deal with this for Headers and Exporters....
{“line1” : “Single line of text" “line2” : “Also a single line of text”, “line3” : “Multiple lines of text split over several lines” }
in the Statement Expression, specify ??? to return a string with the newline indicated by /n.
{“line1” : “Single line of text" “line2” : “Also a single line of text”, “line3” : “Multiple lines of/ntext split over/nseveral lines” }
HTTP collectors and exporters:
- replace newlines with spaces in JSON data. To retain newlines, see Statement Expression.
- retain all newline characters in HTTP and XML data. To strip the newlines, add the following expression to the attribute expressions that use the data from the HTTP collector or exporter.
.replaceAll(in.value, "[\r\n]", ""
JSON data automatically replaces newlines with spaces.
Property Pane Toolbar
For information about the toolbar options, see the Common Properties page, Toolbars and Controls section.
Properties Tab
Parent Details
If this item is within or belongs to another, its parent name is shown here. See the Parent Details section on the Common Properties page for more details.
Basic Settings
Field | Description |
---|---|
Name | Name of the HTTP Exporter. |
Enabled | Tick when the configuration is complete and the HTTP exporter is ready to be used. |
Send Message
Define details of the data that will be sent to the HTTP Datasource.
Field | Description |
---|---|
HTTP Request Method | Select one of the following HTTP methods to use for the request:
We recommend that you select a method but if you do not, PhixFlow uses GET or POST by default. If the Send Message → Statement Expression:
For information, see the w3schools page about HTTP methods. |
URL Expression | The URL to be used, without the leading http:// prefix. If this field is blank, the URL field on the HTTP Datasource Instance is used directly.You can embed expressions in the URL by enclosing the expression in ${…}. Syntax rules depend on the response language; see Embedded Expressions. Example This expression adds to the base URL provided by the HTTP datasource instance: |
Statement Expression | An expression to generate the data that will be sent by the exporter to the datasource. Embed expressions within a statement by enclosing the expression in ${…}. Syntax rules. see Embedded Expressions. The statement is encoded based on the Content-Type Header settings.
<?xml version ="1.0"?> <!DOCTYPE CORPORATE DASHBOARD "corpDash.dtd"> <results user="%USERNAME%" password="%PASSWORD%"> <monthlyTotals region={'"' + Region + '"'} division={'"' + Division + '"'}> <totalBilled>{'"' + TotalBilled + '"'}<\totalBilled> <totalCollected>{'"' + TotalCollected + '"'}<\totalCollected> <monthlyTotals> <\results> For how to configure and use usernames and passwords for a site, see Authenticating for an API and Secret Key and Local Secret.
See also Expressions and PhixScripts. |
HTTP Headers
This section has a toolbar with standard buttons. The grid contains a list of the HTTP headers defined for this exporter. To add a HTTP header to the list, click Create New. PhixFlow opens a new HTTP Header properties. To remove a HTTP header, use the Delete in the toolbar.
Response
Define how the responses from the HTTP Datasource will be handled if the the connection is either successful or fails.
Field | Description | |
---|---|---|
Connected successfully | ||
Record Export Time | Optionally, in the drop-down list, select an attribute from the input table. When the exporter writes a record to the target HTTP location, the selected attribute in the input record is updated with the export time. | If a record in the input table is not exported, the selected attribute is left blank. If a record is exported but the export is rolled back, the attribute will be updated by the export, then rolled back to a blank record. If a record fails to export, the attribute is updated and remains updated even if the export transaction in the target HTTP datasource is rolled back. |
Record Export Status | Optionally, in the drop-down list, select an attribute from the input table. When the exporter writes a record to the target HTTP location, the selected attribute in the input record is updated with the value from the Status expression. | |
Record Response | Optionally, in the drop-down list, select an attribute from the input table. When the exporter writes a record to the target HTTP location, the selected attribute in the input record is updated with any export messages from:
| |
Status | Enter an expression to report a status. For example: if(_success, _response, listToString($errors._MSGTEXT)) This value is used by Record Export Status to update an attribute in the input table. | |
Value to record on success | Enter an expression to report a response when the HTTP connection succeeds. For example: countElements($errors = xmlToItems(_response,"//ERROR")) == 0 This value is used by Record Response to update an attribute in the input table. | |
Connection failed | ||
Value to record on failure | Enter an expression to report a message when the HTTP connection fails. For example: _error This value is used by Record Response to update an attribute in the input table. |
Inputs
This section has a list of the HTTP Headers defined for this exporter.
Multipliers
Field | Description |
---|---|
Input Multiplier | Enter an expression that multiplies the data. This works in the same way as the Input Multiplier Expressions on tables and File Exporters. A complete export is carried out for each value in the list of values returned by this expression. If the expression evaluates to an empty list, then no export will be carried out. If no expression is set, a single export will be carried out. |
Advanced
Field | Description |
---|---|
Datasource | The HTTP Datasource that this exporter will send data to. |
Datasource Instance Expression | The target datasource for this exporter may list multiple HTTP Datasource instances. |
Exporter Icon | Enter the path for an image file that has been uploaded to the PhixFlow database. PhixFlow displays this icon in controls when the HTTP exporter is used. In PhixFlow version 11.1 onwards, an icon can be set by uploading an Image or using an image already uploaded to the application. If this field is left blank, PhixFlow checks for an icon set on the associated HTTP Datasource and uses that icon, and if that too is empty, then the default icon is used. |
Timeout (secs) | Tells the exporter to timeout each export operation after a number of seconds. If an export operation does time out, the operation will be abandoned and an error will be reported. Each record that is timed out is considered to be a single error when assessing whether the entire export should be stopped and/or rolled back - see Errors Before Rollback below. If no value is specified, the duration of an export operation is unlimited. |
Parallel Exporters | If required, you can specify that the exporter should use a number of parallel exporters. Each buffer of records read from the input pipe will be divided across the parallel exporters. The restriction applied to this is that if Group By fields are specified in the input Pipe to the exporter, all records with the same Group By key will be exported by the same exporter. If no value is specified here then only a single exporter will be used. |
Errors Before Rollback | If required, you can set the maximum number of errors found, while exporting across all exporters, before the exporter will rollback all uncommitted transactions from all exporters. Up to this number of errors, any errors reported from the exporter will appear as warnings in the log entries. The export will not be considered failed unless the number of errors is above this threshold. |
Errors Before Stopping | If required, you can set the maximum number of errors found, while exporting across all exporters, before the exporter will stop attempting to export records to the datasource. This is useful where you have set Errors Before Rollback (also configured on this tab), but wish to continue to try to export records to get view of how successful the remaining export would have been. Any records that the exporter attempts to export after the Errors Before Rollback limit has been passed will always be rolled back, even if they are successful. If no value is entered, the exporter will stop when the Errors Before Rollback limit is reached. |
Log Traffic | When system logging → Log Database Exporter Statements is ticked, PhixFlow always logs details of connections made by database exporters, whatever is set here; see System Logging Configuration. To change this property, you must have the Modify System Logging Configuration privilege. Untick to prevent logging. Ticking this box has no effect when the system logging option is ticked. Tick to log details of communication. Ticking this box has no effect when the system configuration option Allow Logging is not ticked. |
Commit Size | If you set Response options, the HTTP exporter is writing data into a PhixFlow table. Specify the number of records in a batch that the HTTP exporter writes to the database before committing changes. |
Analysis Models
If this item is used by an analysis model, its name is listed here. See the Common Properties page, Analysis Model section for more details.
Description
We recommend that you always enter a description to explain the purpose of this item.
Audit Tab
Audit Summary
See the Common Properties page, Audit Summary section.
Learn More
For links to all pages in this topic, see Analysis Models for Batch Processing Data.
Terminology changes in progress
As part of the redesign of PhixFlow, we are changing the following terms:
dashboard → screen
stream → table
stream attributes → attributes
stream item → record
stream set → recordset
stream view → view
stream item action → record-action
stream action → table-action
driver class → database driver