pellus
10th April 2006, 02:41
Hello all. I have a problem that I spent most of this day on and I'm running out of ideas. Any help is welcome. What the problem may be and/or some method to go forward.

The environment is SSA LN6 SP2 on MS-SQL on Windows.

I made a new session ,mostly emulated from whinh3212m000 confirm receipts,
but it is a maintain session instead of an update session.

The session calls whinhdll3020 to confirm the receipt, works fine, then it calls
whinhdll3000 (note: unchanged) to perform the rest of the receipt procedure.

The whinhdll3000 in its turn calls whinhdll6130 , activate DMS planning , by the following code

for i = 1 to g.receipt.lines.in.array
RETIFNOK(whinh.dll6130.activate.dms.planning(
DMS.RECEIPT,
g.receipt.array(1,i), |* receipt.number
g.receipt.line.array(i), |* receipt.line
"", |* inspection.number
0)) |* inspection.line
endfor

It falls over drastically. Attached is a word doc with the error msgs and what the server's Event Viewer has to say about it. Debuggin never enters the dll6130.

Debugger tells me that all values to the dll6130 have the right values, and the loop is only done once as it shud be. I have also experimented with replacing the arrays with one-dim normal variables; no difference

The dll6130 gets it by the following:
function extern long whinh.dll6130.activate.dms.planning(
domain tcmcs.byte i.dms.origin,
domain whinh.shpm i.receipt,
domain tcpono i.receipt.line,
domain tcorno i.inspection,
domain tcpono i.inspection.line)

I may add that if I bypass the problem stmt, the rest of the process governed from whinhdll3000, i.e. generate inbound advice and print storage list, works well.

lbencic
10th April 2006, 21:24
Not sure about this library in particular, but the error you are getting is usually because you have the same variable declared with different dimensions. Some order.num variable, the full name gets cut off, but you can probably see it in the logs. It looks to be an array..? with it being declared with 60 in one place and 9 in another. Not sure if that is the length or number of dimensions that does not match, but something is not compatible with the declaration in the 2 places.

pellus
10th April 2006, 23:42
Much obliged lbencic, this set me on the track, order.number was declared differently in my pgm and in the dll6130.