• EmilyCobb
  • NEWBIE
  • 10 Points
  • Member since 2014
  • Salesforce Developer

  • Chatter
    Feed
  • 0
    Best Answers
  • 2
    Likes Received
  • 0
    Likes Given
  • 8
    Questions
  • 6
    Replies
I'm trying to replicate the Community login page that is in the SF community documentation. I have been able to edit the branding colors to create the black box and added CSS for transparency. The only issue is that it also makes the elements on the box transparent as well (logo/email/pw/login button). I've tried the following CSS but it still renders in the screen shot below. Any other suggestions? Thanks!

.inputContainer
{
    opacity: 1;
    position:relative;
    z-index: 10;
    
}

.communityLogo
{
    opacity: 1;
    position:relative;
    z-index: 10;
}

User-added imageUser-added image
I have a table of date ranges split out by day and month, and I need to determine if a user provided date falls within the range. 
User-added image

I have no years in the table. I was using this logic:
if(qRec.Expected_Start_Date__c >= Date.newInstance(qRec.Expected_Start_Date__c.year(), Integer.valueOf(soqlResults.Start_Month__c), Integer.valueOf(soqlResults.Start_Day__c)) && 
                    qRec.Expected_Start_Date__c <= Date.newInstance(qRec.Expected_Start_Date__c.year(), Integer.valueOf(soqlResults.End_Month__c), Integer.valueOf(solqResults.End_Day__c))){
Which works for the majority of the use cases, until it crosses a year and needs to fall into the 12/25 - 1/24 range. I'd prefer to take year out of the comparison all together, as it is not relevant. Any suggestions appreciated. 
Thanks
 
I have an interesting timeline of actions and I'm not sure how/if this will work.
I have a VF page that loads JavaScript. The JavaScript has an ID for a task record. From the JavaScript I am calling a class with the ID: 
 
global with sharing class JSControlsController
 {

  public static Id taskId;

   @RemoteAction
    global static void setTaskId(String inputTaskId)
    { 
    if (taskId != null && taskId != ''){
      taskId = inputTaskId;
     } 
    }


The catch is that I don't have a use for this ID until a user opens a Case and the Case Trigger (before or after insert) fires. This may or may not happen. If it does happen, I want to see if the taskID is set for this user. I can null out the taskID when the user's activity that I'm logging ends. But in the meantime, will this value stay set? Will having multiple users also performing the same actions overwrite the taskID value, or will each user's instance of the class remain? 
Thanks

 
I've created a wrapper class for my JSON structure (with json2apex). I have been able to successfully process results up to two levels deep, but this goes further:
public class Options {
		public String name;
		public String code;
		public List<Choices> choices;
	}

	public class Prices {
		public InitialPrice initialPrice;
		public MonthlyPrices monthlyPrices;
		public Integer quantity;
	}

	public class Errors {
		public String message;
		public String errorCode;
		public String path;
	}

	public class MonthlyPrices {
		public InitialPrice year1;
		public InitialPrice year2;
		public InitialPrice year3;
	}

	public class Products {
		public String categoryCode;
		public String code;
		public Boolean isDefault;
		public String name;
		public List<Options> options;
		public List<Prices> prices;
	}

	public class Choices {
		public String name;
		public String code;
	}

	public Integer statusCode;
	public Data data;
	public List<Errors> errors;

	public class Data {
		public String code;
		public String name;
		public List<Products> products;
	}


I'm trying to get at the data in Data.Products.Options.Choices and have not had any luck.
wrapperClassName wraperClassVar = wrapperClassName.parse(httpResponseVar.getBody());


I was expecting to be able to traverse wrapperClassVar like I normally do with one or two levels, but get compiler errors once I go to level 3 (Initial term of field expression must be a concrete SObject: List<wrapperClassName.Products>). Any suggestions?
Hi all,
I'm working on a Flow that has an Apex callout returning the following invocable variables:
public class serviceOutput {

        @InvocableVariable
        public List<String> productCode;
        @InvocableVariable
        public List<String> startingPrice;
        @InvocableVariable
        public String contextId;
        @InvocableVariable
        public String externalId;
    }

From the flow I've been able to do the callout and retrieve the results. I can display the results from productCode, contextId and externalId on the screen with a Loop / Assignment for the productCode list. My issue is that I need to display the corresponding startingPrice as well. Since this is not a fast lookup or sObject I'm having trouble determining how to display both the productCode and corresponding startingPrice with a loop / assignment variable. For example the results for the two lists will be:
productCode[ABC_123, ABC_456, ABC_678]
startingPrice[$40, $20, $30]

And I want the screen output to read 
Product ABC_123 starting price is $40
Product ABC_456 starting price is $20
Product ABC_678 starting price is $30

I've found some similar posts but they all use an sObject Fast Lookup where you can assign each field retireved to a variable and display it that way. I thought about adding a second loop / assignment but I need to process them in the same order.
Any help appreciated.
User-added image


User-added image
I'm having problems deploying a new case escalation rule with ant. This is the first time we are using Case escalation rules in this org. Per all the documentation (https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_escalationrules.htm) these should be deployable with ant / package.xml file. 
With my outbound change set, the Case escalation rule goes in an "escalationRules" folder and appears in the package.xml as: 
<types>
<members>Case.CaseEscalation</members>
<name>EscalationRule</name>
</types>
When I deploy this, I get the error message: 
All Component Failures: 
1.  package.xml -- Error: EscalationRule cannot be a component in a managed or unmanaged package. Remove EscalationRule from package.xml to deploy unpackaged components.

I've tried changing it to the plural to deploy the whole case object: 

<types>
<members>Case</members>
<name>EscalationRules</name>
</types>

And I get the error: 
All Component Failures:
1.  escalationRules/Case.escalationRules (Case.CaseEscalation) -- Error: Not in package.xml
 
Even though my folder structure and escalation rule matches that exactly. 
I've tried different combinations and can't seem to find any that deploy. Has anyone else run into this problem?

Thanks
I'm working with cloud flow designer and having some issues with the Apex class callout. I know I will need to return a List<List<CustomSobject>> from the invocable method in order to process the collection. But I am stuck overcomplicating the code in order to get what I would normally use a List for into the right format to return. I probably need an additional for loop but am not sure of the format. If I only return a List<CustomSobject> the Flow will not be able to process it as a collection returning multiple records. Below is my method, this current version compiles but the flow will throw an "List index out of bounds" error. Nor is it correct, as I want all the elements returned not just the first. Thanks in advance.
@InvocableMethod(label = 'Services Available')
public static List<List<Create_Product__c>> getServices(List<Address__c> addressInput){
    //created to hold return list of lists
    List<List<Create_Product__c>> wrapper = new List<List<Create_Product__c>>();

    //The data set to be returned
    List<Create_Product__c> productsAvailable = [SELECT Product_Code__c, Starting_Price__c FROM Create_Product__c];

    for (Create_Product__c products: productsAvailable ){
        List<Create_Product__c> responseList = new List<Create_Product__c>();

        responseList[0].Product_Code__c = products.Product_Code__c;
        responseList[0].Starting_Price__c = products.Starting_Price__c;

        wrapper.add(responseList);
    }

    return wrapper;
}

 
We're using the Customer Service (Napili) template on Spring '17 and the custom login page is not overriding the default. 

I have the following setting but going to the login page still displays the default page. I have followed all the direction in the documentation (https://help.salesforce.com/articleView?id=networks_customize_login_page.htm&type=0&language=en_US)

Is this a known issue? Is anyone else having this problem?
Thanks

User-added image
I have a table of date ranges split out by day and month, and I need to determine if a user provided date falls within the range. 
User-added image

I have no years in the table. I was using this logic:
if(qRec.Expected_Start_Date__c >= Date.newInstance(qRec.Expected_Start_Date__c.year(), Integer.valueOf(soqlResults.Start_Month__c), Integer.valueOf(soqlResults.Start_Day__c)) && 
                    qRec.Expected_Start_Date__c <= Date.newInstance(qRec.Expected_Start_Date__c.year(), Integer.valueOf(soqlResults.End_Month__c), Integer.valueOf(solqResults.End_Day__c))){
Which works for the majority of the use cases, until it crosses a year and needs to fall into the 12/25 - 1/24 range. I'd prefer to take year out of the comparison all together, as it is not relevant. Any suggestions appreciated. 
Thanks
 
I receive an error when trying to deploy Audience (new metadata type in API 44.0):
audience/Test.audience -- Error: Unable to save EnityField Contact.$Contact.Custom_field__c

The field on Contact exists and the user has access to the field. Any ideas?
I have an interesting timeline of actions and I'm not sure how/if this will work.
I have a VF page that loads JavaScript. The JavaScript has an ID for a task record. From the JavaScript I am calling a class with the ID: 
 
global with sharing class JSControlsController
 {

  public static Id taskId;

   @RemoteAction
    global static void setTaskId(String inputTaskId)
    { 
    if (taskId != null && taskId != ''){
      taskId = inputTaskId;
     } 
    }


The catch is that I don't have a use for this ID until a user opens a Case and the Case Trigger (before or after insert) fires. This may or may not happen. If it does happen, I want to see if the taskID is set for this user. I can null out the taskID when the user's activity that I'm logging ends. But in the meantime, will this value stay set? Will having multiple users also performing the same actions overwrite the taskID value, or will each user's instance of the class remain? 
Thanks

 
I'm having problems deploying a new case escalation rule with ant. This is the first time we are using Case escalation rules in this org. Per all the documentation (https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_escalationrules.htm) these should be deployable with ant / package.xml file. 
With my outbound change set, the Case escalation rule goes in an "escalationRules" folder and appears in the package.xml as: 
<types>
<members>Case.CaseEscalation</members>
<name>EscalationRule</name>
</types>
When I deploy this, I get the error message: 
All Component Failures: 
1.  package.xml -- Error: EscalationRule cannot be a component in a managed or unmanaged package. Remove EscalationRule from package.xml to deploy unpackaged components.

I've tried changing it to the plural to deploy the whole case object: 

<types>
<members>Case</members>
<name>EscalationRules</name>
</types>

And I get the error: 
All Component Failures:
1.  escalationRules/Case.escalationRules (Case.CaseEscalation) -- Error: Not in package.xml
 
Even though my folder structure and escalation rule matches that exactly. 
I've tried different combinations and can't seem to find any that deploy. Has anyone else run into this problem?

Thanks
I'm working with cloud flow designer and having some issues with the Apex class callout. I know I will need to return a List<List<CustomSobject>> from the invocable method in order to process the collection. But I am stuck overcomplicating the code in order to get what I would normally use a List for into the right format to return. I probably need an additional for loop but am not sure of the format. If I only return a List<CustomSobject> the Flow will not be able to process it as a collection returning multiple records. Below is my method, this current version compiles but the flow will throw an "List index out of bounds" error. Nor is it correct, as I want all the elements returned not just the first. Thanks in advance.
@InvocableMethod(label = 'Services Available')
public static List<List<Create_Product__c>> getServices(List<Address__c> addressInput){
    //created to hold return list of lists
    List<List<Create_Product__c>> wrapper = new List<List<Create_Product__c>>();

    //The data set to be returned
    List<Create_Product__c> productsAvailable = [SELECT Product_Code__c, Starting_Price__c FROM Create_Product__c];

    for (Create_Product__c products: productsAvailable ){
        List<Create_Product__c> responseList = new List<Create_Product__c>();

        responseList[0].Product_Code__c = products.Product_Code__c;
        responseList[0].Starting_Price__c = products.Starting_Price__c;

        wrapper.add(responseList);
    }

    return wrapper;
}

 
We're using the Customer Service (Napili) template on Spring '17 and the custom login page is not overriding the default. 

I have the following setting but going to the login page still displays the default page. I have followed all the direction in the documentation (https://help.salesforce.com/articleView?id=networks_customize_login_page.htm&type=0&language=en_US)

Is this a known issue? Is anyone else having this problem?
Thanks

User-added image