Why?
George Simon
george at worldest.com
Wed Jun 30 12:16:38 PDT 2004
OK, let me post all pertinent information to see if we can come up with
something.
Here is the entire "called" table, which gets called from automatic
processing:
LABEL D E F I N E P R O C E S S I N G
5.0.09RN
----------------------------------------------------------------------------
---
1 ------- - - - - - - - - - - - - - - - -
GETLONG? If:
Then: debug on
2 ------- - - - - - - - - - - - - - - - -
? If:
Then: declare extern lct
3 ------- - - - - - - - - - - - - - - - -
? If:
Then: lookup lcd = gflongcd k=10 i=A -nx
4 ------- - - - - - - - - - - - - - - - -
? If: not lcd
Then: errorbox"Contents of \"Long\" Card for\nInvoice"<10<"Have Been
Los
5 ------- - - - - - - - - - - - - - - - -
? If:
Then: gu=lcd(2)
6 ------- - - - - - - - - - - - - - - - -
? If:
Then: gv=lcd(3)
7 ------- - - - - - - - - - - - - - - - -
? If:
Then: gw=lcd(4)
8 ------- - - - - - - - - - - - - - - - -
? If:
Then: gx=lcd(5)
9 ------- - - - - - - - - - - - - - - - -
? If:
Then: gy=lcd(6)
10 ------- - - - - - - - - - - - - - - - -
? If:
Then: ma=lcd(7)
11 ------- - - - - - - - - - - - - - - - -
? If:
Then: mb=lcd(8)
12 ------- - - - - - - - - - - - - - - - -
? If:
Then: me=lcd(9)
13 ------- - - - - - - - - - - - - - - - -
? If:
Then: mf=lcd(10)
14 ------- - - - - - - - - - - - - - - - -
? If:
Then: ky=chr("124")
15 ------- - - - - - - - - - - - - - - - -
? If:
Then: lct=""{gu{ky{gv{ky{gw{ky{gx{ky{gy{ky{ma{ky{mb{ky{me{ky{mf
16 ------- - - - - - - - - - - - - - - - -
? If:
Then: lct=xlate (lct,chr("124")," ")
17 ------- - - - - - - - - - - - - - - - -
? If:
Then: end
When using the debugger, the process fails at line 15.
I've increased the size of PFFORMTOKSIZE to match that of PFTOKSIZE. Here
are the settings:
19 PFTOKSIZE ? 350000
20 PFAUTOKSIZE ? 350000
21 PFFORMTOKSIZE ? 350000
but I still get the error.
Since the process runs from a user menu, I'm posting the portion of the
batch file that runs the report:
C R E A T E B A T C H F I L E
5.0.09D
----------------------------------------------------------------------------
--
@echo off
cls
echo.
echo.
echo.
echo.
cd %PFPROG%\fsroot
ask " Do You Want to Re-Print the Existing Comparison? ",ny
if errorlevel 2 goto PRINTIT
%PFPROG%\fp\dprodir gfcomp -ka
%PFPROG%\fp\rreport gfsales -f compare -v choosepe -a -id -u <<<---------
This is the line that runs the report
:PRINTIT
Since the records get selected without s problem, I'm not going to post the
"choosepe" table. The "compare" table is posted above.
Now, here is the automatic table where lcd is declared:
284 ------- - - - - - - - - - - - - - -
? If: 'long card text string
Then: declare global lct(400,lowup)
...
...
561 ------- - - - - - - - - - - - - - -
? If: 'second line of card
Then: gw(45,lowup)
562 ------- - - - - - - - - - - - - - -
? If: 'third line of card
Then: gx(45,lowup)
563 ------- - - - - - - - - - - - - - -
? If: 'fourth line of card
Then: gy(45,lowup)
Now, just before sending this message out I decided to try something. I
remarked out lines 14, 15 and 16 from the table and then imported that table
into the "compare" table, where I call it as a subroutine with lines 14, 15
and 16 active.
Guess what, it doesn't give me an error.
I then removed the subroutine from the "process" table and called the
"getlong" table from the "process" table.
Again, no error generated.
So now the problem seems to be confined to when the table gets called from
automatic processing.
George Simon (IT Department)
American River Logistics, LTD
614 Progress St.
Elizabeth, NJ 07205
Phone:(908)354-7746 Fax:(908)354-7491
mailto:george at worldest.com
http://www.americanriverintl.com/
-----Original Message-----
From: filepro-list-bounces at lists.celestial.com
[mailto:filepro-list-bounces at lists.celestial.com]On Behalf Of Brian K. White
Sent: Tuesday, June 29, 2004 11:16 PM
To: filePro mailing list
Subject: Re: Why?
----- Original Message -----
From: "George Simon" <flowersoft at compuserve.com>
To: "Kenneth Brody" <kenbrody at bestweb.net>
Cc: "'Filepro-List'" <filepro-list at seaslug.org>
Sent: Tuesday, June 29, 2004 10:41 PM
Subject: Re: Why?
> No, I know which records break rreport because the table only gets called
> for those records. Running rclerk on those same records does not break.
I will have to do my test again.
I did not treat this as a call table, I ran it directly using -z and -fp
I'll do it as a call table and see it that makes it break.
I'm guessing it's environment.
maybe under report the table runs out of room to run in
and the PF[""|AU|FORM]TOKSIZE variables need attention,
or under report the process requires more open file handles,
Neither of those would be a bug, just a result of clerk and report being in
fact different programs that do different jobs, in different ways, that
merely happen to such a superb and excellent level of compatibility that you
forgot they are even different.
What would be a bug in my opinion is that, in both of those examples filepro
should be able to die more gracefully and more informatively that it did for
you. That's only if your problem turns out to be like that, which we haven't
yet by a long shot.
Maybe you do something in -v processing for the report that you don't do in
clerk, or do in a differently? Theres tons of things you haven't defined
yet.
...
ok, I have adjusted my test code and re-did the test as a call table.
Not having any details to guide me one way or the other, I defined all the
small variables in the call table and defined lct in the parent as a global
and as and extern in the child and used it to pass the final value back to
the parent and displayed it from there.
here is prc.parent:
---begin---
top::call "test":
::msgbox lct:
::end:
@keyt:' written so that the same code can be run in both clerk & report:goto
top
::declare global lct(30,lowup):
---end---
here is revised prc.test:
---start---
::gu(2,lowup) = "gu" ; gv(2,lowup) = "gv" ; gw(2,lowup) = "gw":
::gx(2,lowup) = "gx" ; gy(2,lowup) = "gy" ; ma(2,lowup) = "ma":
::mb(2,lowup) = "mb" ; me(2,lowup) = "me" ; mf(2,lowup) = "mf":
::ky = "|":
::lct = ""{gu{ky{gv{ky{gw{ky{gx{ky{gy{ky{ma{ky{mb{ky{me{ky{mf:
::msgbox lct:
::lct = xlate(lct,"|"," "):
::end:
::declare extern lct:
---end---
and here are the commands used to run them:
rreport test -fp parent -y NoAuto -a
rclerk test -z parent -y NoAuto -s0
They both worked perfect.
Brian K. White -- brian at aljex.com -- http://www.aljex.com/bkw/
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro BBx Linux SCO Prosper/FACTS AutoCAD #callahans Satriani
_______________________________________________
Filepro-list mailing list
Filepro-list at lists.celestial.com
http://mailman.celestial.com/mailman/listinfo/filepro-list
More information about the Filepro-list
mailing list