JerryMaWang
1st June 2011, 11:09
I want to use afs to create sales order and lines. The sales order can be created successfully, and I can find the record in the table tdsls040, but the line can not be created, it told me "Sales Order not allowed" . The code is following, what should I do ? Thanks

stpapi.put.field("tdsls4101m000", "tdsls040.orno", "10")
stpapi.put.field("tdsls4101m000","tdsls040.cuno", "001")
stpapi.put.field("tdsls4101m000","tdsls040.cotp", "SN4")
stpapi.put.field("tdsls4101m000","tdsls040.comp", "700")
stpapi.put.field("tdsls4101m000","tdsls040.odat", str$(date.num()))
ret.insert= stpapi.insert("tdsls4101m000", true, error.msg)
|mess(error.msg,1)
|mess(str$(ret.insert),1)

stpapi.get.field("tdsls4101m000", "tdsls040.orno", returnOrno) | Get orno
| mess(returnOrno,1)

|stpapi.put.field("tdsls4101m000", "tdsls040.orno", "100035")
|ret.find= stpapi.find("tdsls4101m000", error.msg)
|if ret.find= 1 then
|stpapi.handle.subproc("tdsls4101m000", "tdsls4105s000", "add")
stpapi.put.field("tdsls4105s000", "tdsls041.orno", "100035")
stpapi.put.field("tdsls4105s000", "tdsls041.pono", "1")
stpapi.put.field("tdsls4105s000", "tdsls041.cuno", "001")
stpapi.put.field("tdsls4105s000", "tdsls041.item", "005")
stpapi.put.field("tdsls4105s000", "tdsls041.citg", "NSCP01")
stpapi.put.field("tdsls4105s000", "tdsls041.csgs", "------")
stpapi.put.field("tdsls4105s000", "tdsls041.pric", "12")
stpapi.put.field("tdsls4105s000", "tdsls041.cups", "PCS")
stpapi.put.field("tdsls4105s000", "tdsls041.odat", str$(date.num()))
stpapi.put.field("tdsls4105s000", "tdsls041.oqua", "200")
stpapi.put.field("tdsls4105s000", "tdsls041.cuqs", "PCS")
stpapi.put.field("tdsls4105s000", "tdsls041.amta", "2400")
stpapi.put.field("tdsls4105s000", "tdsls041.cwar", "S01")
stpapi.put.field("tdsls4105s000", "tdsls041.cvat", "17%")
stpapi.put.field("tdsls4105s000", "tdsls041.ccty", "CHN")
ret.insert= stpapi.insert("tdsls4105s000", true, error.msg)
|endif
|stpapi.end.session("tdsls4101m000")

|mess(error.msg,1)
if ret.insert<>1 then
ret.recover= stpapi.recover("tdsls4101m000", recover.msg)
endif

mark_h
1st June 2011, 15:35
Search on the session names in this forum. You will find a ton of threads on these sessions. There are lots of discussions around issues for the various versions.

This process should emulate what you do manually. Usually something like insert record in tdsls4101m000, hit lines button, enter line. I did not include any type of error checking, nor do we use these sessions. Just from glancing at another post or two I would expect to see something like this:


| Header inserted
stpapi.put.field("tdsls4101m000", "tdsls040.orno", "10")
stpapi.put.field("tdsls4101m000","tdsls040.cuno", "001")
stpapi.put.field("tdsls4101m000","tdsls040.cotp", "SN4")
stpapi.put.field("tdsls4101m000","tdsls040.comp", "700")
stpapi.put.field("tdsls4101m000","tdsls040.odat", str$(date.num()))
ret.insert= stpapi.insert("tdsls4101m000", true, error.msg)

|Control and activiate lines session
stpapi.handle.subproc("tdsls4101m000", "tdsls4105s000", "add")
stpapi.continue.process("tdsls4101m000",error.msg)

|Put only those fields you would put if doing manually
stpapi.put.field("tdsls4105s000", "tdsls041.cuno", "001")
stpapi.put.field("tdsls4105s000", "tdsls041.item", "005")
stpapi.put.field("tdsls4105s000", "tdsls041.citg", "NSCP01")
stpapi.put.field("tdsls4105s000", "tdsls041.csgs", "------")
stpapi.put.field("tdsls4105s000", "tdsls041.pric", "12")
stpapi.put.field("tdsls4105s000", "tdsls041.cups", "PCS")
stpapi.put.field("tdsls4105s000", "tdsls041.odat", str$(date.num()))
stpapi.put.field("tdsls4105s000", "tdsls041.oqua", "200")
stpapi.put.field("tdsls4105s000", "tdsls041.cuqs", "PCS")
stpapi.put.field("tdsls4105s000", "tdsls041.amta", "2400")
stpapi.put.field("tdsls4105s000", "tdsls041.cwar", "S01")
stpapi.put.field("tdsls4105s000", "tdsls041.cvat", "17%")
stpapi.put.field("tdsls4105s000", "tdsls041.ccty", "CHN")
ret.insert= stpapi.insert("tdsls4105s000", true, error.msg)

fallguyjg
1st June 2011, 23:12
This might help - See attachment.

fallguyjg