Page 1 of 1

Recompile Web Components after EPC Install

Posted: Fri Aug 11, 2017 11:52 pm
by jyoung
About to update our DEV system with EPC 141050. I am in a Slave setup with an IBM i.

The support page http://www.lansa.com/support/notes/epc/epc141050.htm mentions recompiling ALL web components
After applying the EPC, if you recompile any web component (web page, reusable part, widget), to avail of the VL Web runtime performance changes and improvements for example, you will also need to recompile all components that generate javascript. LANSA recommends recompiling all your web application objects after applying this EPC to avoid any compatibility issues.
We have about 100+ individual objects that include Reusable Parts, Web Pages and Widgets.

My understanding is that web components are compiled on the workstation and to update the components on the DEV server (IBM i), I have to check-out, compile and check-in every component.

Is that correct?

We are just at the tip of the proverbial iceberg when it comes to our modernization initiative. What is going to happen when we have a 1000+ of these components and have to do an EPC update?

Is there a way to "batch" compile everything?

Re: Recompile Web Components after EPC Install

Posted: Sat Aug 12, 2017 10:17 am
by MarkD
That is the complete and safest recommendation.

The key thing to remember is that after upgrading, if you recompile a VL-Web reusable part, you will need to all recompile the web page(s) that contain it. If you don’t you will get a clear error message if you try to execute it.

My understanding is that when you (re)compile a reusable parts it locks into using the latest VL-Web run time engine.
ie: the one just installed by the upgrade.
The run time engine used is loaded by your web pages as they start up.
So a (re)compiled reusable, locked into using the latest run time engine, needs its hosting web page(s) to load the latest engine at start up.

Personally, I just recompile all my web pages after any EPC upgrade to be safe.
That can involve checking them out, recompiling locally, then checking back in with the compile option on.
I do not recompile anything else unless I am changing it.

Re: Recompile Web Components after EPC Install

Posted: Sat Aug 12, 2017 10:23 am
by MarkD
That being said, this might be a reason to recompile anything VLF-ONE related

http://docs.lansa.com/14/en/lansa048/in ... 8_8005.htm

If you get any hits on this please, let us know via the forum what they are and we'll post the new alternatives.

Re: Recompile Web Components after EPC Install

Posted: Mon Aug 14, 2017 11:11 am
by dannyoorburg
Hi,

NO, you don't HAVE TO recompile everything. As Mark said, if you recompile the Web Pages (and you've probably only got one for your whole app), you will start using the latest VL WEB Runtime (as it gets included from the generated HTML) and you're up to date.

Previously compiled components should be OK to execute in that runtime, if LANSA ever decides they're not, you will get a clear message telling you to recompile those components as well.

BUT... even if most fixes in an EPC seem to be fixes to the runtime, that is not necessarily the case. Some bugs might have been fixed by improving the generated JavaScript. If you don't recompile, you're not going to get those fixes.

I would play it safe and recompile my whole app... I've got Repository lists set up that capture all objects that make up my applications (usually just with a simple PREFIX search). So it's just a matter of right-clicking on a list, open the sub-menu that says "MY LIST: (xxx) Objects" and select Compile/Check In/Check Out on them all.

... but it's up to you, you can choose to only compile the parts again when you change them.

Cheers,
Danny

Re: Recompile Web Components after EPC Install

Posted: Mon Aug 14, 2017 11:37 pm
by jyoung
Thanks,

Good to know about compilation differences between pages and components.

I have everything organized into two different lists (one for each app based on a naming convention), sounds like it may be best to heed the advice and compile everything.