Monday 3 June 2013

RelFrameID Attribute in web_reg_save_param()

The RelFrameID attribute represents the frame ID of the current HTML page relative to the requested URL. RelFrameID is not supported in GUI level scripts.

In Web scripts, a Relative Frame ID is specified as a dot-delimited sequence of decimal integers also known as qualifiers. You can specify a maximum of seven qualifiers, each qualifier ranging from 1 to 15. Zero is not a valid qualifier for a Relative Frame ID. The first qualifier is always 1, implying the first HTML page that is referenced (as a frame) by the requested URL. The next qualifier denotes the index of the next requested page.

The following section shows a sample hierarchy:


1. the requested URL
2. the first HTML page referenced as a frame by the requested URL
3. the second HTML page referenced as a frame by the requested URL
4. the first HTML page referenced by the 1.2 page.

The following gui delines apply to Relative Frame IDs:
Relative Frame IDs are ordered. The lowest possible Relative Frame ID of an HTML page is 1. This is significant when there is an ordinal match on multiple pages. VuGen uses the lowest ID. (see guidelines below)
The IDs are seven values separated with a point. Do not pass leading zeros, but do keep in mind that they are implicit and affect the order.
Argument
Implicit Value
Lowest to Highest
1
0.0.0.0.0.0.1
1.1
0.0.0.0.0.1.1
1.2
0.0.0.0.0.1.2
1.1.1
0.0.0.0.1.1.1


To see all Relative Frame IDs in the log, select Extended log - Advanced trace in the Log Run-Time settings. 

All non-HTML pages (e.g. resources) have a Relative Frame ID of zero Therefore, they cannot be explicitly referred to by a Relative Frame ID argument. 

If RelFrameID is not specified, or RelFrameID=ALL, VuGen searches all pages (including non-HTML pages) for the requested string. If the page is non-HTML, VuGen issues a warning indicating that the string was found in a resource rather than in an HTML page.
If RelFrameID is specified, VuGen does not search non-HTML pages. 

Specific Relative Frame ID (not RelFrameID=ALL) and Ordinal: When you specify a Relative Frame ID or if the Frame ID is retrieved by default, occurrences (ordinals) are counted within the headers and/or body of a single page, not across pages. The only exception is that a redirection of a page is considered as a continuation of that page. A redirected-to page has the same Relative Frame ID as its redirected-from page. 

Specific Ordinal (not Ord=ALL): When VuGen finds a match for the specified ordinal (occurrence) on more than one page, it saves the value from the page with the lowest Relative Frame ID. If ordinal matches are found in one or more non-HTML pages, the value saved by web_reg_save_param, web_create_html_param and web_create_html_param_ex is the value from the last match it encountered. This value may differ between runs, depending on the order in which the data arrived from the server.
Ord=ALL: When you specify Ord=ALL for parameter named <param_name>, all the matches within the specified or defaulted Relative Frame ID (including non-HTML pages) are saved into parameters named
< param_name >_<occ>", where "<occ>" begins at 1.
< param_name >_count is set to a null-terminated string representing the total number of matches.

When no match is found, "<param_name >_count" is 0.

In the following example, web_reg_save_param saves the first occurrence (e.g., "HTML") into "Tags_1", the second (e.g., "HEAD") into Tags_2, and so forth. 

web_reg_save_param("Tags", "LB=<", "RB=>", "Ord=ALL", LAST)

Note: It is not recommended to refer directly to a specific occurrence (e.g., "Tags_9" or "Tags_21"). The order of occurrences may not be constant between runs, so that referring directly to a specific occurrence may yield a different value for each run. There may also be other ambiguous cases. Instead of referring to a specific occurrence, loop through the returned values to locate the value in which you are interested. 

Use Ord=ALL to search all saved values, not specific occurrences.
RelFrameID=ALL: Instructs VuGen to scan all frames (including non-HTML pages). When you explicitly set RelFrameID=ALL, you cannot specify an ordinal; the setting is automatically "Ord=ALL" . This is because occurrences (ordinals) are counted in the order in which they are encountered. Since frames and resources are downloaded in an unpredictable order, the order of the occurrence is unpredictable and may be different from run to run.
Defaults :If the RelFrameID attribute is not specified (or cannot be specified, as in web_create_html_param and web_create_html_param_ex), the default is RelFrameID=ALL.

No comments: