Klon eine Chance und seine lineitems programmgesteuert in salesforce
Habe ich ein Szenario, wo ich zu Klonen, eine Gelegenheit und seine lineitems, wenn der Vertrag Ende-Datum ist heute. Das opp-werbebuchung Feld namens Product_Family_c. ich hätte zu Klonen, nur die opp deren lineitems haben renewaltype_c als monatlich.
Ich bin am stecken, wie kann ich den Klon über den oli Gegenstände und ordnen Sie den neuen oppty-ids zu den oli-Elemente.
todays=date.today();
system.debug('todays'+todays);
for(opportunity o:[select Auto_Renew__c,Contract_lenght_in_months__c,Contract_End_Date__c,id from opportunity where Auto_Renew__c='Yes' and Contract_End_Date__c =:todays ])
{
SetOppId.add(o.id);
MapOpp.put(o.id,o);
}
system.debug('SetOppId'+SetOppId);
system.debug('MapOpp'+MapOpp);
for(OpportunityLineItem oli:[select OpportunityId from OpportunityLineItem where Product_Family__c='Monthly' and OpportunityId in :SetOppId])
{
SetOppIdtoRenew.add(oli.OpportunityId);
Mapoli.put(oli.id,oli);
}
system.debug('SetOppIdtoRenew'+SetOppIdtoRenew);
for(id a:SetOppIdtoRenew)
{
//MapOpp.get(a).Contract_End_Date__c=MapOpp.get(a).Contract_End_Date__c.addDays(1);
//MapOpp.get(a).Contract_End_Date__c=MapOpp.get(a).Contract_End_Date__c.addMonths(integer.valueof(MapOpp.get(a).Contract_lenght_in_months__c));
Lstopp.add(new opportunity(name=MapOpp.get(a).name+' renewal '+string.valueof(date.today()),
Contract_lenght_in_months__c=MapOpp.get(a).Contract_lenght_in_months__c,
Contract_End_Date__c=MapOpp.get(a).Contract_End_Date__c.addMonths(integer.valueof(MapOpp.get(a).Contract_lenght_in_months__c))+1,
StageName=MapOpp.get(a).StageName,
CloseDate=MapOpp.get(a).CloseDate
// ,<fieldname>=MapOpp.get(a).<fieldname>... for all the fields you ned to copy over
));
}
system.debug('Lstopp'+Lstopp);
insert Lstopp;
InformationsquelleAutor Prady | 2012-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denken Sie in die richtige Richtung. Bevor Sie jedoch zuordnen OppID um die werbebuchung, die Sie einfügen müssen, die Gelegenheit. Ich kann mir vorstellen, diese Art von Pausen Ihre Transaktions-Kontrolle, aber Sie können immer mit Datenbank speichern Punkte, um die ganze operation atomar.
Beispiel:
Um einen überblick über die alten Möglichkeiten zu neuen, Sie brauchen eine
Map<ID, Opportunity>
und eine Liste, und füllen Sie Sie mit dem gleichen neuen Möglichkeiten eb wiederverwenden können neue IDs in einer mapping-Art und Weise (ich verwendete pseudo-code, wenn Sie Probleme haben, interpretieren es, lassen Sie mich wissen)}
Ein singlee Objekt-Instanz Hinzugefügt botha eine Liste und eine Karte ist immer noch das gleiche Objekt. Ich werde aktualisieren, die Antwort
oh gr8!!.. Das macht Sinn 🙂
InformationsquelleAutor mmix