自動產生報價與成本分析
# 自動產生報價與成本分析
# 1. 說明
以下是FastERP2的自動報價與成本分析在TaskRunner中實現的功能的自定程式,通過設定相關的參數(客戶、產品、報價數量、工程參數樣板、報價大類)實現自動報價的功能。
# 2. 設計程式
TaskRunner 的初始示例中包含有相關的程式,包含了自動建立報價與成本分析、自動產生報價與成本分析的報表。
- fasterp2_sdquote:建立報價單與成本分析的內容。
- fasterp2_print_sdquote:使用Flying列印報價單。
- fasterp2_print_sdquoteanalyze:使用Flying列印成本分析報表。
下面介紹建立自定程式的流程。
- 點選
自定程式
選項卡,在自定程式界面中點選新建
按鈕,打開新建程式界面。 - 在新建程式界面,填寫要設計的自定程式的基本資訊。如下圖所示。填寫完成點選
儲存
按鈕。
返回自定程式列表界面,選擇剛才建立的自定程式,點選功能表欄中的
設計
按鈕,打開程式設計器界面。在程式設計器界面中輸入自定程式程式碼,程式碼示例如下。完成後,點選
儲存
按鈕。- fasterp2_sdquote:建立報價單與成本分析的內容。需勾選使用公共單元
pas_fasterp2_unit
。
上述自定程式建立並使用了公共單元
pas_fasterp2_unit
,設計如下:- fasterp2_sdquote:建立報價單與成本分析的內容。需勾選使用公共單元
重複2、3、4步驟,依次更新以下的程式碼。
- fasterp2_print_sdquote:使用Flying列印報價單。
- fasterp2_print_sdquoteanalyze:使用Flying列印成本分析報表。
如需要測試效果,可在程式設計器界面中點選
運行
按鈕進行測試。
程式中定義的參數說明如下:
fasterp2_sdquote:建立報價單與成本分析的內容。
名稱 說明 是否必填 預設值 companyid 公司ID 是 partno 產品編號 是 userid 使用者ID 是 depcode 部門ID 是 saleqty 銷售數量 是 pcbid 工程參數樣板 是 quoteclass 報價大類 是 fasterp2_print_sdquote:使用Flying列印報價單。
名稱 說明 是否必填 預設值 companyid 公司ID 是 customerquote 客戶報價單編號 是 fasterp2_print_sdquoteanalyze:使用Flying列印成本分析報表。
名稱 說明 是否必填 預設值 companyid 公司ID 是 customerquote 客戶報價單編號 是
# 3. 呼叫執行
設計完成的自定程式可使用以下方式來呼叫執行。
# 3.1. RestAPI
使用瀏覽器或RestAPI 客戶端,訪問以下地址,執行自定程式呼叫。請將 {ip}
修改爲運行 TaskRunner 主機的IP地址,{port}
修改爲 TaskRunner WebSocket 服務端監聽的地址。自定程式運行需要自定義參數,參照以下方式執行。其中將 {}
標識的參數值替換為目標參數值。
http://{ip}:{port}?restapi=script&taskname=fasterp2_sdquote&companyid={companyid}&partno={partno}&userid={userid}&depcode={depcode}&saleqty={saleqty}&pcbid={pcbid}"eclass={quoteclass}
http://{ip}:{port}?restapi=script&taskname=fasterp2_print_sdquote&companyid={companyid}&customerquote={customerquote}
http://{ip}:{port}?restapi=script&taskname=fasterp2_print_sdquoteanalyze&companyid={companyid}&customerquote={customerquote}
2
3
# 3.2. WebSocket
使用WebSocket客戶端,連線至 TaskRunner 中的 WebSocket 服務端。向 WebSocket 服務端發送以下文字實現自定程式的呼叫。自定程式運行需要自定義參數,參照以下方式執行。其中將 {}
標識的參數值替換為目標參數值。
{"action":"script","taskname":"fasterp2_sdquote","params":[{"name":"companyid","value":"{companyid}"},{"name":"partno","value":"{partno}"},{"name":"userid","value":"{userid}"},{"name":"depcode","value":"{depcode}"},{"name":"saleqty","value":"{saleqty}"},{"name":"pcbid","value":"{pcbid}"},{"name":"quoteclass","value":"{quoteclass}"}]}
{"action":"script","taskname":"fasterp2_print_sdquote","params":[{"name":"companyid","value":"{companyid}"},{"name":"customerquote","value":"{customerquote}"}]}
{"action":"script","taskname":"fasterp2_print_sdquoteanalyze","params":[{"name":"companyid","value":"{companyid}"},{"name":"customerquote","value":"{customerquote}"}]}
# 3.3. MQTT
使用 MQTT 客戶端,連線至 TaskRunner 連線的 MQTT 伺服器。MQTT 客戶端向 TaskRunner 訂閱的主題發送以下文字實現自定程式的呼叫。自定程式運行需要自定義參數,參照以下方式執行。其中將 {}
標識的參數值替換為目標參數值。
{"action":"script","taskname":"fasterp2_sdquote","params":[{"name":"companyid","value":"{companyid}"},{"name":"partno","value":"{partno}"},{"name":"userid","value":"{userid}"},{"name":"depcode","value":"{depcode}"},{"name":"saleqty","value":"{saleqty}"},{"name":"pcbid","value":"{pcbid}"},{"name":"quoteclass","value":"{quoteclass}"}]}
{"action":"script","taskname":"fasterp2_print_sdquote","params":[{"name":"companyid","value":"{companyid}"},{"name":"customerquote","value":"{customerquote}"}]}
{"action":"script","taskname":"fasterp2_print_sdquoteanalyze","params":[{"name":"companyid","value":"{companyid}"},{"name":"customerquote","value":"{customerquote}"}]}