• zgcharley_09
  • NEWBIE
  • 55 Points
  • Member since 2009

  • Chatter
    Feed
  • 1
    Best Answers
  • 3
    Likes Received
  • 0
    Likes Given
  • 44
    Questions
  • 45
    Replies
Seems the upgrading of Winter '19 release cause some streaming API issue. 

Our instance NA50 now is Winter 19 patch 7.8, by this the streaming client can't subscribe to server successfully, error:
Response Body: [{"clientId":"ebi1sw47vvaask0x1sr1grdftmakm","channel":"/meta/subscribe","subscription":"/topic/Account-20181009201859","error":"400::The replayId for channel {/topic/Account-20181009201859} wasn't found using the provided replay ID map {For input string: \"{-2}\"}. Ensure that the channel name you provided in the replay map is valid and matches the channel name used for subscribing.","successful":false}]

We didn't make any change at client side recently.

BTW, another our SF instance AP1(which still is Summer 18 Patch 20.22) works GOOD.

Anything wrong at SF side?

The critical update "Stabilize the Hostname for My Domain URLs in Sandboxes" seems indroduce defect af SF server side.  If I enabled this,  there will be 411 error when getting objects list by REST API. 

If disabled this feature, then i can get objects correctly.

Is this a bug af Salesforce side? I'm using Sandbox env. 
Hi all,

For streaming API, does server force disconnect client after some time? If true, then how long the time is?

Didn't find any documentation about this, but sometimes we client can't receive notification anymore. 
For salesforce streaming API, where could I check the message delivery status?  

I know for outbound message, the status can be checked from "Administration setup -> monitoring -> outbound message".  Is this also for streaming message status?
I have session timeout setting as 1 hours, and my initial access_token seems timeout around this time. This is excepted. 

And after it timeout, i did token refresh and get a new access_token, then i observed this refreshed access_token seems not timeout in 1 hours, even 5~6 hours after, it still not expired. 

So is there refresed access_token never expire? Can someone explain more about this?

Thanks
The case is after authorization, I get the access_token and refresh_token and then distribute the same copy of tokens to different runtime instances. And I'd like to let each runtime instance to have separated token refresh cycle.
After the access_token is expired, there will be token refresh request happened in different instances. So the questions are:
1. Since the refresh_token is same, will be the new generated access_token still same among different instances?

2. If not same, that means there might be a lot active access tokens. As per Salesforce, one connected app can only have maximum 5 active access tokens https://success.salesforce.com/answers?id=90630000000Cy3EAAS&feedtype=RECENT&dc=All&criteria=OPENQUESTIONS& Then some of running instances will have issue to subsequent REST API call?
Hi,

Can Salesforce send mail or other alerts for the failure of delivering on the outbound message?

Currently, Salesforce will try to re-send the message if it is failed within 24 hours with back-off retry interval. Does salesforce can send other notification like mail for the failure?

Thanks
Charley
Hi,

One of our customers encountered a strange problem. That's the outbound message sent out from Salesforce doesn't conform to the schema defined the Outbound wsdl file. We talked to them, this is mostly because they did some change like adding new fields, removing fields in Salesforce object but didn't re-download the wsdl. That's the schema in wsdl file is not sync with the changing happened in Salesforce objects. But according to their description, the schema in the wsdl file is sync with Salesforce since they didn't do any change for the object. We supposed it is not possible, but they insist. 

So could you guys help to check is there any potential defects/reasons in Salesforce side that make the outbound message sent out by Salesforce doesn't match the object schema?

Thanks
Charley
Hi,

As per then announcement at there https://help.salesforce.com/apex/HTViewSolution?id=000206493&language=en_US (https://help.salesforce.com/apex/HTViewSolution?id=000206493&language=en_US) ,   the algorithm of certificate will be upgrade to SHA-256. 

I did test for my application with test the test endpoint https://sha2test.salesforce.com/services/Soap/u/32.0 and I got "(411)Length Required" error response. I'd like to confirm, is the SSL test passed?
Hi,

Salesforce launched Lighting Connect by which can intergrate with exteal data source like SAP, DB etc. Does Salesforce itself provide external data source service? Or i can only use lighting connect by adopting third partners like Mulesoft, Progress Software, TIBCO...?

Thanks
Charley
There's a search box on the top of Salesforce, is it possible to override(re-implement) it? Like catcing the click event, poping up dialog, customize the search result page...

I went over the Visualforce development guide, it seems I can't do this by Virsualforce. Any suggestion?

Thanks in advance.

Charley
If I only know instance URL and the record id, may I combinate a like address to open the record editing page?

record editting page

When I open a editting page, the like looks like: https://na3.salesforce.com/0015000000szXbM/e?retURL=%2F0015000000szXbM. Besides the instance URL and record id, it still has a query param: retURL=%2F0015000000szXbM. What this query param?How can I get it?

Thanks
Charley
The Canvas App configured a Canvas URL, like http://xxx.herokuapp.com/canvas. I think all of the requests sent from Canvas app page will go to this endpoint. For example, there's a "Get" button in my page and by clicking this button to fetch some data from app server(hosted at Heroku). And at this time, the request address is the Canvas URL, am I right?

According to the developer guide of Canvas app, the request sent to app server need be signed. So another question is, when I clicking the "Get" button, how do I sign this request?

Thanks in advance1
when api 30 will be final available? now it's in preview status...

Hi

 

In the latest WSDL of Web Service AP(29)I, there's a header called "StreamingEnabledHeader", so what's the usage of this header? 

 

I checked the API document and didn't find any instruction for this header.

 

Thanks

 

Charley.

In Salesforce, "fieldsToNull" used to explicitly set value to null. Such as I want to set BillingCity to empty, the I need send the request like:

.....

<fieldsToNull>BillingCity</fieldsToNull>

.....

 

My question is why Salesforce doesn't accept empty value directly? For example, the request data like:

....

<BillingCity/>

<BillingStreet> Hive No. 9</BillingStreet>

....

Then the BillingCity is set to null. I think this is convennient for client to do the dynamical descision.

 

Thanks

Charley 

 

Hi

 

Currently, i want to connect Salesforce.com via HTTP but not HTTPS. And I found I can set it in "Administration Setup" -> "Security Control" -> "Session Setting" -> "Require secure connections ".

 

The problem is this "Require secure connections " option is grey that i can't uncheck it. How can I do that? I'm the administrator of Salesforce.com. 

 

Thanks

Hi,

 

Currelty we are using SOAP(Web Service) API to integrate with Salesforce.com. Will this SOPA API be supported continuously? 

 

thanks

zg

I saw this event http://events.developerforce.com/mobile-developer-challenge, but it seems doesn't requires user register. 

If required, then how to register for it?

 

Thanks

Hi,

With latest API version 25.0 of Salesforce.com, the downloaded client cert can't be validated successfully. After downloading the client cert, i generated the intermediate cert and root cert. The certs chain is something like:
---------------------------------
Subject: CN = proxy.salesforce.com;
Issuer: CN = VeriSign Class 3 International Server CA - G3

Subject: CN = VeriSign Class 3 International Server CA - G3
Issuer: CN = VeriSign Class 3 Public Primary Certification Authority - G5

Subject: CN = VeriSign Class 3 Public Primary Certification Authority - G5
Issuer: CN = VeriSign Class 3 Public Primary Certification Authority - G5
-------------------------------------
Totally there are three certs. Then i put these three certs in a folder and set this folder as trusted certs location. In my outbound server, I use these certificates to verify the outbound client, that's Salesforce.com at this time(two way SSL). Now the problem is, the certs sent fromSalesforce.com doesn't math this cert chain. Could you tell me what kind of certs are sent by Salesforce.com when the outbound server requires client authentication? Why the certs doesn't match?

Besides, my outbound server ran well with two way SSL when using Salesforce.com API 22.0 and prior versions. I compared the client cert downloaded from Salesforce. The root and intermediate certs of 22 are different from version 25(I didn't tried with version 23 and 24, so i don't know is there any difference too). Is the change of this client cert temporary or decided?

-zg

Hi,

Salesforce launched Lighting Connect by which can intergrate with exteal data source like SAP, DB etc. Does Salesforce itself provide external data source service? Or i can only use lighting connect by adopting third partners like Mulesoft, Progress Software, TIBCO...?

Thanks
Charley
Seems the upgrading of Winter '19 release cause some streaming API issue. 

Our instance NA50 now is Winter 19 patch 7.8, by this the streaming client can't subscribe to server successfully, error:
Response Body: [{"clientId":"ebi1sw47vvaask0x1sr1grdftmakm","channel":"/meta/subscribe","subscription":"/topic/Account-20181009201859","error":"400::The replayId for channel {/topic/Account-20181009201859} wasn't found using the provided replay ID map {For input string: \"{-2}\"}. Ensure that the channel name you provided in the replay map is valid and matches the channel name used for subscribing.","successful":false}]

We didn't make any change at client side recently.

BTW, another our SF instance AP1(which still is Summer 18 Patch 20.22) works GOOD.

Anything wrong at SF side?

The critical update "Stabilize the Hostname for My Domain URLs in Sandboxes" seems indroduce defect af SF server side.  If I enabled this,  there will be 411 error when getting objects list by REST API. 

If disabled this feature, then i can get objects correctly.

Is this a bug af Salesforce side? I'm using Sandbox env. 
Hi all,

For streaming API, does server force disconnect client after some time? If true, then how long the time is?

Didn't find any documentation about this, but sometimes we client can't receive notification anymore. 
For salesforce streaming API, where could I check the message delivery status?  

I know for outbound message, the status can be checked from "Administration setup -> monitoring -> outbound message".  Is this also for streaming message status?
The case is after authorization, I get the access_token and refresh_token and then distribute the same copy of tokens to different runtime instances. And I'd like to let each runtime instance to have separated token refresh cycle.
After the access_token is expired, there will be token refresh request happened in different instances. So the questions are:
1. Since the refresh_token is same, will be the new generated access_token still same among different instances?

2. If not same, that means there might be a lot active access tokens. As per Salesforce, one connected app can only have maximum 5 active access tokens https://success.salesforce.com/answers?id=90630000000Cy3EAAS&feedtype=RECENT&dc=All&criteria=OPENQUESTIONS& Then some of running instances will have issue to subsequent REST API call?
Hi,

Can Salesforce send mail or other alerts for the failure of delivering on the outbound message?

Currently, Salesforce will try to re-send the message if it is failed within 24 hours with back-off retry interval. Does salesforce can send other notification like mail for the failure?

Thanks
Charley
Hi,

One of our customers encountered a strange problem. That's the outbound message sent out from Salesforce doesn't conform to the schema defined the Outbound wsdl file. We talked to them, this is mostly because they did some change like adding new fields, removing fields in Salesforce object but didn't re-download the wsdl. That's the schema in wsdl file is not sync with the changing happened in Salesforce objects. But according to their description, the schema in the wsdl file is sync with Salesforce since they didn't do any change for the object. We supposed it is not possible, but they insist. 

So could you guys help to check is there any potential defects/reasons in Salesforce side that make the outbound message sent out by Salesforce doesn't match the object schema?

Thanks
Charley
Hi,

As per then announcement at there https://help.salesforce.com/apex/HTViewSolution?id=000206493&language=en_US (https://help.salesforce.com/apex/HTViewSolution?id=000206493&language=en_US) ,   the algorithm of certificate will be upgrade to SHA-256. 

I did test for my application with test the test endpoint https://sha2test.salesforce.com/services/Soap/u/32.0 and I got "(411)Length Required" error response. I'd like to confirm, is the SSL test passed?
Hi Everyone,

I am using the code sample provided Java client for Streaming API in the below link
http://www.salesforce.com/developer/docs/api_streaming/Content/code_sample_java_add_source.htm

I am not able to understand why the channel is getting disconnected after sometime. Is there a way to keep the channel alive? I have a requirement where i dont want to miss out on any of the events in salesforce. And disconnection will certainly lead to data loss.

Below are the logs that appear whenever channel is getting disconnected.

[CHANNEL:META_CONNECT]: {"id":"133048","successful":true,"channel":"/meta/connect","clientId":"1zro8qr2rfbesar24zjqa3okgvv"}
[CHANNEL:META_DISCONNECT]: {"successful":true,"channel":"/meta/disconnect","clientId":"1zro8qr2rfbesar24zjqa3okgvv"}
[CHANNEL:META_CONNECT]: {"id":"133049","successful":true,"channel":"/meta/connect","clientId":"1zro8qr2rfbesar24zjqa3okgvv"}
[CHANNEL:META_CONNECT]: {"id":"133050","error":"403::Unknown client","successful":false,"advice":{"interval":500,"reconnect":"handshake"},"channel":"/meta/connect","clientId":"1zro8qr2rfbesar24zjqa3okgvv"}
Error during CONNECT: 403::Unknown client
Exiting...

An early response on this would be highly appreciated.

Thanks,
Shalindra
There's a search box on the top of Salesforce, is it possible to override(re-implement) it? Like catcing the click event, poping up dialog, customize the search result page...

I went over the Visualforce development guide, it seems I can't do this by Virsualforce. Any suggestion?

Thanks in advance.

Charley
If I only know instance URL and the record id, may I combinate a like address to open the record editing page?

record editting page

When I open a editting page, the like looks like: https://na3.salesforce.com/0015000000szXbM/e?retURL=%2F0015000000szXbM. Besides the instance URL and record id, it still has a query param: retURL=%2F0015000000szXbM. What this query param?How can I get it?

Thanks
Charley
The Canvas App configured a Canvas URL, like http://xxx.herokuapp.com/canvas. I think all of the requests sent from Canvas app page will go to this endpoint. For example, there's a "Get" button in my page and by clicking this button to fetch some data from app server(hosted at Heroku). And at this time, the request address is the Canvas URL, am I right?

According to the developer guide of Canvas app, the request sent to app server need be signed. So another question is, when I clicking the "Get" button, how do I sign this request?

Thanks in advance1
when api 30 will be final available? now it's in preview status...
We have a Salesforce connector for API version 26 as well as 28 for extracting the data using corresponding WSDL from a Salesforce Org. We are able to get objects and extract data for customer which does not use branded Cloudforce URL.

But We are facing issue when we try to extract the data from a Salesforce Org which has branded cloudforce URL.

We get Transport error: 411 Error: Length Required when trying get objects for user and when we try to extract the data.

Following is code snippet where we are getting this error(It gives above error when we call stub.describeGlobal(..)) :

stub = createStub();  
DescribeGlobal describeGlobal = new DescribeGlobal();
PackageVersionHeader packageVersionHeader = new PackageVersionHeader();
DescribeGlobalResponse dgrs = stub.describeGlobal(describeGlobal, sessionHeader, co, packageVersionHeader);

It fails with following Error from salesforce side:

Transport error: 411 Error: Length Required
...
at com.sforce.soap.partner.SforceServiceStub.describeGlobal(SforceServiceStub.java:10059)

Note: we are passing sessionHeader,CallOptions correctly.
Code Snippet for same:
Options options = stub._getServiceClient().getOptions();
String SFDCClientID = getBirstParameter(SFDC_CLIENT_ID);
if (SFDCClientID != null && SFDCClientID.trim().length() > 0)
{
co = new CallOptions();
co.setClient(SFDCClientID);           
}

SforceServiceStub stub = new SforceServiceStub(stubServerUrl);
Options options = stub._getServiceClient().getOptions();
options.setProperty(HTTPConstants.MC_ACCEPT_GZIP, Boolean.TRUE);
options.setProperty(HTTPConstants.MC_GZIP_REQUEST, Boolean.TRUE);
options.setTimeOutInMilliSeconds(timeoutInMilliseconds);
options.setProperty(HTTPConstants.AUTO_RELEASE_CONNECTION, Constants.VALUE_TRUE);


Also Note that we use SOAP API and use WSDL to provide us the default login URL for to connect and upon connect, we use the URL return by the Salesforce for data extraction.

Can someone suggest us on how we can fix this issue.

Hi

 

In the latest WSDL of Web Service AP(29)I, there's a header called "StreamingEnabledHeader", so what's the usage of this header? 

 

I checked the API document and didn't find any instruction for this header.

 

Thanks

 

Charley.