U811.1接口EAI系列之二-BOM构成-委外BOM构成–VB语言

地址:

具体代码如下:

一、下面是实际调用的方法。参数之一是“添加”和“编辑”是新组件还是修改组件。那个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 Then
            If Outsourcing_bom(U(bpbh), labBpmc.Caption, FGridArg, "Add") = False Then
               MsgBox ("委外构成上传U8出错!")
               Exit Sub
            End If
        Else
            If Outsourcing_bom(U(bpbh), labBpmc.Caption, FGridArg, "Edit") = False Then
               MsgBox ("委外构成上传U8出错!")
               Exit Sub
            End If
        End If

二、以下是调用EAI的BOM的方法。

更新库存文件表就是更新分包标识。

'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 = False
    Dim ls_xml As String
    Dim ls_sender As String
    Dim ls_data As String
    Dim ls_BomId As String
    Dim ls_BomType As String
    Dim ls_Version As String
    Dim ls_VersionDesc As String
    Dim ls_VersionEffDate As String
    Dim ls_Status As String
    Dim ls_VenCode As String
    Dim ls_VenDesc As String
    Dim ls_InvCode As String
    Dim ls_InvName As String
    Dim ls_ParentScrap As String
    ls_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""?>" + vbCrLf
    
    ls_xml = ls_xml & "<ufinterface sender=""" & ls_sender & """ receiver=""u8"" roottag=""bom"" docid="""" proc=""" & as_proc & """ renewproofno = ""Y"" codeexchanged=""N"" exportneedexch=""N"" display="""" family="""" timestamp="""">" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    
    '一、增加文件中版本信息 version
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" & ls_BomId & "" + vbCrLf 'BOMID 不可为空
    ls_xml = ls_xml & "" & ls_BomType & "" + vbCrLf 'BOM类型 不可为空
    ls_xml = ls_xml & "" & ls_Version & "" + vbCrLf '版本号
    ls_xml = ls_xml & "" & ls_VersionDesc & "" + vbCrLf '版本说明
    ls_xml = ls_xml & "" & ls_VersionEffDate & "" + vbCrLf '版本生效日
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" & ls_Status & "" + vbCrLf 'BOM状态
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" & ls_VenCode & "" + vbCrLf '供应商编码
    ls_xml = ls_xml & "" & ls_VenDesc & "" + vbCrLf '供应商名称
    Dim ls_ufts As String
    ls_ufts = "AAAAAAA6aEU"
    ls_xml = ls_xml & "" & ls_ufts & "" + vbCrLf '
    
    'AAAAAAA6aEU=
    ls_xml = ls_xml & "" + vbCrLf
    
     '增加文件中父件信息 Parent
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" & ls_BomId & "" + vbCrLf 'BOMID 不可为空
    ls_xml = ls_xml & "" & ls_InvCode & "" + vbCrLf '父件编码
    ls_xml = ls_xml & "" & ls_InvName & "" + vbCrLf '父件名称
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" & ls_ParentScrap & "" + vbCrLf '父件损耗率
    ls_xml = ls_xml & "" + vbCrLf
    
     '二、Component 子件信息
    For i = 1 To ds_data.rows - 1 'ds_data.RecordCount
    
        ls_xml = ls_xml & "" + 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 j
        ls_data = ls_data & Trim(str(i))
        
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '子件资料Id
        ls_data = "0"
        ls_xml = ls_xml & "" & ls_BomId & "" + vbCrLf 'BomId
        ls_data = Trim(str(i * 10))
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '序号
        ls_xml = ls_xml & "0000" + vbCrLf
        
        '子件编码
'        If i = 1 Then
'            ls_data = "3910510723"
'        Else
'            ls_data = "3910510523"
'        End If
        ls_data = Trim(ds_data.TextMatrix(i, 1))
        
        
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '子件编码
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_data = "2000-01-01T00:00:00+00:00"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '子件生效日期
        ls_data = "2099-12-31T00:00:00+00:00"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '子件失效日期
        ls_data = "1"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '固定/变动批量(0/1)
        
        '子件定额数量
        ls_data = Trim(ds_data.TextMatrix(i, 2))
        
        
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '基本用量-分子
        ls_data = "1"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '基本用量-分母
        ls_data = "0"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '子件损耗率
        ls_data = "false"
        ls_xml = ls_xml & "" & ls_data & "" + 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 j
        ls_data = ls_data & Trim(str(i))
        
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '选项资料Id
         ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_data = "1"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        
        ls_xml = ls_xml & "" + vbCrLf
    Next i
    
     '三、ComponentOpt 子件其它信息
    For i = 1 To ds_data.rows - 1 'ds_data.RecordCount
        ls_xml = ls_xml & "" + 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 j
        ls_data = ls_data & Trim(str(i))
        
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '选项资料Id
        ls_xml = ls_xml & "0" + vbCrLf
        ls_data = "3"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf 'WIP属性(1入库/2工序/3领料/4虚拟)
        ls_data = "true"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '是/否累计成本
        ls_xml = ls_xml & "" + vbCrLf
        ls_xml = ls_xml & "" + vbCrLf
        ls_data = "false"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '是否可选
        ls_data = "2"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '互斥原则(1-ONE/2-ALL/3-ANY/4-AL0)
        ls_data = "100"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '计划比例
        ls_data = "false"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '固定/变动批量(0/1)
        ls_data = "0"
        ls_xml = ls_xml & "" & ls_data & "" + vbCrLf '偏置期
        ls_xml = ls_xml & "" + vbCrLf
    Next i
    
    '增加文件尾相关信息
    ls_xml = ls_xml & "" + vbCrLf
    ls_xml = ls_xml & "" + vbCrLf
    
    Dim xml_document As New DOMDocument
    xml_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 String
        Dim sqls_range
        Dim msgtext As String
    
        sqls_range = 0
        ReDim Preserve sqls(sqls_range)
        sqls(sqls_range) = "update Inventory set bProxyForeign = 1 where  cInvCode = '" & as_fjCode & "' "
        
        
        If U8Update(sqls, msgtext) = False Then
            '数据库更新失败退出
            MsgBox msgtext
            Outsourcing_bom = False
        Else
            Outsourcing_bom = True
        End If
        
    
    Else '失败
        MsgBox ls_temp
        Outsourcing_bom = False
    End If
    
   
    
End Function

分类:

技术要点:

相关文章:

© 版权声明
THE END
喜欢就支持一下吧
点赞65赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容