Working with the ifshome protocol

The ifshome protocol allows external applications to link into IFS Enterprise Explorer (IFS EE) features when they are not aware of the feature name - but are aware of the Entity name or the View name.

Contents

Background

Some external applications (commonly the applications that access the database) will be able to identify the view name and the keys to an object in the database but may not know the correct client side feature or application form that can display the object. In such cases the ifshome protocol allows the application to create links to IFS EE defining only the View or Entity. IFS EE then resolves the correct client side home page for the given entity. When used along with the external_search parameter it can be used to do search into an IFS EE form.

All ifshome protocol url's begin with ifshome: and contain the View or Entity being targeted.

Some Examples

From inside IFS Enterprise Explorer, if you wish to search for a database object(s) such that the view is DOC_TITLE_2 and the keys are DOC_CLASS = 100 and TITLE = 'test', but you do not know the home page on the IFS EE client, you can do the following:

ifshome:view.DOC_TITLE_2?external_search=DOC_CLASS%3d100%26TITLE%3dtest

Note the URL contains 3 components. Firstly the ifshome: prefix along with the type of target (a view in this case). This tells IFS EE that you are linking to a View instead of an Entity. This differentiation is important as on the client side Views are used as the underlying data source for Application Forms and Entities are used for Features. The relationship between an application form and a view is always 1 : 1, whereas a feature can show multiple Entities.

ifshome:view.

If you were linking into a entity (such as FndUser) then the url form would be:

ifshome:entity.

The '.' separates the entity name or view name from the type keyword.

view.DOC_TITLE_2

The name of the view should be in UPPER CASE separated by underscores. If you are linking to an Entity then it should be given in the form below. Notice that the Entity name is in PascalCase (starting letters of new words capitalized and no underscores between them).

entity.FndUser

The third and final part of the url is the external_search parameter, which contains a URL encoded list of name value pairs of the fields that you wish to filter the contents by.

external_search=DOC_CLASS%3d100%26TITLE%3dtest

Notice that the "=" and "&" characters have been encoded. The un encoded form looks like this:

DOC_CLASS=100&TITLE=test

You need to escape literal uses of ‘&’ and ‘=’ with a ‘\’ for the parser to recognize them:

DOC_CLASS=Jack\&Jill&DOC_NO=12345

Spaces within the data is allowed:

DOC_CLASS=My Doc Class&DOC_NO=12345

When calling from outside the application, the entire ifshome url is passed into the activation url (the one ending with the Ifs.Fnd.Explorer.Application) like so:

http://someserver:8080/somepath/Ifs.Fnd.Explorer.application?url=ifshome%3aview.DOC_TITLE_2%26external_search%3dDOC_CLASS%253d100%2526TITLE%253dtest

Notice the total ifshome url is encoded.

Formal Definition

Rules

ifshome = 'ifshome:' type_name '.' TOK_NAME '?' PARAMETERS

type_name = 'view'
	  | 'entity'

Tokens

TOK_NAME: An alphanumeric string. Can contain "_" characters. Eg: "CustomerID" or "DOC_CLASS". 
	  View names should be in Capital Case (DOC_TITLE_2)

PARAMETERS: Any other valid url parameters such as the external_search


Writing an ifshome url Generator

This can be done easily. You need to know the following in advance:

  1. The name of the View or Entity you wish to display in IFS EE.
  2. The field names on the database side that you wish to search on.
  3. The format of the ifshome url (above).

Generating the url can be done by writing a program in a language of your choice to do the following:

  1. Create the key list by stringing together the fields for the external search parameters.
    DOC_CLASS=100&TITLE=test
  2. Encode the key list:
    DOC_CLASS%3d100%26TITLE%3dtest
  3. Attach it to the ifshome url along with the View or the Entity:
    ifshome:view.DOC_TITLE_2?external_search=DOC_CLASS%3d100%26TITLE%3dtest
  4. Encode the whole ifshome url:
    ifshome%3aview.DOC_TITLE_2%26external_search%3dDOC_CLASS%253d100%2526TITLE%253dtest
  5. Finally attach the generated url to the activation url for the IFS EE instance that is being targeted.
    http://someserver:8080/somepath/Ifs.Fnd.Explorer.application?url=ifshome%3aview.DOC_TITLE_2%26external_search%3dDOC_CLASS%253d100%2526TITLE%253dtest

Now navigating to the url in step [5] will cause IFS Enterprise Explorer to open the correct form and populate it with records based on the search criteria in the external_search parameter.

URL Creator

Parameter Value
key list
search type
IFS url
IFS EE location

Link Test link