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

Schreibe einen Kommentar