首页 > 解决方案 > salesforce 更改数据捕获未发送更改事件

问题描述

我正在使用 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);
};

标签: salesforcecometdchange-data-capture

解决方案


标准对象上更改数据捕获 (CDC) 事件的订阅通道的名称是/data/<Standard_Object_Name>ChangeEvent. 对于Opportunity标准对象,CDC 通道是/data/OpportunityChangeEvents最后没有)


推荐阅读