-
ChatterFeed
-
1Best Answers
-
0Likes Received
-
0Likes Given
-
29Questions
-
20Replies
Test Class not work
it's not work 2 line
hilight a line not work in the Trigger
setAccountNumber.add(myNewCon .Account_Number__c) ;
myNewCon.AccountID = Acc.id;
@isTest
private class TestUpdateAccountNameAndNumberinContact{
static testMethod void myUnitPopContact() {
Account Acc = new Account(Name = 'test',AccountNumber = '0000001');
insert Acc;
Account Acc2 = new Account(Name = 'test2',AccountNumber = '0000001');
insert Acc2;
Test.StartTest();
Contact Con = new Contact();
ApexPages.currentPage().getParameters().put('id',con.id);
Con.LastName = 'test2';
Con.AccountID = Acc.id;
Con.Account_Number__c = Acc.AccountNumber;
insert con;
try{
update con;
}catch(DMLException de){}
Contact Dup = new Contact();
Dup.LastName = 'test';
Dup.AccountID = Acc2.id;
Dup.Account_Number__c = Con.Account_Number__c ;
insert Dup;
try{
update Dup;
}catch(DMLException de){}
Test.StopTest();
}
}
trigger UpdateAccountNameAndNumberinContact on Contact (before Update){
//List<Account> Acc = new List<Account>();
Set<String> setAccountNumber = new Set<String>();
Set<String> setAccount = new Set<String>();
for(Contact Con : Trigger.new){
Map<Id,Contact> newConMap = Trigger.newMap;
Map<Id,Contact> oldConMap = Trigger.oldMap;
for(Id ConId:newConMap.keySet()){
Contact myNewCon = newConMap.get(ConId);
Contact myOldCon = oldConMap.get(ConId);
if(myNewCon.AccountID == myOldCon.AccountID && myNewCon.Account_Number__c <> myOldCon.Account_Number__c && myNewCon.Account_Number__c != null){
setAccountNumber.add(myNewCon .Account_Number__c) ;
}
else if(myNewCon.AccountID <> myOldCon.AccountID && myNewCon.Account_Number__c == myOldCon.Account_Number__c && myNewCon.AccountID != null){
setAccount.add(myNewCon .AccountID ) ;
}
}
}
Account Acc = new Account();
List<Account> lstAcc = [Select id,AccountNumber from Account Where AccountNumber in : setAccountNumber or id in : setAccount];
if(lstAcc.size()>0) {
Acc = lstAcc[0];
}
for(Contact Con : Trigger.new){
Map<Id,Contact> newConMap = Trigger.newMap;
Map<Id,Contact> oldConMap = Trigger.oldMap;
for(Id ConId:newConMap.keySet()){
Contact myNewCon = newConMap.get(ConId);
Contact myOldCon = oldConMap.get(ConId);
if(myNewCon.AccountID == myOldCon.AccountID && myNewCon.Account_Number__c <> myOldCon.Account_Number__c && myNewCon.Account_Number__c != null){
myNewCon.AccountID = Acc.id;
}
else if(myNewCon.AccountID <> myOldCon.AccountID && myNewCon.Account_Number__c == myOldCon.Account_Number__c && myNewCon.AccountID != null){
myNewCon.Account_Number__c = Acc.AccountNumber;
}
/*else if(myNewCon.AccountID <> myOldCon.AccountID && myNewCon.Account_Number__c <> myOldCon.Account_Number__c && myNewCon.AccountID != null && myNewCon.Account_Number__c != null){
myNewCon.AccountID.AddError('Mismatch Account Name and Account Number');
myNewCon.Account_Number__c.AddError('Mismatch Account Name and Account Number');
}*/
}
}
}
Thank you so much
-
- Kyo
- July 29, 2011
- Like
- 0
Update CodeCoverage in TestClass
Test Class is not full loop . it's problem 1 line in Testclass
Coverage is 85% now
trigger ChangeStatusinOBC on Out_Bound_Call_List__c (Before insert,Before Update) {
// You can change status equal Complete when RelatedList OB Contact status all Complete
set<ID> setOBLID = new set<ID>();
for(Out_Bound_Call_List__c OBL : Trigger.new){
setOBLID.Add(OBL.ID);
} // Add id for Query
List<OutBound_Contact__c> lstOBC = [Select id from OutBound_Contact__c where Out_Bound_Call_List__c in : setOBLID]; // Query OutBound Contact List
System.debug('Error SOQL');
for(Out_Bound_Call_List__c OBL : Trigger.new){
if((lstOBC.size() != OBL.Count_Complete__c) && lstOBC.size() != 0 && OBL.Status__c == 'Completed'){
Trigger.new[0].Status__c.AddError('Status in OutBound Contact all not equal to contacted');
}// Set Error in Field Status
}
}
a problem line :
if((lstOBC.size() != OBL.Count_Complete__c) && lstOBC.size() != 0 && OBL.Status__c == 'Completed'){
@isTest
private class TestChangeStatusinOBC {
static testMethod void myTest() {
Out_Bound_Call_List__c OBL = new Out_Bound_Call_List__c();
OBL.Name = 'Test';
insert OBL;
OutBound_Contact__c OBC = new OutBound_Contact__c();
OBC.Out_Bound_Call_List__c = OBL.id;
OBC.Status__c = 'Contacted';
insert OBC;
update OBC;
Out_Bound_Call_List__c OBL1 = new Out_Bound_Call_List__c();
OBL.Name = 'Test';
OBL.Status__c = 'Completed';
test.startTest();
Try{
insert OBL;
update OBL;
}
catch (Exception e) {
System.Debug('Status in OutBound Contact all not equal to contacted');
}
test.stopTest();
}
}
Thank you so much.
-
- Kyo
- July 28, 2011
- Like
- 0
Problem For Loop in Test Class not Work!
I'm Test Class and Trigger not work. becasue for loop
trigger MarkforDelAllinCon on Contact(before Update) {
set<ID> setContactID = new set<ID>();
for(Contact Con: Trigger.new){
if(Con.MarkforDelete__c == true){
setContactID.Add(Con.id);
}
}
List<Relationship__c > lstRel = [Select id,Mark_for_Delete__c,Contact_ID__c,Account_ID__c,Rev_Account_ID__c,Rev_Contact_ID__c from Relationship__c Where Contact_ID__c in : setContactID and Mark_for_Delete__c !=: True];
for(Contact Con: Trigger.new){
if(lstRel.size() != 0 ){
for(Relationship__c Res : lstRel){
Res.Contact_ID__c = Con.id;
Res.Rev_Contact_ID__c = Con.id;
Res.Mark_for_Delete__c = true;
update Res;
}
}
}
}Error in Test Class Line :
for(Relationship__c Res : lstRel){
Res.Contact_ID__c = Con.id;
Res.Rev_Contact_ID__c = Con.id;
Res.Mark_for_Delete__c = true;
update Res;
}
@isTest
private class TestMarkforDelAllinCon {
static testMethod void myTest() {
Account objAcc = new Account();
objAcc.Name = 'testAcc1';
objAcc.AccountNumber = 'TestA00001';
insert objAcc;
Account objAccRev = new Account();
objAccRev.Name = 'testAcc2';
objAccRev.AccountNumber = 'TestA00001';
insert objAccRev;
Contact con = new Contact();
con.AccountID = objAcc.id;
con.LastName = 'TestCon1';
con.MarkforDelete__c = True;
insert con;
update con;
Contact ConRev = new Contact();
ConRev.AccountID = objAcc.id;
ConRev.LastName = 'TestCon2';
ConRev.MarkforDelete__c = True;
insert conRev;
update conRev;
List<Relationship__c> Rel = new List<Relationship__c> ();
ApexPages.currentPage().getParameters().put('id',con.id);
for(Relationship__c Res : Rel){
Res.Contact_ID__c = Con.id;
Res.Rev_Contact_ID__c = Con.id;
Res.Mark_for_Delete__c = true;
update Res;
}
}
}Thank you so much.
-
- Kyo
- July 20, 2011
- Like
- 0
Hyperlink in Service Cloud Console not open new tab or subtab ?
I can't open tab or subtab for Hyperlink in formula field.
formula can do this.
HYPERLINK(Id,'Mr. ' & FirstName & ' ' & LastName, '_parent')
Thank you so much.
-
- Kyo
- July 20, 2011
- Like
- 0
Test Class not sync class Coverage Code 0%
public class MarkDeleteAccount{
public MarkDeleteAccount(ApexPages.StandardController controller) {
Acc = new Account(id = Apexpages.Currentpage().getParameters().get('id'));
Acc.Mark_for_Delete__c = true;
}
Public Account Acc {get;set;}
public PageReference save(){
update Acc;
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
@isTest
private class TestMarkDeleteAccount{
static testMethod void myTest1() {
List<Account> lstAcc = new List<Account>();
ApexPages.StandardSetController sc = new ApexPages.StandardSetController(lstAcc);
Account Acc = new Account();
Acc.Name = 'Test Acc1';
Acc.BP_Type__c = 'SCCC Mason';
Acc.Mark_for_Delete__c = true;
insert Acc;
update Acc;
ApexPages.currentPage().getParameters().put('id', Acc.Id);
Test.StartTest();
sc.Save();
sc.Cancel();
Test.StopTest();
}
}Test Class is 0% CodeCoverage. I can not make an error.
Thank you.
-
- Kyo
- July 20, 2011
- Like
- 0
AddError in Test Class not work!
I'm not write test class is full loop. Because ploblem adderror method.
trigger RelationDuplicationA2A on Relationship__c(before insert) {
set<ID> setAccountID = new set<ID>();
set<ID> setRevAccountID = new set<ID>();
integer setRecordType;
for(Relationship__c ra: Trigger.new){
if(ra.Account_ID__r.Mark_for_Delete__c != true || ra.Rev_Account_ID__r.Mark_for_Delete__c != true && (ra.RecordTypeID == '01290000000Ym1W')){
if (Trigger.new[0].Account_ID__c != NULL && Trigger.new[0].Rev_Account_ID__c != NULL) {
setAccountID.Add(ra.Account_ID__c); //Set Value Relation Account to Account
setRevAccountID.Add(ra.Rev_Account_ID__c);
setRecordType = 1; //set value criteria
}
}
}
//------------------------------------------- End Add Data --------------------------------------------------------------------------------------------------
// SOQL for Duplicate Relationship without Loop
if(setRecordType == 1){
List<Relationship__c> rs = [ select id,Account_ID__c,Rev_Account_ID__c,Mark_for_Delete__c from Relationship__c WHERE Account_ID__c = :Trigger.new[0].Account_ID__c And Rev_Account_ID__c =: trigger.new[0].Rev_Account_ID__c And Mark_for_Delete__c =: false];
if (rs.size() > 0 ) {
Trigger.new[0].Account_ID__c.addError('Duplicate Relationship');
Trigger.new[0].Rev_Account_ID__c.addError('Duplicate Relationship');
}
}
}Ploblem Trigger Line :
Trigger.new[0].Account_ID__c.addError('Duplicate Relationship'); Trigger.new[0].Rev_Account_ID__c.addError('Duplicate Relationship');
@isTest
private class TestRelationDuplicationA2A {
static testMethod void myUnitTest() {
Account Acc = new Account(Name = 'test',AccountNumber = '00000001');
insert Acc;
Contact Con = new Contact(LastName = 'test',AccountID = Acc.id);
insert con;
Relationship__c ra = new Relationship__c(Account_ID__c = Acc.id,Rev_Account_ID__c = Acc.id,Mark_for_Delete__c = False);
try{
insert ra;
}catch(DMLException de){
}
Relationship__c Dup = new Relationship__c(Account_ID__c = Acc.id,Rev_Account_ID__c = Acc.id,Mark_for_Delete__c = False);
try {
insert Dup;
}
catch (Exception e) {
System.debug('Duplicate Relationship');
}
}
}Thank you so much.
-
- Kyo
- July 20, 2011
- Like
- 0
CloseTab Service Cloud Console in Button
Button Code Error Cannot Call Method 'closeTeb' of undefined
{!REQUIRESCRIPT("/soap/ajax/8.0/connection.js")}
{!REQUIRESCRIPT("/support/console/20.0/integration.js")}
var Relationship__c = new sforce.SObject("Relationship__c");
Relationship__c.id = "{!Relationship__c.Id}";
Relationship__c.Mark_for_Delete__c = true;
var result = sforce.connection.update([Relationship__c]);
if (result[0].getBoolean("success"))
{
// Refresh window
window.location.reload();
window.open('', '_self', '');
sforce.console.closeTab();
}
else
{
alert("Error saving event");
}Thank you so much.
-
- Kyo
- July 09, 2011
- Like
- 0
Code Coverage 41% I can add it to me?
Not Error
trigger CaseMasterSync on Case (before insert,before update) {
List<Case_Master__c> cm = new List<Case_Master__c>();
for(case ca : Trigger.new){
if(ca.Case_Category__c != 'Z - Customer Care' && ca.Sub_Category__c != null ){
cm = [select id,Case_Category__c,Case_Escalation_To__c,Description__c,Function__c,Priority__c,Queue__c,Queue_Name__c,SLA_Time_Hours__c,Status__c,Sub_Category__c,Text_Note__c,Type__c from
Case_Master__c Where Case_Category__c =: ca.Case_Category__c and Sub_Category__c =: ca.Sub_Category__c and Description__c =: ca.Description__c and Customer_Class__c =: ca.Customer_Class__c];
for(Case_Master__c cmt : cm){
if(cmt.Function__c != null){ca.Function__c = cmt.Function__c;}
if(cmt.Priority__c != null){ca.Priority = cmt.Priority__c;}
if(cmt.SLA_Time_Hours__c != null){ca.SLATimeHours__c = cmt.SLA_Time_Hours__c;}
if(cmt.Text_Note__c != null){ca.Text_Note__c = cmt.Text_Note__c;}
if(cmt.Status__c != null){ca.Status = cmt.Status__c;}
if(cmt.Type__c != null){ca.Type = cmt.Type__c;}
if(cmt.Case_Escalation_To__c != null){ ca.OwnerId = cmt.Case_Escalation_To__c;}
}
}
}
}
@isTest
private class TestCaseMasterSync {
static testMethod void myTest() {
Account Acc = new Account();
Acc.Name = 'test';
Acc.AccountNumber = '000001';
insert Acc;
update Acc;
Contact con = new Contact();
Con.AccountID = Acc.id;
Con.Email = 'Test@Email.com';
Con.Email_2__c = 'Test2@Email.com';
Con.LastName = 'Test';
insert Con;
update Con;
Profile p = [select id from profile where name='Standard User'];
User ua = new User(alias = 'test123', email='test123@noemail.com',
emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US',
localesidkey='en_US', profileid = p.Id, country='United States',
timezonesidkey='America/Los_Angeles', username='test123@noemail.com');
insert ua;
Case_Master__c cm = new Case_Master__c();
cm.Type__c = 'Inquiry';
cm.Status__c = 'Open 2nd Level';
cm.Case_Category__c = 'CIPI';
cm.Sub_Category__c = 'ISCC - Open ISCC Account';
cm.Description__c = 'Request open ISCC account';
cm.Customer_Class__c = 'Platinum';
insert cm;
update cm;
Case ca = new Case();
ca.Account_Number__c = '000001';
ca.AccountID = Acc.id;
ca.ContactID = con.id;
ca.SuppliedEmail = 'Test@Email.com';
ca.Origin = 'Phone';
ca.Case_Category__c = 'CIPI';
ca.Sub_Category__c = 'ISCC - Open ISCC Account';
ca.Description__c = 'Request open ISCC account';
ca.SLATimeHours__c = cm.SLA_Time_Hours__c ;
ca.Text_Note__c = cm.Text_Note__c ;
ca.Priority = cm.Priority__c ;
ca.Function__c = cm.Function__c ;
ca.Status = cm.Status__c ;
ca.OwnerID = ua.id ;
ca.Type = cm.Type__c;
insert ca;
Test.Starttest();
update ca;
Test.Stoptest();
}
}Thank you so much.
-
- Kyo
- June 30, 2011
- Like
- 0
Error TestClass
System.DmlException: Update failed. First exception on row 0; first error: MISSING_ARGUMENT, Id not specified in an update call: []
rigger trgLookupSLAValues on Case (after insert) {
for(Case caseArgs : Trigger.new) {
List<Case_Master__c> caseMasters = [select Text_Note__c,Case_Escalation_To__c,Queue_Name__c,
Type__c,Priority__c, Function__c, SLA_Time_Hours__c, Status__c from Case_Master__c
where Case_Category__c =: caseArgs.Case_Category__c and Sub_Category__c =:caseArgs.Sub_Category__c
and Description__c =: caseArgs.Description__c and Customer_Class__c =: caseArgs.Customer_Class__c ];
if(caseMasters.IsEmpty()) {
RelationMgrException ex = new RelationMgrException('Cannot find Case Master record');
throw ex;
}
else {
Case_Master__c caseMasterTemp = caseMasters.get(0);
Case caseNew = new Case(Id=caseArgs.Id);
caseNew.OwnerId = caseMasterTemp.Case_Escalation_To__c;
caseNew.Function__c = caseMasterTemp.Function__c;
caseNew.Priority = caseMasterTemp.Priority__c;
caseNew.SLATimeHours__c = caseMasterTemp.SLA_Time_Hours__c;
caseNew.Text_Note__c = caseMasterTemp.Text_Note__c;
caseNew.Status = caseMasterTemp.Status__c;
caseNew.Type = caseMasterTemp.Type__c;
update caseNew ;
}
}
}
@isTest
private class TesttrgLookupSLAValues{
static testMethod void TestMethodtrgLookupSLAValues() {
Account Acc = new Account();
Acc.Name = 'test1';
Acc.AccountNumber = '000001';
Acc.CustomerPriority__c = 'Platinum';
insert Acc;
Case_Master__c CM = new Case_Master__c();
CM.Text_Note__c = ' test ';
CM.Case_Category__c ='Z - Customer Solution';
CM.Sub_Category__c ='CSD - Price and Policy';
CM.Description__c ='Complaint about price and policy';
CM.Customer_Class__c ='Complaint about price and policy';
insert CM;
Case ca = new Case();
ca.AccountID = Acc.Id;
ca.Origin = 'Web';
ca.Status = 'Open 1st Level';
ca.Type = 'Inquiry';
ca.Multi_Account__c = true;
ca.Case_Category__c = 'Z - Customer Solution';
ca.Sub_Category__c = 'CSD - Open New Ship to';
ca.Description__c = 'Request add new ship to';
update ca;
}
}
Thank you so much.
-
- Kyo
- June 26, 2011
- Like
- 0
Error TestClass
System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, trgCreateRelationship: execution of AfterInsert caused by: System.AssertException: Assertion Failed: CUSTOM_MSG: IsEmpty: Expected: TOKEN1, Actual: TOKEN2 Class.RelationshipMgr.createRelationship: line 16, column 13 Trigger.trgCreateRelationship: line 8, column 13: []
@isTest
private class TestRelationshipMgr {
static testMethod void createRelationship() {
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Contact objcon = new Contact();
objcon.LastName = 'test';
objcon.AccountID = objAcc.ID;
objcon.Sex__c = 'Male';
insert objcon;
Relationship_Category__c RC = new Relationship_Category__c();
RC.Name = 'Test';
RC.Relationship_Type__c = 'Account to Account';
RC.Reverse_Relationship_Category__c = RC.id;
RC.Reversible__c = true;
insert RC;
Relationship__c objRe = new Relationship__c ();
objRe.Account_ID__c = objAcc.id;
objRe.Contact_ID__c = objCon.id;
objRe.Rev_Account_ID__c = objAcc.id;
objRe.Rev_Contact_ID__c = objCon.id;
objRe.IsTrigger__c = '1';
objRe.Relationship_Category__c = RC.id;
test.starttest();
insert objRe;
test.stoptest();
}
static testMethod void markDeleteRelationship() {
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Contact objcon = new Contact();
objcon.LastName = 'test';
objcon.AccountID = objAcc.ID;
objcon.Sex__c = 'Male';
insert objcon;
Relationship_Category__c RC = new Relationship_Category__c();
RC.Name = 'Test';
RC.Relationship_Type__c = 'Account to Account';
RC.Reverse_Relationship_Category__c = RC.id;
RC.Reversible__c = true;
insert RC;
Relationship__c objRe = new Relationship__c ();
objRe.Mark_for_Delete__c = true;
test.starttest();
insert objRe;
test.stoptest();
}
}
public class RelationshipMgr {
public static void createRelationship(Relationship__c relArgs) {
// First ,get corresponding "Relationship Type" from the given "Relationship Category", we
// need to query from "Relationship Category" obj, "relArgs.Relationship_Category__c"
// is a Lookup, thus, it contains system ID (Id field) of the "Relationship_Category" obj
// not the "Name" field...
List<Relationship_Category__c> relCats = [select Relationship_Type__c, Reverse_Relationship_Category__c, Name, Reversible__c from Relationship_Category__c where Id =: relArgs.Relationship_Category__c];
// TEMP CODE: to be removed or cleaned...
if (relCats.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: IsEmpty');
}
Relationship_Category__c relCatTemp = relCats.get(0);
// At the highest level, we group our business rules by "Relationship Type", inside each
// top-level if/else clause implements BRs specific to each "Relationship Type"...
if (relCatTemp.Relationship_Type__c == 'Account to Account') {
// "Account to Account", all business rules for this case here...
// create second paried (reverse) record...
Relationship__c relReverse = new Relationship__c();
relReverse.Relationship_Category__c = relCatTemp.Reverse_Relationship_Category__c;
relReverse.Account_ID__c = relArgs.Rev_Account_ID__c;
relReverse.Rev_Account_ID__c = relArgs.Account_ID__c;
relReverse.IsTrigger__c = '1';
//insert relReverse;
// since, we only submit one obj, therefore, only one obj returned in SaveResult[] array...
Relationship__c[] relTemps = new Relationship__c[1];
relTemps[0] = relReverse;
Database.SaveResult[] result = Database.Insert(relTemps);
// now, we need to update the parent "Relationship" record (relArgs) with the new "Id" of the
// reversed record just inserted...
Relationship__c relArgsCloned = relArgs.clone(true, true);
relArgsCloned.Rev_Relationship__c = result[0].Id;
update relArgsCloned;
} else if (relCatTemp.Relationship_Type__c == 'Account to Contact') {
// "Account to Contact", all business rules for this case here...
// First, we need to check of the underlying Contact record has a value in the "Account Name"
// field, if NOT, then we need to populate it...
List<Contact> contacts = [select AccountId from Contact where Id =: relArgs.Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactTemp = contacts.get(0);
if (contactTemp.AccountId == null) {
List<Account> accounts = [select Id from Account where Id =: relArgs.Account_ID__c];
if (accounts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: accounts IsEmpty');
}
Account accountTemp = accounts.get(0);
contactTemp.AccountId = accountTemp.Id;
update contactTemp;
}
Relationship__c relReverse = new Relationship__c();
// Next, we need to check whether the "Relationship" is created from Account or Contact page,
// the ID assignment rule differs according to the source page...
if (relArgs.Account_ID__c != null) {
// "Relationship" is created from "Account" page (Account ID available)...
relReverse.Contact_ID__c = relArgs.Rev_Contact_ID__c;
relReverse.Rev_Account_ID__c = relArgs.Account_ID__c;
}
else if (relArgs.Contact_ID__c != null) {
// "Relationship" is created from "Contact" page (Account ID available)...
relReverse.Rev_Contact_ID__c = relArgs.Contact_ID__c;
relReverse.Account_ID__c = relArgs.Rev_Account_ID__c;
}
else {
// invalid case, not supposed to happen, thus raise the exception...
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: either Account ID or Contact ID must exist...');
}
// Now, create second paired (reverse) record...
relReverse.Relationship_Category__c = relCatTemp.Reverse_Relationship_Category__c;
relReverse.IsTrigger__c = '1';
insert relReverse;
} else if (relCatTemp.Relationship_Type__c == 'Contact to Contact') {
// "Contact to Contact", all business rules for this case here...
// create second paired (reverse) record...
Relationship__c relReverse = new Relationship__c();
// First, we need to check if the parent Contact has Account or not (AccountId field null),
// if NO, then we need to auto link with the same Account as the reversed Contact...
List<Contact> contacts = [select AccountId from Contact where Id =: relArgs.Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactParent = contacts.get(0);
if (contactParent.AccountId == null) {
// the parent Contact does NOT have Account, we must copy the AccountId from the reversed Contact
// into this parent Contact...
contacts = [select AccountId from Contact where Id =: relArgs.Rev_Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactTempReverse = contacts.get(0);
contactParent.AccountId = contactTempReverse.AccountId;
update contactParent;
}
// Next, we need to check against "Reversible" flag (checkbox), normal cases are NOT reversible, if it's
// reversible, then it's the case like "Is Married To" (we follow screen here, which a little conflict
// with our code namving convention)...
if (!relCatTemp.Reversible__c) {
// Next, we need to check if this is "Has Child" relationship category, if yes,
// then we need to figure out the parent Contact record whether it's "Male" or
// "Female" via the "Sex" field, note that, the assumption here is that the "Sex"
// field is always has value (required field in Contact object)...
// note, we need to use "Relationship Category" obj, not "Relationship", because the "Relationship"
// obj contains the system Id not actual text...
if (relCatTemp.Name == 'Has Child') {
contacts = [select Sex__c from Contact where Id =: relArgs.Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactTemp = contacts.get(0);
// we need to get the system "Id", because "Relationship" obj uses "Lookup" for the "Relationship Category"
// field...
List<Relationship_Category__c> relCatTemps = [select Id, Name from Relationship_Category__c where Name='Has Father' or Name='Has Mother'];
if (relCatTemps .IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: Relationship Category IsEmpty');
}
String strRelCatIdFather = '';
String strRelCatIdMother = '';
for (Relationship_Category__c relCatTemp2 : relCatTemps) {
if (relCatTemp2.Name == 'Has Father')
strRelCatIdFather = relCatTemp2.Id;
else if (relCatTemp2.Name == 'Has Mother')
strRelCatIdMother = relCatTemp2.Id;
}
// now, assign corresponding "Relationship Category to the reverse "Relationship" obj...
if (contactTemp.Sex__c == 'Male')
relReverse.Relationship_Category__c = strRelCatIdFather; //'Has Father';
else if (contactTemp.Sex__c == 'Femail')
relReverse.Relationship_Category__c = strRelCatIdMother; //'Has Mother';
else
relReverse.Relationship_Category__c = strRelCatIdMother; //'default to Has Mother';
}
else {
relReverse.Relationship_Category__c = relCatTemp.Reverse_Relationship_Category__c;
}
}
else {
// REVERSIBLE: this is for case like "Is Married To" when the "Reversible" field
// is checked...
relReverse.Relationship_Category__c = relArgs.Relationship_Category__c;
}
relReverse.Contact_ID__c = relArgs.Rev_Contact_ID__c;
relReverse.Rev_Contact_ID__c = relArgs.Contact_ID__c;
relReverse.IsTrigger__c = '1';
insert relReverse;
}
} // end method...
// This method implements logical delete (Mark Delete) for the Relationship record. It's required
// "Mark Delete" because of trigger limitation, which does NOT allow delete of the same record type
// in the "before and after" event via the "delete sObject[]" operation.
public static void markDeleteRelationship(Relationship__c relArgs) {
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + relArgs.Rev_Relationship__c + ' - ' + relArgs.Id);
// NOTE - 140611: WE NO LONGER NEED THIS FLAGMENT BECAUSE WE USE THE STANDARD DELETE FUNCTION TO PHYSICALLY
// DELETE PARENT RECORD!!!
// first, update the parent record as deleted...
//Relationship__c relArgsCloned = relArgs.clone(true, true);
//relArgsCloned.Mark_for_Delete__c = true;
//update relArgsCloned;
// now, we need update the paired record as deleted (Mark for Delete = true), the Apex scheduler will
// perform the physical delete at scheduled interval...
Relationship__c relTemp = new Relationship__c(Id=relArgs.Rev_Relationship__c);
relTemp.Mark_for_Delete__c = true;
update relTemp;
} // end method...
} // end class...Thank you so much.
-
- Kyo
- June 19, 2011
- Like
- 0
Problem Test Class Relationship
public class RelationshipMgr {
public static void createRelationship(Relationship__c relArgs) {
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + relArgs.RecordType);
// First ,get corresponding "Relationship Type" from the given "Relationship Category", we
// need to query from "Relationship Category" obj, "relArgs.Relationship_Category__c"
// is a Lookup, thus, it contains system ID (Id field) of the "Relationship_Category" obj
// not the "Name" field...
List<Relationship_Category__c> relCats = [select Relationship_Type__c, Reverse_Relationship_Category__c, Name, Reversible__c from Relationship_Category__c where Id =: relArgs.Relationship_Category__c];
// TEMP CODE: to be removed or cleaned...
if (relCats.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: IsEmpty');
}
Relationship_Category__c relCatTemp = relCats.get(0);
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + relCatTemp.Relationship_Type__c);
// At the highest level, we group our business rules by "Relationship Type", inside each
// top-level if/else clause implements BRs specific to each "Relationship Type"...
if (relCatTemp.Relationship_Type__c == 'Account to Account') {
// "Account to Account", all business rules for this case here...
// create second paried (reverse) record...
Relationship__c relReverse = new Relationship__c();
relReverse.Relationship_Category__c = relCatTemp.Reverse_Relationship_Category__c;
relReverse.Account_ID__c = relArgs.Rev_Account_ID__c;
relReverse.Rev_Account_ID__c = relArgs.Account_ID__c;
relReverse.IsTrigger__c = '1';
//insert relReverse;
// since, we only submit one obj, therefore, only one obj returned in SaveResult[] array...
Relationship__c[] relTemps = new Relationship__c[1];
relTemps[0] = relReverse;
Database.SaveResult[] result = Database.Insert(relTemps);
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + relTemps[0].Id);
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + result[0].Id);
// now, we need to update the parent "Relationship" record (relArgs) with the new "Id" of the
// reversed record just inserted...
Relationship__c relArgsCloned = relArgs.clone(true, true);
relArgsCloned.Rev_Relationship__c = result[0].Id;
update relArgsCloned;
} else if (relCatTemp.Relationship_Type__c == 'Account to Contact') {
// "Account to Contact", all business rules for this case here...
// First, we need to check of the underlying Contact record has a value in the "Account Name"
// field, if NOT, then we need to populate it...
List<Contact> contacts = [select AccountId from Contact where Id =: relArgs.Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactTemp = contacts.get(0);
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + contactTemp.AccountId);
if (contactTemp.AccountId == null) {
List<Account> accounts = [select Id from Account where Id =: relArgs.Account_ID__c];
if (accounts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: accounts IsEmpty');
}
Account accountTemp = accounts.get(0);
contactTemp.AccountId = accountTemp.Id;
update contactTemp;
}
Relationship__c relReverse = new Relationship__c();
// Next, we need to check whether the "Relationship" is created from Account or Contact page,
// the ID assignment rule differs according to the source page...
if (relArgs.Account_ID__c != null) {
// "Relationship" is created from "Account" page (Account ID available)...
relReverse.Contact_ID__c = relArgs.Rev_Contact_ID__c;
relReverse.Rev_Account_ID__c = relArgs.Account_ID__c;
}
else if (relArgs.Contact_ID__c != null) {
// "Relationship" is created from "Contact" page (Account ID available)...
relReverse.Rev_Contact_ID__c = relArgs.Contact_ID__c;
relReverse.Account_ID__c = relArgs.Rev_Account_ID__c;
}
else {
// invalid case, not supposed to happen, thus raise the exception...
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: either Account ID or Contact ID must exist...');
}
// Now, create second paired (reverse) record...
relReverse.Relationship_Category__c = relCatTemp.Reverse_Relationship_Category__c;
relReverse.IsTrigger__c = '1';
insert relReverse;
} else if (relCatTemp.Relationship_Type__c == 'Contact to Contact') {
// "Contact to Contact", all business rules for this case here...
// create second paired (reverse) record...
Relationship__c relReverse = new Relationship__c();
// First, we need to check if the parent Contact has Account or not (AccountId field null),
// if NO, then we need to auto link with the same Account as the reversed Contact...
List<Contact> contacts = [select AccountId from Contact where Id =: relArgs.Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactParent = contacts.get(0);
if (contactParent.AccountId == null) {
// the parent Contact does NOT have Account, we must copy the AccountId from the reversed Contact
// into this parent Contact...
contacts = [select AccountId from Contact where Id =: relArgs.Rev_Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactTempReverse = contacts.get(0);
contactParent.AccountId = contactTempReverse.AccountId;
update contactParent;
}
// Next, we need to check against "Reversible" flag (checkbox), normal cases are NOT reversible, if it's
// reversible, then it's the case like "Is Married To" (we follow screen here, which a little conflict
// with our code namving convention)...
if (!relCatTemp.Reversible__c) {
// Next, we need to check if this is "Has Child" relationship category, if yes,
// then we need to figure out the parent Contact record whether it's "Male" or
// "Female" via the "Sex" field, note that, the assumption here is that the "Sex"
// field is always has value (required field in Contact object)...
// note, we need to use "Relationship Category" obj, not "Relationship", because the "Relationship"
// obj contains the system Id not actual text...
if (relCatTemp.Name == 'Has Child') {
contacts = [select Sex__c from Contact where Id =: relArgs.Contact_ID__c];
if (contacts.IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: contacts IsEmpty');
}
Contact contactTemp = contacts.get(0);
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + contactTemp.Sex__c);
// we need to get the system "Id", because "Relationship" obj uses "Lookup" for the "Relationship Category"
// field...
List<Relationship_Category__c> relCatTemps = [select Id, Name from Relationship_Category__c where Name='Has Father' or Name='Has Mother'];
if (relCatTemps .IsEmpty()) {
System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: Relationship Category IsEmpty');
}
String strRelCatIdFather = '';
String strRelCatIdMother = '';
for (Relationship_Category__c relCatTemp2 : relCatTemps) {
if (relCatTemp2.Name == 'Has Father')
strRelCatIdFather = relCatTemp2.Id;
else if (relCatTemp2.Name == 'Has Mother')
strRelCatIdMother = relCatTemp2.Id;
}
// now, assign corresponding "Relationship Category to the reverse "Relationship" obj...
if (contactTemp.Sex__c == 'Male')
relReverse.Relationship_Category__c = strRelCatIdFather; //'Has Father';
else if (contactTemp.Sex__c == 'Femail')
relReverse.Relationship_Category__c = strRelCatIdMother; //'Has Mother';
else
relReverse.Relationship_Category__c = strRelCatIdMother; //'default to Has Mother';
}
else {
relReverse.Relationship_Category__c = relCatTemp.Reverse_Relationship_Category__c;
}
}
else {
// REVERSIBLE: this is for case like "Is Married To" when the "Reversible" field
// is checked...
relReverse.Relationship_Category__c = relArgs.Relationship_Category__c;
}
relReverse.Contact_ID__c = relArgs.Rev_Contact_ID__c;
relReverse.Rev_Contact_ID__c = relArgs.Contact_ID__c;
relReverse.IsTrigger__c = '1';
insert relReverse;
}
} // end method...
// This method implements logical delete (Mark Delete) for the Relationship record. It's required
// "Mark Delete" because of trigger limitation, which does NOT allow delete of the same record type
// in the "before and after" event via the "delete sObject[]" operation.
public static void markDeleteRelationship(Relationship__c relArgs) {
//System.assertEquals('TOKEN1', 'TOKEN2', 'CUSTOM_MSG: ' + relArgs.Rev_Relationship__c + ' - ' + relArgs.Id);
// NOTE - 140611: WE NO LONGER NEED THIS FLAGMENT BECAUSE WE USE THE STANDARD DELETE FUNCTION TO PHYSICALLY
// DELETE PARENT RECORD!!!
// first, update the parent record as deleted...
//Relationship__c relArgsCloned = relArgs.clone(true, true);
//relArgsCloned.Mark_for_Delete__c = true;
//update relArgsCloned;
// now, we need update the paired record as deleted (Mark for Delete = true), the Apex scheduler will
// perform the physical delete at scheduled interval...
Relationship__c relTemp = new Relationship__c(Id=relArgs.Rev_Relationship__c);
relTemp.Mark_for_Delete__c = true;
update relTemp;
} // end method...
} // end class...
@isTest
private class TestRelationshipMgr {
static testMethod void myTest() {
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Contact objcon = new Contact();
objcon.LastName = 'test';
objcon.AccountID = objAcc.ID;
objcon.Sex__c = 'Male';
insert objcon;
Relationship_Category__c RC = new Relationship_Category__c();
RC.Name = 'Test';
RC.Relationship_Type__c = 'Account to Account';
RC.Reverse_Relationship_Category__c = RC.id;
RC.Reversible__c = true;
insert RC;
Relationship__c objRe = new Relationship__c ();
objRe.Account_ID__c = objAcc.id;
//objRe.Contact_ID__c = objCon.id;
objRe.Rev_Account_ID__c = objAcc.id;
//objRe.Rev_Contact_ID__c = objCon.id;
objRe.IsTrigger__c = '1';
objRe.Relationship_Category__c = RC.id;
objRe.Mark_for_Delete__c = true;
test.starttest();
insert objRe;
test.stoptest();
}
static testMethod void myTest1() {
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Contact objcon = new Contact();
objcon.LastName = 'test';
objcon.AccountID = objAcc.ID;
objcon.Sex__c = 'Male';
insert objcon;
Relationship_Category__c RC = new Relationship_Category__c();
RC.Name = 'Test';
RC.Relationship_Type__c = 'Account to Contact';
RC.Reverse_Relationship_Category__c = RC.id;
RC.Reversible__c = true;
insert RC;
Relationship__c objRe = new Relationship__c ();
objRe.Account_ID__c = objAcc.id;
objRe.Contact_ID__c = objCon.id;
// objRe.Rev_Account_ID__c = objAcc.id;
//objRe.Rev_Contact_ID__c = objCon.id;
objRe.IsTrigger__c = '1';
objRe.Relationship_Category__c = RC.id;
objRe.Mark_for_Delete__c = true;
test.starttest();
insert objRe;
test.stoptest();
}
static testMethod void myTest2() {
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Contact objcon = new Contact();
objcon.LastName = 'test';
objcon.AccountID = objAcc.ID;
objcon.Sex__c = 'Male';
insert objcon;
Relationship_Category__c RC = new Relationship_Category__c();
RC.Name = 'Test';
RC.Relationship_Type__c = 'Contact to Contact';
RC.Reverse_Relationship_Category__c = RC.id;
RC.Reversible__c = true;
insert RC;
Relationship__c objRe = new Relationship__c ();
//objRe.Account_ID__c = objAcc.id;
objRe.Contact_ID__c = objCon.id;
// objRe.Rev_Account_ID__c = objAcc.id;
objRe.Rev_Contact_ID__c = objCon.id;
objRe.IsTrigger__c = '1';
objRe.Relationship_Category__c = RC.id;
objRe.Mark_for_Delete__c = true;
test.starttest();
insert objRe;
test.stoptest();
}
}
Code Coverage Low Please Help me!
Thank you so much.
-
- Kyo
- June 17, 2011
- Like
- 0
Error Poppulate
System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, PopulateOpportunities: execution of BeforeInsert caused by: System.NullPointerException: Attempt to de-reference a null object Trigger.PopulateOpportunities: line 12, column 43: []
trigger PopulateOpportunities on Delivery__c (before insert, before update) {
//Set of SaleOrder Ids
Set<Id> SODIDs = new Set<Id>();
for (Delivery__c deliveryNew : trigger.new) {
SODIDs.add(deliveryNew.Sales_Order__c); //A set of SaleOder
}
Map<Id, Sales_Order__c> pSale = new Map<Id, Sales_Order__c>([SELECT a.id, a.OpportunitiesID__c, a.Name,a.Quotes__c FROM Sales_Order__c a WHERE a.id IN :SODIDs]);
for(Delivery__c fcon : Trigger.New){
if(pSale.get(fcon.Sales_Order__c).OpportunitiesID__c != null){
fcon.OpportunitiesID__c = pSale.get(fcon.Sales_Order__c).OpportunitiesID__c;
fcon.Quotes__c = pSale.get(fcon.Sales_Order__c).Quotes__c ;}
}
}
@isTest
private class TestPopulateOpportunities {
static testMethod void myUnitTest() {
Account Acc = new Account(Name = 'test',Type = 'Domestic');
insert Acc;
Opportunities__c Opp = new Opportunities__c(Account_Name__c=Acc.id,Stage__c='Closed Won',Probability__c='100%',Unit__c='Kg',Currency__c='Bath');
insert Opp;
Quotes__c Quo = new Quotes__c(OpportunitiesID__c = Opp.id);
insert Quo;
Sales_Order__c pSale1 = new Sales_Order__c(OpportunitiesId__c=Opp.Id,Quotes__c = Quo.id);
insert pSale1;
Sales_Order__c fSale1 = new Sales_Order__c(OpportunitiesId__c=Opp.Id,Quotes__c = Quo.id);
insert fSale1;
Delivery__c pDO1 = new Delivery__c(OpportunitiesID__c=pSale1.OpportunitiesId__c,Quotes__c =pSale1.Quotes__c );
insert pDO1;
Delivery__c fDO1 = new Delivery__c(OpportunitiesID__c=fSale1.OpportunitiesId__c,Quotes__c =fSale1.Quotes__c );
insert fDO1;
// TO DO: implement unit test
}
}Thank you so much.
-
- Kyo
- June 17, 2011
- Like
- 0
Test Multi Condition
Trigger have multi Condition I can write Test Class has only 35% of you guide me !
trigger UpdateStatus on Case (Before update) {
for(Case ca:Trigger.new){
if(ca.New__c == False && ca.O1L__c == False && ca.O2L__c == False && ca.IP1L__c == False
&& ca.IP2L__c == False && ca.Reso__c == False && ca.Close__c == False && (ca.Status != 'New'))
{
if(ca.Status == 'Open 1st Level')
{ca.new__c = true;ca.O1L__c = False; ca.O2L__c=False; ca.IP1L__c=False; ca.IP2L__c=False; ca.Reso__c=False; ca.Cen__c=False;}
else if(ca.Status == 'Open 2nd Level')
{ca.new__c = true; ca.O1L__c = true;ca.O2L__c=False; ca.IP1L__c=False; ca.IP2L__c=False; ca.Reso__c=False; ca.Cen__c=False;}
else if(ca.Status == 'In Progress 1st Level')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true;}
else if(ca.Status == 'In Progress 2nd Level')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true;}
else if(ca.Status == 'Resolved')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; }
else if(ca.Status == 'Closed')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; ca.Reso__c = true;}
else if(ca.Status == 'Cancel')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; ca.Reso__c = true; ca.Close__c = true;}
}
else if(ca.New__c == True && ca.O1L__c == False && ca.O2L__c == False && ca.IP1L__c == False
&& ca.IP2L__c == False && ca.Reso__c == False && ca.Close__c == False && (ca.Status != 'New'))
{
if(ca.Status == 'Open 1st Level')
{ca.new__c = true;ca.O1L__c = False; ca.O2L__c=False; ca.IP1L__c=False; ca.IP2L__c=False; ca.Reso__c=False; ca.Cen__c=False;}
else if(ca.Status == 'Open 2nd Level')
{ca.new__c = true; ca.O1L__c = true;ca.O2L__c=False; ca.IP1L__c=False; ca.IP2L__c=False; ca.Reso__c=False; ca.Cen__c=False;}
else if(ca.Status == 'In Progress 1st Level')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true;}
else if(ca.Status == 'In Progress 2nd Level')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true;}
else if(ca.Status == 'Resolved')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; }
else if(ca.Status == 'Closed')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; ca.Reso__c = true;}
else if(ca.Status == 'Cancel')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; ca.Reso__c = true; ca.Close__c = true;}
}
else if(ca.New__c == True && ca.O1L__c == True && ca.O2L__c == False && ca.IP1L__c == False
&& ca.IP2L__c == False && ca.Reso__c == False && ca.Close__c == False && ((ca.Status != 'New') || (ca.Status != 'Open 1st Level')))
{
if(ca.Status == 'Open 2nd Level')
{ca.new__c = true; ca.O1L__c = true;ca.O2L__c=False; ca.IP1L__c=False; ca.IP2L__c=False; ca.Reso__c=False; ca.Cen__c=False;}
else if(ca.Status == 'In Progress 1st Level')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true;}
else if(ca.Status == 'In Progress 2nd Level')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true;}
else if(ca.Status == 'Resolved')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true;}
else if(ca.Status == 'Closed')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; ca.Reso__c = true;}
else if(ca.Status == 'Cancel')
{ca.new__c = true; ca.O1L__c = true; ca.O2L__c = true; ca.IP1L__c = true; ca.IP2L__c = true; ca.Reso__c = true; ca.Close__c = true;}
}
@isTest
Private Class TestUpdateStatus{
static testMethod void myTest1() {
Case ca = new Case(Origin = 'Phone',Status = 'Open 1st Level',Function__c = 'CC',Type = 'Inquiry',new__c = true,O1L__c = False, O2L__c=False, IP1L__c=False, IP2L__c=False, Reso__c=False, Cen__c=False);
test.startTest();
try{
insert ca;
update ca;
}catch(DMLException de){
}
//Assert your results
test.stopTest();
}
static testMethod void myTest2() {
Case ca = new Case(Origin = 'Phone',Status = 'Open 2nd Level',Function__c = 'CC',Type = 'Inquiry',new__c = true,O1L__c = True);
test.startTest();
try{
insert ca;
update ca;
}catch(DMLException de){
}
//Assert your results
test.stopTest();
}
Thank you so much.
-
- Kyo
- June 14, 2011
- Like
- 0
I have a problem Testclass Not Error , but 0% CodeCoverage
Not Error , but 0% CodeCoverage
public class MassCreation{
public List<Case> Cases {get; set;}
public MassCreation(){
Cases = new List<Case>();
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = Apexpages.Currentpage().getParameters().get('id');
}
//accts.add(new Opportunities_Line_Item__c());
Cases.add(CaseAdd);
}
public void addrow(){
Case CaseAdd;
if (cases.size()>0)
{
caseAdd=cases[cases.size()-1].clone(false, true);
}
else
{
CaseAdd=new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = Apexpages.Currentpage().getParameters().get('id');
}
}
Cases.add(CaseAdd);
//accts.add(new Opportunities_Line_Item__c());
}
public PageReference deleteRow() {
if (cases.size()>1)
{
cases.remove(Cases.size()-1);
}
return null;
}
public PageReference save(){
insert Cases;
PageReference home = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
home.setRedirect(true);
return home;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
@isTest
private class TestMassCreation{
static testMethod void myTest() {
List<Case > lstILI = new List<Case >();
ApexPages.StandardSetController sc = new ApexPages.StandardSetController(lstILI);
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Contact objcon = new Contact();
objcon.LastName = 'test';
objcon.AccountID = objAcc.ID;
insert objcon;
Case objca = new Case();
objca.Origin = 'Phone';
objca.Status = 'Closed';
insert objca;
}
}Thank you so much.
-
- Kyo
- June 13, 2011
- Like
- 0
TestClass Code Coverage 55%
trigger LockStatus on Case (After update) {
for(Case ca:Trigger.new){
if(ca.New__c == True && ca.O1L__c == False && ca.O2L__c == False && ca.IP1L__c == False
&& ca.IP2L__c == False && ca.Reso__c == False && ca.Close__c == False && (ca.Status == 'New')){
Trigger.new[0].Status.addError('Can not choose less than Open 1st Level'); // Open 1st Level
}
else if(ca.New__c == True && ca.O1L__c == True && ca.O2L__c == False && ca.IP1L__c == False
&& ca.IP2L__c == False && ca.Reso__c == False && ca.Close__c == False && ((ca.Status == 'New') || (ca.Status == 'Open 1st Level'))){
Trigger.new[0].Status.addError('Can not choose less than Open 2nd Level'); // Open 2nd Level
}
else if(ca.New__c == True && ca.O1L__c == True && ca.O2L__c == True && ca.IP1L__c == False
&& ca.IP2L__c == False && ca.Reso__c == False && ca.Close__c == False && ((ca.Status == 'New') || (ca.Status == 'Open 1st Level') || (ca.Status == 'Open 2nd Level')) ){
Trigger.new[0].Status.addError('Can not choose less than In Progress 1st Level'); //In Progress 1st Level
}
else if(ca.New__c == True && ca.O1L__c == True && ca.O2L__c == True && ca.IP1L__c == True
&& ca.IP2L__c == False && ca.Reso__c == False && ca.Close__c == False && ((ca.Status == 'New') || (ca.Status == 'Open 1st Level') || (ca.Status == 'Open 2nd Level') || (ca.Status == 'In Progress 1st Level'))){
Trigger.new[0].Status.addError('Can not choose less than In Progress 2nd Level'); //In Progress 2nd Level
}
else if(ca.New__c == True && ca.O1L__c == True && ca.O2L__c == True && ca.IP1L__c == True
&& ca.IP2L__c == True && ca.Reso__c == False && ca.Close__c == False && ((ca.Status == 'New') || (ca.Status == 'Open 1st Level') || (ca.Status == 'Open 2nd Level') || (ca.Status == 'In Progress 1st Level') || (ca.Status == 'In Progress 2nd Level'))){
Trigger.new[0].Status.addError('Can not choose less than Resolved'); //Resolved
}
else if(ca.New__c == True && ca.O1L__c == True && ca.O2L__c == True && ca.IP1L__c == True
&& ca.IP2L__c == True && ca.Reso__c == True && ca.Close__c == False && ((ca.Status == 'New') || (ca.Status == 'Open 1st Level') || (ca.Status == 'Open 2nd Level') || (ca.Status == 'In Progress 1st Level') || (ca.Status == 'In Progress 2nd Level') || (ca.Status == 'Resolved'))){
Trigger.new[0].Status.addError('Can not choose less than Closed'); //Closed
}
else if(ca.New__c == True && ca.O1L__c == True && ca.O2L__c == True && ca.IP1L__c == True
&& ca.IP2L__c == True && ca.Reso__c == True && ca.Close__c == True && ((ca.Status == 'New') || (ca.Status == 'Open 1st Level') || (ca.Status == 'Open 2nd Level') || (ca.Status == 'In Progress 1st Level') || (ca.Status == 'In Progress 2nd Level') || (ca.Status == 'Resolved') || (ca.Status == 'Closed'))){
Trigger.new[0].Status.addError('Can not choose less than Cancle'); //Cancel
}
}
}
@isTest
private class TestLockStatus {
static testMethod void myUnitTest() {
Case ca = new Case(Origin = 'Phone',Status = 'New',Subject = 'A',Type = 'Dummy',New__c = true,O1L__c = False,O2L__c = False,IP1L__c = False,
IP2L__c = False,Reso__c = False,Close__c = False);
test.startTest();
try { insert ca; update ca; }
catch (Exception e) {
System.debug('Can not choose less than Open 1st Level');
}
test.stopTest();
}Thank you so much.
-
- Kyo
- June 13, 2011
- Like
- 0
I have a problem Testclass on the Trigger
CodeCoverage 50%. I want more 75 %
trigger PopAccount on Case (before insert,before update) {
for(Case ca : trigger.new){
if(ca.AccountID == null && ca.Account_Number__c != null){
Account acc = [select id,AccountNumber From Account Where AccountNumber =: ca.Account_Number__c];
ca.AccountID = acc.id;
}
}
}
@isTest
private class TestPopAccount{
static testMethod void myTest() {
Account Acc = new Account();
Acc.Name = 'test';
insert Acc;
Acc = [select id,AccountNumber,Type From Account Where id =: acc.id];
Contact con = new Contact();
Con.AccountID = Acc.id;
Con.LastName = 'Test';
insert con;
Case ca = new Case();
ca.Account_Number__c = '000001';
ca.AccountID = Acc.id;
ca.ContactID = con.id;
ca.Origin = 'Phone';
ca.Status = 'Closed';
insert ca;
update ca;Thank you so much.
-
- Kyo
- June 11, 2011
- Like
- 0
Subject UnRequired Field in Standard Field
I can not save because the Field Subject in Interaction Log is Required. I want to have some unRequiredit.
trigger PopSubject on Task (before insert) {
//Set of SaleOrder Ids
Set<Id> CaseID = new Set<Id>();
for (Task Ta : trigger.new) {
CaseID.add(Ta.WhatID); //A set of SaleOder
}
Map<Id, Case> pSale = new Map<Id, Case>([SELECT a.id, a.subject FROM Case a WHERE a.id IN :CaseID ]);
for(Task fcon : Trigger.New){
fcon.subject = pSale.get(fcon.WhatID).subject;
}
}Thank you so much.
-
- Kyo
- June 03, 2011
- Like
- 0
Calculate Date not holiday
I would like to add time. Do not count holidays.
Date + 4 day if Start Thursday Ended Tures. Thursday Friday Saturday Sunday Monday Tues.
Do you have guide me.
Thank you so much.
-
- Kyo
- June 03, 2011
- Like
- 0
Average Trigger Code Be Low
Average Code Low . I can update Average Code?
trigger SumSodcSync on Sales_Order_Complete__c(Before insert) {
for(Sales_Order_Complete__c sodc:trigger.new){
Sales_Order__c Sod = [Select id from Sales_Order__c Where id = : ApexPages.currentPage().getParameters().get('id')];
Sales_Order_Complete__c[] Scom = [Select id,OpportunitiesID__c ,DimensionTxWxL__c,Grade__c,Total_Weight__c,Quotes__c,
Fail__c, Name, Products__c, Quantity__c,Quantity_Remain__c,Sales_OrderID__c,Success__c,Date__c,Pop__c,
Sales_Order_Line_ItemID__c,Deliver_Remain__c,Delivery_Good_Pcs__c,Order_Quantity__c,Total_Finished_Good__c ,
Delivery_Good_Ton__c,Delivery_Remain_Ton__c,Finished_Good_Remain__c,Finished_Good_Remain_Ton__c,Finished_Tons__c
from Sales_Order_Complete__c where Sales_OrderID__c =: Sod.id And Pop__c != true ];
Sodc_Sumary__c[] objssc = new Sodc_Sumary__c[]{};
Sodc_Sumary__c Sc = new Sodc_Sumary__c();
for(Sales_Order_Complete__c Ssc: Scom ){
Sc = new Sodc_Sumary__c();
Sc.Sales_Order__c = Ssc.Sales_OrderID__c;
Sc.Dimen__c = Ssc.DimensionTxWxL__c;
Sc.Grade__c = Ssc.Grade__c;
Sc.Order_Status__c = Ssc.Id;
Sc.Name = Ssc.Name;
Sc.Finished_Good_Remain__c = Ssc.Finished_Good_Remain__c;
Sc.Finished_Good_Remain_Ton__c = Ssc.Finished_Good_Remain_Ton__c;
Sc.Deliver_Remain__c= Ssc.Deliver_Remain__c;
Sc.Delivery_Remain_Ton__c = Ssc.Delivery_Remain_Ton__c;
Sc.Quantity__c = Ssc.Order_Quantity__c;
objssc.add(Sc);
}
insert objssc;
}
}
@isTest
private class TestSumSodcSync {
static testMethod void myUnitTest() {
Account Acc = New Account(Name = 'test',Type='Partner');
insert Acc;
Opportunities__c Opp = new Opportunities__c(Account_Name__c = Acc.ID,Stage__c = 'Negotiation',Probability__c ='60%',Unit__c ='Ton');
insert Opp;
Opportunities_Line_Item__c OppL = new Opportunities_Line_Item__c(OpportunitiesID__c = Opp.id);
insert OppL;
Quotes__c N = new Quotes__c(OpportunitiesID__c=Opp.id,Account_Name__c = Acc.id);
insert N;
Quotes_Line_Item__c QL = new Quotes_Line_Item__c(QuotesID__c = N.id,Opportunities_Line_Item__c = OppL.id);
insert QL;
Sales_Order__c Sod = new Sales_Order__c(Quotes__c = N.id);
insert Sod;
Sales_Order_Line_Item__c SoL = new Sales_Order_Line_Item__c(Sales_OrderID__c = Sod.id);
insert SoL;
Sales_Order_Complete__c Sodc = new Sales_Order_Complete__c(Sales_OrderID__c = Sod.id,OpportunitiesID__c = Opp.id,Quotes__c = N.id,Sales_Order_Line_ItemID__c = SoL.id);
insert Sodc;
Sodc_Sumary__c Sos = new Sodc_Sumary__c(Order_Status__c = Sodc.id,Sales_Order__c = Sod.id);
insert Sos;
}
}
Thank you so much.
-
- Kyo
- May 24, 2011
- Like
- 0
Copy Record
I can't copy data from the first record to secord Record when AddRow.

public class MassCreatetion{
public List<Case> Cases {get; set;}
public MassCreatetion(){
Cases = new List<Case>();
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = (id)Apexpages.Currentpage().getParameters().get('id');
}
//accts.add(new Opportunities_Line_Item__c());
Cases.add(CaseAdd);
}
public void addrow(){
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = (id)Apexpages.Currentpage().getParameters().get('id');
}
Cases.add(CaseAdd);
//accts.add(new Opportunities_Line_Item__c());
}
public PageReference deleteRow() {
if (cases.size()>1)
{
cases.remove(Cases.size()-1);
}
return null;
}
public PageReference save(){
insert Cases;
PageReference home = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
home.setRedirect(true);
return home;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
Thank you so much.
-
- Kyo
- May 24, 2011
- Like
- 0
Test Class this error
one error is null id after insert
System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, PopAccounttoPayment: execution of AfterInsert caused by: System.StringException: Invalid id: Trigger.PopAccounttoPayment: line 16, column 42:
trigger PopAccounttoPayment on Payment_Line__c (after insert) {
set<ID> setInvID = new set<ID>();
for(Payment_Line__c Pml : trigger.new){
if(Pml.Invoice_BC__c != null || Pml.Invoice_BC__c != ''){
setInvID.Add(Pml.Invoice_BC__c);
}
}
Invoice_BC__c InvBC = new Invoice_BC__c();
List<Invoice_BC__c> lstInvBC = [Select id,AccountID__c from Invoice_BC__c Where id in : setInvID];
if(lstInvBC.size() != 0){
InvBC = lstInvBC[0];
}
if(InvBC.AccountID__c != null && InvBC.AccountID__c != ''){
Payment_Line__c pml = Trigger.new[0];
List<Payments__c> lstPm = new List<Payments__c>();
Payments__c Pm = new Payments__c(id = pml.DocNo__c);
Pm.AccountID__c = InvBC.AccountID__c;
lstPm.Add(Pm);
Update lstPm;
}
}Test class
@isTest
private class TestPopAccounttoPayment{
static testMethod void myTest() {
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Opportunities__c objOpp = new Opportunities__c();
objOpp.Account_Name__c = objAcc.Id;
insert objOpp;
Quotes__c objQuo = new Quotes__c();
objQuo.Account_Name__c = objAcc.Id;
objQuo.OpportunitiesID__c = objOpp.Id;
insert objQuo;
Sales_Order__c objSOD = new Sales_Order__c();
objSOD.Name = 'test4';
objSOD.OpportunitiesID__c = objOpp.Id;
objSOD.Quotes__c = objQuo.Id;
insert objSOD;
Invoice_BC__c objInvBc = new Invoice_BC__c();
objInvBc.Name = 'Test5';
objInvBc.Sales_OrderID__c = objSOD.id;
objInvBc.AccountID__c = objAcc.id;
insert objInvBc;
Payments__c objPay = new Payments__c();
objPay.Name = 'Test2';
objPay.Due_Date__c = System.Today();
objPay.AccountID__c = objInvBc.AccountID__c;
insert objPay;
Test.StartTest();
Payment_Line__c objPayLine = new Payment_Line__c();
ApexPages.currentPage().getParameters().put('id', objPay.id);
objPayLine.Name = 'Test3';
objPayLine.DocNo__c = objPay.id;
objPayLine.Invoice_BC__c = objInvBc.id;
insert objPayLine;
Payments__c objPay2 = new Payments__c();
ApexPages.currentPage().getParameters().put('id', objPayLine.DocNo__c);
objPay2.Name = 'Test2';
objPay2.Due_Date__c = System.Today();
objPay2.AccountID__c = objInvBc.AccountID__c;
insert objPay2;
update objPay2;
Test.StopTest();
}
}thank you so much

- maiyaku
- August 30, 2011
- Like
- 0
Test Class not sync class Coverage Code 0%
public class MarkDeleteAccount{
public MarkDeleteAccount(ApexPages.StandardController controller) {
Acc = new Account(id = Apexpages.Currentpage().getParameters().get('id'));
Acc.Mark_for_Delete__c = true;
}
Public Account Acc {get;set;}
public PageReference save(){
update Acc;
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
@isTest
private class TestMarkDeleteAccount{
static testMethod void myTest1() {
List<Account> lstAcc = new List<Account>();
ApexPages.StandardSetController sc = new ApexPages.StandardSetController(lstAcc);
Account Acc = new Account();
Acc.Name = 'Test Acc1';
Acc.BP_Type__c = 'SCCC Mason';
Acc.Mark_for_Delete__c = true;
insert Acc;
update Acc;
ApexPages.currentPage().getParameters().put('id', Acc.Id);
Test.StartTest();
sc.Save();
sc.Cancel();
Test.StopTest();
}
}Test Class is 0% CodeCoverage. I can not make an error.
Thank you.

- Kyo
- July 20, 2011
- Like
- 0
Error TestClass
System.DmlException: Update failed. First exception on row 0; first error: MISSING_ARGUMENT, Id not specified in an update call: []
rigger trgLookupSLAValues on Case (after insert) {
for(Case caseArgs : Trigger.new) {
List<Case_Master__c> caseMasters = [select Text_Note__c,Case_Escalation_To__c,Queue_Name__c,
Type__c,Priority__c, Function__c, SLA_Time_Hours__c, Status__c from Case_Master__c
where Case_Category__c =: caseArgs.Case_Category__c and Sub_Category__c =:caseArgs.Sub_Category__c
and Description__c =: caseArgs.Description__c and Customer_Class__c =: caseArgs.Customer_Class__c ];
if(caseMasters.IsEmpty()) {
RelationMgrException ex = new RelationMgrException('Cannot find Case Master record');
throw ex;
}
else {
Case_Master__c caseMasterTemp = caseMasters.get(0);
Case caseNew = new Case(Id=caseArgs.Id);
caseNew.OwnerId = caseMasterTemp.Case_Escalation_To__c;
caseNew.Function__c = caseMasterTemp.Function__c;
caseNew.Priority = caseMasterTemp.Priority__c;
caseNew.SLATimeHours__c = caseMasterTemp.SLA_Time_Hours__c;
caseNew.Text_Note__c = caseMasterTemp.Text_Note__c;
caseNew.Status = caseMasterTemp.Status__c;
caseNew.Type = caseMasterTemp.Type__c;
update caseNew ;
}
}
}
@isTest
private class TesttrgLookupSLAValues{
static testMethod void TestMethodtrgLookupSLAValues() {
Account Acc = new Account();
Acc.Name = 'test1';
Acc.AccountNumber = '000001';
Acc.CustomerPriority__c = 'Platinum';
insert Acc;
Case_Master__c CM = new Case_Master__c();
CM.Text_Note__c = ' test ';
CM.Case_Category__c ='Z - Customer Solution';
CM.Sub_Category__c ='CSD - Price and Policy';
CM.Description__c ='Complaint about price and policy';
CM.Customer_Class__c ='Complaint about price and policy';
insert CM;
Case ca = new Case();
ca.AccountID = Acc.Id;
ca.Origin = 'Web';
ca.Status = 'Open 1st Level';
ca.Type = 'Inquiry';
ca.Multi_Account__c = true;
ca.Case_Category__c = 'Z - Customer Solution';
ca.Sub_Category__c = 'CSD - Open New Ship to';
ca.Description__c = 'Request add new ship to';
update ca;
}
}
Thank you so much.

- Kyo
- June 26, 2011
- Like
- 0
Error Poppulate
System.DmlException: Insert failed. First exception on row 0; first error: CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY, PopulateOpportunities: execution of BeforeInsert caused by: System.NullPointerException: Attempt to de-reference a null object Trigger.PopulateOpportunities: line 12, column 43: []
trigger PopulateOpportunities on Delivery__c (before insert, before update) {
//Set of SaleOrder Ids
Set<Id> SODIDs = new Set<Id>();
for (Delivery__c deliveryNew : trigger.new) {
SODIDs.add(deliveryNew.Sales_Order__c); //A set of SaleOder
}
Map<Id, Sales_Order__c> pSale = new Map<Id, Sales_Order__c>([SELECT a.id, a.OpportunitiesID__c, a.Name,a.Quotes__c FROM Sales_Order__c a WHERE a.id IN :SODIDs]);
for(Delivery__c fcon : Trigger.New){
if(pSale.get(fcon.Sales_Order__c).OpportunitiesID__c != null){
fcon.OpportunitiesID__c = pSale.get(fcon.Sales_Order__c).OpportunitiesID__c;
fcon.Quotes__c = pSale.get(fcon.Sales_Order__c).Quotes__c ;}
}
}
@isTest
private class TestPopulateOpportunities {
static testMethod void myUnitTest() {
Account Acc = new Account(Name = 'test',Type = 'Domestic');
insert Acc;
Opportunities__c Opp = new Opportunities__c(Account_Name__c=Acc.id,Stage__c='Closed Won',Probability__c='100%',Unit__c='Kg',Currency__c='Bath');
insert Opp;
Quotes__c Quo = new Quotes__c(OpportunitiesID__c = Opp.id);
insert Quo;
Sales_Order__c pSale1 = new Sales_Order__c(OpportunitiesId__c=Opp.Id,Quotes__c = Quo.id);
insert pSale1;
Sales_Order__c fSale1 = new Sales_Order__c(OpportunitiesId__c=Opp.Id,Quotes__c = Quo.id);
insert fSale1;
Delivery__c pDO1 = new Delivery__c(OpportunitiesID__c=pSale1.OpportunitiesId__c,Quotes__c =pSale1.Quotes__c );
insert pDO1;
Delivery__c fDO1 = new Delivery__c(OpportunitiesID__c=fSale1.OpportunitiesId__c,Quotes__c =fSale1.Quotes__c );
insert fDO1;
// TO DO: implement unit test
}
}Thank you so much.

- Kyo
- June 17, 2011
- Like
- 0
I have a problem Testclass Not Error , but 0% CodeCoverage
Not Error , but 0% CodeCoverage
public class MassCreation{
public List<Case> Cases {get; set;}
public MassCreation(){
Cases = new List<Case>();
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = Apexpages.Currentpage().getParameters().get('id');
}
//accts.add(new Opportunities_Line_Item__c());
Cases.add(CaseAdd);
}
public void addrow(){
Case CaseAdd;
if (cases.size()>0)
{
caseAdd=cases[cases.size()-1].clone(false, true);
}
else
{
CaseAdd=new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = Apexpages.Currentpage().getParameters().get('id');
}
}
Cases.add(CaseAdd);
//accts.add(new Opportunities_Line_Item__c());
}
public PageReference deleteRow() {
if (cases.size()>1)
{
cases.remove(Cases.size()-1);
}
return null;
}
public PageReference save(){
insert Cases;
PageReference home = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
home.setRedirect(true);
return home;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
@isTest
private class TestMassCreation{
static testMethod void myTest() {
List<Case > lstILI = new List<Case >();
ApexPages.StandardSetController sc = new ApexPages.StandardSetController(lstILI);
Account objAcc = new Account();
objAcc.Name = 'test';
insert objAcc;
Contact objcon = new Contact();
objcon.LastName = 'test';
objcon.AccountID = objAcc.ID;
insert objcon;
Case objca = new Case();
objca.Origin = 'Phone';
objca.Status = 'Closed';
insert objca;
}
}Thank you so much.

- Kyo
- June 13, 2011
- Like
- 0
I have a problem Testclass on the Trigger
CodeCoverage 50%. I want more 75 %
trigger PopAccount on Case (before insert,before update) {
for(Case ca : trigger.new){
if(ca.AccountID == null && ca.Account_Number__c != null){
Account acc = [select id,AccountNumber From Account Where AccountNumber =: ca.Account_Number__c];
ca.AccountID = acc.id;
}
}
}
@isTest
private class TestPopAccount{
static testMethod void myTest() {
Account Acc = new Account();
Acc.Name = 'test';
insert Acc;
Acc = [select id,AccountNumber,Type From Account Where id =: acc.id];
Contact con = new Contact();
Con.AccountID = Acc.id;
Con.LastName = 'Test';
insert con;
Case ca = new Case();
ca.Account_Number__c = '000001';
ca.AccountID = Acc.id;
ca.ContactID = con.id;
ca.Origin = 'Phone';
ca.Status = 'Closed';
insert ca;
update ca;Thank you so much.

- Kyo
- June 11, 2011
- Like
- 0
Copy Record
I can't copy data from the first record to secord Record when AddRow.

public class MassCreatetion{
public List<Case> Cases {get; set;}
public MassCreatetion(){
Cases = new List<Case>();
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = (id)Apexpages.Currentpage().getParameters().get('id');
}
//accts.add(new Opportunities_Line_Item__c());
Cases.add(CaseAdd);
}
public void addrow(){
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.ContactID = (id)Apexpages.Currentpage().getParameters().get('id');
}
Cases.add(CaseAdd);
//accts.add(new Opportunities_Line_Item__c());
}
public PageReference deleteRow() {
if (cases.size()>1)
{
cases.remove(Cases.size()-1);
}
return null;
}
public PageReference save(){
insert Cases;
PageReference home = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
home.setRedirect(true);
return home;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
Thank you so much.

- Kyo
- May 24, 2011
- Like
- 0
Change Field Type
trigger PopWebCasetoField on Case(before insert)
{
For (Case c : Trigger.new){
if(c.Origin == 'Web'{
c.ContactID = c.Email_Description__c;
}
}
}
I can't pop data because Type not macth.
ContacctID Type Lookup and Email Des Type Text;
Please help me.
Thank you so much.

- Kyo
- May 19, 2011
- Like
- 0
System Limit 101
System.LimitException: Too many SOQL queries: 101
Trigger.UpdateQLine: line 4, column 44
trigger UpdateQLine on Quotes_Line_Item__c (after update) {
for(Quotes_Line_Item__c QL:trigger.new){
if(QL.isClosed__c == false){
Opportunities_Line_Item__c[] OPL = [Select Id ,UP1__c,Quantity__c from Opportunities_Line_Item__c Where Id =: QL.Opportunities_Line_Item__c Limit 1000];
for(Opportunities_Line_Item__c OL:OPL){
OL.Quantity__c = QL.Quantity__c;
OL.UP1__c = QL.Unit_Price_For__c;
}
update OPL;
}
}
}

- Kyo
- May 16, 2011
- Like
- 0
Create Autonumber with LineItem
I can not use the Field Autonumber Standard. because it was not Run 1,2,3,4. but it runs from Old LineItem when creating a New Lineitem.
Item API = Name

public class NewAddProducts{
public List<Opportunities_Line_Item__c> accts {get; set;}
public NewAddProducts(){
accts = new List<Opportunities_Line_Item__c>();
Opportunities_Line_Item__c opplineitem = new Opportunities_Line_Item__c();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
opplineitem.OpportunitiesID__c = Apexpages.Currentpage().getParameters().get('ID');
}
//accts.add(new Opportunities_Line_Item__c());
accts.add(opplineitem);
}
public void addrow(){
Opportunities_Line_Item__c opplineitem = new Opportunities_Line_Item__c();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
opplineitem.OpportunitiesID__c = Apexpages.Currentpage().getParameters().get('ID');
}
accts.add(opplineitem);
//accts.add(new Opportunities_Line_Item__c());
}
public PageReference deleteRow() {
if (accts.size()>1)
{
accts.remove(accts.size()-1);
}
return null;
}
public PageReference save(){
insert accts;
PageReference home = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
home.setRedirect(true);
return home;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
Thank you so much

- Kyo
- May 11, 2011
- Like
- 0
I want Copy Data from Web-to-case Field but error
I want copy data from Web-to-case field SuppliedCompany put in Account_Name__c. But it's error!.
Error: Invalid Data.
Review all error messages below to correct your data.
Apex trigger UpdateType caused an unexpected exception, contact your administrator: UpdateType: execution of AfterInsert caused by: System.NullPointerException: Attempt to de-reference a null object: Trigger.UpdateType: line 5, column 127
trigger UpdateType on Case(after insert,after update) {
for(Case C:trigger.new){
if(C.Origin == 'Web'){
Case[] CA = [Select Id,SuppliedCompany,SuppliedEmail,SuppliedName,SuppliedPhone,Account_Name__c from Case Where id = :ApexPages.currentPage().getParameters().get('id') ];
for(Case Cased:CA){
//Cased.Contact= C.SuppliedName;
Cased.Account_Name__c = C.SuppliedCompany;
//Cased.ContactEmail = C.SuppliedEmail;
//Cased.ContactPhone = C.SuppliedPhone;
}
insert CA;
update CA;
}
}
}
I want copy data from Web-to-case field SuppliedName type Text put in Case.Contact type lookup field. But error!
Error: Compile Error: Illegal assignment from String to SOBJECT:Contact at line 7 column 9 Cased.Contact= C.SuppliedName;
Cased.Contact= C.SuppliedName;
Thank you so much.

- Kyo
- May 10, 2011
- Like
- 0
Code Coverage 18% I can add it to me?
Code Coverage 18%
trigger UpdateType on Quotes__c (after update) {
for(Quotes__c Q:trigger.new){
if(Q.Status__c== 'Rejected'){
Opportunities__c[] OP = [Select Id,name,Stage__c from Opportunities__c Where Id =: Q.OpportunitiesID__c];
for(Opportunities__c O:OP){
O.Stage__c = 'Closed Lost';
O.Reason_for_Lost__c = 'Please input Data';
}
update OP;
}
else if(Q.Status__c== 'Accepted'){
Opportunities__c[] OPP = [Select Id,name,Stage__c from Opportunities__c Where Id =: Q.OpportunitiesID__c];
for(Opportunities__c OA:OPP){
OA.Stage__c = 'Closed Won';
}
update OPP;
}
}
}Test
@isTest
private class TestUpdateType{
static testMethod void myUnitTest() {
Account Acc = new Account(Name='test');
insert Acc;
Opportunities__c O = new Opportunities__c(Account_Name__c=Acc.Id,Stage__c='Prospecting',Probability__c='10%',Unit__c = 'Kg',Currency__c = 'Bath',Reason_for_Lost__c ='Test');
insert O;
Quotes__c Q = new Quotes__c(OpportunitiesID__c=O.Id);
insert Q;
}
}
Thank you so much.

- Kyo
- May 06, 2011
- Like
- 0
I have a problem with the Delete Record and Standard Field.
Hey,
I created the AddRow () Function. but I can not delete a Record.
public class NewAddProducts{
public List<Case> Cases {get; set;}
public NewAddProducts(){
Cases = new List<Case>();
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.Contacts__c = Apexpages.Currentpage().getParameters().get('id');
}
//accts.add(new Opportunities_Line_Item__c());
Cases.add(CaseAdd);
}
public void addrow(){
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.Contacts__c = Apexpages.Currentpage().getParameters().get('id');
}
Cases.add(CaseAdd);
//accts.add(new Opportunities_Line_Item__c());
}
public PageReference save(){
insert Cases;
PageReference home = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
home.setRedirect(true);
return home;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
And I can not come available Standard Field.
Standard Object : Case
Standard Field Name : Contact
Type : Lookup
Error: Compile Error: Illegal assignment from String to SOBJECT:Contact at line 9 column 13
public class NewAddProducts{
public List<Case> Cases {get; set;}
public NewAddProducts(){
Cases = new List<Case>();
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.Contact = Apexpages.Currentpage().getParameters().get('id');
}
//accts.add(new Opportunities_Line_Item__c());
Cases.add(CaseAdd);
}
public void addrow(){
Case CaseAdd = new Case();
if(Apexpages.Currentpage().getParameters().get('ID')!=null) {
CaseAdd.Contact = Apexpages.Currentpage().getParameters().get('id');
}
Cases.add(CaseAdd);
//accts.add(new Opportunities_Line_Item__c());
}
public PageReference save(){
insert Cases;
PageReference home = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
home.setRedirect(true);
return home;
}
public PageReference Cancel() {
PageReference returnPage = new PageReference('/' + ApexPages.currentPage().getParameters().get('id'));
returnPage.setRedirect(true);
return returnPage;
}
}
I hope you will help me.
Thank you.

- Kyo
- May 05, 2011
- Like
- 0