-
ChatterFeed
-
4Best Answers
-
0Likes Received
-
3Likes Given
-
8Questions
-
82Replies
VF page to replace standard record type selection page
I have two record types for the standard Quote object. Rather than having the user use the standard record type selection page when they click "New Quote", I want them redirected to a VF page. On this VF page there will be two buttons - a button called "Proposal" to create a Quote with record type A, and one called "Insertion Order" to create a Quote with record type B.
I've tried reading the previous posts about this, but most are from a few years ago and don't seem to offer working solutions.
I've created a page and controller extension, but it is only working if I hardcode in the Opportunity ID. Is there going to be any way for me to get this Opp ID programmatically? Thank you!
VF Page
<apex:page standardController="Quote" extensions="NewMediaPlanExtension" recordSetVar="quotes">
<apex:form >
<p style="font-size:25px"> What type of Media Plan are you creating?</p>
<br/>
<apex:commandButton action="{!newProposal}" value="Proposal"/>
</apex:form>
</apex:page>
Controller
public with sharing class NewMediaPlanExtension {
public ApexPages.StandardSetController sController{get;set;}
public NewMediaPlanExtension(ApexPages.StandardSetController controller){
sController = controller;
}
public PageReference newProposal(){
String prefix = Quote.SObjectType.getDescribe().getKeyPrefix();
String param = 'oppid=006S00000070yVM&RecordType=012S00000004fib';
return new PageReference('/'+prefix+'/e?noovverride=1&' + param);
}
}
- mgodsey
- March 10, 2014
- Like
- 0
- Continue reading or reply
Assign by value instead of reference
I would like to know if there is a way to make assignment by value instead of reference.
For example, if I do
acct1.myField=5;
acct2.myField = acct1.myField;
acct1.myField=10;
If I do that, acct2.myField will be 10 in the end...WHat can I do to have acct2.myField keep the 5 vale?
Thanks!
- m b
- February 21, 2014
- Like
- 0
- Continue reading or reply
Help with 1st trigger test
It appears that this test doesn't cause the trigger to fire. Please help.
Trigger
trigger CaptureLevel1Owner on Case (before update) {
for(Case c: Trigger.new) {
String caseLevel2 = 'Level 2';
if (Trigger.isUpdate) {
if (c.Level__c == caseLevel2) {
if (c.Level_1_Owner__c == null)
c.Level_1_Owner__c = c.Level_1_Case_Owner_Id__c;
}
}
}
}
Test Class
@isTest
private class TestCaptureLevel1Owner {
static testMethod void testLevelTrigger() {
Case[] myCase = new Case[] {
new Case(Subject = 'Trigger Test', Status = '10-Working',
Level__c = 'Level 1', Level_1_Owner__c = null,
OwnerId = '00580000001Usii', Level_1_Case_Owner_Id__c = '00580000001Usii' ) } ;
insert myCase;
System.assert(myCase[0].Level_1_Owner__c == null);
System.assert(myCase[0].Level__c == 'Level 1');
System.assert(myCase[0].OwnerId == '00580000001Usii');
myCase[0].Level__c = 'Level 2';
// Verify that conditions are set so that trigger will fire
System.assert(myCase[0].Level_1_Owner__c == null);
System.assert(myCase[0].Level__c == 'Level 2');
// and that the Level 1 Owner ID is not empty so there is something for the trigger to load
System.assert(myCase[0].Level_1_Case_Owner_Id__c != null);
update myCase;
// This should fail since the trigger should have loaded Level 1 Owner,
// but it doesn't which implies that the trigger isn't firing
System.assert(myCase[0].Level_1_Owner__c == null);
// System.assertEquals(c.Level_1_Owner__c,c.Level_1_Case_Owner_Id__c);
// System.assert(c.Level_1_Owner__c == c.Level_1_Case_Owner_Id__c);
}
}
- myancey
- November 25, 2010
- Like
- 0
- Continue reading or reply
Highlights Panel buttons in Lightning show up on the left side
Anyone seen this before? The buttons (part of the standard Highlights Panel component) show up on the left side of the screen so they covered the Lead's name.
This is a record page based on a custom template. I can't really see there's any option for the component or the template.
- Here-n-now
- April 27, 2018
- Like
- 0
- Continue reading or reply
Refresh lightning:listView by code?
I tried e.force:refreshView but that didn't seem to work.
- Here-n-now
- February 01, 2018
- Like
- 0
- Continue reading or reply
How do I clear the Tests tab in the Dev Console?
For some reason in the Developer Console the Tests tab seems to stop displaying new test results after 4 runs. Anyone else noticed the problem? I'm wondering if there's a menu entry somewhere that lets me to clear the tab, but not finding any. It'd be handy not just for when it's stuck, but also when my result list grows too long. Any suggestion is appreciated.
- Here-n-now
- August 09, 2013
- Like
- 0
- Continue reading or reply
Anyone noticed Developer Console out of whack in Chrome?
Couldn't use it in Chrome (25.0.1364.152)... once I click a log, the screen blanks out on all the sections. Tried 2 orgs. There's no problem if I run it in Firefox 19.0.2.
- Here-n-now
- March 13, 2013
- Like
- 0
- Continue reading or reply
Unknown entity:criteriaBasedRules
I was trying to migrate a criteria based sharing rule for Case with Force.com Migration Tool. Here's the part in package.xml:
<types> <members>Share_to_BIT</members> <name>criteriaBasedRules</name> </types>
The tool complains about it:
[sf:retrieve] package.xml - Unknown entity:criteriaBasedRules
Anyone has an idea what I'm missing here? The Ant tool I used is version 25.
- Here-n-now
- August 01, 2012
- Like
- 0
- Continue reading or reply
How do you deploy a custom list button?
I have a custom list button that invokes a VF page. This bascially allows user to start something from an object's Activity History related list. I wonder how I can deploy it properly. There isn't anything to select for List Buttons in either IDE or SFMT tools. I don't want to deploy the whole Task object. I tried just deploying the layout using the button. The button did seem to cross over, but its URL all screwed up. I did see "Buttons and Links" in Change Set, but that's a less preferrable approach since it's a beta feature and less automatable. Any suggestions?
- Here-n-now
- November 22, 2010
- Like
- 0
- Continue reading or reply
Is it possible to retrieve/deploy a single workflow rule by Force.com Migration Tool?
I can do it readily on an object level - say everything workflow on Opportunity, but I can't seem to figure out how to do a single workflow rule (or field update, etc.). I tried this syntax in package.xml but it kept coming back with "not found" (verified name already).
<types>
<members>Opportunity.Create external ID</members>
<name>Workflow</name>
</types>
Just for reference, the same thing for every workflow item in Opportunity is simply
<types>
<members>Opportunity</members>
<name>Workflow</name>
</types>
And that worked fine.
I assume there's a way to do it. Change Set can do it, why wouldn't Ant?
- Here-n-now
- October 22, 2010
- Like
- 0
- Continue reading or reply
Deploy added values to a standard picklist on a standard object ... by IDE?
Basically I just need to add a few values to Type in Opportunity. I'm not seeing the option to retrieve standard fields on standard objects when creating a project in Eclipse. It only allows selecting custom fields. Is that doable in IDE? I could retrieve it by the standalone Ant tool.
- Here-n-now
- October 13, 2010
- Like
- 0
- Continue reading or reply
MyDomain - what does it affect?
- Nico Wrenn
- February 01, 2018
- Like
- 0
- Continue reading or reply
Refresh lightning:listView by code?
I tried e.force:refreshView but that didn't seem to work.
- Here-n-now
- February 01, 2018
- Like
- 0
- Continue reading or reply
Anyone has experience switching to Lightening Experience?
1. Is it a per-user switch?
2. They mentioned it was reversible, does anyone know how to reverse it if I don't like the new interface?
Thanks
- Dali Ma
- February 01, 2018
- Like
- 0
- Continue reading or reply
OMNI Channel - Trigger & control the owner change
We have just started exploring the option of using OMNI Channel for our service cloud CSR user. I have turned on omni channel settings in my Dev org. I have set up the routing and service channel configurations for omni channel for a custom object. In our org, for contacts we have custom sharing settings (On contact object, we have a restricted flag, if a contact is restricted, then only certain roles can see that contact). On the custom object record, we have a lookup to contact, with OMNI Channel when we assign the custom object record to a Queue, if that custom object record's contact is restricted then that Queue user is not supposed to accept that custom object record.
Question:
When the user clicks "Accept" in OMNI Channel, we wrote a trigger on the custom object record, to control the change of owner, however, OMNI Channel Agent's accept does not fire the trigger on the custom object for which the owner is getting changed.
I would like to undestand, why the trigger on the custom object record does not fire, when the owner is changed from Queue to a User, when the User clicks "Accept" through OMNI Channel.
Is there any way to write trigger on Agentwork object? Please advice..
- hemanth.bak1.3960095498200388E12
- June 29, 2016
- Like
- 0
- Continue reading or reply
Auto generate unique string ID from record name
I'm looking for the best way generate a unique ID string from a record name.
Example:
Account Name: Universal Containers
Account Unique ID: UNI
UNI should be auto-populated, and has to be unique. If UNI is already associated with another record, then it should be UNV/UNC/UNL etc.
This ID only needs to be unique per territory / team. eg., UNI belonging to one territory, say the UK, is still unique from UNI belonging to the US. In this case I can't use the "Unique" checkbox in the formula field. I can probably overcome that by creating another formula field that copies the country code and the unique ID to check for duplicates.
When checking for duplicates, ideally it would follow this logic -
Account Name: Universal Containers
Country on User (Account Owner): UK
The trigger will populate "UKUNI" using
String ownerCountry = {!User.Country}; String accountName = {!Account.Name}; String UID = ownerCountry.substring(0,2) + accountName.substring(0,3);
Now this needs to be checked for being unique, and insert if it is. This is where I'm lost - if the ID is already taken, it should give me the next possible combo, letter 1,2,4 (UNV) or 1,2,5 (UNE) or 1,3,4 and so on.
Once I have this value, I can copy just the 3 letter code without the country code onto another field. This field will also be user editable, so in a sense, the system generated unique ID is a suggestion which the user can accept or override.
What would be the best approach to check for duplicates and generate the unique ID?
Thanks for you help!
- Quicksilvr
- September 09, 2015
- Like
- 0
- Continue reading or reply
SF Labs Mass Lead Converter Error
ConvertLead failed. First exception on row 0; first error: INVALID_STATUS, invalid convertedStatus: Qualified: [Status]
All of the Leads I'm trying to convert contain the Lead Status = "Credentialed" which I added as a "Converted" Lead Status Picklist value . . . so in theory it should work, right? "Qualified" is also a converted status value.
Thanks for your help!
- Brian Boyle
- June 09, 2015
- Like
- 1
- Continue reading or reply
Custom Email Button on Lead page.
location.replace('/email/author/emailauthor.jsp?retURL=/{!Lead.Id}&p3_lkid={!Lead.Email}&rtype=00Q&p2_lkid={!Lead.Id}&template_id=00XA0000000RfyB&p5=&save=1');
Error:-
The value of the "p3_lkid" parameter contains a character that is not allowed or the value exceeds the maximum allowed length. Remove the character from the parameter value or reduce the value length and resubmit. If the error still persists, report it to our Customer Support team. Provide the URL of the page you were requesting as well as any other related information.
- Abdul Razzaq
- April 05, 2015
- Like
- 0
- Continue reading or reply
SOAP callouts on behalf of Community users?
We have an external SOAP web service. We have several APEX classes that call that service, and have had this in place for a couple of years. We use the standard WebServiceCallout structure to make those calls, and it works for all standard users; these classes and associated VF pages are part of our managed package. Essentially, the SF admin drops our VF page on an Opportunity page layout, and the VF page makes the callout to the web service. We have a new client that uses Communities, and wants to put our VF page on the Opportunity page layout for their Community Partners. However, when they do this, the callout is never made. There are no logs in the debug log, and we have checked all of the permissions we can think of. The callout works for the standard users, but not partners; I've checked, and they're set to call out to the same URL. Does anybody have any suggestions, either as to how we could troubleshoot this, or what the problem might be?
Thanks, Jim
- Jim F.ax281
- March 16, 2015
- Like
- 0
- Continue reading or reply
Custom Login Link (Sub domain link)
To access salesfore we use https://login.salesforce.com link. I want to customize my like for my company.
I would like to use either one link mentioned below
https://SamsungNetworkSupport.salesforce.com or https://SamsungNetworkSupport.my.salesforce.com
Please provide direction in order to achive above result.
Prakrut Mehta
- Prakrut Mehta
- March 10, 2015
- Like
- 1
- Continue reading or reply
Sales Summary - Apex CPU Time Limit Exceed
I need to make my sales summary code more efficient. Once we hit 9,000 trades on a single Account, the system hits the CPU Limit governor limit, even in a batch job. Anybody have any ideas on the code below? Perhaps moving each calculation in the For loop under each corresponding map? I'm not sure the best way to change this code, but any help would be greatly appreciated.
Debug log shows errors at random at lines 73, 79, or 92 in the Class and every time on line 4 in the trigger.
CPU Time varies on the number of trades inserted at a time, but even at 1 trade I can get up to 25000 out of 10000 (more than double).
Class:
public class Account_RollupTrades { public Static Account_Setting__c setting = Account_Setting__c.getInstance(); public Static boolean inprog = false; public static void execute (Set<Id> accountIds, List<Account> accountsList) { Map<Id, Account> accounts = new Map<Id, Account> (AccountsList); system.debug ('execute'); if(setting.Disable_RollupTrades__c != true) { //Map<Id, Account> accounts = new Map<Id, Account>(); for(Id accountId:accountIds) { system.debug(accountid); accounts.put(accountId, new Account( Id=accountId, /**YTD_NIOR_I_Sales__c = 0, YTD_NIOR_I_Shares__c = 0, QTD_NIOR_I_Sales__c = 0, QTD_NIOR_I_Shares__c = 0, MTD_NIOR_I_Sales__c = 0, MTD_NIOR_I_Shares__c = 0, PY_NIOR_I_Sales__c = 0, PY_NIOR_I_Shares__c = 0, Total_NIOR_I_Sales__c = 0, Total_NIOR_I_Shares__c = 0, YTD_NS_Income_Sales__c = 0, YTD_NS_Income_Shares__c = 0, QTD_NS_Income_Sales__c = 0, QTD_NS_Income_Shares__c = 0, MTD_NS_Income_Sales__c = 0, MTD_NS_Income_Shares__c = 0, PY_NS_Income_Sales__c = 0, PY_NS_Income_Shares__c = 0, Total_NS_Income_Sales__c = 0, Total_NS_Income_Shares__c = 0,**/ Total_NS_HI_Sales__c = 0, Total_NS_HI_Shares__c = 0, YTD_NS_HI_Sales__c = 0, YTD_NS_HI_Shares__c = 0, QTD_NS_HI_Sales__c = 0, QTD_NS_HI_Shares__c = 0, MTD_NS_HI_Sales__c = 0, MTD_NS_HI_Shares__c = 0, PY_NS_HI_Sales__c = 0, PY_NS_HI_Shares__c = 0, Total_NS_Income_II_Sales__c = 0, Total_NS_Income_II_Shares__c = 0, YTD_NS_Income_II_Sales__c = 0, YTD_NS_Income_II_Shares__c = 0, QTD_NS_Income_II_Sales__c = 0, QTD_NS_Income_II_Shares__c = 0, MTD_NS_Income_II_Sales__c = 0, MTD_NS_Income_II_Shares__c = 0, PY_NS_Income_II_Sales__c = 0, PY_NS_Income_II_Shares__c = 0, Rollup_Trades__c = DateTime.now() ) ); } Map<String, SObjectField[]> ytd = new map<string, sobjectfield[]> { //'3910' => new sobjectfield[] { account.YTD_NIOR_I_Sales__c , account.YTD_NIOR_I_Shares__c}, //'3911' => new sobjectfield[] { account.YTD_NS_Income_Sales__c , account.YTD_NS_Income_Shares__c }, '3912' => new sobjectfield[] { account.YTD_NS_HI_Sales__c , account.YTD_NS_HI_Shares__c }, '3915' => new sobjectfield[] { account.YTD_NS_Income_II_Sales__c , account.YTD_NS_Income_II_Shares__c } }, qtd = new map<string, sobjectfield[]> { //'3910' => new sobjectfield[] { account.QTD_NIOR_I_Sales__c , account.QTD_NIOR_I_Shares__c}, //'3911' => new sobjectfield[] { account.QTD_NS_Income_Sales__c , account.QTD_NS_Income_Shares__c }, '3912' => new sobjectfield[] { account.QTD_NS_HI_Sales__c , account.QTD_NS_HI_Shares__c }, '3915' => new sobjectfield[] { account.QTD_NS_Income_II_Sales__c , account.QTD_NS_Income_II_Shares__c } }, mtd = new map<string, sobjectfield[]> { //'3910' => new sobjectfield[] { account.MTD_NIOR_I_Sales__c , account.MTD_NIOR_I_Shares__c}, //'3911' => new sobjectfield[] { account.MTD_NS_Income_Sales__c , account.MTD_NS_Income_Shares__c }, '3912' => new sobjectfield[] { account.MTD_NS_HI_Sales__c , account.MTD_NS_HI_Shares__c }, '3915' => new sobjectfield[] { account.MTD_NS_Income_II_Sales__c , account.MTD_NS_Income_II_Shares__c } }, py = new map<string, sobjectfield[]> { //'3910' => new sobjectfield[] { account.PY_NIOR_I_Sales__c , account.PY_NIOR_I_Shares__c}, //'3911' => new sobjectfield[] { account.PY_NS_Income_Sales__c , account.PY_NS_Income_Shares__c }, '3912' => new sobjectfield[] { account.PY_NS_HI_Sales__c , account.PY_NS_HI_Shares__c }, '3915' => new sobjectfield[] { account.PY_NS_Income_II_Sales__c , account.PY_NS_Income_II_Shares__c } }, total = new map<string, sobjectfield[]> { //'3910' => new sobjectfield[] { account.Total_NIOR_I_Sales__c , account.Total_NIOR_I_Shares__c}, //'3911' => new sobjectfield[] { account.Total_NS_Income_Sales__c , account.Total_NS_Income_Shares__c }, '3912' => new sobjectfield[] { account.Total_NS_HI_Sales__c , account.Total_NS_HI_Shares__c }, '3915' => new sobjectfield[] { account.Total_NS_Income_II_Sales__c , account.Total_NS_Income_II_Shares__c } }; // We make the select in a "for" so instead of selecting to many records at once hitting the heap size limit the for it will take only 200 records to work with at each iteration. for(Trades__c[] tradesList : [select Dollar_Amount_of_the_transaction__c, Fund_Number__c, Number_of_Shares_of_the_transaction__c, Resolved_Firm_Trading_ID__c, Resolved_Firm_Trading_IDs__c, Trade_Date__c from Trades__c where Resolved_Firm_Trading_ID__c in :accountIds and Fund_Number__c in (/**'3910', '3911',**/ '3912', '3915') and Dollar_Amount_of_the_transaction__c != null and Number_of_Shares_of_the_transaction__c != null and Trade_Date__c != null and Dollar_Amount_of_the_transaction__c >= 0 and Number_of_Shares_of_the_transaction__c >= 0 FOR UPDATE]){ for(trades__c trade: tradesList) { if(date.today().year() == trade.trade_date__c.year()) { accounts.get(trade.Resolved_Firm_Trading_ID__c).put(ytd.get(trade.fund_number__c)[0], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(ytd.get(trade.fund_number__c)[0]))+trade.Dollar_Amount_of_The_Transaction__c); accounts.get(trade.Resolved_Firm_Trading_ID__c).put(ytd.get(trade.fund_number__c)[1], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(ytd.get(trade.fund_number__c)[1]))+trade.Number_of_Shares_of_the_transaction__c); //system.debug(ytd); //system.debug(LoggingLevel.DEBUG, + Limits.getCpuTime() + '/' + Limits.getLimitCpuTime()); //( (date.ValueOf(date.today().month()).divide(3, 0) == date.ValueOf(trade.trade_date__c.month()).divide(3, 0)) ) if((((date.today().month() - 1) / 3) + 1) == (((trade.Trade_Date__c.month() - 1) / 3) + 1)) { accounts.get(trade.Resolved_Firm_Trading_ID__c).put(qtd.get(trade.fund_number__c)[0], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(qtd.get(trade.fund_number__c)[0]))+trade.Dollar_Amount_of_The_Transaction__c); accounts.get(trade.Resolved_Firm_Trading_ID__c).put(qtd.get(trade.fund_number__c)[1], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(qtd.get(trade.fund_number__c)[1]))+trade.Number_of_Shares_of_the_transaction__c); //system.debug(qtd); //system.debug(LoggingLevel.DEBUG, + Limits.getCpuTime() + '/' + Limits.getLimitCpuTime()); if(date.today().month()==trade.trade_date__c.month()) { accounts.get(trade.Resolved_Firm_Trading_ID__c).put(mtd.get(trade.fund_number__c)[0], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(mtd.get(trade.fund_number__c)[0]))+trade.Dollar_Amount_of_The_Transaction__c); accounts.get(trade.Resolved_Firm_Trading_ID__c).put(mtd.get(trade.fund_number__c)[1], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(mtd.get(trade.fund_number__c)[1]))+trade.Number_of_Shares_of_the_transaction__c); //system.debug(mtd); //system.debug(LoggingLevel.DEBUG, + Limits.getCpuTime() + '/' + Limits.getLimitCpuTime()); } } } else if(date.today().year()-1==trade.trade_date__c.year()) { accounts.get(trade.Resolved_Firm_Trading_ID__c).put(py.get(trade.fund_number__c)[0], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(py.get(trade.fund_number__c)[0]))+trade.Dollar_Amount_of_The_Transaction__c); accounts.get(trade.Resolved_Firm_Trading_ID__c).put(py.get(trade.fund_number__c)[1], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(py.get(trade.fund_number__c)[1]))+trade.Number_of_Shares_of_the_transaction__c); //system.debug(py); //system.debug(LoggingLevel.DEBUG, + Limits.getCpuTime() + '/' + Limits.getLimitCpuTime()); } accounts.get(trade.Resolved_Firm_Trading_ID__c).put(total.get(trade.fund_number__c)[0], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(total.get(trade.fund_number__c)[0]))+trade.Dollar_Amount_of_The_Transaction__c); accounts.get(trade.Resolved_Firm_Trading_ID__c).put(total.get(trade.fund_number__c)[1], ((Decimal)accounts.get(trade.Resolved_Firm_Trading_ID__c).get(total.get(trade.fund_number__c)[1]))+trade.Number_of_Shares_of_the_transaction__c); //system.debug(total); //system.debug(LoggingLevel.DEBUG, + Limits.getCpuTime() + '/' + Limits.getLimitCpuTime()); } } } inprog = true; update accounts.values(); inprog = false; } }Trigger:
trigger Account_RollupTrades on Account (after update) { if(Account_RollupTrades.inprog == false) { //set<ID> sID = new set<ID> (trigger.newMap.keySet()); Account_RollupTrades.execute(trigger.newMap.keySet(), trigger.new); } }
- SeanCeno
- March 04, 2015
- Like
- 1
- Continue reading or reply
FYI- Beware of deploying batch job changes, while they are running
We found out today a potential problem this raises:
We added a new field to a batch process. Post deployment, SFDC threw an 'SObject row was retrieved via SOQL without querying the requested field' error.
It seems that as the batch job was running at the same time as the code was deployed, a data subset has been queried using the old code, while the processing batch used the new code
luckily for us we reprocess failed records automatically, so no real issue , but it's something worth considering when releasing batch job changes
- Guy Keshet
- January 21, 2015
- Like
- 4
- Continue reading or reply
Tinder type "swipe" interface using Salesforce as database
- MendyR
- May 19, 2017
- Like
- 1
- Continue reading or reply
FYI- Beware of deploying batch job changes, while they are running
We found out today a potential problem this raises:
We added a new field to a batch process. Post deployment, SFDC threw an 'SObject row was retrieved via SOQL without querying the requested field' error.
It seems that as the batch job was running at the same time as the code was deployed, a data subset has been queried using the old code, while the processing batch used the new code
luckily for us we reprocess failed records automatically, so no real issue , but it's something worth considering when releasing batch job changes
- Guy Keshet
- January 21, 2015
- Like
- 4
- Continue reading or reply
Show Some Love
As many of you have discovered, our developer community is awesome. The wealth of knowledge here is phenomenal. This is an all volunteer community and people who take the time to help and post answers do so totally on their own initiative. With that said when someone provides the right answer to your question please take the time to mark their answer as the accepted solution. Also give them a kudos if they've really gone the extra mile to help out. Show some love ;)
- ryanjupton
- July 03, 2013
- Like
- 19
- Continue reading or reply