batmush
19th January 2005, 19:05
Hi guys,
I changed one of layouts in existing report (only display name) but after compile I have got many errors on other fields and layouts (the report was developed many years ago). I printed report again but I don't see my change. I open layout and I do see my change.
Can other compile errors prevent my change to be done?
Thanks.

lbencic
19th January 2005, 19:34
Hi -
Yes, any compile errors will prevent the new object from being created, so your change will not be seen until it compiles.

What errors? Do you know, if you made a backup or remove your changes, if the report compiled before your change?

mark_h
19th January 2005, 19:34
Any compile errors will prevent the changes from appearing. You may want to just compile the original report first - make sure it compiles. Then make your changes and make sure the compile works - then you should see your changes.

Mark

batmush
19th January 2005, 19:36
It is very strange - the original report has all errors but it works.

lbencic
19th January 2005, 19:56
Typing over each other again huh Mark.

The original report compiled at some point, so you go the object. You run objects, not uncompiled report data/layouts. Some changes may have then been made to the report data that makes it not compile, or something else has changed in the system and it's no longer valid to compile. Maybe some one a while ago made changes to the report and never got it to compile. Then the compile will not work, but the originally compiled object will keep running until it's replaced by a new one.

shah_bs
19th January 2005, 22:26
Try as follows:

Compile the report in DEBUG mode - this should give you, in the output report, all the fields or domains which are in error. It should be easy to fix the reported errors. If the errors do not point to specific fields or domains, then I am afraid you will have to step through each field of the report and check that the domain of each field is correct and not blanked out for some reason.

Hope this helps.

günther
20th January 2005, 08:59
Sometimes a missing input field or a meanwhile removed table field result in compile errors. This can be found by stepping thru "Maintain Report Layout fields" and checking for all(!) layouts the column "domain".

If anything fails: Copy your report, then step be step remove a layout and try to compile. Don't forget to remove the report script as well. After all, you should at least know where to look closer ...

Günther

Andreas
20th January 2005, 13:55
I changed one of layouts in existing report (only display name) but after compile I have got many errors on other fields and layouts (the report was developed many years ago).


Compile the report in DEBUG mode .

Hi Shah,
very interesting.
How can you compile a report in DEBUG mode when it gives compile errors :confused: :confused: :confused:
;)

Andreas

Hitesh Shah
20th January 2005, 16:19
The original report may not be able to compile because some includes used may not be present now , data dictionary may have changed now or somehow the records in ttadv330-335 may have changed for this report while original report object still exists.

The original report which is running now may also fail with runtime error if there is an adverse change in domains/tables used in the report and code referring to such domains/tables is executed under certain specific conditions only and not always.

norwim
20th January 2005, 17:12
Andreas ...

the interesting thing about compiling in debug mode is not that the compiler will succed then, BUT ... the (temporalily created) source of the report part will be kept (in $BSE/tmp) instead of being deleted *g*

just for the records.


watch out where the huskies go .....
and don't you eat that yellow snow *g*
F.Z.

regards

Norbert

shah_bs
20th January 2005, 17:34
When you are in the session "Maintain Reports", there is a button called "Debugger" just below the button "Compile". The "Debugger" button will compile the report in debug mode - it will still not succeed in producing the object code for the report because there are errors, BUT it reports the errors in more detail than if you just "Compile".

Andreas
21st January 2005, 09:08
Hi Norbert and Shah,

didn't mentioned this till now.
never to old to learn something new.

*g*
Information Is Not Knowledge
Knowledge Is Not Wisdom
Wisdom Is Not Truth
Truth Is Not Beauty
Beauty Is Not Love
Love Is Not Music
Music Is THE BEST

F.Z.
*g*

greetings,
Andreas

en@frrom
21st January 2005, 15:51
Shah,

I don't know about Baan IV, it's been too long since I last worked with BaanIV. In BaanV however, there is also the option 'Compile', and below it 'compile with debugger'. This doesn't however compile in debug mode. It does the same as the regular 'compile', just it places the object in debug mode, IN CASE COMPILED WITHOUT ERRORS.

Is his different in BaanIV??

batmush
21st January 2005, 18:09
Thank you guys,
There are lot of errors to deal with and my change is only address.
Is there some way to "pass" through the errors in compilation?
Even by updating "black screens" (shell)?
Thanks.

lbencic
21st January 2005, 18:20
No. Warnings you can supress, but not errors.

Sometimes errors have to do with something simple, and fixing one will fix a whole bunch.

What errors - if you can post the errors maybe we can suggest.

As Gunther mentioned above, a common error after a long time is that the domains of some fields are changed, and are now blank on the report. You can check this real quick by pushing the 'Layout Fields' button and flip through, make sure all the fields have a domain on them. If you can't find the problem, try tabbing through everything in that session. If still can't find, open up the layouts (Maintain Layouts), tab through stuff there, then open each field on the layout and start tabbing through. Tabbing will validate each field, and often throw you the error.

Or post the errors so we can see if there is a clue there.

batmush
21st January 2005, 20:48
Here you go!

lbencic
21st January 2005, 21:16
Nice. I would hazard a guess that you are having a version issue....the function include tdsls0006 is not happy about global variable declarations..report variables are not seen...do you even have source code? Maybe your source is old. What version/localiazation are you on?
Some steps you can go through:
Do you have any customized version of the function tdsls0006 (does that function exist in your VRC or is it only in the standard)? If customized, I think it needs to be updated to the current version. Probably it's not that simple though.
If it's not customized, this include is used in a few standard reports. Can you compile the standard version of them? Try the standard version of Quotations (tdsls14010100). Copy that report from standard to a NEW NAME in your VRC - something like "tdsls1401test" (do not overwrite anything, do not keep the same name or you may effect production!) and try to compile...does that work? Delete it when you are done with this experiment. If it does not compile, do you have a Baan admin? Show them that the standard reports will not compile, something in your version is not correct. Probably at the minimum your version of the source code for tdsls0006 is out of date.
If the standard report does compile, is the report you are trying to update based on any one of these standard reports? You may need to update that version of the report, which means porting all the changes, not just yours, to a newer release of the report (or porting the differences back to your report).

batmush
26th January 2005, 18:45
Guys,
Could some one explain me how to fix the errors on the attached picture?
Thanks.

günther
27th January 2005, 08:42
Some programming languages distingish between declaration and definition of a variable. In Baan that difference is not that clear, anyway.

So you can write the following code without compile errors:

extern domain tcmcs.str30 a
...
extern domain tcmcs.str30 a | either in the same file, or in an #included file
...


But you will get compile errors for the following code, since Baan uses strict type checking.

extern domain tcmcs.str30 a
...
extern domain tcdsca a | either in the same file, or in an #included file


To avoid such problems, the best way is to declare (+define) variables at one location.

Günther

en@frrom
27th January 2005, 09:50
Indeed like Günther said, this indicates that variables were declared at 2 locations. In your case it shows that they are declared in both function itdsls0006, and in the program script.

batmush
27th January 2005, 15:42
Thank you guys.

batmush
27th January 2005, 19:02
This is my first time!
I changed tdsls440401000 report but where should I save the script (it has tmp... name)?
Thanks.

batmush
27th January 2005, 19:15
tdsls0006 function part:

extern domain tcmcs.ctau.l ctau.code(max.cvat)|#31bglo.sn
extern domain tcctau.type.l ctau.type(max.cvat)
extern domain tcpvat ctau.perc(max.cvat)
extern domain tcdsca ctau.dsca(max.cvat)
extern domain tcamnt ctau.amnt(max.cvat)
extern domain tcamnt ctau.txble.amnt(max.cvat)
extern domain tcamnt ctau.totl(max.cvat)
extern domain tcfovn ctau.exno(max.cvat)
extern domain tcmcs.ctau.l ctau.l.code(max.line.cvat)
extern domain tcctau.type.l ctau.l.type(max.line.cvat)
extern domain tcpvat ctau.l.perc(max.line.cvat)
extern domain tcdsca ctau.l.dsca(max.line.cvat)
extern domain tcamnt ctau.l.amnt(max.line.cvat)
extern domain tcamnt ctau.l.txble.amnt(max.line.cvat)
extern domain tcfovn ctau.l.exno(max.line.cvat)


tdsls440401000 report part:

domain tcmcs.ctau.l ctau.code(25) |#TAXP.sn
domain tcctau.type.l ctau.type(25)
domain tcpvat ctau.perc(25)
domain tcdsca ctau.dsca(25)
domain tcamnt ctau.amnt(25)
domain tcamnt ctau.txble.amnt(25)
domain tcfovn ctau.exno(25)

Any suggestions what to fix?

Thanks.

lbencic
27th January 2005, 19:21
The way you have shown me your setup (in emails to me direct), I believe that you are running on old objects and sources. The declaration for the max.cvat variable was changed in the include tdsls0006 from 25 to 99. I looks from your version of the report that it's still showing 25 the following
omain tcmcs.ctau.l ctau.code(25) |#TAXP.sn
domain tcctau.type.l ctau.type(25)
domain tcpvat ctau.perc(25)
domain tcdsca ctau.dsca(25)
domain tcamnt ctau.amnt(25)
domain tcamnt ctau.txble.amnt(25)
domain tcfovn ctau.exno(25)

Change these to 99 and try.

But you still have non-matching source problems, it looks like your report base version may have been upgraded, but your custom version was not.... You may run into other issues, but this should resolve the specific compile problems you have here.

batmush
27th January 2005, 19:27
I changed tdsls440401000 report but where should I save the script (it has tmp... name)?
Thanks.

lbencic
27th January 2005, 19:38
Does it compile? Even under your tmp name? The name should not matter on a compile. The VRC does.

Once it compiles, you can move on to testing.

We do not have all your setup details. Are you developing in a TEST environment...where if you saved it under tdsls440101000 in your 'aaaa' VRC, that would be best. Then you can test the changes from the normal invoice session.

If you are developing in a LIVE environment, it's hard for us to recommend that. If you have not done so already, backup the old report object in case there is a problem with your new version. As soon as you compile, the old invoice will be replaced by the new invoice. If you are in live and want to test without replacing the production version, keep on your TMP name, and maybe make a copy of the invoice session (copy the session to a new tmp name in Maintian Sessions), attach your report I(using the 'Reports' button on form 1 of Maintain Sessions) where the tdsls440101000 report is now.

lbencic
27th January 2005, 19:40
O - maybe I mis understood. The report script, when you edit it (if you edit through the Maintain Reports / Edit Report Script option in Baan), when you choose save and save/exit, it saves to the proper script, not the tmp file it uses while editing. You don't have to give it a file name or choose 'save as', just save and exit.

batmush
27th January 2005, 20:51
All of you, who helped me, are so great!
It works after "max.cvat" changed from 25 to 99.
There was "|" line before "max.cvat 25" declaration so "99" took the charge!
Lisa from Rmcis - Thanks!