Receive or Pull Data from CRM using BizTalk

 

Receive or Pull Data from CRM using BizTalk

(Article works with CRM Dynamics 3.0 and BizTalk Server 2004 onwards)

BizTalk CRM adapter can be used to send or push data to CRM system from any other application system. For example, account data can be pushed to CRM server from commerce server. But when it comes to receiving or pulling data out of CRM, Adapter is not the way because it comes with send adapter only. Well, one can design to run a scheduled orchestration which pools CRM server to fetch required data using SOAP adapter and CRM web service. But pooling is not a smart way. Ideally, any scalable design should pull incremental data when any data change happens. You can call this event (data change/addition) driven incremental data receive.

Understanding Fundamentals

To design event driven incremental data receive, you have to use some of the in-house features of CRM. These features are – “Workflow” and “BizTalk Logic Extension” or “Callout”. Let’s talk little about these.

Microsoft CRM provides an event driven workflow framework on which developers can write custom logic. You can write a .net component and make it work under a workflow rule definition. Workflow rules can be bound to the following events that can be performed on an entity instance –

·         Create

·         Assign

·         Change Status

For example, if you create a workflow which has a rule which is bound to run on create event for “contact” entity instance, then whenever an instance of “contact” entity is created, it will trigger workflow rule and rule will in reverse call .net component. You can learn more about CRM workflow @ http://msdn2.microsoft.com/en-us/library/aa685987.aspx .

“Business Logic Extensions” or “Callout” is another event driven framework in CRM. Callouts can be configured to run (a .net component) upon occurrence of some event. Callouts support following event for CRM entities –

·         Create

·         Update

·         Delete

·         Assign

·         Status Change

·         Merge

·         Send Mail

Callouts can be two types of –

·         Pre Callout – executes before occurrence of event

·         Post Callout – executes after occurrence of event

For example, if you configure a post callout on create event of “contact” entity, then whenever an instance of “contact” entity is created, it will trigger configured post callout and callout will in reverse call .net component. You can learn more about CRM callout @ http://msdn2.microsoft.com/en-us/library/aa680495.aspx.

Both of these features are simple, configurable, require .net based coding and are very powerful. You are not required to be a CRM expert to use or implement them.

Designing Event Driven Incremental Data Import

There are few things which make “workflow” and “callout” a great instrument to design event based data pull –

·         Both run when events like create, update, delete etc. occurs on CRM entities. Since these events occur when changes happen to entity instances; you can put logic in workflow or callout to read entity instance data just change and play with it. In other world, you can fetch incremental data change.

·         Both are configurable

·         As an event action, both can run .net components.

Let’s take a scenario and see how these things work together to give desired design.

Scenario: Contoso is an online retail company. It has an e-commerce site with commerce server at back end. And its customer care offices run CRM. Customers can call Contoso customer care center agents to update their profile, credit card and demographic information. Agents use CRM web client to perform job. Customers can also do the same job using self care portal which in reverse uses CRM web service to update information in CRM system. In both of these cases, customer contact information is updated in CRM system. Requirement is that “as soon as customer contact information is updated in CRM system; it should get synchronized to commerce server”.

In this overall requirement, underline statement requires customer contact data to be pulled from CRM system and get pushed into commerce system. You want to do incremental data update and want pull to happen only when any customer contact information is changed. Let’s see a simple possible solution for this -

Solution: here are step by step things I will like to do to implement this solution.

·         I am assuming that customer accounts are implemented as “contact” entity in CRM system.

 

·         First you create a BizTalk project. You add a schema having those fields or properties which we need to synchronize between CRM and Commerce.

 

·         Then you add an orchestration. Orchestration will use a “Request-Response” port to read messages of schema type defined above. Once message is read, orchestration uses this message and commerce profile send adapter to send contact information into commerce system. Off course, there will some logic and data mapping between your schema and commerce profile schema. Well, I am sure smart implementation will have more decoupled and scalable orchestration design.

 

·         When orchestration logic is complete, expose orchestration as web service and perform necessary port binding in BizTalk administrator.

 

·         You are done with orchestration which can carry data between CRM and Commerce system. Now, we need to hook this orchestration with CRM in such a way that whenever contact entity instance is updated in CRM; it should trigger orchestration and pass required contact data from CRM to Commerce system.

 

·         To perform required clip, create a workflow or post callout in CRM on “contact” entry and subscribe it to “update” event. As an action, workflow or callout will call a .net component and pass contact instance information to it.

 

·         .Net component will call BizTalk web service exposed above and will use contact instance information to populate fields of schema in web service and finally call web service.

 

·         And it works. Whenever, a contact entity instance is updated in CRM, configured workflow or callout will get triggered. Workflow or callout will fire .net component execution. Component will call web service passing contact instance information. Web service will pass data to orchestration and orchestration will push data into commerce system using adapters.

 

·         That’s it. Solution triggers data synchronization only when any data change happens. Only incremental data is passed between systems.

 

·         Well web service is one way. You can also used file, ftp or any other channel based integration.

Choosing between workflow and business logic extension (callout)

 You saw that we can use both callout and workflow to implement pull solutions. Question is when to use workflow and when callout? You can use following guidelines –

·         Callout supports more events than workflow.

·         Workflows run asynchronous while callouts work synchronous.

·         Callouts support all entities in CRM but workflow has reservations for few.

·         Workflow can be run manually but callout cannot be.

·         Callouts can be managed using automated deployment but workflow is not. One has to use workflow manager for workflow deployment.

Conclusion

Workflow and callout are two wonderful features in CRM which can be leveraged by BizTalk to write a smart pull operation. You just need to use their potential and fit in design. Hope you find this article useful.

【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
内容概要:本文系统介绍了基于最小势能原理(即能量法)的物理信息神经网络(PINNs)在求解固体力学二维问题中的理论框架与应用实践,并提供了完整的PyTorch代码实现案例。该方法通过将物理系统的总势能泛函嵌入神经网络的损失函数中,利用深度学习框架直接求解满足控制方程和边界条件的位移场近似解,避免了传统数值方法对网格划分的依赖。文章重点剖析了基于变分原理的能量形式如何替代强形式偏微分方程构建损失项,提升了求解的稳定性与泛化能力。同时,研究对比了不同PINNs架构与训练策略在处理复杂几何形状、非均匀材料属性及非线性力学行为时的精度、收敛性与计算效率,验证了其在处理经典弹性力学问题(如平面应力/应变问题)中的有效性与潜力。配套代码便于读者复现结果并拓展至更广泛的工程应用场景。; 适合人群:具备一定深度学习基础和固体力学知识的研究生、科研人员及工程技术从业者,特别适用于从事计算力学、智能仿真、物理驱动建模、结构分析等方向的研究者。; 使用场景及目标:①掌握基于能量法的PINNs建模范式,理解其相较于传统有限元法的优势与局限;②研究物理信息神经网络在无网格求解复杂边界与非线性问题中的能力;③对比不同神经网络结构对求解精度与收敛速度的影响,推动PINNs在工程实际中的落地应用。; 阅读建议:建议读者结合所提供的PyTorch代码逐模块分析网络构建、能量泛函定义、边界条件施加及训练流程设计,深入理解物理约束与机器学习模型的融合机制,并鼓励在自定义问题中调整网络参数、采样策略与损失权重以优化性能。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值