• dturkel
  • NEWBIE
  • 100 Points
  • Member since 2008

  • Chatter
    Feed
  • 4
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 18
    Questions
  • 37
    Replies

I wrote a simple script to display a comments box if 'Yes' is selected but it doesn't work... help?

script:

<script> function changeDisp(input, textid) { if(input == "Yes") document.getElementById(textid).style.display = "inline"; else document.getElementById(textid).style.display = "none"; } </script>

 

 

code:

<apex:PageBlockSection columns="1"> <apex:outputLabel value="Customer refused survey?" for="refused"/> <apex:InputField value="{!Post_Install_Survey__c.Refused__c}" id="refused" onChange="changeDisp(this,'{!$Component.rfcomments}');"/> <apex:outputPanel id="rfcomments"> <apex:InputField value="{!Post_Install_Survey__c.Refused_Comments__c}" style="display:none;"/> </apex:outputPanel> </apex:pageBlockSection>

 

           

 

I am trying to programatically retrieve my Bulk API processing summary result data for reporting, using the REST API services.  I am using the "/services/data/v41.0/jobs/ingest" service to retrieve these records, in concert with the "nextRecordsUrl" to feed the "queryLocator" parameter for subsequent recordsets.

Yesterday, I was able to get through 2 sets of 1000 records each, but received an in API failure when trying to fetch the third, with the typical opaque messaging:
[{
   "message": "An unexpected error occurred. Please include this ErrorId if you contact support: 2115486922-33330 (-1783343877)",
   "errorCode": "UNKNOWN_EXCEPTION"
}]
​


I was able to manually fiddle with the queryLocator (raising and lowing the value between "...-2000" and "...-3000" until I hit a specific breaking point of "...-2251".  I verified that my records expanded beyond this number, in fact a complete resultset's worth of 1000.

Today I am getting the same results, but only sooner -- I'm only able to retrieve one resultset of 1000 records before this same break and behavior occurs.

Is this a known issue (I couldn't find one), or is there something I may be doing wrong?
 

Hello,

 

I'm trying to render a complex value object (not an sObject) that has nested lists.

When I try to nest the <apex:repeat>, I'm not allowed to save my VF page due an error, "The element type table must be terminated by the matching end-tag </table>.  Unfortunately, it is properly ended. It seems like there is some bad parsing, or rules around the use of apex:repeat.  Has anyone else had this problem, and are there any reasonable solutions?

 

<apex:page standardController="Account" 
	extensions="RTEquipmentOnServiceLocationController" 
	showHeader="false" 
	standardStylesheets="true">
	
	<apex:stylesheet value="{!$Resource.DetailPageVFLayoutCSS}"/>
	
    <table id="EquipmentTable" border="1">
    	<apex:repeat value="{!equipmentList}" var="equipmentItem" id="theEquipmentRepeat">
    		<tr id="EquipmentRow">
	    		<td>
                  <apex:outputText value="{!equipmentItem.SerialNumber}"/>
            	</td>
          		<td>
                  <apex:outputText value="{!equipmentItem.EquipmentStatus}"/>
              	</td>
              	<td>
	                 <apex:outputText value="{0,date,yyyy-MM-dd}">
	                  	<apex:param value="{!equipmentItem.EquipmentInstallDate}"/>
	                  </apex:outputText>
              	</td>
              	<td>
                  	<apex:outputText value="{!equipmentItem.EquipmentType}"/>
              	</td>
              	<td>
                  	<apex:outputText value="{!equipmentItem.EquipmentMake}"/>
              	</td>
              	<td >
                  	<apex:outputText value="{!equipmentItem.EquipmentModel}"/>
              	</td>    
              	<td>
                  	<apex:outputText value="{!equipmentItem.EquipmentDescription}"/>
              	</td>
    		</tr>
    		<tr>
    			<td colspan="7">
	    			<table id="ComponentTable" border="1">
		    			<apex:repeat value="{!equipmentItem.ComponentList" var="componentItem" id="theComponentRepeat">
		    				<tr> 
		    					<td>
		    						<apex:outputText value="{!componentItem.MACAddress}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentCategoryDescription}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentOccurrenceNumber}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentComponentCode}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentPort}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentPortType}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentRatingCode}"/>
		    					</td>
		    					<td>
		    						<apex:repeat value="{!componentItem.EquipmentServiceList}" var="equipmentServiceItem" id="theEquipmentServiceRepeat">
		    							<apex:outputText value="{!equipmentServiceItem.ServiceIdentifier}"/> - 
		    							<apex:outputText value="{!equipmentServiceItem.EquipmentServiceCode}"/>
		    							<br/>
		    						</apex:repeat>	    						
		    					</td>
		    				</tr>
		    			</apex:repeat>
	    			</table>
    			</td>
    		</tr>
    	</apex:repeat>
    </table>
</apex:page>

 

All:

 

I am trying to resolve an issue with DataLoader v22 complaining about a field in my mapping file while trying to do a fairly simple extract.  In DataLoader's log, it appears that the first character of my field is getting prepended with some other strange character (it shows up looking at the log in Notepad, but never cut-and-pastes into these HTML forms).

 

2011-07-26 22:31:30,046 FATAL [main] process.ProcessRunner topLevelError (ProcessRunner.java:211) - Unable to run process nulljava.lang.RuntimeException: com.salesforce.dataloader.mapping.Mapper$InvalidMappingException: No such field id on entity Accountat com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:136)at com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:74)at com.salesforce.dataloader.process.ProcessRunner.main(ProcessRunner.java:226)Caused by: com.salesforce.dataloader.mapping.Mapper$InvalidMappingException: No such field id on entity Accountat com.salesforce.dataloader.mapping.SOQLMapper.getSfdcField(SOQLMapper.java:217)at 

 

I was convinced this was a file/character encoding issue, but it doesn't seem to occur on every character of the field, and I've also tried converting the format of the mapping file.  Here are the contents of the mapping file (no strange/special characters appear when using VIM or Notepad)

 

Id=SFDC_ID
Name=NAME
ParentId=SFDC_PARENT_ID
...

 

I'd track this down myself, but I also can't find the corresponding source code on sourceforge for this version of DataLoader -- so I can't find the "SOQLMapper" class.  Does anyone know where to find it?

 

Thanks,

 

Dave

What is the magical combination of variables to not include in config.propertiers and/or command line when executing the DataLoader (v21) so that successfiles aren't generated?  I keep getting a autogenerated success file unintentionally, which is a big impact to me since I'm loading a significant amount of data, and only care about the Errors (which I am getting, and have configured that way).

 

Here is my configuration (between my referenced config.properties, and the properties I override when I call Dataloader directly via javaw:

 

 

dataAccess.type=csvRead
dataAccess.writeBatchSize=10000
dataAccess.name=[secret]
dataAccess.readBatchSize=200
process.enableLastRunOutput=true
process.enableExtractSuccessOutput=false
process.mappingFile=..\\AccountsMap.sdl
process.operation=upsert
process.outputError=D:\SFDCDataFeeds\Residential\Working\Load_Error.csv.1  
process.statusOutputDirectory=D:\temp
sfdc.bulkApiCheckStatusInterval=30000  
sfdc.connectionTimeoutSecs=60
sfdc.debug=true  
sfdc.enableRetries=true
sfdc.entity=Account
sfdc.externalIdField=[secret]
sfdc.extractionRequestSize=500
sfdc.insertNulls=true
sfdc.loadBatchSize=10000
sfdc.minRetrySleepSecs=2
sfdc.maxRetries=3
sfdc.password=[secret]
sfdc.resetUrlOnLogin=true
sfdc.timeoutSecs=540
sfdc.truncateFields=false
sfdc.useBulkApi=true
sfdc.username=[secret]

 

I thought I had this working before, but apparently not because I'm still getting a success[timestamp]csv file being created in the directory indicated in process.statusOutputDirectory.

 

This is a big deal because I have limited space on my processing server, and I'm processing 5-30Gb depending on the day (our org has increased loading limits.

 

Thanks,

 

Dave

 

 

I need to use Data Loader to load data that can have commas "," and double-quotation marks within any number of fields.

 

Outside of mangling the data by removing the quotations marks, or substituting the character with another, do I have any other answer?

 

The quotation mark is an important piece of data in the field(s) in question.  I can't unquote the entire value of my field due to the embedded commas.  Using single quotes (') to surround field data also does not appear to work.

 

The CSVFileReader.java class appears to be the culprit, by way of its tokenization and non-accomodation of this situation.  Surely this has come up in the 6 years this class has existed...

 

 

/**
 * Parse a CSV or tab delimmited file into lines of fields. One line is returned in each call to getNextLine. Each line
 * is returned as an ArrayList of String fields. This parser auto-detects comma or tab delimmiters based on the first
 * line. This file correctly handles embedded quotes, delimmiters, and newlines, based on the way MS Excel and other
 * apps do CSV format. Note that this is different that the way StreamTokenizer handles things itself, which is why I
 * needed to add the getNextToken () method that wraps the StreamTokenizer.nextToken () method. StreamTokenizer doesn't
 * handle embedded newlines in a quoted string. Because CSV format allows embedded newlines in quoted strings, record
 * index values in the array won't necessarily agree with line numbers in a text editor, although they will agree with
 * row numbers when the file is viewed in Excel. We should probably give some accessor to ask the text-editor
 * appropriate line number for the current record.
 */

 

 

All,

 

I need to make a bar chart that has data grouped within each series, so that each "bar" in the chart is combination of multiple data points.  I am able to do this using Google Charts, but providing the information with a clean legend is problematic, so I am investigating the use of Google Visualizations.

 

An example of the type of the Google Chart, without legends for the subdata making up the bars:

 

I stumbled upon the codeshare library for Google Visualizations (http://wiki.developerforce.com/index.php/Google_Visualizations).

 

I was wondering if anyone had used the ColumnChart component and related code to create this type of Chart?  It looks possible, just wanted a quick sanity check before I invest in a lot of time on it.

 

 

Thanks,

 

David

I have a WSDL that I successfully imported into Salesforce that has a simple request structure containing:

 

 

....

<xsd:choice>

<xsd:element maxOccurs="1" minOccurs="1" name="ItemCode" type="tns:ItemCodeType" />

<xsd:element maxOccurs="1" minOccurs="1" name="FullSync" type="tns:FullSyncType" />

</xsd:choice>

.....

<xsd:simpleType name="ItemCodeType">

<xsd:restriction base="xsd:string">

<xsd:minLength value="1" />

<xsd:maxLength value="100" />

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="FullSyncType">

<xsd:restriction base="xsd:string">

<xsd:pattern value="((Y|y))" />

</xsd:restriction>

</xsd:simpleType>....

 

When we generate the request in our controller class, we populate a value for ItemCode, and pass null to FullSync, expecting that no tag will be emitted for FullSync.  Instead, we are seeing both the ItemCode and the FullSync tags, with FullSync being empty ("<ItemCode>ABCDEFG</ItemCode><FullSync/>").

 

I've tried adding "nillable=false" among other things -- what could possibly be going wrong??!!?? 

 

UPDATE 01/19/2010 - I've tried using simple xs:strings as the types for my elements within the <choice> above, but had the same problem.  SFDC says they support the choice element -- is there some quirk or exacting attributes that have to be provided on the elements within the choice? 

 

Message Edited by dturkel on 01-19-2010 07:22 AM

I'm creating Case objects via the Flex Toolkit, but my assignment rules aren't firing.

I've read several posts (non-Flex forums) indicating the need to set a header with with Assignment Rule information.  

 

Is that what I need to do, and how do I do this using the Flex toolkit?

 

Thanks! 

Within my Flex application, I'm trying to create multiple objects in Salesforce using the Connection create() method.
 
Unfortunately, the code below does not seem to be working.  I know that my basic framework works for creating a single object at a time (with the interface ISalesforceCreateable and its contract method "buildCreateableObject()" which returns an SObject.
 
Is there an obvious problem with how I am creating/passing my sobjectArray? 
 

//This method works 

public function create(createable:ISalesforceCreateable):void{

var conn:com.salesforce.Connection = SalesforceHandler.conn;

var sobject:SObject = createable.buildCreateableObject();

conn.create([sobject],this.responder,false); }

 

//This method does not work 

public function createMultipleObjects(createables:ArrayCollection):void{

var conn:com.salesforce.Connection = SalesforceHandler.conn;

var sobjectArray:Array = new Array();

for(var count:int=0;count<createables.length;count++){

var myCreateable:ISalesforceCreateable = createables.getItemAt(count) as ISalesforceCreateable;

sobjectArray.push(myCreateable.buildCreateableObject());

}

conn.create(sobjectArray, this.responder,false);

trace("Created Multiple SFDC Objects, Count: " + count);

}

 

 Thanks,
 
David 
Message Edited by dturkel on 10-06-2009 05:54 AM

All,

 

We have a very successful Flex application operating in an 900 person call center environment.

 

We have built a Flex application that is launch from an S-control on a standard layout, which receives the current user's Session ID/URL, and a number of other parameters.

 

The Flex application uses this data to query back to SFDC for configuration and typical account/case data.

 

This seems to work without issue, AT FIRST.  But, randomly as the user is interacting with our application and gets to the point of making another query/api call to SFDC they will get the Invalid Session ID/Illegal Session error.

 

Some debugging/testing has shown that this SFDC Session ID will "just change", even though the user has not logged out and is still able to interact with SFDC seamlessly (not making it a very good session ID, or a really poor choice of naming).

 

Why in the world does SFDC behave like this, and more importantly, does anyone have any code/patterns they can offer to make our Flex code more robust, to handle this problem seemlessly without the user realizing that we have to get the new session ID and relogin to the API?  Has anyone done this.

 

Please help!

 

Dave

I'm trying to deploy (really transfer) a profile from one environment to another), but I'm getting a permissions error with the "Import  Personal Contacts" setting.

 

The problem is, this profile does not have that permission (Import Personal Contacts) granted, so I'm not understanding the complaint.  Does anyone know why?  I don't want these users to have Create/Edit Account permissions.

 

 

*** Deployment Log ***
Result: FAILED
Date: April 2, 2009 3:09:05 PM EDT

# Deployed From:
   Project name: xxxx-SFDC-Test
   Username: xxxxxx
   Endpoint: test.salesforce.com

# Deployed To:
   Username: xxxxxxx
   Endpoint: test.salesforce.com

# Deploy Results:
   Name:    profiles/FS Outsource Profile with Flex.profile
   Action:  NO ACTION
   Result:  FAILED
   Problem: Permission Import Personal Contacts depends on permission(s): Edit Account, Create Account

   Name:    package.xml
   Action:  UPDATED
   Result:  SUCCESS
   Problem: n/a

# Test Results:
   n/a

Hello,

 

Regarding the AsynResponder in the Flex toolkit, I'm looking for a decent explanation on why I would use the Context object as part of my AsyncResponder setup. I've seen a few posts explaining some past updates to it, but I'd love to understand what I can do with it.

 

Ultimately I'm trying to build a DAO framework for my application that needs to get data on-demand from SFDC.  I then populate control widgets in my Flex application, but I'm having trouble because the AsyncResponder is Asynchronous, and I don't want to build the AsyncResponder block over-and-over again for the same generic queries that might be used accross multiple layouts/controls.

 

If anyone has any practical examples or advice on a better way to do this, please pass along.

 

Links to other meaningful posts/articles accepted. 

 

Thanks,

 

Dave 

I'm trying to deploy to a sandbox environment from our production environment, and I'm receiving validation errors regarding WebLinks that exist in our Account object, but not in our PersonAccount object.  I've checked the structure in both production and the target sandbox environment, and they are the same... the complained about WebLinks DO EXIST, and can only exist in the Account object.  Does anyone have any clue why I keep getting these errors:

 

# Deploy Results:
   Name:    layouts/PersonAccount-Person Account Layout.layout
   Action:  NO ACTION
   Result:  FAILED
   Problem: In field: customLink - no WebLink named PersonAccount.GoogleSearch found

   Name:    layouts/PersonAccount-XXX- Care Rep Person Account Page Layout.layout
   Action:  NO ACTION
   Result:  FAILED
   Problem: In field: customLink - no WebLink named PersonAccount.Bill_View found

 

Related to my earlier post, can anyone post an example fault message returned by an external service that does not cause a CalloutException?

 

If I have an example, I may be able to construct my messages appropriately.

 

Thanks!

We're having a problem with handling a fault coming back from a Callout.  We are getting an exception stating we received a SOAP fault (we want the fault for the purposes of testing error handling), and I'm unclear on the real problem-- is the problem with our ability to get to the fault data, or did we create a problem with the content of our fault, hence triggering the exception.

 

I have a couple of questions:

 

1) Normally, does any fault throw an exception, or would a fault appear in the response?  I haven't found anything in the documentation that explicitly explains how faults are handled.

 

2) What other methods and members are available for me to examine in the CalloutException other than the common methods (getCause()/getMessage())?  Again, the documentation is vague, and I can't find anything absolute that says CalloutException exactly what CalloutException provides (e.g. like JavaDocs for the APIs).

 

3) The exception we recieve manages to display the standard faultcode and faultstring, and the faultstring appears as what is provided by the exceptions's getMessage() method.  This gives me the sense that the fault is completely successfully parsed, or I'm getting a really poor error message from the API.  Below is the full SOAP Fault we receive.  I read another forum message indicating namespace prefixing was required for items in the detail of the message.  As far as I can tell, this is legal syntax, and other tools importing this WSDL handle faults properly: 

 

 

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:Fault xmlns:ns2="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.w3.org/2003/05/soap-envelope">
      <faultcode>ns2:Client</faultcode>
      <faultstring>"IGI0120:CBM5644:The Telephone Number Area Code is incorrect."</faultstring>
      <detail>
        <AAAError:AAAError xmlns="AAA" xmlns:AAAError="AAA">
          <AAAError>
            <RC>1495</RC>
            <MQQ>1</MQQ>
            <MSGNO>1495</MSGNO>
            <MSGTEXT>"IGI0120:CBM5644:The Telephone Number Area Code is incorrect."</MSGTEXT>
          </ICOMSError>
        </AAAError:ICOMSError>
      </detail>
    </ns2:Fault>
  </S:Body>
</S:Envelope>

I have a Flex application where I want to leverage Salesforce.com to have configurable dependent picklists.

 

I would like the Flex application to use the picklists in the same manner as if I was on a configured SFDC page... e.g. the child picklist values would be linked based on the selected value of the parent.

 

I found some code that looked rather ineffecient for determining if a child picklist value is valid based on using some bitwise operations, and iterating through every single object returned by describeSObject.

 

Does anyone have a more effective way to do this -- i.e. a way to query a child picklist using a parent value, returning the valid choices?

 

Thanks!

Is there a way using an S-Control/Javascript to retrieve the Tab name that I'm on?
I have a common functionality that relies on data that must be retrieved different depending if I'm on the Account, Case, or Opportunity tabs.
 
Dave
Has anyone successfully used JMeter (possibly in conjunction with Badboy) to configure a test to call an Apex based class?
 
I've can't seem to put together a proper request (with all of the required header/cookie values).  I can successfully login and navigate (simulate clicking a Tab, that contains the target SControl), but that won't execute due to the nature of the testing tool.  I've tried to create another HTTP request that will make the call.
 
Does anyone have a sample JMeter test file that can do this?  It appears the correct URL to call is /services/proxy?no-cache=[randomnumericvalue], along with the header value of salesforceproxy-endpoint=[targeturlofservice].
 
I could be completely wrong too, so please correct me.  I get nothing but 500 errors.
 
Thanks,
 
David
We are setting up event monitoring in our new production org. When the API user makes the call they receive an error "subscription=/event/LogoutEventStream, error=403:denied_by_security_policy:create_denied, successful=false"

The custom profile created for this user has Edit Events (which includes create/edit/delete events) as well as Create Topic and access to the necessary objects, the Connected App I created for it is assigned to the profile . Are there specific permissions in the custom profile that I might have missed that would cause this error?


I did enable Streaming Data on the appropriate events in the Event Manager.

I'm kinda at a loss right now of what else to enable without opening the door to complete access.

Thanks in advance.

Hello,

 

I'm trying to render a complex value object (not an sObject) that has nested lists.

When I try to nest the <apex:repeat>, I'm not allowed to save my VF page due an error, "The element type table must be terminated by the matching end-tag </table>.  Unfortunately, it is properly ended. It seems like there is some bad parsing, or rules around the use of apex:repeat.  Has anyone else had this problem, and are there any reasonable solutions?

 

<apex:page standardController="Account" 
	extensions="RTEquipmentOnServiceLocationController" 
	showHeader="false" 
	standardStylesheets="true">
	
	<apex:stylesheet value="{!$Resource.DetailPageVFLayoutCSS}"/>
	
    <table id="EquipmentTable" border="1">
    	<apex:repeat value="{!equipmentList}" var="equipmentItem" id="theEquipmentRepeat">
    		<tr id="EquipmentRow">
	    		<td>
                  <apex:outputText value="{!equipmentItem.SerialNumber}"/>
            	</td>
          		<td>
                  <apex:outputText value="{!equipmentItem.EquipmentStatus}"/>
              	</td>
              	<td>
	                 <apex:outputText value="{0,date,yyyy-MM-dd}">
	                  	<apex:param value="{!equipmentItem.EquipmentInstallDate}"/>
	                  </apex:outputText>
              	</td>
              	<td>
                  	<apex:outputText value="{!equipmentItem.EquipmentType}"/>
              	</td>
              	<td>
                  	<apex:outputText value="{!equipmentItem.EquipmentMake}"/>
              	</td>
              	<td >
                  	<apex:outputText value="{!equipmentItem.EquipmentModel}"/>
              	</td>    
              	<td>
                  	<apex:outputText value="{!equipmentItem.EquipmentDescription}"/>
              	</td>
    		</tr>
    		<tr>
    			<td colspan="7">
	    			<table id="ComponentTable" border="1">
		    			<apex:repeat value="{!equipmentItem.ComponentList" var="componentItem" id="theComponentRepeat">
		    				<tr> 
		    					<td>
		    						<apex:outputText value="{!componentItem.MACAddress}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentCategoryDescription}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentOccurrenceNumber}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentComponentCode}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentPort}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentPortType}"/>
		    					</td>
		    					<td>
		    						<apex:outputText value="{!componentItem.EquipmentRatingCode}"/>
		    					</td>
		    					<td>
		    						<apex:repeat value="{!componentItem.EquipmentServiceList}" var="equipmentServiceItem" id="theEquipmentServiceRepeat">
		    							<apex:outputText value="{!equipmentServiceItem.ServiceIdentifier}"/> - 
		    							<apex:outputText value="{!equipmentServiceItem.EquipmentServiceCode}"/>
		    							<br/>
		    						</apex:repeat>	    						
		    					</td>
		    				</tr>
		    			</apex:repeat>
	    			</table>
    			</td>
    		</tr>
    	</apex:repeat>
    </table>
</apex:page>

 

Hello,

 

I am new to the Salesforce world.  I am trying to create a small work flow using flow designer 7.0.6.  As part of the development, I am trying to access my salesforce.com custom objects using Options -> Settings -> Salesforce.com settings.  When  I press "Test Connection", getting  following failure message..

 

"Connection Failed" - Error occured while attempting to login to SFDC with username: 'xxxxxx@xxx.com'

 

 

I googled for solution but found one post connecting to database.com (I do not think it is any different than salesforce.com).  BTW, I am behind a firewall of an organization, if that helps.

 

Thanks in advance.

Vasa

  • December 01, 2011
  • Like
  • 0

All:

 

I am trying to resolve an issue with DataLoader v22 complaining about a field in my mapping file while trying to do a fairly simple extract.  In DataLoader's log, it appears that the first character of my field is getting prepended with some other strange character (it shows up looking at the log in Notepad, but never cut-and-pastes into these HTML forms).

 

2011-07-26 22:31:30,046 FATAL [main] process.ProcessRunner topLevelError (ProcessRunner.java:211) - Unable to run process nulljava.lang.RuntimeException: com.salesforce.dataloader.mapping.Mapper$InvalidMappingException: No such field id on entity Accountat com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:136)at com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:74)at com.salesforce.dataloader.process.ProcessRunner.main(ProcessRunner.java:226)Caused by: com.salesforce.dataloader.mapping.Mapper$InvalidMappingException: No such field id on entity Accountat com.salesforce.dataloader.mapping.SOQLMapper.getSfdcField(SOQLMapper.java:217)at 

 

I was convinced this was a file/character encoding issue, but it doesn't seem to occur on every character of the field, and I've also tried converting the format of the mapping file.  Here are the contents of the mapping file (no strange/special characters appear when using VIM or Notepad)

 

Id=SFDC_ID
Name=NAME
ParentId=SFDC_PARENT_ID
...

 

I'd track this down myself, but I also can't find the corresponding source code on sourceforge for this version of DataLoader -- so I can't find the "SOQLMapper" class.  Does anyone know where to find it?

 

Thanks,

 

Dave

What is the magical combination of variables to not include in config.propertiers and/or command line when executing the DataLoader (v21) so that successfiles aren't generated?  I keep getting a autogenerated success file unintentionally, which is a big impact to me since I'm loading a significant amount of data, and only care about the Errors (which I am getting, and have configured that way).

 

Here is my configuration (between my referenced config.properties, and the properties I override when I call Dataloader directly via javaw:

 

 

dataAccess.type=csvRead
dataAccess.writeBatchSize=10000
dataAccess.name=[secret]
dataAccess.readBatchSize=200
process.enableLastRunOutput=true
process.enableExtractSuccessOutput=false
process.mappingFile=..\\AccountsMap.sdl
process.operation=upsert
process.outputError=D:\SFDCDataFeeds\Residential\Working\Load_Error.csv.1  
process.statusOutputDirectory=D:\temp
sfdc.bulkApiCheckStatusInterval=30000  
sfdc.connectionTimeoutSecs=60
sfdc.debug=true  
sfdc.enableRetries=true
sfdc.entity=Account
sfdc.externalIdField=[secret]
sfdc.extractionRequestSize=500
sfdc.insertNulls=true
sfdc.loadBatchSize=10000
sfdc.minRetrySleepSecs=2
sfdc.maxRetries=3
sfdc.password=[secret]
sfdc.resetUrlOnLogin=true
sfdc.timeoutSecs=540
sfdc.truncateFields=false
sfdc.useBulkApi=true
sfdc.username=[secret]

 

I thought I had this working before, but apparently not because I'm still getting a success[timestamp]csv file being created in the directory indicated in process.statusOutputDirectory.

 

This is a big deal because I have limited space on my processing server, and I'm processing 5-30Gb depending on the day (our org has increased loading limits.

 

Thanks,

 

Dave

 

 

I need to use Data Loader to load data that can have commas "," and double-quotation marks within any number of fields.

 

Outside of mangling the data by removing the quotations marks, or substituting the character with another, do I have any other answer?

 

The quotation mark is an important piece of data in the field(s) in question.  I can't unquote the entire value of my field due to the embedded commas.  Using single quotes (') to surround field data also does not appear to work.

 

The CSVFileReader.java class appears to be the culprit, by way of its tokenization and non-accomodation of this situation.  Surely this has come up in the 6 years this class has existed...

 

 

/**
 * Parse a CSV or tab delimmited file into lines of fields. One line is returned in each call to getNextLine. Each line
 * is returned as an ArrayList of String fields. This parser auto-detects comma or tab delimmiters based on the first
 * line. This file correctly handles embedded quotes, delimmiters, and newlines, based on the way MS Excel and other
 * apps do CSV format. Note that this is different that the way StreamTokenizer handles things itself, which is why I
 * needed to add the getNextToken () method that wraps the StreamTokenizer.nextToken () method. StreamTokenizer doesn't
 * handle embedded newlines in a quoted string. Because CSV format allows embedded newlines in quoted strings, record
 * index values in the array won't necessarily agree with line numbers in a text editor, although they will agree with
 * row numbers when the file is viewed in Excel. We should probably give some accessor to ask the text-editor
 * appropriate line number for the current record.
 */

 

 

I am using CLIq to build a CLI Data Loader Job.  I keep getting exceptions that tell me that the field mappings are invalid for the fields in the CSV that should not be mapped.  I get the following exception...

 

 

Exception occured during loading
com.salesforce.dataloader.exception.MappingInitializationException: Field mapping is invalid: Street2 => 

Exception occured during loadingcom.salesforce.dataloader.exception.MappingInitializationException: Field mapping is invalid: Street2 => 

 

 

For some reason, it does not like the fields that arent mapped.  I am really confused why this is happening because the SDL file workes in the Data Loader GUI, but not the CLI.  

 

Here is my process-conf file...

 

 

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean id="paLeadInsert" class="com.salesforce.dataloader.process.ProcessRunner" singleton="false">
		<description>Created by Dataloader Cliq.</description>
		<property name="name" value="paLeadInsert"/>
		<property name="configOverrideMap">
			<map>
				<entry key="dataAccess.name" value="C:\dataloader\cliq_process\paLeadInsert\read\paLeadInsert.csv"/>
				<entry key="dataAccess.readUTF8" value="true"/>
				<entry key="dataAccess.type" value="csvRead"/>
				<entry key="dataAccess.writeUTF8" value="true"/>
				<entry key="process.enableExtractSuccessOutput" value="true"/>
				<entry key="process.enableLastRunOutput" value="true"/>
				<entry key="process.lastRunOutputDirectory" value="C:\dataloader\cliq_process\paLeadInsert\log"/>
				<entry key="process.mappingFile" value="C:\dataloader\cliq_process\paLeadInsert\config\paLeadInsert.sdl"/>
				<entry key="process.operation" value="insert"/>
				<entry key="process.statusOutputDirectory" value="C:\dataloader\cliq_process\paLeadInsert\log"/>
				<entry key="sfdc.bulkApiCheckStatusInterval" value="5000"/>
				<entry key="sfdc.bulkApiSerialMode" value="5000"/>
				<entry key="sfdc.debugMessages" value="false"/>
				<entry key="sfdc.enableRetries" value="true"/>
				<entry key="sfdc.endpoint" value="https://test.salesforce.com/services/Soap/u/21.0"/>
				<entry key="sfdc.entity" value="Lead"/>
				<entry key="sfdc.extractionRequestSize" value="500"/>
				<entry key="sfdc.insertNulls" value="false"/>
				<entry key="sfdc.loadBatchSize" value="100"/>
				<entry key="sfdc.maxRetries" value="3"/>
				<entry key="sfdc.minRetrySleepSecs" value="2"/>
				<entry key="sfdc.noCompression" value="false"/>
				<entry key="sfdc.password" value="ENCRYPTEDPASSWORD"/>
				<entry key="sfdc.timeoutSecs" value="60"/>
				<entry key="sfdc.useBulkApi" value="false"/>
				<entry key="sfdc.username" value="username@test.com"/>
			</map>
		</property>
	</bean>
</beans>

 

And here is my SDL file....

 

 

# SDL Mapping File
SearchKey=
BorrowerBirthDate=Borrower_Birthdate__c
MiddleName=
FirstName=FirstName
LoanPurpose=Purpose__c
EmailHId=
HashedSSN=
Zip=PostalCode
LeadSystemId=
City=City
Email=Email
OwnerID=
Street2=
WorkPhone=Work_Phone__c
Street1=Street
CoBorrowerHomePhone=Co_Borrower_Home_Phone__c
Stat60Dt=
CoBorrowerBirthDate=Co_Borrower_Birthdate__c
CellularPhone=Mobile_Phone__c
County=County__c
Suffix=
CLTV=
CoBorrowerMaritalStatus=Co_Borrower_Marital_Status__c
LoanNumber=Loan_Number__c
WorkPhoneExtension=
CoBorrowerLastName=Co_Borrower_Last__c
GCId=GCId__c
LoanAmount=Loan_Amount__c
FICO=
Comments=Description
CoBorrowerFirstName=Co_Borrower_First__c
DOB=
BorrowerMaritalStatus=Marital_Status__c
Zip4=
HomePhone=Phone
State=State
CoBorrowerWorkPhone=Co_Borrower_Work_Phone__c
InterestRate=
LeadTypeCode=Lead_Type__c
EncryptedSSN=
LTV=
CoBorrowerMiddleName=
StatusId=
LastName=LastName
CoBorrowerCellPhone=Co_Borrower_Mobile_Phone__c
BankerName=Banker_Name__c

 

Anyone know how to fix?

 

 

All,

 

I need to make a bar chart that has data grouped within each series, so that each "bar" in the chart is combination of multiple data points.  I am able to do this using Google Charts, but providing the information with a clean legend is problematic, so I am investigating the use of Google Visualizations.

 

An example of the type of the Google Chart, without legends for the subdata making up the bars:

 

I stumbled upon the codeshare library for Google Visualizations (http://wiki.developerforce.com/index.php/Google_Visualizations).

 

I was wondering if anyone had used the ColumnChart component and related code to create this type of Chart?  It looks possible, just wanted a quick sanity check before I invest in a lot of time on it.

 

 

Thanks,

 

David

I have a WSDL that I successfully imported into Salesforce that has a simple request structure containing:

 

 

....

<xsd:choice>

<xsd:element maxOccurs="1" minOccurs="1" name="ItemCode" type="tns:ItemCodeType" />

<xsd:element maxOccurs="1" minOccurs="1" name="FullSync" type="tns:FullSyncType" />

</xsd:choice>

.....

<xsd:simpleType name="ItemCodeType">

<xsd:restriction base="xsd:string">

<xsd:minLength value="1" />

<xsd:maxLength value="100" />

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="FullSyncType">

<xsd:restriction base="xsd:string">

<xsd:pattern value="((Y|y))" />

</xsd:restriction>

</xsd:simpleType>....

 

When we generate the request in our controller class, we populate a value for ItemCode, and pass null to FullSync, expecting that no tag will be emitted for FullSync.  Instead, we are seeing both the ItemCode and the FullSync tags, with FullSync being empty ("<ItemCode>ABCDEFG</ItemCode><FullSync/>").

 

I've tried adding "nillable=false" among other things -- what could possibly be going wrong??!!?? 

 

UPDATE 01/19/2010 - I've tried using simple xs:strings as the types for my elements within the <choice> above, but had the same problem.  SFDC says they support the choice element -- is there some quirk or exacting attributes that have to be provided on the elements within the choice? 

 

Message Edited by dturkel on 01-19-2010 07:22 AM

I'm creating Case objects via the Flex Toolkit, but my assignment rules aren't firing.

I've read several posts (non-Flex forums) indicating the need to set a header with with Assignment Rule information.  

 

Is that what I need to do, and how do I do this using the Flex toolkit?

 

Thanks! 

Hi,

 

I'm calling into a 3rd party API from Salesforce using the APEX WSDL wrapper. That 3rd party API provides access to pdf documents as blobs. I'm able to use APEX to access those PDFs and send them on as e-mail messages (using Messaging.SingleEmailMessage and Messaging.EmailFileAttachment) from salesforce. Works great.

 

However, I would like to also render that PDF in a VisualForce page (it can either render in the page or provide a popup asking the user if they want to save or open the PDF). I see lots of info on how to render existing Salesforce content in PDF but nothing about how you could do this if you already have the PDF in a blob lets say.

 

I would think it would be something like:

 

<apex:page contenttype="application/pdf">

<apex:outputText value="{!PDFBlob}" id="thePDFBlob"/>

</apex:page>

 

(where i can provide the blob in the controller) but outputText is not the correct component.)

 

Anyone have any ideas?

 

Thanks,

-John

 

 

Within my Flex application, I'm trying to create multiple objects in Salesforce using the Connection create() method.
 
Unfortunately, the code below does not seem to be working.  I know that my basic framework works for creating a single object at a time (with the interface ISalesforceCreateable and its contract method "buildCreateableObject()" which returns an SObject.
 
Is there an obvious problem with how I am creating/passing my sobjectArray? 
 

//This method works 

public function create(createable:ISalesforceCreateable):void{

var conn:com.salesforce.Connection = SalesforceHandler.conn;

var sobject:SObject = createable.buildCreateableObject();

conn.create([sobject],this.responder,false); }

 

//This method does not work 

public function createMultipleObjects(createables:ArrayCollection):void{

var conn:com.salesforce.Connection = SalesforceHandler.conn;

var sobjectArray:Array = new Array();

for(var count:int=0;count<createables.length;count++){

var myCreateable:ISalesforceCreateable = createables.getItemAt(count) as ISalesforceCreateable;

sobjectArray.push(myCreateable.buildCreateableObject());

}

conn.create(sobjectArray, this.responder,false);

trace("Created Multiple SFDC Objects, Count: " + count);

}

 

 Thanks,
 
David 
Message Edited by dturkel on 10-06-2009 05:54 AM

I wrote a simple script to display a comments box if 'Yes' is selected but it doesn't work... help?

script:

<script> function changeDisp(input, textid) { if(input == "Yes") document.getElementById(textid).style.display = "inline"; else document.getElementById(textid).style.display = "none"; } </script>

 

 

code:

<apex:PageBlockSection columns="1"> <apex:outputLabel value="Customer refused survey?" for="refused"/> <apex:InputField value="{!Post_Install_Survey__c.Refused__c}" id="refused" onChange="changeDisp(this,'{!$Component.rfcomments}');"/> <apex:outputPanel id="rfcomments"> <apex:InputField value="{!Post_Install_Survey__c.Refused_Comments__c}" style="display:none;"/> </apex:outputPanel> </apex:pageBlockSection>

 

           

 

Is there any way to simply add some descriptive text to a layout?  I'm creating a page layout for a custom object and I'd like some instructions on the page for my users...

We're having a problem with handling a fault coming back from a Callout.  We are getting an exception stating we received a SOAP fault (we want the fault for the purposes of testing error handling), and I'm unclear on the real problem-- is the problem with our ability to get to the fault data, or did we create a problem with the content of our fault, hence triggering the exception.

 

I have a couple of questions:

 

1) Normally, does any fault throw an exception, or would a fault appear in the response?  I haven't found anything in the documentation that explicitly explains how faults are handled.

 

2) What other methods and members are available for me to examine in the CalloutException other than the common methods (getCause()/getMessage())?  Again, the documentation is vague, and I can't find anything absolute that says CalloutException exactly what CalloutException provides (e.g. like JavaDocs for the APIs).

 

3) The exception we recieve manages to display the standard faultcode and faultstring, and the faultstring appears as what is provided by the exceptions's getMessage() method.  This gives me the sense that the fault is completely successfully parsed, or I'm getting a really poor error message from the API.  Below is the full SOAP Fault we receive.  I read another forum message indicating namespace prefixing was required for items in the detail of the message.  As far as I can tell, this is legal syntax, and other tools importing this WSDL handle faults properly: 

 

 

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:Fault xmlns:ns2="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.w3.org/2003/05/soap-envelope">
      <faultcode>ns2:Client</faultcode>
      <faultstring>"IGI0120:CBM5644:The Telephone Number Area Code is incorrect."</faultstring>
      <detail>
        <AAAError:AAAError xmlns="AAA" xmlns:AAAError="AAA">
          <AAAError>
            <RC>1495</RC>
            <MQQ>1</MQQ>
            <MSGNO>1495</MSGNO>
            <MSGTEXT>"IGI0120:CBM5644:The Telephone Number Area Code is incorrect."</MSGTEXT>
          </ICOMSError>
        </AAAError:ICOMSError>
      </detail>
    </ns2:Fault>
  </S:Body>
</S:Envelope>