DeepLinks
Deeplinks provide configurable navigation to a 3rd party URL from any OIPA screen, that is compatible with dynamic fields. It present an external URL navigation button on OIPA screen. User can update external targets by encoding data in the URL.
LinkExternal DataType will not be saved in the database where a dynamic field on an entity (e.g. Activity, Policy, Client) normally persists. The field behaves similar to a Line DataType.
Note: This feature cannot perform forms or other http payloads.
Configuration
In the Fields section of any screen rule compatible with dynamic fields, configure a field element with a DataType value of LinkExternal as shown in the following example to add a clickable button on the screen. When a user clicks this button, a new browser tab /window opens to the target URL as configured in DefaultValue.
Allowed Domains: The user can configure only allowed domains (valid external/deep links) in any OIPA screen rules. The URLs configured for the Field Element of data type 'LinkExternal' should belong to active records of 'ASALLOWEDDOMAIN' table, else the system throws a validation error at the time of rule checkin.
Allowed List Validation with Examples:
- The system allows to configure the URLs (external links) that are in the HTTP / HTTPS format only.
- The system throws an error if the following type of links are configured in the rule at the time of rule check-in.
- Links configured using <IFRAME> . Example, <LINK><IFRAME>http://www.oracle.com</IFRAME></LINK>
- Links configured using javascrip eval function. Example, <LINK>eval('http://www.oracle.com')</LINK> or <LINK>https://www.oracle.com/eval('http:/www.dmv.org')<LINK>
- Links configured using ftp or file. Example, <LINK>ftp://www.Oracle.com</LINK> or <LINK>file://www.Oracle.com</LINK>
XML Example:
<Field>
<Display>Click Me</Display>
<Name>URLText</Name>
<DataType>LinkExternal</DataType>
<DefaultValue>https://www.oracle.com</DefaultValue>
</Field>
Note: The existence of a Field with DataType of LinkExternal in any rule does not create any record in As*Field table or any other table.
Element/Tag | Definition | Attribute | Element/Attribute Value and Description |
---|---|---|---|
<Display> |
The Display element is a clickable label. It is translatable like other field labels. |
BOLD |
The Clickable label text will be in bold letter. |
ITALIC |
The Clickable label text will be in italic letter. |
||
HIDDEN | The Clickable label text will be in hidden state. | ||
It supports i18n. Note: i18n tools assist translation of text into multiple languages. |
|||
<Name> |
The Name element identifies this field to configuration in the screen. It acts like any other field, except for not being persisted to the database. |
String Example: URLText, or ExternalLink |
|
<DataType> |
DataType of the field.
|
LinkExternal: Presents a clickable label to the user. Click the label to open a new browser window/tab to the URL defined by the configuration. Important: This is a special DataType that will not be saved to the field table of the parent entity. |
|
<DefaultValue> |
The element defines initial target URL.
|
Use either <DefaultValue> or <Calculated>. |
The URL of the external link. Example: http://www.yahoo.com |
<Calculated> | The element is used to refer to the target URL in other field. | Address to the other field. |
Example of a DeepLink Field in Inquiry Screen
<InquiryScreen>
<Output>
<Result DISPLAY="LinkTest">
<Query TYPE="Math" VALUATION="No">
<MathVariables>
<MathVariable VARIABLENAME="URLText" TYPE="VALUE" DATATYPE="TEXT">http://www.oracle.com</MathVariable>
</MathVariables>
</Query>
<Fields>
<Field>
<Display>Click Me</Display>
<Name>URLText</Name>
<DataType>LinkExternal</DataType>
</Field>
</Fields>
</Result>
</Output>
</InquiryScreen>
Actions / Events Supported in Deeplinks
The Deeplinks Field with DataType of LinkExternal , supports all three event types (On Call, On Change and On Submit) with the following actions:
- HIDE
- SHOW
- DISABLE
- ENABLE
- ASSIGN
For the configuration of Actions and Events in Deeplinks field, refer to Events Pane.
Example
Following is a Annotated ScreenRule example with the comments inside code for better understanding.
<Fields>
<Field>
<!--the LinkExternal DataType is used to define a field as a button,
the text value of which will be passed to a javascript window.open( encodeURI( <value_of_field> ) );
call when the button is clicked. Other field features, hidden, bold, italic may also be applied dynamically.
This is a special DataType that will not be saved to the field table of the parent entity. -->
<DataType>LinkExternal</DataType>
<!-- the Name element acts like any other field, except for not being persisted to the database -->
<Name>ExternalLink</Name>
<!-- the Display element is the text label of the button, it is translatable like other field labels -->
<Display>Open an external link</Display>
</Field>
<Field>
<Name>LinkPicker</Name>
<Display>Choose Destination</Display>
<DataType>COMBO</DataType>
<Query TYPE="FIXED">
<Options>
<Option>
<OptionValue>Please Select</OptionValue>
<OptionText/>
</Option>
<Option>
<OptionValue>http:///www.yahoo.com</OptionValue>
<OptionText>Yahoo</OptionText>
</Option>
<Option>
<OptionValue>http://www.msn.com</OptionValue>
<OptionText>MSN</OptionText>
</Option>
</Options>
</Query>
</Field>
</Fields>
<Events>
<Event TYPE="ONLOAD">
<Math ID="ONLOADScreenMath"/>
<ActionSet ID="ONLOADActionSet"/>
</Event>
<Event TYPE="ONCHANGE" FIELD="LinkPicker">
<ActionSet ID="ONCHANGEActionSet_Link"/>
</Event>
</Events>
<ScreenMath>
<Math ID="ONLOADScreenMath" GLOBAL="No">
<MathVariables>
<MathVariable VARIABLENAME="LoadURL" TYPE="VALUE" DATATYPE="TEXT">http://www.google.com</MathVariable>
</MathVariables>
</Math>
</ScreenMath>
<Actions>
<ActionSet ID="ONLOADActionSet">
<!-- To programatically assign a destination for the new browser window/tab,
use the ASSIGN action type with the full URL text constructed via math -->
<Action ACTIONTYPE="ASSIGN" FIELD="ExternalLink">ONLOADScreenMath:LoadURL</Action>
<!-- If using in a screen-wide disabled field context, e.g. PolicyScreen with DisablePolicyFields active,
the button should be made enabled explicity via ONLOAD event -->
<Action ACTIONTYPE="ENALBE" FIELD="ExternalLink"/>
</ActionSet>
<ActionSet ID="ONCHANGEActionSet_Link">
<!-- ONCHANGE or ONLOAD can be used to assign the URL via a field value as well -->
<Action ACTIONTYPE="ASSIGN" FIELD="ExternalLink">LinkPicker</Action>
</ActionSet>
</Actions>