• Sean Fife 9
  • NEWBIE
  • 45 Points
  • Member since 2014

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 9
    Questions
  • 4
    Replies
We have two orgs with Accounts and Contacts shared between them via Salesforce-to-Salesforce.  This is fine and dandy except in one org the Contact object has three lookups to to the Account.  I do see that the documentation says records will not be auto accepted if there are many lookups to one object on a shared object - fine.  But, only one lookup is shared and the other two are insignificant for sharing - meaning only one lookup matters.
e.g.
org 1 lookups to account:
Account Id, Affiliation, and Employer
org 2 lookups to account:
Account Id

S2S Shared account lookups -
org1 -> org2: Account Id
org2 -> org1: Account Id

I do not have the two additional lookups shared through S2S, so the connection doesn't even know its there and those lookup fields will always be blank.  S2S is apparently not smart enough to figure that out.

Has anyone been able to get around this?
I have an object with an overridden tab that goes to a visualforce page, instead of the standard layout.  Is there a way for me to view the default page layout without changing the view for everyone?  Meaning, let everyone see the visualforce page that's there now, but let me go to some URL that shows me the default page layout?  Not like a permanent change for me myself, but in the off chance I want to see it. For example, sometimes I want to see some related lists that aren't on the visualforce page for debugging or whatnot.
 
I have this code (C#, .NET 4.5), which is pretty much the Salesforce sample: https://www.salesforce.com/developer/docs/api/Content/sforce_api_calls_queryall.htm
 
service.QueryOptionsValue = new QueryOptions();
service.QueryOptionsValue.batchSize = 500;
service.QueryOptionsValue.batchSizeSpecified = true;

QueryResult qr = service.queryAll(selectString);
The service variable is an SforceService object with Enterprise API version 33.0, and every time I run it, no matter what object I query, I always get 200 rows back and not 500.

Is there some setting you have to set elsewhere so it won't ignore the batch size?  Or is this just wrong?
I've been trying to find a definitive answer on if the bulk api will query out soft-deleted records, but can't find one. I've skimmed the manual (perhaps I missed it), searched questions on here, and googled.  The answers I find are more like 'no, because it didn't work for me' and not 'no, here's a reference for you on bulk api limitations'.  So, does anyone know if the bulk api can reutrn soft-deleted records, and if so, how?
 
We're going to be turning on delegated authentication soon, but this seems like it will create a problem. Namely, that users will be forced (by the power of us hub) to log in through the native Salesforce login page, but that won't work once we turn on delegated authentication. It will always give them the error that our sso service is down.  So, they'll have to navigate back to our login page, login, then go back to the power of us hub page to log in. Seems cumbersome.

Anyone solve this?  Does this make sense?
Ok, so we have an External Id field that's sets to unique case-insensitive, yet we have about 200 records with the same value. And it's either blank or null values repeated between records.  What gives? Is this expected behavior? My searches have turned up nothing on this.  Is this really, unique except...?
For instance I have a sandbox with a deployed mydomain (eg. xxxx--yyyy.cs8.my.salesforce.com) and it, of course, has an associated IP address.  If I whitelist just that IP, am I ok, or will Salesforce randomly reassign the IP for that deployed mydomain name?
 
I've been searching for an answer to this but can't find one:  Are the password policies in sanboxes associated with profiles, but the password policies in production organizations associated with the organizational policy?

When I'm in a full sandbox and I change the password policies for the sandbox, the profiles retain a password policy section that contains the old policy.  In our production instance there is no such section associated with profiles.

If there perhaps a setting that allows profiles to retain password policies?
I've been trying to use the tooling api with no luck.  After I found this post (https://success.salesforce.com/issues_view?id=a1p30000000T2GcAAK ) I tried the work around, but it's not working for me.  I get "No operation available for request {urn:tooling.soap.sforce.com}create" on the code below.  Anyone know whta's wrong?

I'm using VS2013 Pro with C#.

here's my code:
sfdc.tooling.SforceServiceService tooling;
        sfdc.partner.SforceService partner;
        private void Form1_Load(object sender, EventArgs e)
        {
            if (Login())
            {
                string classBody = "public class Messages {\n"
                      + "public string SayHello() {\n"
                      + " return 'Hello';\n" + "}\n"
                      + "}";

                // create a new ApexClass object and set the body 
                sfdc.tooling.ApexClass apexClass = new sfdc.tooling.ApexClass();
                apexClass.Body = classBody;
                sfdc.tooling.ApexClass[] classes = new sfdc.tooling.ApexClass[]{ apexClass };

                // call create() to add the class
                sfdc.tooling.SaveResult[] saveResults = tooling.create(classes);//error here
                for (int i = 0; i < saveResults.Length; i++)
                {
                    if (saveResults[i].success)
                    {
                        Console.WriteLine("Successfully created Class: " +
                         saveResults[i].id);
                    }
                    else
                    {
                        Console.WriteLine("Error: could not create Class ");
                        Console.WriteLine("   The error reported was: " +
                        saveResults[i].errors[0].message + "\n");
                    }
                }

                tooling.logout();
            }
        }

        private bool Login()
        {
            bool success = false;
            try
            {
                tooling = new sfdc.tooling.SforceServiceService();
                partner = new sfdc.partner.SforceService();

                sfdc.partner.LoginResult lr;

                lr = partner.login(username, password + secretkey);
                success = true;

                string authEndPoint = tooling.Url;
                tooling.Url = lr.serverUrl;
                partner.Url = lr.serverUrl;

                tooling.SessionHeaderValue = new sfdc.tooling.SessionHeader();
                tooling.SessionHeaderValue.sessionId = lr.sessionId;
            }
            catch( SoapException e)
            {
                MessageBox.Show("Login failed: " + e.Message);
                //success = false;
            }

            return success;
        }

Thanks in advance.
I have this code (C#, .NET 4.5), which is pretty much the Salesforce sample: https://www.salesforce.com/developer/docs/api/Content/sforce_api_calls_queryall.htm
 
service.QueryOptionsValue = new QueryOptions();
service.QueryOptionsValue.batchSize = 500;
service.QueryOptionsValue.batchSizeSpecified = true;

QueryResult qr = service.queryAll(selectString);
The service variable is an SforceService object with Enterprise API version 33.0, and every time I run it, no matter what object I query, I always get 200 rows back and not 500.

Is there some setting you have to set elsewhere so it won't ignore the batch size?  Or is this just wrong?
We're going to be turning on delegated authentication soon, but this seems like it will create a problem. Namely, that users will be forced (by the power of us hub) to log in through the native Salesforce login page, but that won't work once we turn on delegated authentication. It will always give them the error that our sso service is down.  So, they'll have to navigate back to our login page, login, then go back to the power of us hub page to log in. Seems cumbersome.

Anyone solve this?  Does this make sense?
Ok, so we have an External Id field that's sets to unique case-insensitive, yet we have about 200 records with the same value. And it's either blank or null values repeated between records.  What gives? Is this expected behavior? My searches have turned up nothing on this.  Is this really, unique except...?
I've been trying to use the tooling api with no luck.  After I found this post (https://success.salesforce.com/issues_view?id=a1p30000000T2GcAAK ) I tried the work around, but it's not working for me.  I get "No operation available for request {urn:tooling.soap.sforce.com}create" on the code below.  Anyone know whta's wrong?

I'm using VS2013 Pro with C#.

here's my code:
sfdc.tooling.SforceServiceService tooling;
        sfdc.partner.SforceService partner;
        private void Form1_Load(object sender, EventArgs e)
        {
            if (Login())
            {
                string classBody = "public class Messages {\n"
                      + "public string SayHello() {\n"
                      + " return 'Hello';\n" + "}\n"
                      + "}";

                // create a new ApexClass object and set the body 
                sfdc.tooling.ApexClass apexClass = new sfdc.tooling.ApexClass();
                apexClass.Body = classBody;
                sfdc.tooling.ApexClass[] classes = new sfdc.tooling.ApexClass[]{ apexClass };

                // call create() to add the class
                sfdc.tooling.SaveResult[] saveResults = tooling.create(classes);//error here
                for (int i = 0; i < saveResults.Length; i++)
                {
                    if (saveResults[i].success)
                    {
                        Console.WriteLine("Successfully created Class: " +
                         saveResults[i].id);
                    }
                    else
                    {
                        Console.WriteLine("Error: could not create Class ");
                        Console.WriteLine("   The error reported was: " +
                        saveResults[i].errors[0].message + "\n");
                    }
                }

                tooling.logout();
            }
        }

        private bool Login()
        {
            bool success = false;
            try
            {
                tooling = new sfdc.tooling.SforceServiceService();
                partner = new sfdc.partner.SforceService();

                sfdc.partner.LoginResult lr;

                lr = partner.login(username, password + secretkey);
                success = true;

                string authEndPoint = tooling.Url;
                tooling.Url = lr.serverUrl;
                partner.Url = lr.serverUrl;

                tooling.SessionHeaderValue = new sfdc.tooling.SessionHeader();
                tooling.SessionHeaderValue.sessionId = lr.sessionId;
            }
            catch( SoapException e)
            {
                MessageBox.Show("Login failed: " + e.Message);
                //success = false;
            }

            return success;
        }

Thanks in advance.