You need to sign in to do that
Don't have an account?
Avani
API access and Javascript.
Gurus,
need a big help. Got to deploy the code tomorrow morning and it does not work.
I wrote a javascript to create a custom button called Submit Proposal on Opportunity page. It is an onclick Javascipt.
The code is working fine on Developer edition but when I deploy it as a package in Professional edition, it is throwing me an error saying " API access" is disabled. I tried uploading the code as a package on appexchage to bypass the API thingy, still it does not work.
Here is the code, if you happen to have any suggestion for struggling me..
OnClick JavaScript | {!REQUIRESCRIPT("/soap/ajax/14.0/connection.js")} var oppid="{!Opportunity.Id}"; var sql1 = "Select Submitted_as_Proposal__c from Opportunity Where Id = '" + oppid + "'" ; var result = sforce.connection.query(sql1); var records= result.getArray("records"); var ans=records[0].Submitted_as_Proposal__c; var opps = new Array(); opps[0] = new sforce.SObject("Opportunity"); opps[0].id = "{!Opportunity.Id}"; opps[0].Submitted_as_Proposal__c = 'Y' ; if(ans=='N') { var prop = new sforce.SObject("Proposal__c"); var rfq=new Date("{!Opportunity.RFQ_Date__c}"); rfq.setDate(rfq.getDate()); var rfp=new Date("{!Opportunity.RFP_Date__c}"); rfp.setDate(rfp.getDate()); var rfi=new Date("{!Opportunity.RFI_Date__c}"); rfi.setDate(rfi.getDate()); var adt=new Date("{!Opportunity.Estimated_Award_Date__c}"); adt.setDate(adt.getDate()); var pdt=new Date("{!Opportunity.Estimated_Proposal_Due_Date__c}"); pdt.setDate(pdt.getDate()); prop.name = "{!Opportunity.Name}"; prop.CRGT_Role__c="{!Opportunity.CRGT_Role__c}"; prop.Prime_Name__c="{!Opportunity.Prime_Name__c}"; prop.Sub_Name__c="{!Opportunity.Sub_Name__c}"; prop.Total_Contract_Vlaue__c="{!Opportunity.Total_Contract_Value__c}"; prop.CRGT_Value__c="{!Opportunity.CRGT_Value__c}"; prop.Lead_Source__c="{!Opportunity.Lead_Source__c}"; prop.OwnerId="{!Opportunity.OwnerId}"; prop.Account__c="{!Opportunity.AccountId}"; prop.Contract_Vehicle__c="{!Opportunity.Contract_Vehicle__c}"; if(rfq!='NaN') { prop.RFQ_Date__c=rfq; } if(rfi!='NaN') { prop.RFI_Estimated_Date__c=rfi; } if(rfp!='NaN') { prop.RFP_Date__c=rfp; } if(adt!='NaN') { prop.Estimated_Award_Date__c=adt; } if(pdt!='NaN') { prop.Estimated_Proposal_Due_Date__c=pdt; } if(rfp!='NaN') { prop.RFP_Date__c=rfp; } sforce.connection.create([prop]); sforce.connection.update(opps); alert("This Opportunity is now submitted as a proposal"); } else { alert("This Opportunity has already been submitted as a proposal"); } |
Well, you could do a simple call like sforce.connection.getUserInfo();. If that fails, then you have no API access. If it succeeds, then you have access.
Also, if you're making an AppExchange package, you can specify that your package requires the API -- then it won't even install in the first place to orgs that have no API access.
All Answers
You probably wanted to post this to the AJAX board, but that's OK.
Professional Edition does not have access to the API (unless they buy the API addon). In your Javascript, you are using the API. Therefore what you have done here simply won't work in PE (without the API addon).
Is there a way to write a Javascript without using API... Also, is there any suggestion that you may have to have a workaround to bypass the need of API add on for PE edition.
Avani.
ps I shall post this thread to Ajax board as per your suggestion.
How about .net pages, you will get the api (xml file) from saleforce site. Include that with .net page and then convert the code wrote in javascript to vb.
This project (web application) would consist of one or two .aspx pages and api(xml file) which would take in user credentials of user and then code logic converted to .net.
DO YOU THINK THIS WILL WORK.
Well, you could do a simple call like sforce.connection.getUserInfo();. If that fails, then you have no API access. If it succeeds, then you have access.
Also, if you're making an AppExchange package, you can specify that your package requires the API -- then it won't even install in the first place to orgs that have no API access.