金蝶K3与IMS系统搭建销售订单交期回复系统

来源:互联网 发布:python英文怎么读 编辑:程序博客网 时间:2024/06/01 10:32

开发目的:商务下单后,计划人员可根据实际交付情况回复销售订单预计交付时间,并将回复日期自动反写至K3数据,可供后续销售订单按期交付率统计,也可供商务、销售人员了解订单在生产端的相关交付动态。

开发工具:金蝶K3;IMS;MSSQL

开发逻辑:先在K3销售订单表体中增加交期回复列字段,作为数据反写的容器;将销售订单信息通过视图方式展示至IMS前台;计划在IMS前台修改时,在IMS对应视图上增加触发器,将计划前端回复日期反写至对应的销售订单数据表体条目数据中,商务可在销售订单中查看即时的生产回复交期。


开发过程:

1、K3单据自定义增加生产交期回复字段。K3-客户端工具包-辅助工具-单据自定义进入,增加分录列“计划交期回复”,保存后退出;






2、在IMS数据库搭建销售订单交期回复系统模块;

3、IMS数据库中将销售订单交期回复系统对应的表改名,用如下代码生成视图;

CREATE view [dbo].[TA0QJZP]asSELECT distinct convert(int,row_number()over(order by FRAYEKK)) as id,a.* from(select 66 DirID,convert(tinyint,'0') SecLevel,convert(nvarchar(255),t10.fname) Builder,getdate() LastModified,convert(nvarchar(255),'admin') LastMender,t1.fbillno as FZYRUJ6,--订单号t2.fname as F1XUPMM,--客户名称T3.Fname as F0VTA4K,--销售分公司t4.fname as FCBCGMJ,--业务员t8.fnumber as FG8XD3M,--物料编码t8.fname as F2JJC6M,--物料名称t.fauxqty as FYNQP5Z,--下单台数,没有出库时,取订单数t1.fdate as FRAYEKK,--下单日期t.fdate as FB6UX7E,--需求日期case when t8.FERpClsID=1 then '/' when T3.Fname='国际销售' then t9.fbillno else '/' end as FPSV82Q,--生产任务单t9.FStockQty as FCL5R3B,--入库数量t9.FCloseDate as F8Y4KKW,--结案日期CONVERT(DATETIME,t.fentryselfs0167,120) as FGLAZ5V,--计划回复交期t.finterid as F4LJ89I,--订单内码t.fitemid as F9LZIRY--订单物料内码from [K3].[AIS20100809145719].[dbo].seorderentry t WITH(NOLOCK)--销售订单行数据inner join [K3].[AIS20100809145719].[dbo].SEOrder T1 ON T1.FinterID=T.finterid and t1.fcancellation=0 and t1.fchangemark=0--订单头数据inner join [K3].[AIS20100809145719].[dbo].t_organization T2 ON T2.FitemID=T1.fcustid --购货单位inner join [K3].[AIS20100809145719].[dbo].t_department T3 ON T3.FitemID=T1.fdeptid--销售部门inner join [K3].[AIS20100809145719].[dbo].t_Base_Emp T4 ON T4.FitemID=T1.fempid--业务员inner join [K3].[AIS20100809145719].[dbo].t_icitem T8 ON T8.FitemID=T.fitemid and t8.fparentid<>22561 --物料表left join [K3].[AIS20100809145719].[dbo].icmo t9 on t9.forderinterid=t.finterid and t9.fitemid=t.fitemid--生产任务单LEFT JOIN [K3].[AIS20100809145719].[dbo].t_User t10 ON t10.FUserID = t1.FBillerID--职员表,引入制单人姓名where t.fcommitqty=0 and t.fauxprice>0  and t.fmrpautoclosed=1 and t.fstockqty=0)a

4、在创建的视图上增加一个触发器,一旦IMS系统的FGLAZ5V列数据有变动,就将该数值写入K3数据库销售订单行数据表Seorderentry中,匹配值为销售订单内码;

CREATE TRIGGER [TR_TA0QJZP] ON [dbo].[TA0QJZP]        INSTEAD OF UPDATE          ASBEGIN             BEGIN TRANSACTION             SET NOCOUNT ON              BEGIN   update t1 set t1.fentryselfs0167=t.FGLAZ5V from Inserted TINNER JOIN [K3].[AIS20100809145719].dbo.SeorderEntry t1 ON t1.FinterID = t.F4LJ89I-- 销售行数据匹配,计划只需要回复订单中的一条数据,该订单均会被写入回复日期,如果需要计划针对每一条数据进行回复,可以加上and t1.fitemid=t.F9LZIRY限制条件      END        IF (@@error <> 0)              ROLLBACK TRANSACTION          ELSE              COMMIT TRANSACTION          END

5、IMS前端页面展示效果:可以将销售订单信息、生产任务单信息、入库情况等直接展示出来;

6、计划找到需要回复交期的数据,在计划交期回复列右键点击“就地编辑”,即可实现交期的回复,输入后回车,数据即反写到K3数据库中。




7、可以在K3系统中查到回复的交期数据;



阅读全文
1 0