cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Christopher_Pai
Level 16

Components, Extensions and Verbs

I was wondering if someone would be willing/able to help me understand something that I've never dug deeply into.

I have a requirement to create an install with:

Features: Viewer, Editor
Components: Viewer, Editor

File Extension .FOO

The features are not mutually exclusive.

The goal is if both features are installed, the default verb for .FOO is to edit with the Editor component and a Secondary verb is to view it with the Viewer component.

If only the Viewer feature is installed, viewing with the viewer component should be the default action.

Is this possible with MSI? The schema is confusing me. The extension table has PK columns of Extension and Component_. This suggests to me that a file extension can be served by multiple providers.

But the verb table has PK columns of Extension_ and Verb. This almost makes sense as a file extension can have multiple verbs.

But what is confusing me is how do I associate the verb to the correct component? The SDK doco makes reference to "the component that owns the verb." but there is no join to the component table and the join via the extension table seems ambigious.
Labels (1)
0 Kudos
(3) Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

If you have a record in the Verb table that links to a foreign key in the Extension table, the Extension table record contains the component and feature association used to register the verb at runtime (the relationship to feature/component is indirect; the Registry Table Group diagram may help). Multiple Verb table entries using the same Extension foreign key would have the effect of being associated to the same feature/component. The verb with the lowest sequence number will become the default verb for the extension (although it is unclear if this works when different verbs for the same extension are in different components).

You can use the Advanced Settings|File Types view available for each component in the Setup Design or Components view to abstract the table information into something a little easier to understand.
0 Kudos
Christopher_Pai
Level 16

I'm guessing that multiple verbs belonging to multiple components for the same file extension isn't supported?

I've never tried this before and I'm hoping to get a solid answer before running off reservation with the registry table and/or custom actions.
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The limiting factor does appear to be the Verb table. It is possible to have the same extension across multiple components in the Extension table, but attempting to use the same extension and verb in the Verb table will duplicate primary keys. The tables probably are designed this way for advertisement purposes (a given product code/feature/component code/keyfile combination can only be used once). The Extension table does impose a similar limitation by only allowing one extension/component combination with a given feature; anything beyond the one combination will duplicate primary keys.

The simplest solution to this issue would likely be to use the Registry table to create the extension and verb keys per component.
0 Kudos