| Title: | *OLD* ALL-IN-1 (tm) Support Conference |
| Notice: | Closed - See Note 4331.l to move to IOSG::ALL-IN-1 |
| Moderator: | IOSG::PYE |
| Created: | Thu Jan 30 1992 |
| Last Modified: | Tue Jan 23 1996 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 4343 |
| Total number of notes: | 18308 |
Note 141, along with some other problems we've been experiencing with a custom application, has generated some questions about the new CM structure, particularly as it applies to compiled TXLs. As I understand the V3.0 CM structure, all "areas" can consist of base elements and site (i.e., customized) elements. When I compile either TXL, ALL-IN-1 can pick up *all* base elements or *all* site elements (or, at least, those which I've designated via CM$AUTH$LOCATIONS), and put them in the appropriate TXL. Furthermore, if there should be conflicts (i.e., elements with the same name in more than one base area, or more than one site area), my understanding is that the *first* one found will be compiled, and any others will be ignored. The question that arises relates to the difference between an applica- tion's base element, and an ALL-IN-1 site element. For instance, let's suppose that application A includes a new WPPRINT.SCP script as a base element. (I'm not going to get into naming conventions; I realize that all "good" applications will use unique names for their elements. But sometimes there is no alternative but to modify an existing ALL-IN-1 element.) If I understand the V3.0 compilation process, when I re-compile the A1TXL, if I have included application A as an authorized application, its base elements will be compiled into A1TXL, along with ALL-IN-1's base elements. And its site elements will be compiled into CMTXL along with ALL-IN-1's site elements when I re-compile CMTXL. But what happens if/when that element has already been customized in the ALL-IN-1 site area? It is a base element of application A; it will be compiled into A1TXL (in place of the original ALL-IN-1 element); but it still exists in CMTXL with its old customizations, and normal search order will find that element first. One "solution", of course, is to place such elements (i.e., elements with the same name as ALL-IN-1 elements, such as WPPRINT) in the application *site* area, so that they will be compiled into CMTXL. However, that now foils the purpose of having customizable application areas, since there is only one "level" of customizations recognized. That is, if I should ever customize the application element, I've "lost" the original application element. Is there a recommended approach for this situation? Right now my only "clean" approach is to leave the application area *out of* the compilation process, include the application directories in OA$FILE_SEARCH_ORDER, and have all users set OA$TXL_SEARCH_LAST to a 1. But this basically gets back to doing things the "V2 way". F
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 160.1 | strictly alphabetical? | SKNNER::SKINNER | I'm doing my EARS | Tue Mar 03 1992 19:59 | 16 |
Following up with what Frank is asking about, it would seem to me that (unavoidably) application areas that have a "duplicate" of something in another area (OA or otherwise) will have their copy placed into the TXL based on alphabetical ordering of the application entries. So if ALL-IN-1 EARS supplies something called X that FOOBAR supplies, the ALL-IN-1 EARS one makes it into the TXL, unless X also appears in the ABC application? If this is true, is there no other means of hierarchy? It would seem to be advantageous to be the A package instead of ZZZZ, as A's element will always be used (except in the case that Frank brought up in .0). A call to the support center for ZZZZ would result in lots of "well, you have to integrate the changes we shipped with those of A and ALL-IN-1 EARS and FOOBAR and ... before you can see our change, even though our version has all these changes already in it". /Marty | |||||
| 160.2 | Priority order based on CM$APP | SIOG::T_REDMOND | Thoughts of an Idle Mind | Wed Mar 04 1992 08:30 | 13 |
Each application (defined in CM$APP) has a priority number assigned to
it. The TXL compilation script builds a list of areas to be included
into the TXL sorted in priority order..... So you can ensure that
package A gets included before the OA application (ALL-IN-1), which
ships with a priority value of 50.
Priority orders are processed in descending order. An application with
priority 10 has precedence over one with a value of 50. Give your
application a priority value of 25 (for example) to include its
elements before ALL-IN-1.
Tony
| |||||
| 160.3 | TXLS still system-wide. | FAILTE::LAAHS | Two Cute Celts are better than one | Wed Mar 04 1992 09:43 | 18 |
The priority order is based on CM$APP firstly and then CM$MAF so you
can set the precedence for your areas within an application if so
desired.
The 'problem' described by Frank is related to the fact that the TXL(s)
are still system wide and not application-wide. We had lots of
discussions around using separate application TXLs when designing
CM+ but unfortunately they did not happen.
A solution to Franks problem would be to have WPPRINT for application X
install into both base and site areas - as if the element had been
customized. This would still allow you to check any customizations made
to the element and to revert back to the base if need be etc. However,
how would you know which elements were duplicate names of other
applications? Answer? The CART will tell you if you run it for your
application.
Kevin
| |||||
| 160.4 | Because of single elements in TXL, prioritize them. | CESARE::EIJS | All in 1 Piece | Wed Mar 04 1992 10:07 | 90 |
Hi Frank, Marty,
A start...
.1)
Yes, this situation has definitely crossed our minds, as the situation
you describe is not a rear one.
However, we decided to continue with 1 Base and 1 Site TXL. This might
put you in the situation you described, the situation of an element which
appears in more than one area, but will only appear once in the TXL. This
both for the A1TXL and CMTXL. But this is how the system wide TXL works.
It gets nuts with duplicate entries.
This situation doesn't differ too much from forms of the same name,
appearing in multiple libraries; only one can be accessed. However,
some manipulation of the OA$FORM_SEARCH_ORDER makes this somewhat more
flexible.
I would disagree on the 'foils the purpose of having customizable
application areas'. If you only take the TXL into account, strictly spoken
yes, it might look like that. However, seperate applications and
application areas do have a lot more advantages in contrast to the
situation of V2.*.
In case of your example where WPPRINT is supplied again, and the original
has been customized and made live, but you want the WPPRINT of your
application to be used:
- Check if the WPPRINT of your application needs to be adjusted
for the changes made to the original one (which is not impossible)
- Make the changes to your WPPRINT
- Make it live
- Assign a higher priority to your application (see .2))
- Compile the TXL
or:
- Copy your WPPRINT to Development (no changes to be made)
- Make it live
- Assign a higher priority to your application (see .2))
- Compile the TXL
(This is as you already suggested, only with the additional 'Priority'
list).
One could think of an application specific type of TXL,
which would be handled as seperate entities in a particular order (or a
flag should indicate which TXL to check/use), which then would prevent
the situation just described. The APPLICATION function could play a
possible role. But I'm very carefull when saying this.
.2)
Marty, when the TXL (either one) is compiled, the order is decided according
to Priority/Alphabet.
When creating an application, there is a 'Priority' field. By default, the
priority is '50'. If all applications (and areas within the appllication)
have priority set to '50', then the alphabet works. However, if, in your
case, X of FOOBAR should be compiled instead of X of EARS, assign a higher
priority ('1' is the highest priority, '99' the lowest) to application
FOOBAR by editing the 'Application' record.
This same procedure is possible with an application. If 2 application areas
contain the same element which should go into the TXL, you can change the
priority of the application area also.
The code is as follows:
FOR CM$APP:PRIORITY DO GET #CM_APP = .CODE \\-
FOR CM$MAF:PRIORITY WITH .CODE EQS #CM_APP DO GET #CM_AREA = .AREA \\\
FOR CM$AUTH$LOCATIONS WITH .AREA = #CM_AREA AND .TXL = CM$_Y -
The Priority secundary key consists of:
SEG0_LENGTH 2 \
SEG0_POSITION 363 / Priority
SEG1_LENGTH 4 \
SEG1_POSITION 0 / Application code
This means, if all entries have priority '50' the order is decided upon
the alphabet.
HTH,
Simon
| |||||
| 160.5 | Ever seen a complete team clash? | CESARE::EIJS | All in 1 Piece | Wed Mar 04 1992 10:08 | 1 |
| 160.6 | the team clash wasn't pretty, but it was helpful! | SKNNER::SKINNER | I'm doing my EARS | Wed Mar 04 1992 14:49 | 0 |
| 160.7 | Issue being worked | SIOG::T_REDMOND | Thoughts of an Idle Mind | Fri Mar 06 1992 22:50 | 4 |
Just to note that we are working the issue reported in the IPR, and
hope that we will have good news soon...
Tony
| |||||
| 160.8 | Non-TXL elements | BREAKR::MIKKELSONP | Kill me. I need the money. | Thu Mar 26 1992 19:33 | 12 |
Perhaps I missed this, but I read both the CM and Manager's Guide
and didn't see anything on it:
When new applications are created, what mechanism controls the opening
of their associated form libraries and the setting of the appropriate
search orders for users? I see how elements are integrated into the
TXLs, but I don't see how users access forms or non-TXL elements such
as command procedures for new applications. What am I missing?
- David
| |||||
| 160.9 | Roll your own | SIOG::T_REDMOND | Thoughts of an Idle Mind | Fri Mar 27 1992 11:36 | 10 |
Application initialization, which involves setting of search orders and
opening of form libraries, as well as checking for access rights etc.,
is totally the responsibility of the application itself. CM+ makes no
assumptions about applications and provides no default mechanisms for
their invocation. The reasoning behind this is simple - there are so
many ways that an application is started up in ALL-IN-1, and so many
good reasons why different approaches are adapted, that we couldn't
come up with a singular approach that we were happy with as a default.
Cheers, Tony
| |||||