【问题标题】:salesforce Change Data Capture not sending change eventsalesforce 更改数据捕获未发送更改事件
【发布时间】:2020-10-05 08:17:39
【问题描述】:

我正在使用 firebase 函数使用指定的 cometD 订阅更改事件以获得机会。我的握手一切正常,但根本没有收到更改。我已确保在设置中选择了机会对象。关于什么其他检查或调试什么没有发生的任何建议?

export const helloWorld = functions.https.onRequest(async(request, response) => {
    functions.logger.info("Hello logs!", {structuredData: true});
   
    const data = {
        "url": "https://XX.salesforce.com",
        "accessToken": "XXX"

    }

    await cometd_setup(data)
    functions.logger.log("cometd_setup_done")

    await cometd.handshake(function (handshake:any) {
    if (handshake.successful) {
       functions.logger.log("successful opty sending data")
       cometd.subscribe('/data/OpportunityChangeEvents', cometd_processdata)
    } else {
        logger.info('Handshake failed', handshake);
    }
})

   response.send("Hello from Firebase!");
});

目前处理数据的方法只是简单的做一个控制台日志如下

var cometd_processdata = function (server_data:any) {
    // Do something more useful with the data
    functions.logger.info("got new data:", server_data);
};

【问题讨论】:

    标签: salesforce cometd change-data-capture


    【解决方案1】:

    标准对象上更改数据捕获 (CDC) 事件的 name of the subscription channel/data/<Standard_Object_Name>ChangeEvent。对于Opportunity 标准对象,CDC 通道是/data/OpportunityChangeEvent(最后没有s

    【讨论】:

    • 这绝对是一个问题,现在我看到“成功的 opty 发送数据”打印在日志中。作为下一步,我更新了一个机会,但我根本没有看到 cometd"_processdata 被调用。我错过了什么?
    • @Moblize IT 我们建议打开一个新问题。使用外部客户端解决 CometD/Salesforce 问题的第一步是隔离问题。这样做的一个好方法是在 Salesforce 中实现您的侦听器/订阅,首先通过带有触发器的平台客户端,然后使用支持 Salesforce 的客户端(例如 EMP 连接器)在平台外实现。 Change Data Capture tutorial on Trailhead 涵盖了这两者。之后你会更好地了解下一步该去哪里。
    猜你喜欢
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2013-05-26
    相关资源
    最近更新 更多