我们正在使用 BizTalk 生成有效的 SWIFT 消息(最初是 MT 103)并将其放到端点上。但是,我们正在努力生成有效的消息。
(类似但不同的问题,在这个 StackOverflow 帖子上。我把这些问题分解了,因为它们在本质上是不同的。)
给定一个填充的 A4SWIFT MT103 模式(命名空间:)http://schemas.microsoft.com/BizTalk/Solutions/FinancialServices/SWIFT/Categroy1/MT103
,我们将其通过管道上的 SWIFT 汇编器传递,从中我们得到一条“扁平”的 SWIFT MT 103 消息。
我们收到如下所示的 SWIFT 消息(显然是错误的):
{1:F01ABCDEFGXAXXX0000000000}{2:I103ABCDEFGHXXXXN}{3:{108:143136}
:20:ABCDEF123456
:23B:CRED
:32A:170607USD500,1
:33B:USD500,1
:50F:/0000000000
Bible Baggins
1 Bag End
Hobbiton
ME1
:53A:/00000000
ABCDEFGXXXX
:57A:ABCDEF
:59F:/00000000000000
CashYourJewelleryFast.com
:71A:OUR
-}
请注意,Block 3 没有正确终止,Block 4 没有正确启动。
我错过了这些字符:}{4:
Dijkgraaf 要求提供原始 XML。这如下所示(尽可能匿名以匹配示例):
<ns1:SWIFT_CATEGORY1_MT103_Interchange
xmlns:ns1="http://schemas.microsoft.com/BizTalk/Solutions/FinancialServices/SWIFT/Category1/MT103"
xmlns:ns0="http://schemas.microsoft.com/BizTalk/Solutions/FinancialServices/SWIFT/BaseTypes"
xmlns:ns2="http://schemas.microsoft.com/BizTalk/Solutions/FinancialServices/SWIFT/DataTypes">
<SWIFTHeader>
<BasicHeaderBlock>
<ApplicationIdentifier>F</ApplicationIdentifier>
<ServiceIdentifier>01</ServiceIdentifier>
<LTAddress>ABCDEFGXAXXX</LTAddress>
<SessionNumber>0000</SessionNumber>
<SequenceNumber>000000</SequenceNumber>
</BasicHeaderBlock>
<ApplicationHeaderBlock_Input>
<MessageType>103</MessageType>
<DestinationAddress>ABCDEFGHXXXX</DestinationAddress>
<MessagePriority>N</MessagePriority>
</ApplicationHeaderBlock_Input>
<UserHeaderBlock>
<MessageUserReference_108>
<Reference>143136</Reference>
</MessageUserReference_108>
</UserHeaderBlock>
</SWIFTHeader>
<SWIFT_CATEGORY1_MT103>
<SendersReference_20>
<Reference>ABCDEF123456</Reference>
</SendersReference_20>
<BankOperationCode_23B>
<Type>CRED</Type>
</BankOperationCode_23B>
<ValueDateCurrencyInterbankSettledAmount_32A>
<Date>170607</Date>
<Currency>USD</Currency>
<Amount>500,1</Amount>
</ValueDateCurrencyInterbankSettledAmount_32A>
<CurrencyInstructedAmount_33B>
<Currency>USD</Currency>
<Amount>500,1</Amount>
</CurrencyInstructedAmount_33B>
<OrderingCustomer_50F>
<OrderingCustomerIdentification_1>
<Account>0000000000</Account>
</OrderingCustomerIdentification_1>
<NameAndAddress>
<Line1>
<nameAndAddressLineType_1>Bilbo Baggins</nameAndAddressLineType_1>
</Line1>
<Line2>
<nameAndAddressLineType_1>1 Bag End</nameAndAddressLineType_1>
</Line2>
<Line3>
<nameAndAddressLineType_1>Hobbiton</nameAndAddressLineType_1>
</Line3>
<Line4>
<nameAndAddressLineType_1>ME1</nameAndAddressLineType_1>
</Line4>
</NameAndAddress>
</OrderingCustomer_50F>
<SendersCorrespondent_53A>
<PartyIdentifier>
<Identifier>00000000</Identifier>
</PartyIdentifier>
<BankIdentifierCode>
<BankCode>ABCD</BankCode>
<CountryCode>EF</CountryCode>
<AreaCode>GH</AreaCode>
<BranchCode>XXX</BranchCode>
</BankIdentifierCode>
</SendersCorrespondent_53A>
<AccountWithInstitution_57A>
<BankIdentifierCode>
<BankCode>ABCD</BankCode>
<CountryCode>EF</CountryCode>
<AreaCode>EF</AreaCode>
<BranchCode>XXX</BranchCode>
</BankIdentifierCode>
</AccountWithInstitution_57A>
<BeneficiaryCustomer_59F>
<Account>
<Account>00000000000000</Account>
<NameAndAddress>
<Line1>
<nameAndAddressLineType_1>CashYourJewelleryFast.com</nameAndAddressLineType_1>
</Line1>
</NameAndAddress>
</Account>
</BeneficiaryCustomer_59F>
<DetailsOfCharges_71A>
<Code>OUR</Code>
</DetailsOfCharges_71A>
</SWIFT_CATEGORY1_MT103>
</ns1:SWIFT_CATEGORY1_MT103_Interchange>
我已经使用其他系统中生成的已知有效 MT 103 消息检查了生成的 MT 103 消息,并且我相信这些详细信息存在并且格式正确。
我怀疑 BizTalk/A4SWIFT 在出现问题并生成一半创建的消息时有点合适。
有什么我想念的吗?我在哪里可以找到与此相关的实际错误,而不仅仅是计数?我可以<UnparsedMessages />
根据提升的属性生成并路由错误,但它们不包含任何有用的信息。