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 |