使用提升的上下文属性配置出站WCF消息正文

时间:2018-12-04 09:32:03

标签: c# sql-server xml wcf biztalk

我有一个发送端口,用于接收带有一组提升的上下文属性的文档。发送端口上的适配器设置为WCF-SQL,并且已配置为连接到SQL Server。

唯一缺少的部分是配置“消息”选项卡,以便将正确的消息发送到数据库。现在,我只是带有一些硬编码的值以及消息本身:

Query query=s.createQuery("select pid from Patient where emailid=? ");

//get value from the first record
String pid = query.setParameter(0, email).list().get(0).toString();
char abc= pid.charAt(1);
int patientid=Character.getNumericValue(abc);
//better to use this get int
//int patientid=Integer.parseInt(abc);

我不确定如何正确地将提升的上下文属性插入这些元素中。要了解我想在哪里配置此XML,请参见以下屏幕显示:

enter image description here

我不能使用body选项,因为我需要在数据库中插入一些提升的属性。看一下MSDN,似乎没有任何关于如何完成此操作的解释。查看此链接:https://docs.microsoft.com/en-us/biztalk/core/specifying-the-message-body-for-the-wcf-adapters

对于接收消息,我创建了一个管道组件,该组件提升了所需的属性并可以正常工作。

在标准Biztalk中这根本不可能吗?如果没有,我将需要创建一个额外的管道组件来处理发送。

1 个答案:

答案 0 :(得分:1)

啊,好的,我明白你在做什么。...所以....不要这样。

处理此问题的最佳方法,基本上是正确的方法是使用带有Maps和Orchestration的普通BizTalk流。请记住,使用业务流程没有任何问题,如果有人告诉您不要使用业务流程,那是错的。*

基本上,使用临时值映射到您的SQL Schema,然后使用“专有字段”从上下文中设置它们。

从不打扰“消息”选项卡,它基本上是将代码隐藏在不应存在的位置。

如果他们仍然可以通过其他方式使您执行此操作,则需要告诉您的管理层,这将花费您大约两倍的时间来实现,因为您必须创建一个复制内置功能的反模式。