A WrapLink pulls a cell value from another wrap instance. When you click on the value in a WrapLink, it links to the source wrap instance that the value was pulled from. This allows the user to quickly traverse a web of complex information just by clicking on the most interesting linked values.
A wrap can fetch data from other wraps by using WrapLinks. As an example, this makes it easy to create dashboards that summarize information from many wrap instances.
Each WrapLink identifies the source wrap to be used for the lookup, the unique key that uniquely designates the right wrap instance, and the filter, naming the cell in the source wrap instance that you want the lookup operation to return. If you click on the linked value, the source wrap instance is opened, with the cell that provided the linked data highlighted. This makes it easy to analyze complex data just by clicking on whatever you find interesting.
Example: a dashboard cell shows an out-of-range measurement for a railway car bogie. If you click on this cell in the dashboard, you open the bogie detail wrap, with a highlight on the measurement that was shown in the dashboard. You can then return to the dashboard or continue zooming in on the problem.
The WrapLink widget can be used to collect key performance indicators. KPI data per day, week, month, or other periods can be automatically saved using a scheduling agent. Live data is updated on a regular basis so that your analysis is always based on fresh information. Historical data is securely preserved for long-term trend analysis.
You can use a Holder Cell to provide a dummy value to test the wrap already in Excel. When the wrap is run on the server, WrapLink extracts live data from the cloud database and returns it in the holder cell.
The WrapLink widget is a visual guide that helps you insert a wraplink() function into the current cell. If you want to link to a Wrap that doesn’t yet exist on the Wrapsite, you need to insert the =wraplink() function manually into the cell using the Function Reference section below. This is because the visual guide relies on the Wrapsite properties to provide a definition of the Wrap you want to link to, including its Unique Keys and the field you want the link to return. Without this information, the guide cannot give you much help anyway.
We encourage you to assign cell names to calculated cells, so that they get correct headings in MyWraps reports. A convenient MapToNames tool can save time by automatically using the field label as the cell name.
Select the source wrap from which you want to pull data. If you have a database background, you can think of this as selecting a table.
The first part of this section lets you specify all the keys and values that together form the Unique key that designates exactly the one source wrap instance that you want to pull data from. To continue the database analogy, a valid key will select exactly one row in the source table. As a developer, you may want to construct the key dynamically using runtime values from other cells in the wrap. You can insert cell references here like in the screenshot above, or by editing the inserted wraplink() function call as described below.
The second part of the formula builder lets you select the “filter” cell in the source wrap instance that you want the WrapLink to retrieve (the column, if you think of the wrap as a table). Special keywords allow you to request information about a signature (username, date etc), read more below. After the call has been made, the returned value will be inserted in the cell where the =wraplink() function call resides, and in the holder cell, if there is one.
While you test the wrap in Excel, you can provide a test value in a special holder cell to verify that other formulas in the wrap return the correct results. When you upload the wrap, live data automatically replaces the test value in the holder cell. For a WrapLink widget, the holder cell contains the data pulled from the linked wrap instance.
If you enable a holder cell for the widget, the cell immediately to the right of the WrapLink widget is chosen by default. You can change the location by clicking on the “pen” symbol and then selecting a different cell as the holder cell.
Holder cells sometimes contain information that you don’t want to show to the user of the wrap. In this case, tick this box to make the contents of the holder cell invisible in the wrap.
This is the value that the holder cell will contain during testing in Excel. When the wrap is running on the server, real values from the database are used, and the dummy value has no meaning. There are three possible types of values you can put here, depending on the situation:
The OADate format is easy to handle for Excel developers because it is the same as an ordinary Excel serial number, i.e. the standard decimal number that Excel uses for timestamps internally. The integer part counts the number of days and the decimal part tells the time of day.
When you use an OADate in a holder cell, it must be formatted as a decimal number, not using a date or time format.
Read more about testing Wraps in Excel.
If the source Wrap instance has been signed off and frozen, it always has the same contents as when it was signed off. Otherwise, the source Wrap instance is first recalculated. (If openmode=fast is in effect, cached data is used instead, read more below.) The value in the source cell designated by the filter parameter is copied into the target WrapLink cell. The value is linked to the source wrap instance using its unique key. If the user follows the link from the linked field to the source wrap, the filter cell is highlighted in bright yellow. The value in the filter cell is also copied into the holder cell, if any, to trigger any dependent calculations.
When a large number of instances are affected by the same operation, e.g. a dashboard-style Wrap that links to numerous other Wrap instances, recalculating all the instances can have a noticeable effect on system performance. If a linked instance in turn links to other instances that also need to be recalculated, the problem is further aggravated in a cascading fashion. To provide the most recent information for live Wrap instances, this recalculation is required to ensure 100% correct values, and users must wait for the recalculations to complete.
In many cases, however, the information being gathered is historical. As an example, a dashboard of KPIs for the current year, month, or week often only reflects events in the past. For historical data, the recalculation of all the instances is unnecessary because the data never changes. You should open such dashboard Wraps using the openmode=fast parameter in the link. With this option, all Wraplinks and WrapLinkAggregates will reuse the results from the most recent recalculation of each instance instead of recalculating it again, which drastically reduces the response time.
If you haven’t specified a filter parameter, the WrapLink instead uses the word Link as the anchor text for the link, and no data is returned from the source wrap.
If the value in the source cell designated by the filter parameter is empty or null, the WrapLink displays a red “not available” icon.
If you link to a wrap instance that does not exist, one of the following will happen:
If a new instance is created as a result of a WrapLink, you can provide initial data for any number of fields, directly in the WrapLink. Just add a field/value pair like train=96529 in the link to set the train field in the new instance to 96529. If an instance already exists, these extra field/value pairs are ignored.
If a new instance is created as a result of a WrapLink, you can designate the owner of the new instance, e.g. createdby=JohnDoyle. In the ExcelWraps permissions model, there is a separate set of permissions for the owner of an instance. This makes it possible for employees to have private access to their own sensitive information. Read more on the help page about Wrapgroups and Workgroups.
If the WrapLink points to a wrap that is not installed or where the unique key combination is invalid (does not resolve to a single wrap instance), a red “undefined” icon is displayed.
Sometimes, the recalculation of the source wrap never gives a stable result – the filter value does not settle after repeated recalculations. It is likely that the wrap source spreadsheet contains an error, like a circular reference. In this case, a red “retry” button appears. The user can click on the button to trigger another recalculation.
If the link in the WrapLink is empty, nothing is displayed and no link is created. This may be useful if you want to use an IF() statement in the WrapLink formula.
To delete a field, widget, wrap function or signature that has been stored at least once in the live production database is not a trivial task. The instructions below are only applicable during the initial development of a wrap, before it has ever been used in production. Read more about making changes to your wraps.
To remove a WrapLink widget:
One of the purposes of a WrapLink is to construct a valid hyperlink to another wrap. This link is a standard Uniform Resource Locator (URL) that contains your WrapSite’s name, a folder path, the name of the wrap, the names of the fields forming the key, and the filter name.
A URL must conform to certain rules, of which the most important is that the following characters have special meaning: ! * ‘ ( ) ; : @ & = + $ , / ? # [ ] Some of these characters are allowed in the names for Excel files, worksheets and cells, but we strongly recommend that you never use any of the reserved characters.
If you have a very special need to use one or more of the reserved characters (aside from their reserved meaning), they must be encoded. The reserved character /, for example, if used in the “folder path” component of a URL, has the special meaning of being a delimiter between folder names (path segments). If / needs to be used in a folder name, then you must percent-encode it to %2F or %2f instead of using the raw /. You can use the EncodeURL() function in Excel 2013 or later to percent-encode any names that may contain reserved characters.
If a wrap instance has been signed with the Freeze option, any dynamic data pulled into the wrap using WrapLinks, WrapLinkLists and WrapLinkAggregates will no longer be updated. A frozen wrap always reflects exactly the conditions when the freeze signature was signed.
Before you create your first wrap, you must install the Wrap Package that you downloaded from your wrapsite so that WrapCreator has all the information it needs about your wrapsite and how it is set up. The Wrap Package synchronizes Excel to your wrapsite and should be updated periodically to give WrapCreator access to the most recent wrap and user definitions.
In the example above, the following cell formula is inserted in the cell.
=@WrapLink("CL334_AddSnag?snagref="&Snag!$B$37&"&Filter=IssueDefect")
You can change the cell reference directly in the function call.
If the wrap has the mileage, unit number and car type in named cells you can use the following formula:
=@WRAPLINK("Class395-Bogie-PackPredictor?mileage=" & mileage & "&unit=" & unit_id & "&car=" & car_type & "&end=2&Filter=_ht12")
=@WRAPLINK("link")
link is a quoted text string that identifies the wrap you want to link to, provides the Unique Key for the single wrap instance you are selecting and what value you want to be returned from it.
The parameters for a link are specified in the query string. The query string is appended to the wrap name following a question mark. Within the query string, parameters are separated by ampersands. In the second example above, the query string begins with a question mark and sends five parameters to the source wrap: mileage, unit, car, end, and filter.
The link starts with the name of the wrap you want to link to, e.g. Class395-Bogie-PackPredictor in the example above.
The link must contain the full Unique Key that selects the single wrap instance you want to link to. The Unique Key is usually assembled from several values, e.g. for a bogie overhaul you may need to identify the unit number, the car type, what bogie on the car you refer to, and the mileage interval for the overhaul. You specify the components of the Unique Key using the field names that the wrap is using for these values. In the second example above, the Unique Key is provided by the mileage, unit, car, and end parameters.
If a new instance is created as a result of a WrapLink, you can provide initial data for any number of fields, directly in the WrapLink. Just add a field/value pair like train=96529 in the link to set the train field in the new instance to 96529. If an instance already exists, these extra field/value pairs are ignored.
In the ExcelWraps permissions model, there is a separate set of permissions for the owner of an instance. This makes it possible for employees to have private access to their own sensitive information.
If a new instance is created as a result of a WrapLink, you can designate the owner of the new instance, e.g. createdby=JohnDoyle. The user of the Wrap issuing the WrapLink must have the Create Wrap instances on behalf of others permission.
Read more on the help page about Wrapgroups and Workgroups.
If the wrap you link to uses the AutoNumber feature, you can designate any numbered instance using the autonumber parameter in the wraplink function call, e.g. autonumber=42. You can use autonumber=first or autonumber=last to link to the first or last existing instances. If you specify an autonumber that does not exist, ExcelWraps will offer to create the corresponding wrap instance for you. To explicitly request that a new instance is created, use autonumber=*. A grey plus button will appear in the WrapLink field. If the user clicks on the button, a new instance of the linked wrap is created. No data is pulled from the new instance and no link to it is created. The AutoNumber must be the last part of a unique key combination.
The filter parameter returns a field value from the selected source wrap instance. The value in the field with this name is displayed in the same cell that the =wraplink() formula occupies, and in the holder cell, if there is one. There are several special cases; read more under Results above.
Signatures contain information about the person who has signed, the company they work for, the date and time that the wrap was signed, the role required for signoff and the role required for unsigning. In the wraplink() formula, you can use some special keywords for signature cells (in the examples below, replace cell_name with your name for the signature cell).
You can only return the value of one field with a WrapLink, so the filter and filter-sig-xxx parameters are mutually exclusive. If you wish to retrieve more than one value from a linked wrap instance, you must use two or more WrapLinks.
You can use a Holder Cell to provide a dummy value to test the wrap already in Excel. When the wrap is run on the server, WrapLink extracts live data from the cloud database and returns it in the holder cell.
=@HOLDER(cell_name, dummy_value, hidden, holder_item)
cell_name points to the WrapLink cell using its cell name.
dummy_value contains a value you want the cell to provide during testing in Excel – at runtime, real values from the server are used instead. The dummy value must have the same data type as the value that will later be returned by the server.
hidden if set to TRUE, makes the contents of the holder cell invisible in the wrap.
holder_item is always empty for WrapLinks.
=@HOLDER(error_rate, 0, TRUE, "")