• Wardster
  • NEWBIE
  • 25 Points
  • Member since 2008

  • Chatter
    Feed
  • 1
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 7
    Questions
  • 10
    Replies
I'm developing an Apex application in which SFDC makes rest based calls to an external data source.  But it isn't working now.   The external vendor is saying this is a bug with the version of Java that Salesforce.com is using.  Can this be true?  Here is the error message I'm seeing.

java.lang.RuntimeException: Could not generate DH keypair
Hewlett Packard’s IDOL OnDemand group has developed and released some revolutionary functionality. HP and [topcoder] want to see what ideas you have to combine the Salesforce.com platform with this new platform -- the IDOL OnDemand API’s. Is Salesforce.com your thing?  We’re hoping to engage your domain expertise writing code for this platform and your creativity.  The deliverable for this challenge is a design document that describes an application which uses the IDOL OnDemand API’s and interacts with Salesforce.com in some way.  The document should be no more than two pages.  The winners will be selected by HP based on potential business and market impact.

http://www.topcoder.com/challenge-details/30042661/?type=develop#.U3BENa1dUS8

Lately I've been scripting alot of my data exports with Data Loader using the CLI since I often have to do them repeatedly.  I've been please that I can pull 2-3 million records and hour out of Saleforce this way.

 

However, the same cannot be said for inserting data.  I tried this last night and the performance is appalling.  Like 3000-4000 records an hour -- maybe even less.  I think it is so slow because of all the logging that is going on.  I'm seeing log4j/commons.logging messages for all the BeanUtil classes which I frankly don't need.  Is there anyway to turn all that junk off.  That is bound to speed things up at least a little.  I"m getting 30-40K records an hour when I just use the GUI.  It looks like like the sfdc.debugMessages parameter just effects the actual soap calls (which I don't need to see either).

 

I know about the new Bulk API but I have a unique indexes on my object (lead) and the Bulk API is running into all kinds of nasty contention issues.   I've yet to succeed loading a single record successfully with the Bulk API on my Lead object.  Granted there are a bunch of triggers and code hanging off this entity as well.  But I'm not running into the same issues when I just use the standard API.  Enabling Serial mode seems to have even worse performance than the good 'ol fashioned web services API.  That doesn't seem to be helping me.

 

I'm sure I could unzip the dataloader.jar and update the log4j.config properties.  I'm just hoping to find another setting.

 

 

 

 

 

 

Pagination seems to be broken on developer.force.com.  No matter which links I click (2, 3, ..etc., Next) I only get the first ten results.

Hello, I'm trying to implement this app exchange application.  I really need State and Country dropdowns for my deployment but this scontrol is throwing a nasty Javascript error:  ReferenceError - DynamicOptionList is not defined.  Anyone know of a way around this issue?

 

 

What is the best way to get logging output of Salesforce for deployed Flex Controls?  I"m having an issue right now with a component deployed to Salesforce and I'm wondering how I can get greater visibility once the component has been deployed to the Salesforce environment.   I'm really not even seeing the web service/api calls that the Flex component is supposed to be making in my Saleforce debug logs.   I'm an ActionScript/Flex newby so no suggestion is too basic or obvious. 

Thanks in advance,

Wardster
I have created a Flex chart which seems to work fine in standalone mode with the Flex Builder but I'm having difficulty getting it to work when I deploy it to Salesforce.  I suspect that the queries are breaking since I'm see Array Out of Bounds errors.  Is there some login or security setting in Salesforce I need to adjust to get the query API functional?  My code is pasted below:
Code:
<—xml version="1.0" encoding="utf-8"–>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
 xmlns:salesforce="com.salesforce.*" 
 layout="horizontal"
 applicationComplete="login();" backgroundGradientAlphas="[1.0]" backgroundColor="#F8F8F8" backgroundImage="">

      
     <mx:Script>
        <![CDATA[
        
            import mx.collections.ArrayCollection;
        
            import com.salesforce.results.*;
            import com.salesforce.events.*; 
            import com.salesforce.objects.*;
            import com.salesforce.*;
            
            [Bindable]
            private var revenueExpectedArray:ArrayCollection = new ArrayCollection();
            [Bindable]
            private var revenueReportedArray:ArrayCollection = new ArrayCollection();
            [Bindable]
            private var buildingId:String = new String();

            
            
            private function login(): void {
             initVariables();
             apex.login(  new LoginRequest({
           server_url : this.parameters.server_url,
           session_id : this.parameters.session_id,
           // put your own info here to test standalone
           username : 'xxx@xxxx.com',
           password : 'mypassword',
           callback : new AsyncResponder(render)
                })
                );

             
            }
            
            // initializes the building id variable
            private function initVariables():void {
             buildingId = Application.application.parameters.buildingId;
             // buildingId = "a0G80000000xF4xEAE";
            }
            
            private function render(result:Object):void {
             var numberOfRevenueExpectedRecords:int = 6;
       apex.query("Select Date__c, Month_Year__c, Revenue_Expected__c From Revenue_Entry__c WHERE Building__c = '" + buildingId + "' AND Revenue_Expected__c != null ORDER BY Date__c DESC LIMIT " + numberOfRevenueExpectedRecords,
       new AsyncResponder(
        function (qr:QueryResult):void {
         if(numberOfRevenueExpectedRecords < qr.size){
          numberOfRevenueExpectedRecords = qr.size;
         }
         // we've gotten the last six records now we need to iterate backwards through the results
                  for (var j:int=numberOfRevenueExpectedRecords - 1;j >= 0;j--  ) {
                      revenueExpectedArray.addItem( {Month:qr.records[j].Month_Year__c, Value:qr.records[j].Revenue_Expected__c/1000000});
                  }
              }, function (fault:Object):void {}
        ));
        var numberOfRevenueReportedRecords:int = 6;
        apex.query("Select Date__c, Month_Year__c, Revenue_Reported__c From Revenue_Entry__c WHERE Building__c = '" + buildingId + "' AND Revenue_Reported__c != null ORDER BY Date__c DESC LIMIT " + numberOfRevenueReportedRecords,
                 new AsyncResponder(
                    function (qr:QueryResult):void {
                     if(numberOfRevenueReportedRecords < qr.size){
                            numberOfRevenueReportedRecords = qr.size;
                        }
                     // we've gotten the last six records now we need to iterate backwards through the results
                        for (var j:int=numberOfRevenueReportedRecords - 1; j >= 0;j--  ) {
                            revenueReportedArray.addItem( {Month:qr.records[j].Month_Year__c, Value:qr.records[j].Revenue_Reported__c/1000000});
                        }
                    }, function (fault:Object):void {}
                 ));
            }


            
        ]]>
        
        
    </mx:Script>
    
    <salesforce:Connection id="apex" />

    
    <mx:Stroke id = "s1" color="blue" weight="2"/>
    <mx:Stroke id = "s2" color="red" weight="2"/>
    
    <mx:SeriesInterpolate id="interpolateIn" duration="1000"/>
    
    
     <mx:Panel title="Revenue Entries" layout="horizontal" color="0xffffff" borderAlpha="1.0" width="963" height="429"
         paddingTop="10" paddingRight="5" paddingBottom="10" paddingLeft="5" horizontalAlign="center" borderColor="#00335B">
   <mx:LineChart id="revenue_entry_chart" width="710" dataProvider="{revenueReportedArray}" showDataTips="true" fontFamily="Arial" height="350" color="#000000">
 
       <mx:horizontalAxis>
                    <mx:CategoryAxis  id="x_axis" categoryField="Month"/>
                </mx:horizontalAxis>
                <mx:horizontalAxisRenderers>
                    <mx:AxisRenderer axis="{x_axis}" showLine="true" showLabels="true"/>
                </mx:horizontalAxisRenderers>
                
                <mx:verticalAxis>
                 <mx:LinearAxis id="y_axis" title="Revenue in Millions ($)" />
               </mx:verticalAxis>
                <mx:verticalAxisRenderers>
                    <mx:AxisRenderer axis="{y_axis}" showLine="false" showLabels="true"/>
                </mx:verticalAxisRenderers>
                                    
    <mx:series>
     <mx:LineSeries displayName="Revenue" yField="Value" lineStroke="{s2}" showDataEffect="{interpolateIn}"/>
    </mx:series>
   </mx:LineChart>
   
   <mx:VBox color="0x323232" width="30%" borderColor="0x9096A1" borderStyle="solid" height="352"
             paddingLeft="5" paddingRight="0" paddingTop="5">
             
             <mx:Text color="#000000" width="100%" text="Choose a data series:"/>
             
             <mx:RadioButton groupName="stocks" label="Revenue Reported"
                 selected="true" click="revenue_entry_chart.dataProvider=revenueReportedArray;"/>
             <mx:RadioButton groupName="stocks" label="Revenue Expected"
                 click="revenue_entry_chart.dataProvider=revenueExpectedArray;"/>
            </mx:VBox>
   
  </mx:Panel>
 
</mx:Application>

 


 
Hi,

I am trying to get access token from Go Instant . But when I did this,It gives me following error

System.CalloutException: java.lang.RuntimeException: Could not generate DH keypair

I asked  this with Go Instatnt people and they gave me following answer;

It sounds like your SSL Library doesn't support 2048-bit DH parameters. Take a look at the BouncyCastle SSL Library as an alternative to what you're using. https://www.bouncycastle.org/l... If you continue to have problems after changing to BouncyCastle, please email us at support at goinstant.com so we can do a more in-depth debug of your problems.

I dont know how can I know about the ssl liabrary of salesforce and how to check what features are available with this liabrary.

Please help me with this problem.

Thanks

Lately I've been scripting alot of my data exports with Data Loader using the CLI since I often have to do them repeatedly.  I've been please that I can pull 2-3 million records and hour out of Saleforce this way.

 

However, the same cannot be said for inserting data.  I tried this last night and the performance is appalling.  Like 3000-4000 records an hour -- maybe even less.  I think it is so slow because of all the logging that is going on.  I'm seeing log4j/commons.logging messages for all the BeanUtil classes which I frankly don't need.  Is there anyway to turn all that junk off.  That is bound to speed things up at least a little.  I"m getting 30-40K records an hour when I just use the GUI.  It looks like like the sfdc.debugMessages parameter just effects the actual soap calls (which I don't need to see either).

 

I know about the new Bulk API but I have a unique indexes on my object (lead) and the Bulk API is running into all kinds of nasty contention issues.   I've yet to succeed loading a single record successfully with the Bulk API on my Lead object.  Granted there are a bunch of triggers and code hanging off this entity as well.  But I'm not running into the same issues when I just use the standard API.  Enabling Serial mode seems to have even worse performance than the good 'ol fashioned web services API.  That doesn't seem to be helping me.

 

I'm sure I could unzip the dataloader.jar and update the log4j.config properties.  I'm just hoping to find another setting.

 

 

 

 

 

 

I have an existing application developed with Adobe Flex and the Salesforce Flex/Flash object library. My understanding is that the current implementation requires a browser authenticated session for the Flex application to inherit in order to connect to the Salesforce data objects. However, there is no such authentication occurring if I try to host my app in a force.com site.

Any thoughts as to how to resolve this issue? Perhaps user authentication through force.com? However that option seems to be disabled in the developer preview.
I have created a Flex chart which seems to work fine in standalone mode with the Flex Builder but I'm having difficulty getting it to work when I deploy it to Salesforce.  I suspect that the queries are breaking since I'm see Array Out of Bounds errors.  Is there some login or security setting in Salesforce I need to adjust to get the query API functional?  My code is pasted below:
Code:
<—xml version="1.0" encoding="utf-8"–>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
 xmlns:salesforce="com.salesforce.*" 
 layout="horizontal"
 applicationComplete="login();" backgroundGradientAlphas="[1.0]" backgroundColor="#F8F8F8" backgroundImage="">

      
     <mx:Script>
        <![CDATA[
        
            import mx.collections.ArrayCollection;
        
            import com.salesforce.results.*;
            import com.salesforce.events.*; 
            import com.salesforce.objects.*;
            import com.salesforce.*;
            
            [Bindable]
            private var revenueExpectedArray:ArrayCollection = new ArrayCollection();
            [Bindable]
            private var revenueReportedArray:ArrayCollection = new ArrayCollection();
            [Bindable]
            private var buildingId:String = new String();

            
            
            private function login(): void {
             initVariables();
             apex.login(  new LoginRequest({
           server_url : this.parameters.server_url,
           session_id : this.parameters.session_id,
           // put your own info here to test standalone
           username : 'xxx@xxxx.com',
           password : 'mypassword',
           callback : new AsyncResponder(render)
                })
                );

             
            }
            
            // initializes the building id variable
            private function initVariables():void {
             buildingId = Application.application.parameters.buildingId;
             // buildingId = "a0G80000000xF4xEAE";
            }
            
            private function render(result:Object):void {
             var numberOfRevenueExpectedRecords:int = 6;
       apex.query("Select Date__c, Month_Year__c, Revenue_Expected__c From Revenue_Entry__c WHERE Building__c = '" + buildingId + "' AND Revenue_Expected__c != null ORDER BY Date__c DESC LIMIT " + numberOfRevenueExpectedRecords,
       new AsyncResponder(
        function (qr:QueryResult):void {
         if(numberOfRevenueExpectedRecords < qr.size){
          numberOfRevenueExpectedRecords = qr.size;
         }
         // we've gotten the last six records now we need to iterate backwards through the results
                  for (var j:int=numberOfRevenueExpectedRecords - 1;j >= 0;j--  ) {
                      revenueExpectedArray.addItem( {Month:qr.records[j].Month_Year__c, Value:qr.records[j].Revenue_Expected__c/1000000});
                  }
              }, function (fault:Object):void {}
        ));
        var numberOfRevenueReportedRecords:int = 6;
        apex.query("Select Date__c, Month_Year__c, Revenue_Reported__c From Revenue_Entry__c WHERE Building__c = '" + buildingId + "' AND Revenue_Reported__c != null ORDER BY Date__c DESC LIMIT " + numberOfRevenueReportedRecords,
                 new AsyncResponder(
                    function (qr:QueryResult):void {
                     if(numberOfRevenueReportedRecords < qr.size){
                            numberOfRevenueReportedRecords = qr.size;
                        }
                     // we've gotten the last six records now we need to iterate backwards through the results
                        for (var j:int=numberOfRevenueReportedRecords - 1; j >= 0;j--  ) {
                            revenueReportedArray.addItem( {Month:qr.records[j].Month_Year__c, Value:qr.records[j].Revenue_Reported__c/1000000});
                        }
                    }, function (fault:Object):void {}
                 ));
            }


            
        ]]>
        
        
    </mx:Script>
    
    <salesforce:Connection id="apex" />

    
    <mx:Stroke id = "s1" color="blue" weight="2"/>
    <mx:Stroke id = "s2" color="red" weight="2"/>
    
    <mx:SeriesInterpolate id="interpolateIn" duration="1000"/>
    
    
     <mx:Panel title="Revenue Entries" layout="horizontal" color="0xffffff" borderAlpha="1.0" width="963" height="429"
         paddingTop="10" paddingRight="5" paddingBottom="10" paddingLeft="5" horizontalAlign="center" borderColor="#00335B">
   <mx:LineChart id="revenue_entry_chart" width="710" dataProvider="{revenueReportedArray}" showDataTips="true" fontFamily="Arial" height="350" color="#000000">
 
       <mx:horizontalAxis>
                    <mx:CategoryAxis  id="x_axis" categoryField="Month"/>
                </mx:horizontalAxis>
                <mx:horizontalAxisRenderers>
                    <mx:AxisRenderer axis="{x_axis}" showLine="true" showLabels="true"/>
                </mx:horizontalAxisRenderers>
                
                <mx:verticalAxis>
                 <mx:LinearAxis id="y_axis" title="Revenue in Millions ($)" />
               </mx:verticalAxis>
                <mx:verticalAxisRenderers>
                    <mx:AxisRenderer axis="{y_axis}" showLine="false" showLabels="true"/>
                </mx:verticalAxisRenderers>
                                    
    <mx:series>
     <mx:LineSeries displayName="Revenue" yField="Value" lineStroke="{s2}" showDataEffect="{interpolateIn}"/>
    </mx:series>
   </mx:LineChart>
   
   <mx:VBox color="0x323232" width="30%" borderColor="0x9096A1" borderStyle="solid" height="352"
             paddingLeft="5" paddingRight="0" paddingTop="5">
             
             <mx:Text color="#000000" width="100%" text="Choose a data series:"/>
             
             <mx:RadioButton groupName="stocks" label="Revenue Reported"
                 selected="true" click="revenue_entry_chart.dataProvider=revenueReportedArray;"/>
             <mx:RadioButton groupName="stocks" label="Revenue Expected"
                 click="revenue_entry_chart.dataProvider=revenueExpectedArray;"/>
            </mx:VBox>
   
  </mx:Panel>
 
</mx:Application>

 


 
Hi,

I've created an scontrol and want to embed it into a visualforce page. 
With the attribute subject we can give an object id to the scontroll:

<apex:page standardController="Account">
<apex:scontrol controlName="HelloWorld" height="60" subject="0017000000NHLs5"></apex:scontrol>
</apex:page>


But how can I get this object id in the scontrol?


Thanks for your idea.

Zhengdao

  • October 18, 2008
  • Like
  • 0