自动产生报价与成本分析
# 自动产生报价与成本分析
# 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}"}]}