Add RV to a UBE section that has Layout Overrides

BOster

BOster

Legendary Poster
We have a UBE where one of the sections has Layout overrides. It does NOT have any ER code overrides. We need to add a new RV variable to the template and then set the value in ER code. When we do this, the sections that have layout overrides error since an RV with this spec ObjectID number doesn't exist in the version that has layout overrides. Further more we can't simply add the same RV to the versions that have layout overrides because adding a new RV to one of these sections does not necessarily assign it the same ObjectID so the template ER code still fails. We want to avoid having to override the ER code on these versions as well (14 versions with layout overrides).

Is there any way to add a new RV variable to the template, create template ER code that assigns the RV variable when some of the versions have Layout overrides on that section?
 
I created a quick test of the scenario you have described. In my test, I have ...
1. Created a Copy of R0006P into R550006P.
2. Created TESTVER1 for the R55 without any overrides.
3. Created TESTVER2 for the R55 with a Layout override (no ER over-rides). Now I add a new DD item (EV01) to one of the sections on R550006P|TESTVER2.
4. Now on the R550006P (base template) I added the same DD item. I also added ER on the R550006P to populate the new RV to a “1”.
5. On running TESTVER1 it gives me the expected result – EV01 with “1” populated and displayed.
6. On running TESTVER2 it also gives me the new field populated with a “1”.

It does not give me the error that you are getting. Not sure if I missed something from what you are trying.

Attached is the output from TESTVER2.

E1 Standalone 9.1.0.1, Oracle, Win 7 64 bit
 

Attachments

  • 187175-R550006P_TESTVER2_D140328_T142053393.pdf
    33.5 KB · Views: 19
I think you got "lucky" in this scenario meaning the Version level override you created got the same Object ID as the one you created in the template. If you add several objects to the override version and only one to the template you should see a different result. Or simply override the section layout without adding any objects. Then add a new object to the template along with ER references it. If you look at the version with the override, the ER will show the ***MISSING NAME*** since the "new" object does not exist in the version.

When you declare version overrides, you get a copy of the template specs at that point in time (for the layout or ER etc.)

Brian is experiencing one of the pitfalls of using version overrides. If you want to re-inherit the template changes, you need to disable the override and then re-apply the version specific changes.

Craig
 
[ QUOTE ]

Brian is experiencing one of the pitfalls of using version overrides. If you want to re-inherit the template changes, you need to disable the override and then re-apply the version specific changes.


[/ QUOTE ]

Ugh. I was afraid that would be the solution. We only have a couple of UBEs with version overrides, I have always viewed them as plan Z. I am not sure why we decided to go this route on this UBE. We could solve our problem by also enabling ER override on the section since the code that is not working can easily be placed on the section, but that is yet another multi-maintenance headache going forward.

So, the overridden section ObjectID/BhvrID are "behind" the template. However, not with the same "gap" in other words the template might be 100/120 and the section is 90/91. I thought I could "fake" it out by just adding objects to the section until the next object I add would be at the same ObjectID/BvhrID number as the template but I am not sure I can get the IDs to line up exactly to the template (100/120). Which ID does ER code use? If I got just ObjectID or BhvrID to the same number as the template would that work?

Oh and one other possible solution. I know some of you out there have saved objects to a PAR file and then edited the specs outside of the JDE toolset (are the specs simply exported as XML files???). Any hope of adding the RV object to the version by hacking away at the PAR file?
 
It's the BhvrID that ER references. You can try to synch them up between the template and the version. They are sequential and seem to start when you open the object in RDA. If you delete an object and re add, the object ID may be re-used but the BhvrID will keep incrementing. If you delete an object, close RDA, re-open and add an object, the BhvrID seems to start over again from the highest (at least that's what I think I saw)

You can try the XML route, but that may get tricky with some of the complex ER operations.

Good luck, I agree with you about "plan Z" but in rare occasions it is the best solution.

Craig
 
Thanks. We may try the manual sync approach and see if that works. Will post back with results or final resolution.
 
Hello BOster,

Instead of your plan Z you could use BIP. This way you've your custom layout outside version's overrides. And if you need to modify layout, then you change/add what you need on the template UBE and then add/change the template BIP without modify overrides at version level.

Hope you understand my idea (my english is terrible).

BR,


Luis.
 
I have been lobbying for BIP for some time now. Not sure if we will ever actually implement it. BTW, a lot of these versions go through Transform (formerly FormScape) so I am not really sure why we did layout overrides to begin with.

The UBE is R42520 btw. Heavily modified with layout overrides and some sections have ER version overrides, etc.
 
Just to follow up with our resolution.

The problmatic section had Layout Overrides, but did NOT have ER overrides and we wanted to keep it that way. Had we simply chose to also override the ER it would have been a moot point. We were actually adding the RV to the template and versions w/o Layout overrides worked fine, but the versions with Layout overrides crashed since the template ER code couldnt find the RV variable.

We solved this by creating and calling a new hidden/conditional section in the Template ER code from the section that had layout overrides at the point we needed to do RV layout specific RV assignments. In the new section we did the RV assignments on the calling section, then we made the new section version specific by overriding the new section's ER code on the versions that had layout overrides. In this way we kept the ER code at the template level for the section with layout overrides and then called a new, version specific section that had version specific ER code when we needed to do vesion specific RV assignments. Confused???

<font class="small">Code:</font><hr /><pre>
LayoutOvr EROvr
--------- -----
SectionA Y N
SectionB N/A Y
</pre><hr />


SectionA calls SectionB which assigns Layout Overridden RV variables back on SectionA. SectionB ER code can be version specific while SectionA ER code can be left Template Only.
 
Back
Top