Change WMS Production line in CreateWorkOrderPositionEnd

In this example we use the in Production line from the Resource, which is defined in first Routing position

Note:

- if possible: use Warehouse Rules

- if possible: work with Beas Service Layer

- don't change standard fields, if Beas Service Layer command is available. We can't give any guarantee, if you use update command on beas tables

 

beasscript-logo-small

 

function CreateWorkOrderPositionEnd
 
// Get Warehouse from Work order Position. We use always BSL if possible, 
instance bsl b
b.get=WorkorderPos(<e_WoDocEntry>,<e_WoLineNumber>)/WhsCode/$value
setvar=ls_whscode=<b.ret_value>
 
// Then we get the warehouse type. BSL is perfect for this work
b.get=WareHouse(<ls_whscode,bsl>)/WhsBinType/$value
setvar=ls_binType=<b.ret_value>
 
// we want to check only WMS Warehouse (typ 3)
if <ls_binType> <> 3 then 
  return success
end if
 
// Get WMS Produdction Line from resource from first Routing position
// Note: You must sort by "SortId", not "POS_ID"
// we use SQL, because not all fields available in BeasServiceLayer
sql.select top 1 "BEAS_APLATZ"."WMS_PRODLINE" into ls_wmsprodline &
   from "BEAS_FTAPL" inner join "BEAS_APLATZ" on "BEAS_APLATZ"."APLATZ_ID"="BEAS_FTAPL"."APLATZ_ID" &
   where "BEAS_FTAPL"."BELNR_ID"=<e_WoDocEntry> and "BEAS_FTAPL"."BELPOS_ID"=<e_WoLineNumber> order by "SortId"
 
// Note: Update on Standard fields not good
// But in this case: This field don't have additional functionality in Beas and BSL PUT is not available
sql.update "BEAS_FTPOS" set "WMS_PRODLINE"=<ls_wmsprodline,dbstring> where "BELNR_ID"=<e_WoDocEntry> and "BELPOS_ID"=<e_WoLineNumber>
 
end function 

 

 

help-hinweis Example Notes