jholdrid
10th November 2005, 22:12
I have an AFS session which has been running for eight months which automates our Purchase Invoice Transactions. All of a sudden my user is getting a message "Serial Number too long" when inserting a record into tfacp1110s000. This is only happening to one vendor. I do not have Baan Code - Does any one know what this message means ? I would appreciate any help.
Thanks so much.
baanfans
17th November 2005, 21:52
Hello ...
I found in messages, that the message that you post it, is the code tfglds0419 - Serial number too long... Then I executed implode by message and I found that the message appears in the function of dll tfglddll6022... I hope that this extract of code can help you, remember search about message tfglds0419... :D
function extern domain tcbool tfgld.dll6022.valid.input(
domain tcncmp comp,
domain tfgld.ttyp ttyp,
domain tfgld.docn docn,
domain tfgld.btno btno,
domain tfgld.long series.found,
domain tfgld.long series.entered,
ref domain tfgld.seri seri,
ref domain tcmcs.s132m o.err.mesg)
{
DLLUSAGE
Expl : This function checks if an entered series number is
valid or not
Pre :
Post :
Input : comp - company number
ttyp - transaction type
docn - document number
btno - batch number
series.entered - boolean,
true - series number is entered
false - series number is not entered
series.found - boolean,
true - series found for the transaction type
false - series is not found for the transaction type
Output : seri - series number
OldName : itfgld0022.valid.input(
ENDDLLUSAGE
long rec.read.tfgld017
domain tfgld.docn rec.docn
o.err.mesg = ""
select tfgld011.*
from tfgld011
where tfgld011._index1 = {:ttyp}
and tfgld011._compnr = :comp
as set with 1 rows
selectdo
selectempty
abort.transaction()
mess("tfgldt0112", 1, ttyp)
|* Transaction type '%s' not found
job.process.error = true |#23100.n
stop()
endselect
if btno <> 0 and |#10022356.sn
not series.entered then
select tfgld018.* |#10022356.en
from tfgld018
where tfgld018._index1 = {:ttyp, :docn}
as set with 1 rows
selectdo
if tfgld018.btno <> btno then
o.err.mesg = sprintf$(form.text$("tfglds0079"))
|* Document is already used
return(false)
endif
endselect
endif |#10019144.en
if docn <> 0 and seri = 0 then
seri = int(docn / pow(10, 8 - tfgld011.dsrs))
else
seri = seri ? seri : docn
endif
if tfgld011.iseq = tcyesno.yes and not series.entered then
abort.transaction()
if not series.found then
o.err.mesg = sprintf$(form.text$("tfgldt0171"))
|* Series not defined
|* Series not defined
else
o.err.mesg = sprintf$(form.text$("tfglds0419"))
|* Serial number too long
endif
return(false)
endif
rec.read.tfgld017 = tfgld.dll6022.tfgld017.read.1eq(comp, ttyp, seri,
tfgld011.dsrs, rec.docn)
if tfgld011.dsrs = 0 and docn <> 0 then
rec.docn = docn
endif
if tfgld011.dsrs <> 0 and rec.read.tfgld017 and tfgld011.iseq =
tcyesno.yes then
abort.transaction()
o.err.mesg = sprintf$(form.text$("tfgldt0171"))
|* Series not defined
return(false)
endif
if tfgld011.dsrs <> 0 and not rec.read.tfgld017 and docn = 0 and
tfgld011.iseq = tcyesno.no then
abort.transaction()
o.err.mesg = sprintf$(form.text$("tfglds0435"))
|* Document 0 not allowed
return(false)
endif
|If the entered document is 0 and no serie is defined in tfgld017
if tfgld.dll6022.limit.reached(rec.docn, tfgld011.dsrs,o.err.mesg) then
return(false)
endif
return(true)
}
mark_h
17th November 2005, 22:26
Hmmm - On our 4c4 I found it in include tfgld0022 basically the same code as Baanfans just in an include.
baanfans
17th November 2005, 22:55
Yes you are right, sorry :confused: I forget read the Baan version... library tfglddll6022 is in BaanERP 5.0c.
Thanks,
ssabaan
6th March 2006, 14:23
I beleive it is realeted to first free number or doc number against the transaction type.
May the Series difined against that transaction type has been filled. so pls open a new series.
thanks