In this example you reserve a new batch number at Work order creation
a) at work order creation save the new batch number in work order position
b) at receipt process take reserved batch number
Batch Number = Work order Document Entry + Current Date in format yyyymmddhhmm (Date+Time)
For this we need 2 Events
- Event CreateWorkOrderPositionEnd which is called after position creation
- Event workordermangement.GetBatchNumber we return next batch number
How to define UserEvent. See UserEvent
BSL: Workorder
file workordermanagement.src
// Change GetBatchNumber function
function GetBatchNumber
// BatchNumber defined?
select "CHARGE_ID" into :e_DistNumber from "BEAS_FTPOS" where "BELNR_ID"=<e_DocEntry> and "BELPOS_ID"=<e_LineNumber>
if <e_DistNumber> <> "" then
return true
end if
// Create new Batch number
setvar=e_DistNumber=<e_DocEntry><e_LineNumber><today,yyyymmdd><now,hhmm>
return true
end function
// Work order creation: Get BatchNumber and save it in work order position
function CreateWorkOrderPositionEnd
// get next BatchNumber
instance bsl b
// Get next batch number
b.get=WorkorderPos/GetNextBatchNumber(<e_WoDocEntry>,<e_WoLineNumber>)
// save in work order position Batch number field
sql.update "BEAS_FTPOS" set "CHARGE_ID"=<b.value,dbstring> where "BELNR_ID"=<e_WoDocEntry> and "BELPOS_ID"=<e_WoLineNumber>
end function