yurong
14th August 2007, 04:22
Hello All,
I met a problem with AFS need your help.
I wrote a library to handle purchase order.
source code like following:
#pragma used dll ottstpapihand
function long Date2Number(const long input.date)
{
long input.year
long input.month
long input.day
input.year = input.date/10000
input.month = (input.date - input.year*10000) / 100
input.day = (input.date - input.year*10000 - input.month*100)
return(date.to.num(input.year, input.month, input.day))
}
function extern string New_PurchaseOrder_Head(const long CompanyCode, const long Order_Number, const string Supplier,
const string Order_Type, const string Postal_Address, const string Delivery_Address,
const long Order_Date)
{
string orno(6)
string error.message(250)
long do.update
do.update = 1
error.message = ""
switch.to.company(CompanyCode)
stpapi.put.field("tdpur4101m000", "tdpur040.orno", Str$(Order_Number))
stpapi.put.field("tdpur4101m000", "tdpur040.suno", Supplier)
stpapi.put.field("tdpur4101m000", "tdpur040.cotp", Order_Type)
stpapi.put.field("tdpur4101m000", "tdpur040.odat", Str$(Date2Number(Order_Date)))
stpapi.insert("tdpur4101m000", do.update, error.message)
stpapi.save("tdpur4101m000", error.message)
stpapi.get.field("tdpur4101m000", "tdpur040.orno", orno)
stpapi.end.session("tdpur4101m000")
return(orno)
}
function extern string New_PurchaseOrder_Line(const long CompanyCode, const long Order_Number,
const string Item_Code, const double Quantity)
{
string error.message(250)
long do.update
do.update = 1
error.message = ""
long position
string pono(2)
string amta(10)
switch.to.company(CompanyCode)
stpapi.put.field("tdpur4101m000", "tdpur040.orno", Str$(Order_Number))
stpapi.find("tdpur4101m000")
stpapi.continue.process("tdpur4101m000", error.message)
| select max(tdpur041.pono) :position
| from tdpur041
| where tdpur041.orno = :Order_Number
| selectdo
| position = position + 1
| selectempty
| position = 1
| endselect
| stpapi.put.field("tdpur4102s000", "tdpur041.pono", Str$(position))
| stpapi.put.field("tdpur4102s000", "tdpur041.item", Str$(Item_Code))
| stpapi.put.field("tdpur4102s000", "tdpur041.oqua", Str$(Quantity))
| stpapi.insert("tdpur4102s000", do.update, error.message)
| stpapi.save("tdpur4102s000", error.message)
| stpapi.get.field("tdpur4102s000", "tdpur041.pono", pono)
| stpapi.get.field("tdpur4102s000", "tdpur041.amta", amta)
stpapi.end.session("tdpur4102s000", error.message) |HANGS HERE
| stpapi.handle.subproc("tdpur4101m000", "tdpur4102s000", "kill")
| string err(255)
| err = stpapi.get.mess.code("tdpur4101m000")
| err = stpapi.get.mess.code("tdpur4102s000")
stpapi.end.session("tdpur4101m000")
return(pono&"/"&amta)
}
But after I insert and save a record in 'tdpur4102s000' session, I can't end this session. Even if I cancel all transaction in this session, just start 'tdpur4102s000' with stpapi.continue.process, I still can't not end the 'tdpur4102s000' session.
Anyone can help me?
Thanks a lot!!!
I met a problem with AFS need your help.
I wrote a library to handle purchase order.
source code like following:
#pragma used dll ottstpapihand
function long Date2Number(const long input.date)
{
long input.year
long input.month
long input.day
input.year = input.date/10000
input.month = (input.date - input.year*10000) / 100
input.day = (input.date - input.year*10000 - input.month*100)
return(date.to.num(input.year, input.month, input.day))
}
function extern string New_PurchaseOrder_Head(const long CompanyCode, const long Order_Number, const string Supplier,
const string Order_Type, const string Postal_Address, const string Delivery_Address,
const long Order_Date)
{
string orno(6)
string error.message(250)
long do.update
do.update = 1
error.message = ""
switch.to.company(CompanyCode)
stpapi.put.field("tdpur4101m000", "tdpur040.orno", Str$(Order_Number))
stpapi.put.field("tdpur4101m000", "tdpur040.suno", Supplier)
stpapi.put.field("tdpur4101m000", "tdpur040.cotp", Order_Type)
stpapi.put.field("tdpur4101m000", "tdpur040.odat", Str$(Date2Number(Order_Date)))
stpapi.insert("tdpur4101m000", do.update, error.message)
stpapi.save("tdpur4101m000", error.message)
stpapi.get.field("tdpur4101m000", "tdpur040.orno", orno)
stpapi.end.session("tdpur4101m000")
return(orno)
}
function extern string New_PurchaseOrder_Line(const long CompanyCode, const long Order_Number,
const string Item_Code, const double Quantity)
{
string error.message(250)
long do.update
do.update = 1
error.message = ""
long position
string pono(2)
string amta(10)
switch.to.company(CompanyCode)
stpapi.put.field("tdpur4101m000", "tdpur040.orno", Str$(Order_Number))
stpapi.find("tdpur4101m000")
stpapi.continue.process("tdpur4101m000", error.message)
| select max(tdpur041.pono) :position
| from tdpur041
| where tdpur041.orno = :Order_Number
| selectdo
| position = position + 1
| selectempty
| position = 1
| endselect
| stpapi.put.field("tdpur4102s000", "tdpur041.pono", Str$(position))
| stpapi.put.field("tdpur4102s000", "tdpur041.item", Str$(Item_Code))
| stpapi.put.field("tdpur4102s000", "tdpur041.oqua", Str$(Quantity))
| stpapi.insert("tdpur4102s000", do.update, error.message)
| stpapi.save("tdpur4102s000", error.message)
| stpapi.get.field("tdpur4102s000", "tdpur041.pono", pono)
| stpapi.get.field("tdpur4102s000", "tdpur041.amta", amta)
stpapi.end.session("tdpur4102s000", error.message) |HANGS HERE
| stpapi.handle.subproc("tdpur4101m000", "tdpur4102s000", "kill")
| string err(255)
| err = stpapi.get.mess.code("tdpur4101m000")
| err = stpapi.get.mess.code("tdpur4102s000")
stpapi.end.session("tdpur4101m000")
return(pono&"/"&amta)
}
But after I insert and save a record in 'tdpur4102s000' session, I can't end this session. Even if I cancel all transaction in this session, just start 'tdpur4102s000' with stpapi.continue.process, I still can't not end the 'tdpur4102s000' session.
Anyone can help me?
Thanks a lot!!!