blanchap
5th January 2023, 23:52
Hi,

i have a script that inserts a line in the sales order line session.
but i need to press ok before doing the insert.

if i insert manually the line, i have a window that pops where i need to press ok to continue and then i save.

if i do it in the stpapi script, using stpapi.continue.process, it hangs (because i do it before the stp.insert i guess). how can i select 'ok' in the stpapi?
the message pops after an input on field tdsls041.prdt


here is my code

error.mess = ""
stpapi.put.field("tdslsc104m000","tdsls040.orno",str$(i.orno))
ret = stpapi.find("tdslsc104m000", error.mess)
if ret = 1 then
stpapi.handle.subproc("tdslsc104m000","tdslsc105s000","add")
stpapi.handle.subproc("tdslsc104m000","tdsls0130s000","kill")
stpapi.continue.process("tdslsc104m000",error.mess)
stpapi.put.field("tdslsc105s000","tdsls041.orno",str$(i.orno))
stpapi.put.field("tdslsc105s000","tdsls041.pono",str$(i.pono))
stpapi.put.field("tdslsc105s000","tdsls041.cuno",tdsls002.cuno)
stpapi.put.field("tdslsc105s000","tdsls041.citt",tdsls002.citt)
stpapi.put.field("tdslsc105s000","tdsls041.item",k.item)
stpapi.put.field("tdslsc105s000","tdsls041.cntr",tdsls002.cntr)
stpapi.put.field("tdslsc105s000","tdsls041.cprj",tdsls002.cprj)
stpapi.put.field("tdslsc105s000","tdsls041.opol",str$(tdsls002.opol))
stpapi.put.field("tdslsc105s000","tdsls041.drct",str$(tdsls002.drct))
stpapi.put.field("tdslsc105s000","tdsls041.cpva",tdsls002.cpva)
find.product.variant()
stpapi.put.field("tdslsc105s000","tdsls041.sdsc",str$(tdsls002.sdsc))
stpapi.put.field("tdslsc105s000","tdsls041.pric",str$(i.pric))
stpapi.put.field("tdslsc105s000","tdsls041.plev",str$(tdsls002.plev))
stpapi.put.field("tdslsc105s000","tdsls041.stpr",str$(tdsls002.stpr))
stpapi.put.field("tdslsc105s000","tdsls041.cups",tdsls002.cups)
stpapi.put.field("tdslsc105s000","tdsls041.cvps",str$(tdsls002.cvps))
stpapi.put.field("tdslsc105s000","tdsls041.citg",itm.citg)
stpapi.put.field("tdslsc105s000","tdsls041.csgs",itm.csgs)
stpapi.put.field("tdslsc105s000","tdsls041.odat",str$(date.num()))
if tdsls002.dtme <> 0 then
stpapi.put.field("tdslsc105s000","tdsls041.ddta",str$(tdsls002.dtme))
else
stpapi.put.field("tdslsc105s000","tdsls041.ddta",str$(tdsls002.ddta))
endif
stpapi.put.field("tdslsc105s000","tdsls041.oqua",str$(tdsls002.qtya * i.quantity))
stpapi.put.field("tdslsc105s000","tdsls041.cuqs",tdsls002.cuqs)
stpapi.put.field("tdslsc105s000","tdsls041.cvqs",str$(tdsls002.cvqs))
stpapi.put.field("tdslsc105s000","tdsls041.leng",str$(tdsls002.leng))
stpapi.put.field("tdslsc105s000","tdsls041.widt",str$(tdsls002.widt))
stpapi.put.field("tdslsc105s000","tdsls041.thic",str$(tdsls002.thic))
stpapi.put.field("tdslsc105s000","tdsls041.disc",str$(tdsls002.disc))
stpapi.put.field("tdslsc105s000","tdsls041.ldam",str$(tdsls002.ldam))
stpapi.put.field("tdslsc105s000","tdsls041.dmth",str$(tdsls002.dmth))
stpapi.put.field("tdslsc105s000","tdsls041.cdis",str$(tdsls002.cdis))
stpapi.put.field("tdslsc105s000","tdsls041.dlev",str$(tdsls002.dlev))
stpapi.put.field("tdslsc105s000","tdsls041.cdel",tdsls002.cdel)
stpapi.put.field("tdslsc105s000","tdsls041.amta",str$((tdsls041.oqua * tdsls041.pric) - (tdsls041.oqua * tdsls041.pric * (tdsls041.disc(1) / 100.00))))
stpapi.put.field("tdslsc105s000","tdsls041.ccty",tdsls002.ccty)
stpapi.put.field("tdslsc105s000","tdsls041.cvat",tdsls002.cvat)
stpapi.put.field("tdslsc105s000","tdsls041.scom",str$(tdsls002.scom))
stpapi.put.field("tdslsc105s000","tdsls041.ctrj",tdsls002.ctrj)
stpapi.put.field("tdslsc105s000","tdsls041.prdt",str$(sales.dates))
stpapi.continue.process("tdslsc105s000",error.mess)
stpapi.put.field("tdslsc105s000","tdsls041.cwar",tdsls002.cwar)
stpapi.put.field("tdslsc105s000","tdsls041.isss",str$(tdsls002.isss))
stpapi.put.field("tdslsc105s000","tdsls041.qono",str$(tdsls002.qono))
stpapi.put.field("tdslsc105s000","tdsls041.qpon",str$(tdsls002.pono))
ret = stpapi.insert("tdslsc105s000",true,error.mess)
if not isspace(error.mess) then
message(error.mess,0)
stpapi.recover("tdslsc105s000",add.mess)
endif
endif
stpapi.end.session("tdsls0130s000")
stpapi.end.session("tdslsc105s000")
stpapi.end.session("tdslsc104m000")

vinceco252
6th January 2023, 16:23
I think you need the function stpapi.enum.answer.

mark_h
9th January 2023, 14:48
I think Vincent is correct. And put the answer before the question pops up. I usually put mine right after I get the session started in the back ground.

OmeLuuk
10th January 2023, 14:52
... if i insert manually the line, i have a window that pops where i need to press ok to continue and then i save....
This window however gives you a clue on the question asked. The code is mentioned in the caption. Then look up the question to know what enum is used and which answer to select.
You may also be able to get these details on pressing Ctrl-Shift-7 instead of enter...