U811.1接口EAI系列之六--物料上传--VB语言

1. 业务系统同步U811.1存货档案通用方法.

2.具体代码处理如下:

作者:王春天 2013-11-06

地址:http://www.cnblogs.com/spring_wang/p/3409844.html

代码中调用的通用方法在: http://www.cnblogs.com/spring_wang/p/3393147.html

'物料信息生成XML
Public Function xml_inventory(ds_data As adodb.Recordset, as_proc As String) As Boolean
xml_inventory = False
Dim ls_xml As String
Dim ls_sender As String
Dim ls_code As String '物料编码
Dim ls_name As String '物料名称
Dim ls_type As String '物料类别
Dim ls_unit As String '主计量单位
Dim ls_part_unit As String '物料其它单位
Dim ls_unit_group As String '物料单位组
Dim ls_bProxyForeign As String '是否委外0-否;1-是
Dim ls_purchase_flag As String '是否外购0-否;1-是
Dim ls_sale_flag As String '是否内销0-否;1-是
Dim ls_selfmake_flag As String '是否自制0-否;1-是
Dim ls_bexpsale As String '是否外销0-否;1-是
Dim ls_prod_consu_flag '是否生产耗用
Dim ls_pro_sale_price As String '计划价 / 售价
Dim ls_pricetype As String '计价方式(计划价法 / 全月平均法)
Dim ls_inv_position As String '货位编码
Dim ls_defwarehouse As String ' 默认仓库编码

'此数据需要在数据库中配置
ls_sender = U8_XTM


'以下数据从传入的DATASET中获取
ls_bProxyForeign = "0" '是否委外0-否;1-是
ls_purchase_flag = "1" '是否采购0-否;1-是
ls_sale_flag = "1" '是否内销0-否;1-是
ls_selfmake_flag = "1" '是否自制0-否;1-是
ls_bexpsale = "1" '是否外销0-否;1-是

If U(ds_data.Fields("kclybz").Value) = "Z" Then
ls_selfmake_flag = "1"
End If

ls_code = U(ds_data.Fields("kcwpdm").Value) '"A0001" '物料编码
ls_name = Trim(ds_data.Fields("kcwpmc").Value) '"修改后名称" '物料名称

ls_type = ds_data.Fields("kccpbs").Value '"02" '物料类别

ls_unit = U(ds_data.Fields("kckcdw").Value) '"002002" '主计量单位
ls_part_unit = ds_data.Fields("kccgdw").Value '"002002" '物料其它单位
ls_unit_group = "01" '物料单位组
ls_prod_consu_flag = "1" '是否生产耗用


'期初数据才上传计划价,等上线后去掉上传计划价Start
ls_pricetype = "计划价法" '计价方式(计划价法/全月平均法)
If U(ds_data.Fields("kccbhs").Value) = "S" Then
ls_pricetype = "全月平均法"
End If
If ds_data.Fields("kcjhcb").Value = "" Then
ls_pro_sale_price = 0 '计划价 / 售价
Else
ls_pro_sale_price = ds_data.Fields("kcjhcb").Value '计划价 / 售价
End If
'期初数据才上传计划价,等上线后去掉上传计划价End

ls_inv_position = "" '货位编码
If U(ds_data.Fields("kcqshw").Value) <> "" Then
ls_inv_position = U(ds_data.Fields("kcqshw").Value) '货位编码
End If

ls_defwarehouse = "" '默认仓库编码
If U(ds_data.Fields("kcqsck").Value) <> "" Then
ls_defwarehouse = U(ds_data.Fields("kcqsck").Value) '默认仓库编码
End If

'增加文件头相关信息
ls_xml = "<?xml version=""1.0"" encoding=""UTF-8""?>" + vbCrLf

ls_xml = ls_xml & "<ufinterface sender=""" & ls_sender & """ receiver=""u8"" roottag=""inventory"" doc
xml_document.Save (fn2)


Dim ls_temp As String '接收返回消息,如果成功,返回U8中物料代码,如果失败,返回错误信息
If SendToEAI(ls_xml, ls_temp) Then '成功
xml_inventory = True
Else '失败
MsgBox ls_temp
End If
End Function