-
ChatterFeed
-
1Best Answers
-
0Likes Received
-
0Likes Given
-
22Questions
-
32Replies
Salesforce vs ACT!
Hi,
This may not be quite the best discussion board for my question, but I couldn't find a better one.
I am meeting with a customer who currently uses ACT 2011, regarding deployment of Salesforce.
Does anyone have material that compares the Salesforce with ACT?
Thank you in advance.
aqueller
- aqueller
- November 28, 2011
- Like
- 0
- Continue reading or reply
Deleting a record from within a trigger
I am looking for help on the following issue.
I have a trigger that is supposed to delete certain types of opportunities, identified
by a custom field PDS__Document_Type__c as a 'Sales Order'.
My code is as follows:
trigger DeleteSO on Opportunity(after update) { // Create a list of Opportunities, newOpps, to make it bulk fiendly List<Opportunity> newOpps = new List<Opportunity>(); for(Opportunity o : Trigger.new) { // If it is a sales order, delete it if(o.PDS__Document_Type__c == 'Sales Order') { delete o; } } update newOpps; }
When I run it, I get an error: DML statement cannot operate on trigger.new or trigger.old
Why do I get this error?
How can I fix it?
Thx,
aqueller
- aqueller
- October 25, 2011
- Like
- 0
- Continue reading or reply
Product Name from Opportunity Product List
I have an opportunity with a number of product line items.
I want to find the name of a product in a given line item (oldProdList[i] is an OpportunityLineItem).
I use the following query:
String ProdName = [SELECT Name FROM Product2 WHERE (id = :[SELECT Product2Id FROM PriceBookEntry WHERE ID = :oldProdList[i].PricebookEntryId].Id)];
I get the error: Illegal assignment from LIST<Product2> to String .
I have the following questions:
1. Name is defined as a string field in Product2. Why am I getting this error?
2. Is it the right query structure for obtaining the product name?
Thanks,
aqueller
- aqueller
- October 20, 2011
- Like
- 0
- Continue reading or reply
Test Coverage of date-based code
I am setting an opportunity closing date as being 90 days from today ( date.today( ) ).
At a later point I create a string with the month name of the closing date, using the following code:
if (NewOpp.CloseDate.month() == 1) {monthName = 'Jan';} 174 // else if (NewOpp.CloseDate.month() == 2) {monthName = 'Feb';} 175 // else if (NewOpp.CloseDate.month() == 3) {monthName = 'Mar';} 176 // else if (NewOpp.CloseDate.month() == 4) {monthName = 'Apr';} 177 // else if (NewOpp.CloseDate.month() == 5) {monthName = 'May';} 178 // else if (NewOpp.CloseDate.month() == 6) {monthName = 'Jun';} 179 // else if (NewOpp.CloseDate.month() == 7) {monthName = 'Jul';} 180 // else if (NewOpp.CloseDate.month() == 8) {monthName = 'Aug';} 181 // else if (NewOpp.CloseDate.month() == 9) {monthName = 'Sep';} 182 // else if (NewOpp.CloseDate.month() == 10) {monthName = 'Oct';} 183 // else if (NewOpp.CloseDate.month() == 11) {monthName = 'Nov';} 184 // else {monthName = 'Dec';}
The problem is that when I test the code it comes below 75% coverage,
given that we are in October and the close date of the next opportunity is in January.
How can I modify the test program to get full coverage? Is there a way to simulate
a system time for test purposes?
Thank you
- aqueller
- October 18, 2011
- Like
- 0
- Continue reading or reply
Pricebook2Id
I am looking for help.
I have written a test program for an Apex trigger. The program creates a test account and an opportunity
that is associated with it. The code is shown below:
// Create a test account for 'Corp Admin' Account testAccount = new Account ( Name = 'Test Account', Owner = [select username from user where username = 'Corp Admin'] ); insert testAccount; // Create a forecast opportunity Opportunity testOpp = new Opportunity ( AccountId = testAccount.ID, Name = 'testOpportunity' + date.today(), CloseDate = date.today() + 1, StageName = 'Contract signed; waiting for P.O', Type = 'Existing Business', Pricebook2Id = [select Id from Pricebook2 where name = 'Standard Price Book'], OwnerId = testAccount.OwnerId ); insert testOpp;
In the program, I want to set the appropriate Price Book, so that I can later enter line items from a specific price book.
The line:
Pricebook2Id = [select Id from Pricebook2 where name = 'Standard Price Book']
is used for this purpose.
When compiling, I get the error:
Invalid initial expression type for field Opportunity.Pricebook2Id, expecting: Id.
How would I get the Id for the price book?
In the same way, I am using the following, to enter a line item (OpportunityLineItem) for the opportunity:
PricebookEntryId = [select Id from Product2 where name = 'AC02'],
I get the same kind of error.
Thanks,
aqueller
- aqueller
- October 17, 2011
- Like
- 0
- Continue reading or reply
Avoiding recursive triggers
I need help with the following:
I have a trigger on a record update. The record is uploaded with the owner being 'admin'.
I want to change it to the true owner of the account:
trigger ChangeOwner on Opportunity(before update)
{
// Create a list of Opportunities, newOpps, to make it bulk fiendly
List<Opportunity> newOpps = new List<Opportunity>();
for(Opportunity o : Trigger.new)
{
if(o.ForecastCategoryName == 'Closed')
{
// This query retrieves the account associated with the Opportunity
Account myAcct = [select id, name, AccountNumber, owner from account where id = :o.AccountId];
// Change owner
o.OwnerId = myAcct.owner;
update o;
}
}
This code returns an (understandable) error that it contains illegal recursion.
How can I get around this problem and change a field just before the record is updated?
Thx,
aqueller
- aqueller
- October 10, 2011
- Like
- 0
- Continue reading or reply
Opportunity Products
I have an opportunity, ExOp that I receive through a query.
Opportunity ExOp = [SELECT name from opportunity
WHERE (AccountId = :o.AccountId and ForecastCategoryName !='Closed')
ORDER BY CloseDate ASC NULLS last LIMIT 1];
I am trying to access the list of product in it. (is it OpportunityLineItem?)
Specifically, I want to get to the 'Product2' and 'quantity' fields.
Can someone suggest code to access it?
- aqueller
- September 16, 2011
- Like
- 0
- Continue reading or reply
Forecast category
I have an administrator account.
I can't edit the opportunity category of opportunities that are not mine,
although I can change the owner to myself, at which point I can edit
the opportunity category.
Is there a configuration setting that will allow me to edit the category
without changing owners?
- aqueller
- September 12, 2011
- Like
- 0
- Continue reading or reply
Opportunities - P.O relationship
This question is related to a previous question that I have posted.
My customers would like to see a single opportunity, for which they may receive several partial P.Os.
For example:
- The opportunity is for 10 pens and 10 pencils
- A week later they receive a P.O for 10 pens. They would like to show this sale as actual revenue and the remaining 10 pencils are still shown in the forecast
- A week later they receive a P.O for the remaining pencils, at which point they close the opportunity
Is there a way to handle single opportunities with partial orders?
Thx
- aqueller
- September 08, 2011
- Like
- 0
- Continue reading or reply
Price Books
Hi,
I have created two price books and want to set the system up such that some users
see Price Book 1, others see Price Book 2 and a third group sees Price Books 1 & 2 (selectable)
How do I configure the system to do that?
Thx,
aqueller
- aqueller
- August 25, 2011
- Like
- 0
- Continue reading or reply
Permissions
Hi,
I have a problem with permissions and perhaps someone can help me.
I have two managers, MGR A and MGR B.
Sales A reports to MGR A (MGR A is defined as his manager, MGR A is the direct manager of Sales A in the role hierarchy as well as the forecast hierarchy)
Sales B reports to MGR B in the same way.
To allow the managers to override the quota of their subordinates, I have configured them 'modify all data'. The problem is that by doing so, now MGR A can see the forecast for Sales B and MGR B can see the forecast of Sales A.
How would I enable the managers to overided their subordinates, yet only see the forecast of their group?
Thx
- aqueller
- August 23, 2011
- Like
- 0
- Continue reading or reply
Apex Data Loader
Does the Apex Data Loader work on a developer sandbox?
- I am able to log into the production site, using its login, password and security token
but am unable to do so in the sandbox that we have created for this site.
Thx.
- aqueller
- August 18, 2011
- Like
- 0
- Continue reading or reply
Quotas
Hi,
I have an issue with seeing/editing another user's data.
1. I have 'edit quota' enabled in my profile
2. I am able to 'Manage Users'
3. The other users's profile shows that I am his manager
4. The other user has 'edit quota' enabled
5. In the forecasting hierarchy I show as being "above" the other user
6. Both of us have forecasting enabled.
7. Our site is configured for 'customizable forecasting'
I am able to see and modify my quota (from the user profile screen) but am unable
to see the 'Quotas' area in his profile.
Can someone tell me what is missing in the configuration?
Thx,
aqueller
- aqueller
- August 16, 2011
- Like
- 0
- Continue reading or reply
Appex Trigger
I am trying to write a trigger that will create a new opportunity when one is closed.
The code that I use is as follows:
trigger Recurring on Opportunity (after update) { if (Opportunity.StageName == 'Closed Won') { Opportunity newOpp = new Opportunity ( Account = 'TEST', StageName = 'Prospecting', Type = 'Existing Business'); insert newOpp; } }
I get two errors, one related to the IF statement and the other
related to setting the account.
Can someone suggest what are my mistakes and how I can correct them?
Thx
- aqueller
- August 08, 2011
- Like
- 0
- Continue reading or reply
Opportunities for recurring orders
I have an account, for which a contract was negotiated for a one-year period.
During this period, I expect to receive recurring orders, at approximately two months intervals.
Can you suggest what relationship should I create between the account/contract and opportunities,
so that I can show proper values in the sales pipeline?
1. Should I create individual opportunities for each expected P.O?
(advantage: shows correctly in pipeline. Disadvantage: n:1 relationship with contract)
2. Should I create a single opportunity? (benefit: 1:1 relationship with contract.
Disadvantage: how do I show it correctly in the pipeline?)
3. Another method?
- aqueller
- August 01, 2011
- Like
- 0
- Continue reading or reply
Custom buttons in tab view
I have created a custom object. The tab view (all records) list comes with three system assigned buttons:
- New $object
- Change owner
- Refresh.
I want to add another custom button for multi-record delete, as mass delete works only with standard objects.
When editing the page layout, it only allows modifying the displayed fields, but no custom buttons.
Where would I find the definition of the buttons that are being displayed?
Can I add a custom 'delete' button?
Thanks,
aqueller
- aqueller
- July 18, 2011
- Like
- 0
- Continue reading or reply
Literal value of formula fields
Hello,
I have a formula field that produces text.
When I export the object, it doesn't export formula fields.
I would like to export the literal value of the formula field (i.e.: if it produces 'ABCD',
this value should be exported in the *.CVS file).
Is there a way to do it?
Is there perhaps an administrative utility that converts the data to text?
Thanks,
aqueller
- aqueller
- July 15, 2011
- Like
- 0
- Continue reading or reply
Composite data types
I am trying to create a custom object which, similar to 'Contacts' has a composite field 'Name'
that consists of Salutation - First Name - Last Name.
The data type shown for the 'Name' field is 'Name'. When I try to create a name field in my custom object,
'Name' is not available as a data type.
Can someone tell me how do I:
1. Have the 'New custom field' page show the 'Name' data type
or alternatively:
2. Create custom data types which are composite, and allow to select them from
the 'New custom field' page
Thanks,
aqueller
- aqueller
- July 12, 2011
- Like
- 0
- Continue reading or reply
Customizing standard objects
I want to fully customize a standard object, such as Contacts: add delete fields and change their attributes.
How do I go about doing it?
- Do I need to duplicate the object? - if so, is there a way to clone it?
Thank you,
Abe Queller
- aqueller
- July 11, 2011
- Like
- 0
- Continue reading or reply
Forecasts tab
Hi,
I have a developer edition and want to practice creation and management of forecasts.
When I enter the 'Forecasts' tab, I see an introductory page with no links that allow me
any actions.
I have checked my profile, and the 'allow forecasting' box is checked.
I have also checked the configuration of the 'customize->forecast' page and can't see anything wrong.
Can someone tell me what additional setting/configuration do I need to have, so that I am allowed to
create and view my own forecasts?
Thank you.
- aqueller
- July 07, 2011
- Like
- 0
- Continue reading or reply
Salesforce vs ACT!
Hi,
This may not be quite the best discussion board for my question, but I couldn't find a better one.
I am meeting with a customer who currently uses ACT 2011, regarding deployment of Salesforce.
Does anyone have material that compares the Salesforce with ACT?
Thank you in advance.
aqueller
- aqueller
- November 28, 2011
- Like
- 0
- Continue reading or reply
Deleting a record from within a trigger
I am looking for help on the following issue.
I have a trigger that is supposed to delete certain types of opportunities, identified
by a custom field PDS__Document_Type__c as a 'Sales Order'.
My code is as follows:
trigger DeleteSO on Opportunity(after update) { // Create a list of Opportunities, newOpps, to make it bulk fiendly List<Opportunity> newOpps = new List<Opportunity>(); for(Opportunity o : Trigger.new) { // If it is a sales order, delete it if(o.PDS__Document_Type__c == 'Sales Order') { delete o; } } update newOpps; }
When I run it, I get an error: DML statement cannot operate on trigger.new or trigger.old
Why do I get this error?
How can I fix it?
Thx,
aqueller
- aqueller
- October 25, 2011
- Like
- 0
- Continue reading or reply
Product Name from Opportunity Product List
I have an opportunity with a number of product line items.
I want to find the name of a product in a given line item (oldProdList[i] is an OpportunityLineItem).
I use the following query:
String ProdName = [SELECT Name FROM Product2 WHERE (id = :[SELECT Product2Id FROM PriceBookEntry WHERE ID = :oldProdList[i].PricebookEntryId].Id)];
I get the error: Illegal assignment from LIST<Product2> to String .
I have the following questions:
1. Name is defined as a string field in Product2. Why am I getting this error?
2. Is it the right query structure for obtaining the product name?
Thanks,
aqueller
- aqueller
- October 20, 2011
- Like
- 0
- Continue reading or reply
Test Coverage of date-based code
I am setting an opportunity closing date as being 90 days from today ( date.today( ) ).
At a later point I create a string with the month name of the closing date, using the following code:
if (NewOpp.CloseDate.month() == 1) {monthName = 'Jan';} 174 // else if (NewOpp.CloseDate.month() == 2) {monthName = 'Feb';} 175 // else if (NewOpp.CloseDate.month() == 3) {monthName = 'Mar';} 176 // else if (NewOpp.CloseDate.month() == 4) {monthName = 'Apr';} 177 // else if (NewOpp.CloseDate.month() == 5) {monthName = 'May';} 178 // else if (NewOpp.CloseDate.month() == 6) {monthName = 'Jun';} 179 // else if (NewOpp.CloseDate.month() == 7) {monthName = 'Jul';} 180 // else if (NewOpp.CloseDate.month() == 8) {monthName = 'Aug';} 181 // else if (NewOpp.CloseDate.month() == 9) {monthName = 'Sep';} 182 // else if (NewOpp.CloseDate.month() == 10) {monthName = 'Oct';} 183 // else if (NewOpp.CloseDate.month() == 11) {monthName = 'Nov';} 184 // else {monthName = 'Dec';}
The problem is that when I test the code it comes below 75% coverage,
given that we are in October and the close date of the next opportunity is in January.
How can I modify the test program to get full coverage? Is there a way to simulate
a system time for test purposes?
Thank you
- aqueller
- October 18, 2011
- Like
- 0
- Continue reading or reply
Pricebook2Id
I am looking for help.
I have written a test program for an Apex trigger. The program creates a test account and an opportunity
that is associated with it. The code is shown below:
// Create a test account for 'Corp Admin' Account testAccount = new Account ( Name = 'Test Account', Owner = [select username from user where username = 'Corp Admin'] ); insert testAccount; // Create a forecast opportunity Opportunity testOpp = new Opportunity ( AccountId = testAccount.ID, Name = 'testOpportunity' + date.today(), CloseDate = date.today() + 1, StageName = 'Contract signed; waiting for P.O', Type = 'Existing Business', Pricebook2Id = [select Id from Pricebook2 where name = 'Standard Price Book'], OwnerId = testAccount.OwnerId ); insert testOpp;
In the program, I want to set the appropriate Price Book, so that I can later enter line items from a specific price book.
The line:
Pricebook2Id = [select Id from Pricebook2 where name = 'Standard Price Book']
is used for this purpose.
When compiling, I get the error:
Invalid initial expression type for field Opportunity.Pricebook2Id, expecting: Id.
How would I get the Id for the price book?
In the same way, I am using the following, to enter a line item (OpportunityLineItem) for the opportunity:
PricebookEntryId = [select Id from Product2 where name = 'AC02'],
I get the same kind of error.
Thanks,
aqueller
- aqueller
- October 17, 2011
- Like
- 0
- Continue reading or reply
Avoiding recursive triggers
I need help with the following:
I have a trigger on a record update. The record is uploaded with the owner being 'admin'.
I want to change it to the true owner of the account:
trigger ChangeOwner on Opportunity(before update)
{
// Create a list of Opportunities, newOpps, to make it bulk fiendly
List<Opportunity> newOpps = new List<Opportunity>();
for(Opportunity o : Trigger.new)
{
if(o.ForecastCategoryName == 'Closed')
{
// This query retrieves the account associated with the Opportunity
Account myAcct = [select id, name, AccountNumber, owner from account where id = :o.AccountId];
// Change owner
o.OwnerId = myAcct.owner;
update o;
}
}
This code returns an (understandable) error that it contains illegal recursion.
How can I get around this problem and change a field just before the record is updated?
Thx,
aqueller
- aqueller
- October 10, 2011
- Like
- 0
- Continue reading or reply
Opportunity Products
I have an opportunity, ExOp that I receive through a query.
Opportunity ExOp = [SELECT name from opportunity
WHERE (AccountId = :o.AccountId and ForecastCategoryName !='Closed')
ORDER BY CloseDate ASC NULLS last LIMIT 1];
I am trying to access the list of product in it. (is it OpportunityLineItem?)
Specifically, I want to get to the 'Product2' and 'quantity' fields.
Can someone suggest code to access it?
- aqueller
- September 16, 2011
- Like
- 0
- Continue reading or reply
Forecast category
I have an administrator account.
I can't edit the opportunity category of opportunities that are not mine,
although I can change the owner to myself, at which point I can edit
the opportunity category.
Is there a configuration setting that will allow me to edit the category
without changing owners?
- aqueller
- September 12, 2011
- Like
- 0
- Continue reading or reply
Price Books
Hi,
I have created two price books and want to set the system up such that some users
see Price Book 1, others see Price Book 2 and a third group sees Price Books 1 & 2 (selectable)
How do I configure the system to do that?
Thx,
aqueller
- aqueller
- August 25, 2011
- Like
- 0
- Continue reading or reply
Permissions
Hi,
I have a problem with permissions and perhaps someone can help me.
I have two managers, MGR A and MGR B.
Sales A reports to MGR A (MGR A is defined as his manager, MGR A is the direct manager of Sales A in the role hierarchy as well as the forecast hierarchy)
Sales B reports to MGR B in the same way.
To allow the managers to override the quota of their subordinates, I have configured them 'modify all data'. The problem is that by doing so, now MGR A can see the forecast for Sales B and MGR B can see the forecast of Sales A.
How would I enable the managers to overided their subordinates, yet only see the forecast of their group?
Thx
- aqueller
- August 23, 2011
- Like
- 0
- Continue reading or reply
Apex Data Loader
Does the Apex Data Loader work on a developer sandbox?
- I am able to log into the production site, using its login, password and security token
but am unable to do so in the sandbox that we have created for this site.
Thx.
- aqueller
- August 18, 2011
- Like
- 0
- Continue reading or reply
Quotas
Hi,
I have an issue with seeing/editing another user's data.
1. I have 'edit quota' enabled in my profile
2. I am able to 'Manage Users'
3. The other users's profile shows that I am his manager
4. The other user has 'edit quota' enabled
5. In the forecasting hierarchy I show as being "above" the other user
6. Both of us have forecasting enabled.
7. Our site is configured for 'customizable forecasting'
I am able to see and modify my quota (from the user profile screen) but am unable
to see the 'Quotas' area in his profile.
Can someone tell me what is missing in the configuration?
Thx,
aqueller
- aqueller
- August 16, 2011
- Like
- 0
- Continue reading or reply
Appex Trigger
I am trying to write a trigger that will create a new opportunity when one is closed.
The code that I use is as follows:
trigger Recurring on Opportunity (after update) { if (Opportunity.StageName == 'Closed Won') { Opportunity newOpp = new Opportunity ( Account = 'TEST', StageName = 'Prospecting', Type = 'Existing Business'); insert newOpp; } }
I get two errors, one related to the IF statement and the other
related to setting the account.
Can someone suggest what are my mistakes and how I can correct them?
Thx
- aqueller
- August 08, 2011
- Like
- 0
- Continue reading or reply