cancel
Showing results for 
Search instead for 
Did you mean: 

Problem when transporting form from DEV system to PRODUCTION system

Former Member
0 Kudos

Hi Experts,

We are developing forms in ABAP, for example there is a form developed in dev system and this form has JS coding in some UI elements events like initialize, on change and on exit; also has one script object defined as variable. this script object has some functions defined in order to do some common validations and field specific ones too.

The form in DEV work fine, all the functions calling, all the validations and the events are working properly as expected. But there is a problem when we moved the changes done in development system into production system. Specifically the script object has the problem: even though the coding is the same in both systems, in production system we had an script error: "Body.CATALOGPARAMS has no properties", as if the Body.CATALOGPARAMS was never instanciated, or it is not defined...

The code that produces this error is the following:

var itemCount = 0;
itemCount = Body.CATALOGPARAMS.DATA.instanceManager.count;

CATALOGPARAMS is table defined as context table coming from an ABAP FM where is filled and passed into the form.

In order to fix this problem I changed that part for the following

var itemCount = 0;
var catalogTable = null;
catalogTable = xfa.resolveNode("Body.CATALOGPARAMS.DATA");
itemCount = catalogTable.instanceManager.count;

This still works as fine as the other in DEV system. But my question is: will I have the same problem when we transport the changes to production system, you have to know that a transport is not something that you can do every day, so I am taking precautions before the transport. Which of both coding is the best for doing this?

Any observations, comments, questions in order to clarify some points are welcome, so please do it.

In advance, thanks a lot.

Mauricio.-

Edited by: Mauricio Poblete on May 11, 2010 4:20 PM

Accepted Solutions (0)

Answers (1)

Answers (1)

OttoGold
Active Contributor
0 Kudos

Hello,

I have faced something similar, you should tell if the same problem or not.

The problem was with the transports - I have sent the form to another system bud had the interface changes in the second transport which was not (it was, but later, I think) transported to the system. Because of that some crazy things happened. The problems with activation of the new content appeared in the target system (missing data type caused the structure was not activated what caused some more DDIC objects did not get activated) and of course the one with the scripting.

My advise is simple. Create a new transport with all the parts of the form (especially include the layout, the interface and all the DDIC used in the interface) and this should fix the problem.

Hope that makes sense and hopefully will help.

Regards Otto

Former Member
0 Kudos

As always, you are the first one to reply... thanks for that!

before everything, I activated the form, then I added this form to a new transport using se80 transaction: I navigated through the form objects and I added the form to a new transport by second click on the form -> other functions -> write transport entry. is this the correct way to assign a transport package with the entire form (including script objects, layouts, and all you told in the last reply)??

Can you give me a guide on how-to add the specific parts to the same transport for forms?

as always, thanks in advance.

Mauricio.-

OttoGold
Active Contributor
0 Kudos

There is no such thing as the "correct" way (my opinion). Create a transport, call it "hotfix" assign the form layout and the interface and then try to (we all make mistakes) add all the data types and stuff used in the form. You best shot is to check the PROD to find what is missing, I am sure you will find what is missing (the node not found by the script) and that will tell you exactly what parts you should check and transport again (probably that will be like: form interface, structure used in the interface and the data type used in the structure). I cannot describe it in any more detail because I would have to sit at the system to be able to do that, I hope you can understand that:))

regards Otto

OttoGold
Active Contributor
0 Kudos

P.S.:

the other possible reasons why would the code could be missing:

a) node is not included in the context because it is disabled (not instanciated in the form)

b) node is excluded by a condition (at runtime)

c) everything is ok, except the fact something has been changed in the interface and the changes were not "moved" to the context (like when you delete the context and drag and drop the whole content of the interface into the context).

Hope that will help you or anybody else,

Otto

Former Member
0 Kudos

Hi otto,

I don't know how to add the interface and the layout to the transport in separate ways. I can only add the entire form to the package... is there any tutorial on how to add certain objects inside the form object to a package? It will be a great help if you can point any tutorial about it. Or how can I check if those object are added to the transport?

in advance, thanks.

OttoGold
Active Contributor
0 Kudos

I don´t know about any tutorial, this is just an ordinary transport managament.

Just add everything you think the form needs into the transport package, do not care about the details (form layout and form interface are separate objects in SE80, I thought they can be separated in the transport as well).

Or ask any "older" colleague about the transports, as I said, this is not Adobe-related problem. If you can transport all the necessary objects, it will work ok, I believe.

Otto