我必须通过BizTalk连接REST服务.该服务返回JSON响应,如下所示.当BizTalk响应端口尝试解码JSON消息时,我收到有关JSON到XML转换的错误.由于JSON消息中嵌入了HTML标记,因此发生此错误.
错误:
(执行响应(接收)管道失败:"Avansas.Paritus.Suggest.T.JSONReceive,Avansas.Paritus.Suggest.T,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 7b2984270a9ffd13"来源:"JSON解码器"发送端口:"Avansas.Ibrahim.Suggest.T.SendPort"URI:"api1.test.com/services/rest";原因:解析值时遇到意外字符:<.路径'',第0行,位置0 .)
例如:
如下所示,响应消息在JSON中有一个标签元素.Label元素有一个带有html标签(City)的文本,这就是BizTalk尝试将JSON转换为XML时出现错误的原因.我认为BizTalk尝试将JSON转换为图2,但我想将其转换为图3.
我该如何解决这个问题?
有没有任何方法在没有任何架构的情况下在业务流程上进行passthru传输?
图1
{
"suggestion": [
{
"id": "[31 31 31 30 30 39]",
"label": "Global <b>City</b> 2. Etap Global <b>C?ty</b> ",
"value": "Global <b>City</b> 2. Etap Villalar? "
},
{
"id": "[39 33 36 32 35 36]",
"label": "<b>City</b> Aqua Villas Sk. Ku?adas? Ayd?n",
"value": "<b>City</b> Aqua Villas Sk. Ku?adas? Ayd?n"
}
]
}
Run Code Online (Sandbox Code Playgroud)
图2:
<root>
<suggestion>
<id>[31 31 31 30 30 39]</id>
<label>Global
<b>City</b> …Run Code Online (Sandbox Code Playgroud) 在服务器中运行 BizTalk 包时出现以下错误:
由于找不到订阅者,无法路由已发布的消息
包描述:使用存储过程将 CSV 平面文件导入 SQL Server。
分解:
创建表代码:
CREATE TABLE [dbo].[Accounts](
[Id] [int] IDENTITY(1,1) NOT NULL,
[AccountName] [nvarchar](150) NULL,
[ServiceAddress] [nvarchar](150) NULL,
[AccountNumber] [nvarchar](50) NULL,
CONSTRAINT [PK_Accounts] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
创建存储过程代码:
CREATE PROCEDURE [dbo].[InsertAccount]
@AccountName AS NVARCHAR(150) ,
@ServiceAddress AS NVARCHAR(150) ,
@AccountNumber AS NVARCHAR(50)
AS
INSERT INTO dbo.accounts
( AccountName ,
ServiceAddress …Run Code Online (Sandbox Code Playgroud) 我有一个Biztalk项目,它具有以下设置:
General > Redeploy > True
Local Machine > Install to Global Assembly Cache > True
Run Code Online (Sandbox Code Playgroud)
涉及的所有项目都生成了SNK文件.但是,我删除了一个引用,并且根据biztalk文档,它尚未从GAC 中清除.当我尝试在c:\ windows\assembly中找到已安装的程序集时,我找不到我的BiztalkProject.DLL或BiztalkLibraries.DLL项目.这可能是权限问题,还是我处理不同的问题?
biztalk gac windows-server-2012 visual-studio-2013 biztalk-2013r2
使用BizTalk 2013r2 CU1,我为我的入站xsd创建了一个属性模式并部署了该应用程序.
当我使用标准的"xml接收"管道收到样本xml文档时,我可以看到所需的元素按预期被提升到上下文中.
然后,我创建了一个自定义管道,其中包含"Disassemble"阶段中的"XML反汇编程序"组件和"验证"阶段中的自定义组件.此自定义组件需要从上下文中读取提升的属性.但是,我发现当我将接收位置从"xml接收"管道切换到我的自定义管道时,我的属性不会被提升.我在自定义组件中使用以下代码来写出消息上下文中的项列表:
for (int x = 0; x < contextList.CountProperties; x++)
{
contextList.ReadAt(x, out name, out nspace);
string value = contextList.Read(name, nspace).ToString();
contextItems += "Name: " + name + " - " + "Namespace: " + nspace + " - " + value + "\r\n";
if (name == _ContextPropertyName && nspace == _ContextPropertyNamespace)
promotedPropFound = true;
}
Helpers.EventLogHelper eventHelper = new EventLogHelper();
eventHelper.LogEvent(string.Format("Context items:{0}", contextItems));
if (promotedPropFound == false)
throw new Exception(string.Format("Unable to find promoted property with …Run Code Online (Sandbox Code Playgroud) 总的来说,我是 BizTalk 的新手并维护着一个非常旧的设置,BT 2013 R2
总的来说,我精通 .XSLT,并且比在 BT IDE(以及 vstudio IDE)中直接管理 xml 感觉更舒服
所以这里有几个通用的架构问题:
通过记事本手动管理地图的步骤是什么?我在 .BTM.CS 文件中看到了很多代码,但这些代码似乎没有被提取出来。我似乎必须先更改 .BTM 文件,然后生成 .BTM.CS
我的地图很大,我正在使用 X12 并且有数千个字段,我该怎么做才能使这更容易?我必须滚动 10 层深才能使任何内容可见,然后展开地图。BT IDE 似乎在处理如此大的文件时遇到了很大的问题
此外,任何人都可以推荐有关该主题的任何书籍将不胜感激
我有这个问题,希望有人能帮忙解决.
我有一个编排,作为输入接收文件(消息为Microsoft.XLANGs.BaseTypes.Any).只是一个包含一些非结构化文本的文件.
我创建了一个动态发送端口,将接收的文件保存在备份文件夹中.
问题是,当有人发送相同的文件(具有相同的文件名)时,它不会覆盖备份文件夹中的文件.
当在constructMessage形状中尝试以下内容时
Message_new = orgMessage;
Message_new(FILE.CopyMode)= 2; //2=overwrite,
Run Code Online (Sandbox Code Playgroud)
这两个消息都是相同的类型:Microsoft.XLANGs.BaseTypes.Any
我收到这个错误:
错误1使用未构造的消息'orgMessage''':消息尚未初始化
我们计划将现有的BizTalk应用程序迁移到BizTalk 2013 R2.根据Microsoft文档,它说,推荐的SQL版本应该是SQL Server 2014或SQL Server 2012 SP1(企业版/标准版).建议不要在生产环境中使用SQL Server Express Edition.Express版不包含BizTalk Server所需的某些功能.
我们没有使用任何EDI或BAM.仅使用EAI应用程序.我们还需要SQL标准版还是企业版?我们不能在生产中使用SQL Express版本吗?