• Shrikant Bagal
  • SMARTIE
  • 836 Points
  • Member since 2014
  • Salesforce Developer


  • Chatter
    Feed
  • 27
    Best Answers
  • 1
    Likes Received
  • 2
    Likes Given
  • 6
    Questions
  • 264
    Replies
For some reason this fails - q.QuoteLineItems is null. Can someone tell me why?
 
@isTest
private class QuoteTest {

   static Account A;
   static Opportunity o;
   static Quote q;
   static Product2 p;
   static PriceBookEntry pe;
   static OpportunityLineItem oli;
   static QuoteLineItem qli;

   static {
       a = new Account(name = 'Test account', Jurisdiction__c = 'Denmark', currencyIsoCode = 'DKK');
       insert a;

       o = new Opportunity(name = 'Test opportunity', AccountId = a.id, closeDate = date.today(), stageName = 'Demonstration Scheduled');
       insert o;

       p = new Product2(name = 'Test product', type__c = 'Subscription', limits__c='a;b\nc;d');
       insert p;

       Id pbId = Test.getStandardPricebookId();

       pe = new PriceBookEntry(PriceBook2Id = pbId, Product2Id = p.id, UnitPrice = 100, IsActive = true);
       insert pe;

       oli = new OpportunityLineItem(OpportunityId = o.id, Quantity = 1, PricebookEntryId = pe.id, totalPrice = 200);
       insert oli;

       q = new Quote(name = 'Test quote', OpportunityId = o.id, PriceBook2Id = pbId);
       insert q;

       qli = new QuoteLineItem(QuoteId = q.id, PriceBookentryId = pe.Id, Quantity = 1, UnitPrice = 1);
       insert qli; 
       System.debug(q);
       System.debug(qli);
       System.debug(q.QuoteLineItems);
   }

User-added image
public class sparedetails
{
    public Spare_Details__c sparedet{get;set;}
    public String sparedetail {get;set;}
    public String asparedetail {get;set;}
    public Boolean check{get;set;}
    public Boolean pcheck{get;set;}
    public Engineer_Checklist__c ec{get;set;}
    public List<sparts> ssList{get;set;}    
    
    public class sparts{
        public List<SelectOption> sdetail{get;set;}
        public List<selectOption> sdetaildep{get;set;}
        public integer qty{get;set;}
        public String aparts{get;set;}
        public sparts(){
            this.sdetail=sdetails();  // Here how to call, i have call this type error in "Invalid Field"
            this.sdetaildep=getasparedetails(); // Same as here
            this.qty=0;
            this.aparts='';
        }
    }
    
    public sparedetails(ApexPages.StandardController controller) {
    check=false;
    pcheck=false;
    //ec=[select id,Engineer__r.name from Engineer_Checklist__c where id=:apexpages.currentpage().getparameters().get('id')];
    //sparedet = [select aspareparts__c,qty__c,spareparts__c,sparepartsinp__c from Spare_Details__c where id=:apexpages.currentpage().getparameters().get('id')];
    ssList=new List<sparts>();
    }
    
    public PageReference addrow(){
             
        ssList.add(new sparts());
        return null;
    }
    public void removeRow(){
        Integer count=Integer.valueOf(apexpages.currentpage().getparameters().get('index'));
        ssList.remove(count);
    }
    
    public List<SelectOption> sdetails()
    {
        List<SelectOption> spd = new List<SelectOption>();
        
        spd.add(new SelectOption('None','--- None ---')); 
        spd.add(new SelectOption('sd','Smoke Detector')); 
        spd.add(new SelectOption('hd','Heat Detector')); 
        spd.add(new SelectOption('msd','Multi Sensor Detector')); 
        spd.add(new SelectOption('bs','Base')); 
        spd.add(new SelectOption('ss','Smoke Sounder')); 
        spd.add(new SelectOption('hs','Heat Sounder')); 
        spd.add(new SelectOption('bc','Breakglass Callpoint')); 
        spd.add(new SelectOption('tk','Test Keys')); 
        spd.add(new SelectOption('rg','Replacement Glass')); 
        spd.add(new SelectOption('bc','Breakglass Cover')); 
        spd.add(new SelectOption('es','Electronic Sounder')); 
        spd.add(new SelectOption('fb','Fire Bell')); 
        spd.add(new SelectOption('bec','Beacon')); 
        spd.add(new SelectOption('dr','Door Release')); 
        spd.add(new SelectOption('pc','Printer Consumables')); 
        spd.add(new SelectOption('slab','SLA Battery')); 
        spd.add(new SelectOption('nic','Nicad Hi-Temp Cells X'));
        spd.add(new SelectOption('anic','Additional Nicad Hi-Temp Cells X'));
        spd.add(new SelectOption('el','Emergency Lights'));
        spd.add(new SelectOption('ael','Additional Emergency Lights'));
        spd.add(new SelectOption('elt','EL Tube'));
        spd.add(new SelectOption('aelt','Additional EL Tube'));
        spd.add(new SelectOption('ftt','4,6,8FT Tube'));
        spd.add(new SelectOption('lbs','Log Book Supplied - Qty'));
        spd.add(new SelectOption('oth','Other'));        
        return spd;  
    } 
    
    public List<SelectOption> getasparedetails()
    {
        List<SelectOption> spdl = new List<SelectOption>();   
        
        if(sparedetail  == 'None'){
        check=false;
        }
         
        if(sparedetail  == 'sd' || sparedetail  == 'hd' || sparedetail  == 'ss' || sparedetail  == 'hs' || sparedetail  == 'es' || sparedetail  == 'bec'){
        
        pcheck=true;
        
            spdl.add(new SelectOption('at','ADT'));
            spdl.add(new SelectOption('ad','Apollo Discovery'));
            spdl.add(new SelectOption('as65','Apollo S65'));
            spdl.add(new SelectOption('ax95','Apollo XP95'));
            spdl.add(new SelectOption('aut','Autronica'));
            spdl.add(new SelectOption('ed','EDA'));
            spdl.add(new SelectOption('em','EMS'));
            spdl.add(new SelectOption('get','Gent'));
            spdl.add(new SelectOption('hoc','Hochiki'));
            spdl.add(new SelectOption('nitt','Nittan'));
            spdl.add(new SelectOption('not','Notifier'));
            spdl.add(new SelectOption('men','Menvier'));
            spdl.add(new SelectOption('pro','Protec'));
            spdl.add(new SelectOption('raf','Rafiki'));
            spdl.add(new SelectOption('sys','Systemsensor'));
            spdl.add(new SelectOption('zit','Ziton'));
            spdl.add(new SelectOption('oth','Other'));
        }        
        if(sparedetail  == 'msd'){
        }        
        if(sparedetail  == 'bs'){        
        pcheck=true;
            spdl.add(new SelectOption('db','Detector Base'));
            spdl.add(new SelectOption('dob','Diode Base'));
        }        
        if(sparedetail  == 'bc'){   
        pcheck=true;     
            spdl.add(new SelectOption('at','ADT'));
            spdl.add(new SelectOption('ad','Apollo Discovery'));
            spdl.add(new SelectOption('as65','Apollo S65'));
            spdl.add(new SelectOption('ax95','Apollo XP95'));
            spdl.add(new SelectOption('aut','Autronica'));
            spdl.add(new SelectOption('ed','EDA'));
            spdl.add(new SelectOption('em','EMS'));
            spdl.add(new SelectOption('get','Gent'));
            spdl.add(new SelectOption('hoc','Hochiki'));
            spdl.add(new SelectOption('nitt','Nittan'));
            spdl.add(new SelectOption('not','Notifier'));
            spdl.add(new SelectOption('men','Menvier'));
            spdl.add(new SelectOption('pro','Protec'));
            spdl.add(new SelectOption('raf','Rafiki'));
            spdl.add(new SelectOption('sys','Systemsensor'));
            spdl.add(new SelectOption('zit','Ziton'));
            spdl.add(new SelectOption('wp','Waterproof'));
            spdl.add(new SelectOption('oth','Other'));
        }        
        if(sparedetail  == 'tk' || sparedetail  == 'rg' || sparedetail  == 'bc' || sparedetail  == 'fb' || sparedetail  == 'dr' || sparedetail  == 'pc' || sparedetail  == 'ftt' || sparedetail  == 'lbs' || sparedetail  == 'oth'){
            check = true;
            pcheck=false;
        }        
        if(sparedetail  == 'slab'){
        pcheck=true;        
            spdl.add(new SelectOption('1.2a','12v 1.2Ah'));
            spdl.add(new SelectOption('12a','12v 12Ah'));
            spdl.add(new SelectOption('17a','12v 17Ah'));
            spdl.add(new SelectOption('2.1a','12v 2.1Ah'));
            spdl.add(new SelectOption('2.8a','12v 2.8Ah'));
            spdl.add(new SelectOption('24a','12v 24Ah'));
            spdl.add(new SelectOption('3.2a','12v 3.2Ah'));
            spdl.add(new SelectOption('7a','12v 7Ah'));
            spdl.add(new SelectOption('10a','6v 10Ah'));
            spdl.add(new SelectOption('ed','EDA'));
            spdl.add(new SelectOption('es','EMS'));
        }        
        if(sparedetail  == 'nic' || sparedetail  == 'anic'){     
        pcheck=true;   
            spdl.add(new SelectOption('1c','1 Cell'));
            spdl.add(new SelectOption('2c','2 Cell'));
            spdl.add(new SelectOption('3c','3 Cell'));
            spdl.add(new SelectOption('4c','4 Cell'));
            spdl.add(new SelectOption('5c','5 Cell'));
            spdl.add(new SelectOption('oth','Other'));
        }        
        if(sparedetail  == 'el' || sparedetail  == 'ael'){  
        pcheck=true;      
            spdl.add(new SelectOption('16w','16w 2D'));
            spdl.add(new SelectOption('28w','28w 2D'));
            spdl.add(new SelectOption('38w','38w 2D'));
            spdl.add(new SelectOption('2d','28w 2D c/w P/c'));
            spdl.add(new SelectOption('8w','8w Bulkhead'));
            spdl.add(new SelectOption('eb','Exit Box'));
            spdl.add(new SelectOption('ld','LED'));
            spdl.add(new SelectOption('ldb','LED Bulkhead'));
            spdl.add(new SelectOption('leb','LED Exit box'));
            spdl.add(new SelectOption('lgd','Legend'));
            spdl.add(new SelectOption('tb','Twinspot Beam'));
        }        
        if(sparedetail  == 'elt' || sparedetail  == 'aelt'){   
        pcheck=true;     
            spdl.add(new SelectOption('4w','4 Watt Tube rep.'));
            spdl.add(new SelectOption('6w','6 Watt Tube rep.'));
            spdl.add(new SelectOption('8w','8 Watt Tube rep.'));
            spdl.add(new SelectOption('2d','2D Lamp/Biax'));
        }    
          
        return spdl;
    }       
}


Here how to call my picklist method in wrapper class.
 
hi everyone...could u rectify the error.....
trigger conchangecity on Contact (after update) {
if(trigger.isafter){
if(trigger.isupdate){
set<id>conids=new set<id>();
list<account> acclst=new list<account>();
for(contact con:trigger.new){
if(con.mailingcity!=trigger.oldmap.get(con.accountid).mailingcity && con.mailingcity!=null)
conids.add(con.accountid);
}
contact con=new contact();
for(account acc:[select id,billingcity from account where id in:conids]){
acc.billingcity=trigger.newmap.get(con.accountid).mailingcity;
acclst.add(acc);
}
update acclst;
}
}

}

thanks inadvance...
Hi this is my wrapper class.
Here i am getting the error like : Unknown property 'WrapperClassProcessSelectedclass.Wrapperclass.name'
please help me.
public class WrapperClassProcessSelectedclass {

   public list<Wrapperclass> Wrapperactlst1 {get; set;}
    public list<account> Selectedaccounts {get; set;}
    
    public WrapperClassProcessSelectedclass (){
            Wrapperactlst1  = new list<Wrapperclass>();
            
            for(account acc : [select id, name, billingcity, phone from account ])
            Wrapperactlst1.add(new wrapperclass(acc));
            
     }
        public void process (){
        Selectedaccounts  = new list<account>();
            for(Wrapperclass wra : Wrapperactlst1 ){
                if(wra.isselected == true)
                Selectedaccounts.add(wra.acc);
            }
        }
    public class Wrapperclass {
        public account acc {get; set;}
        public boolean isselected {get;set;}
        public Wrapperclass(account   a){
            acc =  a;
            isselected = false;
        }
          }
 
}

Thanks and regards,
Anji reddy
I have environment hub enabled for my org.
But environment hub tab is missing from the tab list.
My profile is set to system admin...
Any info on this would be helpful !!! Thank you :)
Hi all
 
I have created a VF page where using two pageblock table on same object.requirment is i will be enter value in 1st page block table.and in second page block i will be created multiple record and when i am going to save its showing error...

Visualforce ErrorHelp for this Page
System.NullPointerException: Attempt to de-reference a null object
Error is in expression '{!save_close}' in component <apex:commandButton> in page newbankbook: Class.addrowCon.save_close: line 45, column 1
Class.addrowCon.save_close: line 45, column 1

 
<apex:page standardController="BankBook__c" extensions="addrowCon">
<apex:define name="body">
            
            <div style="width:900px;margin: 10px auto 10px auto;background-color:Gray;">
             <apex:image id="theImage" value="{!$Resource.Emami}" width="100" height="100"/>
             <apex:outputLink style="font-weight: bold;float:right;" value="{!URLFOR($Page.LoginPage)}"><b>Back To Home</b></apex:outputLink> 
<apex:form >

   <apex:pageBlock title="New BankBook Entry:" >
    
        
      
       <Div align="right">
             <apex:inputText value="{!num}" style="width:45px"/>
             <apex:commandButton value="Add rows" action="{!add_rows}"/> 
       </Div>
       <br/>
       <div style="width:400px;">
       <apex:pageBlockTable value="{!accts1}" var="a1" id="table1">
          
          <apex:column headerValue="Date" style="background:gray;"  >
    <apex:inputField value="{!a1.Txn_Date__c}"/>
</apex:column>
 <apex:column headerValue="Payment Type" style="background:gray;">
    <apex:inputField value="{!a1.Credit_Debit__c}"/>
</apex:column>
 <apex:column headerValue="Company Account" style="background:gray;">
    <apex:inputField value="{!a1.Related_Bank_Acc__c}"/>
</apex:column>
      
       </apex:pageBlockTable>
       
       
        </div>
      
       
      <apex:pageBlockTable value="{!accts}" var="a" id="table">
         <apex:column headerValue="Master Code" style="background:gray;">
            <apex:inputField value="{!a.Entries_Code__c}"/>
         </apex:column>
         <apex:column headerValue="Master Name" style="background:gray;">
            <apex:inputField value="{!a.Debtor_Name__c}"/>
         </apex:column>
         <apex:column headerValue="Amount" style="background:gray;">
            <apex:inputField value="{!a.Amount__c}"/>
         </apex:column>
        
         <apex:column headerValue="Narration" style="background:gray;">
            <apex:inputField value="{!a.Narration__c}"/>
         </apex:column>
         
        <apex:column headerValue="">
            <apex:commandButton value="Enter" action="{!addRows}" rerender="wtable" style="background:pink" >
         <apex:param name="addCount" value="1" assignTo="{!addCount}"/> 
      </apex:commandButton>
         </apex:column>
       </apex:pageBlockTable>
        <apex:commandButton value="Save" action="{!save_close}" rerender="error"/>
   </apex:pageBlock>
    </apex:form>
    </div>
        </apex:define>
</apex:page>
 
public class addrowCon
{ 
    public addrowCon(ApexPages.StandardController controller) 
    
    
    {
   accts = new List<BankBook__c >(); 
     accts.add(new BankBook__c ()); 
     accts1 = new List<BankBook__c >(); 
     accts1.add(new BankBook__c ());  

    }


  public integer num { get; set; }
  public List<BankBook__c > combinedList {get; set;}
  public List<BankBook__c > accts {get; set;}
  public List<BankBook__c > accts1 {get; set;} 
  public static Integer addCount {get; set;}
  private Integer nextIdent=1;
 
   public PageReference add_rows() {
    for(integer i=0;i<num ;i++)
        {
          accts.add(new BankBook__c ());    
        }
        
        return null;
     }
 public void addRows()
 {
  for (Integer idx=0; idx<addCount; idx++)
  {
   accts.add(new BankBook__c());
  }
 }    
     
     
     
     
     
  public PageReference save_close()
  {       
        
  insert combinedList;
        
     PageReference home = new PageReference('/home/home.jsp');
     home.setRedirect(true);
     return home;
  }
}

User-added image
Hi all,

We are using Qualaroo to collect feedback from clients in our application. These responses come through to a custom object in Salesforce.

Along with the response, we get the email address of the client (which is a unique identifier).

When a new response is added, we need a trigger that searches contacts based on the email, and then updates the lookup relationship with that contact.

As this will be the first piece of apex that's we will be using, we will also require help to deploy it.

Is anyone able to help?

Regards,
Elliott
Hi All,

I have the below trigger which when few field update happens to contact record it sends a webservice callout. Now i want it to send a webservice call out even when the contact is created in salesforce, can anyone please help me in modying this trigger such that it sends callout after record is newly created in salesforce also and not only on updation like it is currently doing. It should send callout during both update and create actions. Thanks!!
 
trigger Contactcallout on Contact (after update) {
Map<Id, String> m = new Map<Id, String>();
list<Contact> validContacts = new list<Contact>();
set<ID> accIds = new set<ID>();
for (contact c : Trigger.new) {
    if(c.RecordTypeId == '012D0000000BaFA'){
        contact old = Trigger.oldMap.get(c.Id);
         if (c.Email != old.Email||c.FirstName!=old.FirstName||c.LastName!=old.LastName||c.phone!=old.phone||c.Title__c!=old.Title__c||c.status__c!=old.status__c||c.AccountID!=old.AccountID)
         {
             validContacts.add(c);
                accIds.add(c.accountid);
         }
     }
}
map<ID, Account> accMap;
if(!accIds.IsEmpty()) // guard condition for SOQL
    accMap = new map<ID, Account>([select name from account where id in :accIds]);

for (contact c : validContacts) {
    Account acc = accMap.get(c.AccountID);
    string accName = acc == null ? null : acc.Name;
    WebServiceCallout.sendNotification(c.Id,c.Email,c.FirstName,c.LastName,c.phone,c.Title__c,accName,c.status__c);
            
    
    }
}

Many thanks in advance
Abraham
Hello All,
 
 I would like to get a sample code to identify "How many times a Visual force page has been opened / hit " by the user.
 Please guide me with the code (Visualforce remoting way / apex:variable way / best possible solution) which we can propose to customer.
 
Thanks !

 
Hi Friends

How to overcome /increase the text field type size in custom setting..
Hi Team,

My project size is 6 MB and I am using salesforce Enterprice edition. I am getting this error when I am trying to upload my existing html project as
static resource ,"static resource cannot exceed 5MB".I think we can upload 10 MB at a time. Let me know what is the problem?
Hi,

I need to get list of user names and return a string like below

['first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth']



Thanks,
Vetri

 
when ever parent picklist chages automatically child picklist values should be chage
ex: my parent picklist 1,2,3,4
     child picklist values 1a,1b,2a,2b....like that
   
i wrote a trigger that, ownername should be come at representative__C field.  ownerid is displaying but firstname or lastname or alias is not coming. please help.
trigger usernametorepresentative1 on employee__c (before insert,before update) {
    
 for(employee__C e1:trigger.new)
 {
    e1.representative__c=e1.owner.alias;
     //     e1.representative__c=e1.ownerid;   //  this is coming.
     //         e1.representative__c=e1.owner.lastname;
     //             e1.representative__c=e1.owner.firstname;


 }
}

 
Error
-----------

Visualforce Error
Help for this Page

System.DmlException: Insert failed. First exception on row 0; first error: REQUIRED_FIELD_MISSING, Required fields are missing: [Related Bank Acc]: [Related Bank Acc]
Error is in expression '{!save}' in component <apex:commandButton> in page add: Class.ManageListController1.save: line 60, column 1

Class.ManageListController1.save: line 60, column 1


 
<apex:page tabstyle="Account" showHeader="false" sidebar="false" Controller="ManageListController1">

<apex:define name="body">
            
            <div style="width:900px;margin: 10px auto 10px auto;background-color:Gray;">
             <apex:image id="theImage" value="{!$Resource.Emami}" width="100" height="100"/>
             <apex:outputLink style="font-weight: bold;float:right;" value="{!URLFOR($Page.LoginPage)}"><b>Back To Home</b></apex:outputLink> 
 <apex:form >
 <style> .headerRow .headerStyle{background-color:#638658;color:#FFFFFF} </style>

   <apex:pageBlock title="Bank Book Entry:">
      
       <div style="width:200px;align=Right;">
      <apex:pageBlockTable value="{!wrappers1}" var="wrapper1" id="wtable1">
      <apex:column headerValue="Date" style="background:gray;" headerClass="headerStyle" >
    <apex:inputField value="{!wrapper1.acc.Txn_Date__c}"/>
</apex:column>
 <apex:column headerValue="Payment Type" style="background:gray;">
    <apex:inputField value="{!wrapper1.acc.Credit_Debit__c}"/>
</apex:column>

<apex:column headerValue="Company Account" style="background:gray;">
    <apex:inputField value="{!wrapper1.acc.Related_Bank_Acc__c}"/>
</apex:column>
         
      </apex:pageBlockTable>
      
          </div>
   <div style="width:500px;margin: 10px auto 10px auto;">
   
      <apex:pageBlockTable value="{!wrappers}" var="wrapper" id="wtable">
      
         
       
         <apex:column headerValue="Ident" style="background:gray;">
            <apex:outputText value="{!wrapper.ident}"/>
         </apex:column>
         <apex:column headerValue="Master Code" style="background:gray;">
            <apex:inputField value="{!wrapper.acc.Entries_Code__c}"/>
         </apex:column>
         <apex:column headerValue="Amount" style="background:gray;">
            <apex:inputField value="{!wrapper.acc.Amount__c}"/>
         </apex:column>
         <apex:column headerValue="Narration" style="background:gray;">
            <apex:inputField value="{!wrapper.acc.Narration__c}"/>
         </apex:column>
          
       <apex:column headerValue="">
            <apex:commandButton value="Enter" action="{!addRows}" rerender="wtable" style="background:pink" >
         <apex:param name="addCount" value="1" assignTo="{!addCount}"/> 
      </apex:commandButton>
         </apex:column>
       
         <apex:column headerValue="Action">
            <apex:commandButton value="Delete" action="{!delWrapper}" rerender="wtable" style="background:Red">
               <apex:param name="toDelIdent" value="{!wrapper.ident}" assignTo="{!toDelIdent}"/> 
            </apex:commandButton>
         </apex:column>
         
      </apex:pageBlockTable>
     </div>
        
        
      <apex:commandButton value="Add 5 Rows" action="{!addRows}" rerender="wtable" style="width:100px;margin: 10px auto 10px auto;">
         <apex:param name="addCount" value="5" assignTo="{!addCount}"/> 
      </apex:commandButton>
      
      <apex:commandButton value="Save" action="{!save}" style="width:100px;margin: 10px auto 10px auto;"/>
   
    
     </apex:pageBlock>
 </apex:form>
  </div>
        </apex:define>
</apex:page>
public class ManageListController1 
{

    
    public ManageListController1(ApexPages.StandardController controller) {

    }

 public List<AccountWrapper> wrappers {get; set;}
  public List<AccountWrapper> wrappers1 {get; set;}
 public static Integer toDelIdent {get; set;}
 public static Integer addCount {get; set;}
 private Integer nextIdent=0;
  
 public ManageListController1()
 {
  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 addRows()
 {
  for (Integer idx=0; idx<addCount; idx++)
  {
   wrappers.add(new AccountWrapper(nextIdent++));
  }
 }
  
 public PageReference save()
 {
  List<BankBook__c> accs=new List<BankBook__c>();
 
  for (AccountWrapper wrap : wrappers)
  {
   accs.add(wrap.acc);
  }
 insert accs;
  
   
  return new PageReference('/' + Schema.getGlobalDescribe().get('BankBook__c').getDescribe().getKeyPrefix() + '/o');
 }
 
 public pageReference parentPage () {

          return new pageReference('/apex/Receivables');
} 
  
  
  
 public class AccountWrapper
 {
  public BankBook__c acc {get; private set;}
  public Integer ident {get; private set;}
   
  public AccountWrapper(Integer inIdent)
  {
   ident=inIdent;
   acc=new BankBook__c();
  }
 }
}


 
Hi, 
Iam trying to create an app with soap or rest api (a third party app for salesforce integration), I came to know that the API access is there for Professional and above versions..I got this point.

But if I build the app and then releases will the clients having group and contact versions able to use my app? as my app mainly needs the api access?

quick help is highly appreciated..thanks