You need to sign in to do that
Don't have an account?

more record Not saved at a time
Hi all
I am facing one problem like i have created a vf page for record saving.when i am saving one record it is saving
but when i am saving more than one record at a time it is not saving.can any one help me..
I am facing one problem like i have created a vf page for record saving.when i am saving one record it is saving
but when i am saving more than one record at a time it is not saving.can any one help me..
public class BankBookTestPage { public String message = System.CurrentPagereference().getParameters().get('msg'); public List<AccountWrapper> wrappers {get; set;} public List<AccountWrapper> wrappers1 {get; set;} public List<MasterTest__c> master {get; set;} public List<BankBookTest__c> bankbook {get; set;} public static Integer toDelIdent {get; set;} public static Integer addCount {get; set;} private Integer nextIdent=1; public BankBookTestPage(){ init(); } private void init(){ wrappers=new List<AccountWrapper>(); Wrappers1=new List<AccountWrapper>(); for (Integer idx=0; idx<1; idx++){ wrappers.add(new AccountWrapper(nextIdent++)); wrappers1.add(new AccountWrapper(nextIdent++)); } } public void delWrapper(){ Integer toDelPos=-1; for (Integer idx=0; idx<wrappers.size(); idx++){ if (wrappers[idx].ident==toDelIdent){ toDelPos=idx; } } if (-1!=toDelPos){ wrappers.remove(toDelPos); } } /* public void delWrapper() { Integer toDelPos = -1; for( Integer idx = 0; idx < wrappers.size(); idx++ ) { if( wrappers[idx].ident == toDelIdent ) { toDelPos = idx; } } if( toDelPos != -1 ) { BankBookTest__c bk = wrappers.get( toDelPos ).acc; wrappers.remove( toDelPos ); delete bk; } }*/ public void addRows(){ List<BankBookTest__c> accs=new List<BankBookTest__c>(); for (AccountWrapper wrap : wrappers){ accs.add(wrap.acc); } // Upsert accs; AccountWrapper objAccWrapper; for (Integer idx=0; idx<addCount; idx++){ objAccWrapper = new AccountWrapper(nextIdent++); if(!wrappers.isEmpty()){ objAccWrapper.acc.BankAccount__c= wrappers[0].acc.BankAccount__c; objAccWrapper.acc.Date__c= wrappers[0].acc.Date__c; objAccWrapper.acc.Transaction_Type__c= wrappers[0].acc.Transaction_Type__c; } wrappers.add(objAccWrapper); } } public PageReference save(){ try{ List<BankBookTest__c> accs=new List<BankBookTest__c>(); for (AccountWrapper wrap : wrappers){ accs.add(wrap.acc); } Upsert accs; //return new PageReference('/' + Schema.getGlobalDescribe().get('BankBookTest__c').getDescribe().getKeyPrefix() + '/o'); init(); } catch(Exception e) { //ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'Sorry...... You have entered DUPLICATE MASTER CODE' ); // ApexPages.addMessage(myMsg); Apexpages.addMessage(new Apexpages.message(ApexPages.Severity.Error,'Please enter the field value')); } return null; } public class AccountWrapper{ public BankBookTest__c acc {get; private set;} public Integer ident {get; private set;} public AccountWrapper(Integer inIdent){ ident=inIdent; acc=new BankBookTest__c(); } } }
Can you please cross check your line no 75-79 code, as it is setting bankAccount for newly added record. While you have used Upsert DML operation, If bank_Account__c is external Id & then record will be updated wiht latest value. Kindly cross check.
Thanks