1.下面代码实现了VB6.0中调用U8EAI-BOM构成服务,以下代码均为项目实际代码,可直接复制应用。

2.在u811.1版本中委外BOM构成与正常的BOM构成是同系列表,不单独存储。

3.是以存货档案中有 委外标识标为是委外件。

4.下面调用的通用方法在: http://www.cnblogs.com/spring_wang/p/3393147.html

作者:王春天 2013-10-28

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

具体代码如下:

一、下面是实际调用的方法,其中一个参数是"Add"与"Edit"是新增构成还是修改构成。那条SQL查询是判断是否有在u8存在构成。

 '2.上传u8,如果上传成功再进行更新U8数据表
        Dim flag'上传u8 3.先保存u8数据表
        Set mrcu8 = U8Query("select * from v_BOM_BomParent where InvCode = '" & U(bpbh) & "'", msgtext)If mrcu8.EOF ThenIf Outsourcing_bom(U(bpbh), labBpmc.Caption, FGridArg, "Add") = False ThenMsgBox ("委外构成上传U8出错!")Exit SubEnd IfElseIf Outsourcing_bom(U(bpbh), labBpmc.Caption, FGridArg, "Edit") = False ThenMsgBox ("委外构成上传U8出错!")Exit SubEnd IfEnd If

二、下面是公用调用EAI的BOM构成的方法。

其中更新Inventory存货档案表,是更新委外标识。

'ds_data 数据列 InvCode 子件编码,desl 定额数量
Public Function Outsourcing_bom(as_fjCode As String, as_fjName As String, ds_data As MSHFlexGrid, as_proc As String) As Boolean
'as_proc = "Edit"
Outsourcing_bom = FalseDim ls_xml As StringDim ls_sender As StringDim ls_data As StringDim ls_BomId As StringDim ls_BomType As StringDim ls_Version As StringDim ls_VersionDesc As StringDim ls_VersionEffDate As StringDim ls_Status As StringDim ls_VenCode As StringDim ls_VenDesc As StringDim ls_InvCode As StringDim ls_InvName As StringDim ls_ParentScrap As Stringls_sender = U8_XTM '"001"
    ls_InvCode = as_fjCode '"WW" '父件编码ls_InvName = as_fjName '"委外测试" '父件名称ls_BomType = "1" 'BOM类型 不可为空ls_Version = "10" '版本号ls_VersionDesc = "01" '版本描述ls_Status = "3" 'BOM状态ls_ParentScrap = "0" '父件损耗率ls_BomId = "1000000000" 'BOMID 不可为空ls_VersionEffDate = "2000-01-01T00:00:00+00:00" '版本生效日'增加文件头相关信息ls_xml = "<?xml version=""1.0"" encoding=""UTF-8""?>" + vbCrLfls_xml = ls_xml & "<ufinterface sender=""" & ls_sender & """ receiver=""u8"" roottag=""bom"" docid="""" proc=""" & as_proc & """ renewproofno = ""Y"" codeexchanged=""N"" exportneedexch=""N"" display="""" family="""" timestamp="""">" + vbCrLfls_xml = ls_xml & "<Bom>" + vbCrLf'一、增加文件中版本信息 versionls_xml = ls_xml & "<Version>" + vbCrLfls_xml = ls_xml & "<BomId>" & ls_BomId & "</BomId>" + vbCrLf 'BOMID 不可为空ls_xml = ls_xml & "<BomType>" & ls_BomType & "</BomType>" + vbCrLf 'BOM类型 不可为空ls_xml = ls_xml & "<Version>" & ls_Version & "</Version>" + vbCrLf '版本号ls_xml = ls_xml & "<VersionDesc>" & ls_VersionDesc & "</VersionDesc>" + vbCrLf '版本说明ls_xml = ls_xml & "<VersionEffDate>" & ls_VersionEffDate & "</VersionEffDate>" + vbCrLf '版本生效日ls_xml = ls_xml & "<IdentCode/>" + vbCrLfls_xml = ls_xml & "<IdentDesc/>" + vbCrLfls_xml = ls_xml & "<Define1/>" + vbCrLfls_xml = ls_xml & "<Define2/>" + vbCrLfls_xml = ls_xml & "<Define3/>" + vbCrLfls_xml = ls_xml & "<Define4/>" + vbCrLfls_xml = ls_xml & "<Define5/>" + vbCrLfls_xml = ls_xml & "<Define6/>" + vbCrLfls_xml = ls_xml & "<Define7/>" + vbCrLfls_xml = ls_xml & "<Define8/>" + vbCrLfls_xml = ls_xml & "<Define9/>" + vbCrLfls_xml = ls_xml & "<Define10/>" + vbCrLfls_xml = ls_xml & "<Define11/>" + vbCrLfls_xml = ls_xml & "<Define12/>" + vbCrLfls_xml = ls_xml & "<Define13/>" + vbCrLfls_xml = ls_xml & "<Define14/>" + vbCrLfls_xml = ls_xml & "<Define15/>" + vbCrLfls_xml = ls_xml & "<Define16/>" + vbCrLfls_xml = ls_xml & "<ApplyCode/>" + vbCrLfls_xml = ls_xml & "<ApplySeq/>" + vbCrLfls_xml = ls_xml & "<Status>" & ls_Status & "</Status>" + vbCrLf 'BOM状态ls_xml = ls_xml & "<ModifyTime/>" + vbCrLfls_xml = ls_xml & "<CustCode/>" + vbCrLfls_xml = ls_xml & "<CustDesc/>" + vbCrLfls_xml = ls_xml & "<OrderType/>" + vbCrLfls_xml = ls_xml & "<OrderCode/>" + vbCrLfls_xml = ls_xml & "<OrderSeq/>" + vbCrLfls_xml = ls_xml & "<OrderDId/>" + vbCrLfls_xml = ls_xml & "<VenCode>" & ls_VenCode & "</VenCode>" + vbCrLf '供应商编码ls_xml = ls_xml & "<VenDesc>" & ls_VenDesc & "</VenDesc>" + vbCrLf '供应商名称
    Dim ls_ufts As Stringls_ufts = "AAAAAAA6aEU"ls_xml = ls_xml & "<Ufts>" & ls_ufts & "</Ufts>" + vbCrLf '
    '<Ufts>AAAAAAA6aEU=</Ufts>ls_xml = ls_xml & "</Version>" + vbCrLf'增加文件中父件信息 Parentls_xml = ls_xml & "<Parent>" + vbCrLfls_xml = ls_xml & "<BomId>" & ls_BomId & "</BomId>" + vbCrLf 'BOMID 不可为空ls_xml = ls_xml & "<InvCode>" & ls_InvCode & "</InvCode>" + vbCrLf '父件编码ls_xml = ls_xml & "<InvName>" & ls_InvName & "</InvName>" + vbCrLf '父件名称ls_xml = ls_xml & "<InvAddCode/>" + vbCrLfls_xml = ls_xml & "<Free1/>" + vbCrLfls_xml = ls_xml & "<Free2/>" + vbCrLfls_xml = ls_xml & "<Free3/>" + vbCrLfls_xml = ls_xml & "<Free4/>" + vbCrLfls_xml = ls_xml & "<Free5/>" + vbCrLfls_xml = ls_xml & "<Free6/>" + vbCrLfls_xml = ls_xml & "<Free7/>" + vbCrLfls_xml = ls_xml & "<Free8/>" + vbCrLfls_xml = ls_xml & "<Free9/>" + vbCrLfls_xml = ls_xml & "<Free10/>" + vbCrLfls_xml = ls_xml & "<EngineerFigNo/>" + vbCrLfls_xml = ls_xml & "<ParentScrap>" & ls_ParentScrap & "</ParentScrap>" + vbCrLf '父件损耗率ls_xml = ls_xml & "</Parent>" + vbCrLf'二、Component 子件信息For i = 1 To ds_data.rows - 1 'ds_data.RecordCount
    ls_xml = ls_xml & "<Component>" + vbCrLf
'        ls_data = "100000000" & Trim(str(i))ls_data = "1"For j = 1 To 9 - Len(Trim(str(i)))ls_data = ls_data & "0"Next jls_data = ls_data & Trim(str(i))ls_xml = ls_xml & "<OpComponentId>" & ls_data & "</OpComponentId>" + vbCrLf '子件资料Idls_data = "0"ls_xml = ls_xml & "<BomId>" & ls_BomId & "</BomId>" + vbCrLf 'BomIdls_data = Trim(str(i * 10))ls_xml = ls_xml & "<SortSeq>" & ls_data & "</SortSeq>" + vbCrLf '序号ls_xml = ls_xml & "<OpSeq>0000</OpSeq>" + vbCrLf'子件编码
'        If i = 1 Then
'            ls_data = "3910510723"
'        Else
'            ls_data = "3910510523"
'        End Ifls_data = Trim(ds_data.TextMatrix(i, 1))ls_xml = ls_xml & "<InvCode>" & ls_data & "</InvCode>" + vbCrLf '子件编码ls_xml = ls_xml & "<Free1/>" + vbCrLfls_xml = ls_xml & "<Free2/>" + vbCrLfls_xml = ls_xml & "<Free3/>" + vbCrLfls_xml = ls_xml & "<Free4/>" + vbCrLfls_xml = ls_xml & "<Free5/>" + vbCrLfls_xml = ls_xml & "<Free6/>" + vbCrLfls_xml = ls_xml & "<Free7/>" + vbCrLfls_xml = ls_xml & "<Free8/>" + vbCrLfls_xml = ls_xml & "<Free9/>" + vbCrLfls_xml = ls_xml & "<Free10/>" + vbCrLfls_xml = ls_xml & "<EngineerFigNo/>" + vbCrLfls_data = "2000-01-01T00:00:00+00:00"ls_xml = ls_xml & "<EffBegDate>" & ls_data & "</EffBegDate>" + vbCrLf '子件生效日期ls_data = "2099-12-31T00:00:00+00:00"ls_xml = ls_xml & "<EffEndDate>" & ls_data & "</EffEndDate>" + vbCrLf '子件失效日期ls_data = "1"ls_xml = ls_xml & "<FVFlag>" & ls_data & "</FVFlag>" + vbCrLf '固定/变动批量(0/1)'子件定额数量ls_data = Trim(ds_data.TextMatrix(i, 2))ls_xml = ls_xml & "<BaseQtyN>" & ls_data & "</BaseQtyN>" + vbCrLf '基本用量-分子ls_data = "1"ls_xml = ls_xml & "<BaseQtyD>" & ls_data & "</BaseQtyD>" + vbCrLf '基本用量-分母ls_data = "0"ls_xml = ls_xml & "<CompScrap>" & ls_data & "</CompScrap>" + vbCrLf '子件损耗率ls_data = "false"ls_xml = ls_xml & "<ByproductFlag>" & ls_data & "</ByproductFlag>" + vbCrLf '是否联副产品ls_data = "100000000" & Trim(str(i))ls_data = "1"For j = 1 To 9 - Len(Trim(str(i)))ls_data = ls_data & "0"Next jls_data = ls_data & Trim(str(i))ls_xml = ls_xml & "<OptionsId>" & ls_data & "</OptionsId>" + vbCrLf '选项资料Idls_xml = ls_xml & "<AuxUnitCode/>" + vbCrLfls_xml = ls_xml & "<ChangeRate/>" + vbCrLfls_xml = ls_xml & "<AuxBaseQtyN/>" + vbCrLfls_data = "1"ls_xml = ls_xml & "<ProductType>" & ls_data & "</ProductType>" + vbCrLf '
        ls_xml = ls_xml & "<Define22/>" + vbCrLfls_xml = ls_xml & "<Define23/>" + vbCrLfls_xml = ls_xml & "<Define24/>" + vbCrLfls_xml = ls_xml & "<Define25/>" + vbCrLfls_xml = ls_xml & "<Define26/>" + vbCrLfls_xml = ls_xml & "<Define27/>" + vbCrLfls_xml = ls_xml & "<Define28/>" + vbCrLfls_xml = ls_xml & "<Define29/>" + vbCrLfls_xml = ls_xml & "<Define30/>" + vbCrLfls_xml = ls_xml & "<Define31/>" + vbCrLfls_xml = ls_xml & "<Define32/>" + vbCrLfls_xml = ls_xml & "<Define33/>" + vbCrLfls_xml = ls_xml & "<Define34/>" + vbCrLfls_xml = ls_xml & "<Define35/>" + vbCrLfls_xml = ls_xml & "<Define36/>" + vbCrLfls_xml = ls_xml & "<Define37/>" + vbCrLfls_xml = ls_xml & "<Remark/>" + vbCrLfls_xml = ls_xml & "</Component>" + vbCrLfNext i'三、ComponentOpt 子件其它信息For i = 1 To ds_data.rows - 1 'ds_data.RecordCountls_xml = ls_xml & "<ComponentOpt>" + vbCrLf
'        ls_data = "100000000" & Trim(str(i))ls_data = "1"For j = 1 To 9 - Len(Trim(str(i)))ls_data = ls_data & "0"Next jls_data = ls_data & Trim(str(i))ls_xml = ls_xml & "<OptionsId>" & ls_data & "</OptionsId>" + vbCrLf '选项资料Idls_xml = ls_xml & "<Offset>0</Offset>" + vbCrLfls_data = "3"ls_xml = ls_xml & "<WIPType>" & ls_data & "</WIPType>" + vbCrLf 'WIP属性(1入库/2工序/3领料/4虚拟)ls_data = "true"ls_xml = ls_xml & "<AccuCostFlag>" & ls_data & "</AccuCostFlag>" + vbCrLf '是/否累计成本ls_xml = ls_xml & "<DrawDeptCode/>" + vbCrLfls_xml = ls_xml & "<Whcode/>" + vbCrLfls_data = "false"ls_xml = ls_xml & "<OptionalFlag>" & ls_data & "</OptionalFlag>" + vbCrLf '是否可选ls_data = "2"ls_xml = ls_xml & "<MutexRule>" & ls_data & "</MutexRule>" + vbCrLf '互斥原则(1-ONE/2-ALL/3-ANY/4-AL0)ls_data = "100"ls_xml = ls_xml & "<PlanFactor>" & ls_data & "</PlanFactor>" + vbCrLf '计划比例ls_data = "false"ls_xml = ls_xml & "<CostWIPRel>" & ls_data & "</CostWIPRel>" + vbCrLf '固定/变动批量(0/1)ls_data = "0"ls_xml = ls_xml & "<Offset>" & ls_data & "</Offset>" + vbCrLf '偏置期ls_xml = ls_xml & "</ComponentOpt>" + vbCrLfNext i'增加文件尾相关信息ls_xml = ls_xml & "</Bom>" + vbCrLfls_xml = ls_xml & "</ufinterface>" + vbCrLfDim xml_document As New DOMDocumentxml_document.loadXML (ls_xml)fn2 = App.Path & "\u8_code2.xml"xml_document.save (fn2)Dim ls_temp As String '接收返回消息,如果成功,返回U8中物料代码,如果失败,返回错误信息If SendToEAI(ls_xml, ls_temp) Then '成功
'        MsgBox "上传成功" & ls_temp
Dim sqls() As StringDim sqls_rangeDim msgtext As Stringsqls_range = 0ReDim Preserve sqls(sqls_range)sqls(sqls_range) = "update Inventory set bProxyForeign = 1 where  cInvCode = '" & as_fjCode & "' "If U8Update(sqls, msgtext) = False Then'数据库更新失败退出
            MsgBox msgtextOutsourcing_bom = FalseElseOutsourcing_bom = TrueEnd IfElse '失败
        MsgBox ls_tempOutsourcing_bom = FalseEnd IfEnd Function

转载于:https://www.cnblogs.com/spring_wang/p/3393359.html

U811.1接口EAI系列之二-BOM构成-委外BOM构成--VB语言相关推荐

  1. U811.1接口EAI系列之二--生成销售出库单调用U8的EAI通用处理方法--PowerBuilder语言...

    1.销售系统销售出库,更新U811.1材料库存的EAI的XML生成. 2.主要根据U8配置会生成出库单和同时是否更新库存量,还是更新现存量等等. 3.具体参考代码如下: 作者:王春天 2013-11- ...

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

    1. 业务系统同步U811.1存货档案通用方法. 2.具体代码处理如下: 作者:王春天 2013-11-06 地址:http://www.cnblogs.com/spring_wang/p/34098 ...

  3. U811.1接口EAI系列之四--委外订单生成--VB语言

    委外订单主细表.子个构成需求.具体代码与参数说明. 下面调用的通用方法在: http://www.cnblogs.com/spring_wang/p/3393147.html 作者:王春天 2013- ...

  4. U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言

    1.前面配置参考:http://www.cnblogs.com/spring_wang/p/3393147.html 2.pb通用调EAI方法代码如下: //===================== ...

  5. U811.1接口EAI系列之五--材料出库--VB语言

    主要业务有:09其他出库单 11:材料出库单 32:销售出库单 主要业务代码: '材料出库生成XML Public Function xml_storeout(ds_head As MSHFlexGr ...

  6. 接口自动化测试系列(二):深入分析HTTP状态码502

    一.描述 分类 分类描述 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理(成功表示服务器成功接收了请求但未必进行处理) 3** 重定向,需要进一步的操作以完成 ...

  7. LCD接口设计系列二:基于LVDS接口屏的硬件电路设计

    LCD的接口类型较多,主要有RGB接口.LVDS接口.eDP接口.MIPI-DSI接口.HDMI接口等,这些接口的定义/协议/特点等各有不相同,一直想对这些接口电路做一个总结.由于涉及到的内容比较多, ...

  8. 服务器背板接口信号,CTI论坛: 服务器背板总线技术系列之二: Compact PCI背板总线...

    服务器背板总线技术系列之二Compact PCI背板总线 国家高性能计算机工程技术研究中心 张瑾 等 2002/06/27 Compact PCI的提出 VME标准是面向工业应用开发的,它的可靠性极高 ...

  9. BizTalk学习笔记系列之二:实例说明如何使用BizTalk

    BizTalk学习笔记系列之二:实例说明如何使用BizTalk --.BizTalk学习笔记系列之二<?XML:NAMESPACE PREFIX = O /> Aaron.Gao,2006 ...

最新文章

  1. 青龙面板Nvjdc魔改前段待弹窗---仅支持2.0版本
  2. LeetCode题解之Largest Number
  3. 创立一家互联网公司,需要几步?
  4. 机房系统(五)——【Excel表导出】
  5. 深度学习——用softmax函数来规范可变参数
  6. C++读写注册表的问题
  7. 使用Ruby来实现批量更新AD中字段
  8. html字体设置匹配移动端,移动端字体的设置
  9. 《第一行代码(第三版)》kotlin开发Android,学习笔记(进行中ing)
  10. 怎么提高文公写作水平?公文写作礼仪类模板(1)
  11. MFC:Ribbon界面设计
  12. HTTP协议原理详解
  13. Gradle 2.0 用户指南翻译——第五十四章. 构建本机二进制文件
  14. 小学生的游戏 FZU - 1575
  15. android按键定义
  16. 【前端面试题(3)】
  17. 扁平和树形结构的几种互转
  18. Jitter的基本知识
  19. LDPC的密度进化 density evolution
  20. 关于linux磁盘爆满定位大文件的方法

热门文章

  1. stack操作 and deque操作
  2. TensorFlow第六步: 继续挖坑 用tf重写BP并增加SGD
  3. TLD Tracker
  4. 三维重建中旋转矩阵与平移矩阵思想误区(转载)
  5. 百练 03 复杂的整数划分问题
  6. font config 问题实践 001 - 如何获取font config的配置文件
  7. java正则 转义_java – 正则表达式和转义和未转义的分隔符
  8. mysql 工时统计_有如下数据,要统计1月3号工时不足8小时的员工姓名及总工时,该sql语句该怎么写(用的mysql哈)...
  9. 拖拽功能 php,基于Vue实现拖拽功能
  10. ncre二级java_如何备考计算机二级java?