And*_*wes 4 soap salesforce azure azure-functions
我正在使用Azure Functions在各种系统之间构建一些集成.我的新要求是响应Salesforce中的记录更新.一些快速的研究产生了Salesforce方面看起来很好的解决方案.使用可以在记录修改时发送SOAP请求的出站消息传递.
如何创建Salesforce应用程序,在创建/更改记录时将记录发送到外部Web服务(https://salesforce.stackexchange.com/questions/73425/how-to-create-salesforce-application-that-will-send-record到外部网络服务)
现在的挑战是能够在Azure Function中创建SOAP侦听器.我为其他听众创建了基本的HTTP触发器.Azure函数是否有"内置"功能可以让我轻松使用传入的SOAP请求?
Salesforce具有基于更传统的Web服务和ASMX文件的解决方案的基础知识,但我不确定是否或如何在Azure功能中应用它.(https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_om_outboundmessaging_listener.htm)
Fab*_*nte 10
该通知只是通过HTTP发出的SOAP请求,因此与常规HTTP触发器请求实际上没有太大区别.
虽然您可以将其视为普通请求并自行解析内容,但Azure Functions确实公开了我们从ASP.NET WebHooks获得的出色WebHook支持,幸运的是,有一个Salesforce接收器可以显着简化此任务.
免责声明:值得注意的是,虽然接收器在Azure功能中已经在技术上启用,但它还没有官方支持,因此您将找不到大量文档,并且帮助仅限于您在SO和论坛上获得的内容.希望这个和其他接收器的官方支持很快就会到来,这意味着文档,模板和UI支持将变得可用.
要开始使用,您需要以下内容:
webHookType属性值更改为sfsoap并保存配置.您的function.json配置应如下所示:function.json:
{
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"webHookType": "sfsoap",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
}
],
"disabled": false
}
Run Code Online (Sandbox Code Playgroud)
这是ASP.NET WebHooks接收器闪耀的地方!它将为您解析通知,公开您可以使用的强类型对象.您需要做的就是修改模板使用SalesforceNotifications类型的方法/函数签名,确保您引用所需的程序集(Microsoft.AspNet.WebHooks.Receivers.Salesforce可供您使用,因此不需要包引用)和命名空间引用(Microsoft.AspNet.WebHooks).
以下是将接收请求并记录组织ID,操作ID,获取第一个通知并记录其所有属性的函数的完整示例:
#r "Microsoft.AspNet.WebHooks.Receivers.Salesforce"
using Microsoft.AspNet.WebHooks;
public static void Run(SalesforceNotifications req, TraceWriter log)
{
log.Info($"Salesforce webhook was triggered!");
log.Info(req.OrganizationId);
log.Info(req.ActionId);
var notification = req.Notifications.First();
foreach (var p in notification.Keys)
{
log.Info($"{p} = {notification[p]}");
}
}
Run Code Online (Sandbox Code Playgroud)
当接收器得到官方支持时,这个过程会更顺畅,但即使添加了步骤,这仍然需要自己解析SOAP消息:)
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
2309 次 |
| 最近记录: |