• JasonRogers
  • NEWBIE
  • 0 Points
  • Member since 2004

  • Chatter
    Feed
  • 0
    Best Answers
  • 1
    Likes Received
  • 0
    Likes Given
  • 20
    Questions
  • 31
    Replies
I just upgraded to the new Ant integration library from the Salesforce tools section.  Calling Ant on the following target does not run the tests, or at least the build doesn't report a failure when the tests fail.  How do I know this?  I added a failing test and expected to get a failed build.  No such luck.  Build was reported as successful.  However, if I list out the tests to run with child 'runTest' tags, the build does fail.

Here's the target with 'runAllTests' set (bulid reported as successful even though it should be a failure):
Code:
<target name="deployCode" depends='use_test_environment,use_prod_environment'>
  <sf:deploy username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" runAllTests="true" deployroot="retrieveUnpackaged" singlePackage="true" />
</target>

 
Here's the target with test classes specified (one test fails and the build is reported as a failure):
Code:
<target name="deployCode" depends='use_test_environment,use_prod_environment'>
  <sf:deploy username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" deployroot="retrieveUnpackaged" singlePackage="true">
    <runTest>CronUtil</runTest>
    <runTest>EmailToRSSHandler</runTest>
    <runTest>FeedIdRetriever</runTest>
    <runTest>FinanceEmailer</runTest>
    <runTest>InvoiceUtil</runTest>
    <runTest>OpportunityProductUtil</runTest>
    <runTest>OpportunityUtil</runTest>
    <runTest>RSSFeedItem</runTest>
    <runTest>TestUtil</runTest>
    <runTest>Util</runTest>
  </sf:deploy>
</target>

 

I have created a custom opportunity related list for accounts that I want to add into the account page layout.  When the apex page is added to a field section (the only place you can add it in a layout) it gets chopped off.  Here are 2 images that display the symptom.  Any way around it?

Chopped off field section:
 


Native related list:
 
Code:
<apex:page standardController="Account">
  <apex:pageBlock title="Opportunities">
    <apex:form >
        <apex:pageBlockTable value="{!account.Opportunities}" var="opty">
          <apex:column >
            <apex:commandLink rerender="detail">
              <apex:param name="opty_id" value="{!opty.id}" />
              <apex:param name="render_details" value="true" />
              {!opty.Name}
            </apex:commandLink>
          </apex:column>
          <apex:column value="{!opty.StageName}"/>
          <apex:column value="{!opty.Type}"/>
          <apex:column value="{!opty.CloseDate}"/>
          <apex:column value="{!opty.License_Start_Date__c}"/>
          <apex:column value="{!opty.ExpirationDate__c}"/>
          <apex:column value="{!opty.Rollup_Amount__c}"/>
          <apex:column value="{!opty.Rollup_New_Amount__c}"/>
          <apex:column value="{!opty.Rollup_Renew_Amount__c}"/>
          <apex:column value="{!opty.Rollup_One_Time_Amount__c}"/>
          <apex:column value="{!opty.Owner.Name}"/>
          <apex:column value="{!opty.Active_Status__c}"/>
        </apex:pageBlockTable>
    </apex:form>
  </apex:pageBlock>
  <apex:outputPanel id="detail">
    <apex:actionStatus startText="Looking up Opportunity...">
      <apex:facet name="stop"> 
        <apex:detail subject="{!$CurrentPage.parameters.opty_id}" relatedList="false" title="false" rendered="{!$CurrentPage.parameters.render_details}" />
      </apex:facet>
    </apex:actionStatus>
  </apex:outputPanel>  
  <!-- End Default Content REMOVE THIS -->
</apex:page>
 In the above code, I am just trying to create an alternative opportunities related list for accounts adding in as many fields as we would like.  When I use the apex:column elements with date fields the values output are in a long date format (with time and timezone).  If I put an apex:outputField in the apex:column the date is formatted in short format but then the header disappears. Is there any way to format date fields in an apex:pageBlockTable element as short form and keep the header of the column? I have tried using the header attribute in the column as well, but to no avail.
Currencies are typically floated on an opportunity until it is marked as purchased, at which time the currency conversion is frozen as of the CloseDate of the opportunity.  We have a custom object associated with Opportunity (via LookUp) that has 3 currency based fields.  How do we freeze the currency conversion for those objects?

Thanks.
Jason
I am seeing the following table below in the test result web page of our sandbox.  The interesting thing to note is that the stack trace that is given is incorrect. The second line of the stack trace should be the third line, if the trace is moving from newest to oldest.

This is consistently wrong whenever I get a stack trace in the test result page.  I would post a case on this, but I am getting an error that the self-service portal is down for my account.

Is anyone else seeing this?

TypeNameMethod NameTotal time (ms)MessageStack Trace
 ClassAccountUtiltest_updateAcvsFor_from_forDate535System.NullPointerException: Attempt to de-reference a null objectClass.AccountUtil.totalAcv: line 56, column 20
Class.AccountUtil.test_updateAcvsFor_from_forDate: line 95, column 38
Class.AccountUtil.updateAcvsFor_from_forDate: line 6, column 29

I am getting an error during compile time that says "Invalid nested collection type".  Here's the code that it's barfing on.  Can anyone help?

Code:
private Map<String, List<OpportunityLineItem>> lineItemsByBusinessUnitForOpportunities(List<Opportunity> opps) {
  Map<String, List<OpportunityLineItem>> map = new Map<String, List<OpportunityLineItem>>();
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//The error message points to the above line

Set<Id> oppIds = new Map<Id, Opportunity>(opps).keySet(); List<OpportunityLineItem> lineItems = [select id, acv_Impact__c, Product.business_unit__c, Opportunity.license_start_date__c, Opportunity.expirationdate__c from OpportunityLineItem where opportunity in :oppIds]; for(OpportunityLineItem lineItem : lineItems) { if (!map.containsKey(lineItem.product.business_unit__c)) {
map.put(lineItem.product.business_unit__c, new List<OpportunityLineItem>()); } map.get(lineItem.product.business_unit__c).add(lineItem); } return map; }

 
The error message points to the first line of the method (the declaration of the map).
This is probably a useless message, but...

I have no idea how this would ever be exploited, however I found out today that hitting a non-existent object URL in Salesforce without being logged in will show you the "URL no longer exists" page. Eg. https://na5.salesforce.com/600000007kep6

Just thought I would put it out there...
Is there a way to convert IDs to strings?  I have a custom field on Opportunity that relates to another opportunity (marking the first opportunity as an upsale to the second).  I then need to do tests on the custom field against another opportunity's id, specifically that the custom field value is equal to the id or that the id starts with the custom field value, but there seems to be no way to compare strings and ids.  My APEX code is:
Code:
    public Opportunity[] relatedOpportunitiesFor(Opportunity opportunity) {
        Opportunity[] account_opportunities = opportunity.account.opportunities;
        Opportunity[] relatedOptys = new Opportunity[0];
        for (opportunity candidate : account_opportunities) {
            if(candidate.main_Opportunity__c.indexOf(opportunity.id) != -1
             && opportunity.id.indexOf(candidate.main_Opportunity__c) != -1
             && candidate.type == 'New') {
                relatedOptys.add(candidate);
            }
        }
        return relatedOptys;
    }

 

Previous to updating to 8.0 we had some code that would update fields on Opportunities. After updating to 8.0 we get this failure (there has been no other change in the code besides the update):

AxisFault: A duplicate value was specified for field 'Consulting_Amount__c' in object 'Opportunity', duplicate value '0.0' prior value '' (prior value could have been set to '' with 'fieldsToNull')

Does anyone have a clue why this would be?
I downloaded the AppExchange plugin for Eclipse and installed it.  When I try to create a new AppExchange project (with or without a SOAP Endpoint) the wizard hangs there for a while and then finally responds with an error stating "Invalid Thread Access."  I thought it might be a proxy issue (even though I have proxy set up in the environment in several places: as default commandline arguments to my JRE, under Preferences > Internet > Proxy) so I even started Eclipse through tsocks, a socks proxying tunnel.  Still, no luck.

I am running Eclipse 3.1 Final.  Has anyone been able to get the plugin going on 3.1?

Jason Rogers
How do we log feature requests? Do we use the self-service portal?
I have a process that changes some values on Opportunity objects. In the case when an Opportunity is being set to a Purchased Stage from a previously non-Purchased Stage the CloseDate is being changed ON THE SALESFORCE SERVER SIDE to "today". I have looked at the message going across the wire and saw that CloseDate is indeed NOT "today" but rather the same value as it was when I queried for it. Nevertheless, when I log in to Salesforce after completing the update the CloseDate is set to "today."

Does anyone know why this would happen? A configuration setting? Perhaps there is some job/task someone has created that could do this? I don't expect anyone here to know what the task may be, I am asking if that is a possibility.

I have saved the XML for the update and its response and can post that if it would help.

Thanks.

Jason
I am having trouble querying a custom object. I get the SOAP response, but then I get and exception that boils down to this:

org.xml.sax.SAXException: No deserializer for
{urn:sobject.enterprise.soap.sforce.com}OpportunityCatalogRelationship__c

I read on the forums that this is usually a namespace issue, but I don't know how to fix it.

As part of my login I execute this code:

LoginResult loginResult = newService().getSoap().login(
userName(),
password());
Soap soap = newService().getSoap(new URL(loginResult.getServerUrl()));

The value of loginResult.getServerUrl() is "https://na1-api.salesforce.com/services/Soap/c/4.0".

Any clues how to change the namespace would be appreciated.
I want to make sure that I fully understand this functionality. The API takes a Calendar instance for start and end dates for the GetUpdated and GetDeleted messages. The documentation explicitly talks about the time portions of the start and end dates, it specifies that the minutes are ignored, but it doesn't explicitly say anything about the date portion of these parameters. Is the date portion used as well such that I could get updates from a date range and not just a time range?

The reason I ask this is because I have code that makes some updates on Day1. I have code that checks for updates that have occurred since the beginning of Day1 but it returns no IDs. This happens some specified time period after the updates occur (from 15 minutes up to one day later). Is there a synchronization process that I should wait on? Are creates/updates/deletes via the API not immediately accessible by the getUpdated/getDeleted portion of the API?

Thanks.
While trying to change a single field in an account and calling update I get the following stack trace. Any clues?

java.lang.RuntimeException: java.lang.Exception: Error saving object: java.io.IOException: ORA-22922: nonexistent LOB value

at oracle.jdbc.driver.DatabaseError.SQLToIOException(DatabaseError.java:557)
at oracle.jdbc.driver.OracleClobWriter.flushBuffer(OracleClobWriter.java:215)
at oracle.jdbc.driver.OracleClobWriter.close(OracleClobWriter.java:188)
at common.udd.object.ClobField.postDbSave(ClobField.java:128)
at common.udd.object.EntityObject.postSave(EntityObject.java:1222)
at common.udd.object.EntityObject.bulkSave(EntityObject.java:1404)
at common.udd.object.ApiEntityObject.apiBulkSave(ApiEntityObject.java:1046)
at common.api.soap.Soap.save(Soap.java:271)
at common.api.soap.Soap.update(Soap.java:221)
at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:402)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:309)
at common.api.soap.SProvider.processMessage(SProvider.java:81)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:165)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:113)
at shared.filter.SoapPostGzipFilter.doFilter(SoapPostGzipFilter.java:25)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:84)
at com.caucho.filters.GzipFilter.doFilter(GzipFilter.java:176)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:84)
at system.filter.SoapPreGzipFilter.doFilter(SoapPreGzipFilter.java:46)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:84)
at system.filter.PreGzipFilter.doFilter(PreGzipFilter.java:75)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:84)
at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:190)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:323)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:430)
at com.caucho.util.ThreadPool.run(ThreadPool.java:377)
at java.lang.Thread.run(Thread.java:534)
When doing updates do I need to grab all fields of an object so that I don't null out fields that I haven't selected?
Development Language: Java
Salesforce API: 3.0

I am having a problem getting a query to return any values. I have tried all of the following, where is my field list, but they all have a return of 0 records:

* select from Opportunity where StageName like '%Purchased%' or Type like '%renewal%'

* select from Opportunity where StageName like 'Purchased' or Type like 'renewal'

* select from Opportunity where Type like '%renewal%'

* select from Opportunity where Type like 'renewal'

I have also tried each of these with the specified fieldnames in the where-clause alll-caps.

I know that objects exist out there, but the query doesn't return them... I am therefore forced to remove the where-clause which returns all Opportunities vs. a little more than half.

Thanks in advance.

Jason Rogers

Message Edited by JasonRogers on 06-29-2004 01:05 PM

I wonder if there is a way today to indicate that I want responses from Salesforce to be in a zipped format. On the same token, is there a way to send zipped request to Salesforce? This would greatly reduce the network bandwidth requirements.

Thanks.
We have a situation where we use a custom link in Salesforce to call our servlet. Within that call we send the userId and the sessionId. The following code was working this morning in the sense that we were able to get user information, but starting around 5:00 PM EST today (March 15, 2004) it fails with the following exception stack (below the code snippet) when calling "binding.getUserInfo(sUser);". Any clues? Did something change in the API?

[code snippet]
try {
SoapBindingStub binding = (SoapBindingStub) new SforceServiceLocator().getSoap(new URL(sServerURL));

_SessionHeader sh = new _SessionHeader();
sh.setSessionId(sSessionID);
binding.setHeader(PARAM_SFORCE_SERVICE, PARAM_SESSION_HEADER, sh);

GetUserInfoResult userInfo = binding.getUserInfo(sUser);

if (userInfo.getUserEmail().trim().length() > 0) {
return true;
}
} catch (...) {
}
[/code snippet]

[exception]
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: INVALID_SESSION_ID: Invalid Session ID found in SessionHeader
faultActor:
faultNode:
faultDetail:
{urn:fault.enterprise.soap.sforce.com}fault:
INVALID_SESSION_ID
Invalid Session ID found in SessionHeader
[/exception]
I would like to do some functional testing of our servlet's integration with Salesforce using JUnit and HTTPUnit. However, I don't want to connect to Salesforce using a company account because I don't want to mess with live data. Does anyone have a suggestion for doing this type of testing?

One thought I had was to somehow load our Salesforce customizations into my sforce account but I don't know of any way to do that. Suggestions are welcomed!
How do we log feature requests? Do we use the self-service portal?
I have created a custom opportunity related list for accounts that I want to add into the account page layout.  When the apex page is added to a field section (the only place you can add it in a layout) it gets chopped off.  Here are 2 images that display the symptom.  Any way around it?

Chopped off field section:
 


Native related list:
 
Code:
<apex:page standardController="Account">
  <apex:pageBlock title="Opportunities">
    <apex:form >
        <apex:pageBlockTable value="{!account.Opportunities}" var="opty">
          <apex:column >
            <apex:commandLink rerender="detail">
              <apex:param name="opty_id" value="{!opty.id}" />
              <apex:param name="render_details" value="true" />
              {!opty.Name}
            </apex:commandLink>
          </apex:column>
          <apex:column value="{!opty.StageName}"/>
          <apex:column value="{!opty.Type}"/>
          <apex:column value="{!opty.CloseDate}"/>
          <apex:column value="{!opty.License_Start_Date__c}"/>
          <apex:column value="{!opty.ExpirationDate__c}"/>
          <apex:column value="{!opty.Rollup_Amount__c}"/>
          <apex:column value="{!opty.Rollup_New_Amount__c}"/>
          <apex:column value="{!opty.Rollup_Renew_Amount__c}"/>
          <apex:column value="{!opty.Rollup_One_Time_Amount__c}"/>
          <apex:column value="{!opty.Owner.Name}"/>
          <apex:column value="{!opty.Active_Status__c}"/>
        </apex:pageBlockTable>
    </apex:form>
  </apex:pageBlock>
  <apex:outputPanel id="detail">
    <apex:actionStatus startText="Looking up Opportunity...">
      <apex:facet name="stop"> 
        <apex:detail subject="{!$CurrentPage.parameters.opty_id}" relatedList="false" title="false" rendered="{!$CurrentPage.parameters.render_details}" />
      </apex:facet>
    </apex:actionStatus>
  </apex:outputPanel>  
  <!-- End Default Content REMOVE THIS -->
</apex:page>
 In the above code, I am just trying to create an alternative opportunities related list for accounts adding in as many fields as we would like.  When I use the apex:column elements with date fields the values output are in a long date format (with time and timezone).  If I put an apex:outputField in the apex:column the date is formatted in short format but then the header disappears. Is there any way to format date fields in an apex:pageBlockTable element as short form and keep the header of the column? I have tried using the header attribute in the column as well, but to no avail.
Hi,
 
Can somebody please explain how to use Polymorphic keys. I'm just not getting any information on it.
 
Thanks and Regards,
A.V.
I'm building an adapter for Ruby's DataMapper for Salesforce. I've been able to use the WSDL with SOAP to make #query calls to Salesforce. However, I can't figure out how to use Ruby code to update an object (because Ruby's SOAP connector is not quite as snap-in as Java or C#'s connector).

The code I've been using to set up the connection is at: http://pastie.caboo.se/private/wcqjqv1icvshqpucsxupq

It's a little bit frustrating that Salesforce hung its Ruby hat on ActiveSalesforce, which is more a Rails/ActiveRecord solution than a general-purpose Ruby solution. Ideally, Salesforce would have built a low-level library to connect to its webservices, and then built ActiveSalesforce on top of it (the code for ASF is a mess, and includes a partial solution that someone was building prior to the release of ASF).

Anyhow, I'd appreciate any help someone could provide about making reliable #update calls back to the server for objects returned as a result of a #query call.
  • April 10, 2008
  • Like
  • 0
hi guys,

any body has an idea of the syntax to clone a opportunity with its  product
my idea is bit with child record

opportunity opp_clone= opp.clone ;
Insert opp_clone; 


Thank you


  • February 04, 2008
  • Like
  • 0
Hi at the moment if i try to create triggers or any code there is no new button in our live salesforce account. I created a sandbox project and now i can create the triggers but how do i put these changes in the live system, please help.
Currencies are typically floated on an opportunity until it is marked as purchased, at which time the currency conversion is frozen as of the CloseDate of the opportunity.  We have a custom object associated with Opportunity (via LookUp) that has 3 currency based fields.  How do we freeze the currency conversion for those objects?

Thanks.
Jason
I am getting an error during compile time that says "Invalid nested collection type".  Here's the code that it's barfing on.  Can anyone help?

Code:
private Map<String, List<OpportunityLineItem>> lineItemsByBusinessUnitForOpportunities(List<Opportunity> opps) {
  Map<String, List<OpportunityLineItem>> map = new Map<String, List<OpportunityLineItem>>();
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//The error message points to the above line

Set<Id> oppIds = new Map<Id, Opportunity>(opps).keySet(); List<OpportunityLineItem> lineItems = [select id, acv_Impact__c, Product.business_unit__c, Opportunity.license_start_date__c, Opportunity.expirationdate__c from OpportunityLineItem where opportunity in :oppIds]; for(OpportunityLineItem lineItem : lineItems) { if (!map.containsKey(lineItem.product.business_unit__c)) {
map.put(lineItem.product.business_unit__c, new List<OpportunityLineItem>()); } map.get(lineItem.product.business_unit__c).add(lineItem); } return map; }

 
The error message points to the first line of the method (the declaration of the map).
Is there a way to convert IDs to strings?  I have a custom field on Opportunity that relates to another opportunity (marking the first opportunity as an upsale to the second).  I then need to do tests on the custom field against another opportunity's id, specifically that the custom field value is equal to the id or that the id starts with the custom field value, but there seems to be no way to compare strings and ids.  My APEX code is:
Code:
    public Opportunity[] relatedOpportunitiesFor(Opportunity opportunity) {
        Opportunity[] account_opportunities = opportunity.account.opportunities;
        Opportunity[] relatedOptys = new Opportunity[0];
        for (opportunity candidate : account_opportunities) {
            if(candidate.main_Opportunity__c.indexOf(opportunity.id) != -1
             && opportunity.id.indexOf(candidate.main_Opportunity__c) != -1
             && candidate.type == 'New') {
                relatedOptys.add(candidate);
            }
        }
        return relatedOptys;
    }

 

Previous to updating to 8.0 we had some code that would update fields on Opportunities. After updating to 8.0 we get this failure (there has been no other change in the code besides the update):

AxisFault: A duplicate value was specified for field 'Consulting_Amount__c' in object 'Opportunity', duplicate value '0.0' prior value '' (prior value could have been set to '' with 'fieldsToNull')

Does anyone have a clue why this would be?
Hi:
 
I'm encountering errors during compilation time.  I'm using eclipse IDE running on jdk 1.4.2.
 
Two errors came up:
 
1)  "Too manay parameters, paramter Tools_Status__c is exceeding the limit of 255 words eligible for method parameters"
 
2)  "Too manay parameters, paramter vendio__c is exceeding the limit of 255 words eligible for method parameters"
 
Anyone encountered this before?
 
Let me know if you have a solution for this.
 
thanks,
 
jay

Message Edited by Jeps on 05-04-2006 02:44 PM

Message Edited by Jeps on 05-04-2006 02:45 PM

  • May 04, 2006
  • Like
  • 0
I downloaded the AppExchange plugin for Eclipse and installed it.  When I try to create a new AppExchange project (with or without a SOAP Endpoint) the wizard hangs there for a while and then finally responds with an error stating "Invalid Thread Access."  I thought it might be a proxy issue (even though I have proxy set up in the environment in several places: as default commandline arguments to my JRE, under Preferences > Internet > Proxy) so I even started Eclipse through tsocks, a socks proxying tunnel.  Still, no luck.

I am running Eclipse 3.1 Final.  Has anyone been able to get the plugin going on 3.1?

Jason Rogers
Hi, all.

I've slapped together a lightweight little Ruby binding for the SalesForce API. The project was inspired by the older XMLRPC-based wrapper and the generic soap4r library (though it doesn't actually use either one).

The .rb file is available at http://rubyforge.org/projects/rforce.
Documentation (such as it is) is at http://rforce.rubyforge.org.

Enjoy!
  • September 02, 2005
  • Like
  • 0

We have purchased SFDC Enterprise Edition and we are looking for a way to have our clients (contacts in SFDC) submit/view cases directly into/from SFDC.

We were looking at self-service portal in SFDC, but this portal doesn't seem to work for our company for a following reason. Our accounts in SFDC have been configured as a hierarchy accounts (For example: Corporate Office->Continet Office->Regional Office->City Office->...) and there are contacts on each level. Our contacts need to be able to add/edit cases for their accounts as well as all child accounts (basicaly have the same hierarchy in portal). It seems like SFDC self-service portal cannot do that. Am I correct?

We are thinking about writing our own portal that would work directly with SFDC database. Is it possible? If yes, can you please give us an advice on how to do following?

- Single sign-on from our product (web based application) directly to SFDC (Contact level users)
- View issues based on SFDC hierarchy
- Uploading files to SFDC from our portal

Thank you

  • May 18, 2005
  • Like
  • 0