72.1、WebApi,实战例子,创建中间库原创
金蝶云社区-林荫大道cc
林荫大道cc
33人赞赏了该文章 7265次浏览 未经作者许可,禁止转载编辑于2021年01月14日 12:28:00
封面

业务场景:

数据传递到中间库,然后我们定时读取中间库数据,通过sql语句拼接出Json,再生成销售订单和发货通知单,

第三方系统生成销售订单到星空后,通知星空做发货通知单,销售订单和发货通知单之间有关联关系。


需求:

1、销售订单,发货通知单同步到中间库定时读取。
2、一个销售订单可以关联多个发货通知单。(注:每行单据体只能生成一次发货通知单)
3、记录日志。


开发用到:

1、定时执行任务插件。
2、调用K3cloud WebApi接口。



1、创建中间库


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[T_HH_SAL_ORDER]') 
and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
drop table [dbo].[T_HH_SAL_ORDER] 
/*
销售订单主数据信息
*/ 
go
CREATE TABLE [dbo].[T_HH_SAL_ORDER]
(
F_IDint Identity(1,1) PRIMARY KEY,--唯一标示
F_OrgNonvarchar(50) Not null,--销售组织编码
F_OrgNamenvarchar(100) Not null,--销售组织名称
F_BillNonvarchar(100) Not null,--三方订单编号
F_DateDate Not null,--订单创建日期
F_CustNonvarchar(100) Not null,--客户编码
F_CustNamenvarchar(100) Not null,--客户名称
F_SalesmanNonvarchar(100) Not null,--销售员编码
F_SalesmanNamenvarchar(100) Not null,--销售员名称
F_DepNonvarchar(100) Not null,--销售员部门编码
F_DepNamenvarchar(100) Not null,--销售员部门名称
F_ERPReadvarchar(2) Not null,--ERP订单是否读取(N未读取,Y。读取)
)
go



if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[T_HH_SAL_ORDERENTRY]') 
and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
drop table [dbo].[T_HH_SAL_ORDERENTRY] 
/*
销售订单明细数据信息
*/ 
go
CREATE TABLE [dbo].[T_HH_SAL_ORDERENTRY]
(
F_IDint Identity(1,1) PRIMARY KEY,--唯一标示
F_SalOrderIdint Not null,--外键
F_MaterialNonvarchar(100) Not null,--物料编码
F_MaterialNamenvarchar(100) Not null,--物料名称
F_Qtydecimal(18, 2) Not null,--订单数量
F_TaxPricedecimal(18, 2) ,--含税单价
F_TaxRate decimal(18, 2),--税率
F_OrderFIDint,--ERP读取后返回订单内码
F_OrderEntryIdint,--ERP读取后返回订单行内码
F_NoticeFIDint,--ERP读取后返回发货通知单内码
F_NoticeEntryIdint,--ERP读取后返回发货通知单行内码
F_LogisticsTypeint--物流信息状态默认是null,0三方通知金蝶ERP发货,1.发完成
)
go




if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[T_HH_JGtoERPInfo]') 
and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
drop table [dbo].[T_HH_JGtoERPInfo] 
/*
日志表中间库
*/ 
go
CREATE TABLE [dbo].[T_HH_JGtoERPInfo] 
(
F_IDint Identity(1,1) PRIMARY KEY,--唯一标示
F_OrderFID int,--id
F_BillTypenvarchar(50),--单据类型(如:客户,销售订单)
F_BillNonvarchar(100),--订单编号
F_DatetimeDatetime,--同步时间
F_isSuccessint,--0成功,1--失败
F_Makenvarchar(max),--描述
F_Jsonnvarchar(max)--json
)
go


image.png



2、插入中间测试数据


insert into [T_HH_SAL_ORDER](F_OrgNo,F_OrgName,F_BillNo,F_Date,F_CustNo,F_CustName,
F_SalesmanNo,F_SalesmanName,F_DepNo,F_DepName,F_ERPRead)
values('100','s','TEST00001','2020-07-19','001','上海A客户','1001','1001',
'BM000001','车间','N')


insert into [dbo].[T_HH_SAL_ORDERENTRY]
(F_SalOrderId,F_MaterialNo,F_MaterialName,F_Qty,F_TaxPrice,F_TaxRate,
F_OrderFID,F_OrderEntryId,F_NoticeFID,F_NoticeEntryId,F_LogisticsType)
values(1,'001','001',10,25,16,null,null,null,null,null)


image.png


select * from T_HH_SAL_ORDER
select * from T_HH_SAL_ORDERENTRY
select * from T_HH_JGtoERPInfo


视频链接

链接:https://pan.baidu.com/s/1xP1pBhiIeJyw8QfmIK-0lw

提取码:kiss 




总目录链接

https://vip.kingdee.com/article/6499387201459123

赞 33