2022
USE CASE
The ‘OpportunityToQBOE’ button will not be supported if the DBSync installed package version is above 1.5. A new action has to be created in the Salesforce instance inorder to make it work.
SOLUTION
Below are the steps to be followed in order to create the custom visual force page:
Search VisualForce Page in quickfind
Create a new visual force page (say:NewButtonVFP)
Check the box : Available for Lightning Experience, Lightning Communities, and the mobile app
Copy the below mentioned code (make sure the sfURL is the endpoint url under the sf connectors tab):
<apex:page standardcontroller="Opportunity">
<apex:form style="align:center;text-align:center">
<apex:sectionHeader title="Salesforce QuickBooksOnline Integration" />
<script>
<!-- Creation of Transaction(Invoice, Estimate, SalesReceipt) from Opportunity -->
function createTransaction() {
var URL = "{!$User.AVSFQB__QBOE_DBSync_Server__c}/qboe.m?sfUrl=https://rsps.my.salesforce.com/services/Soap/u/14.0/00D300000000l40={!$User.AVSFQB__QBOE_Connection_Ticket__c}&pdl=processdefinition_SFQB_OpportunityTo{!Opportunity.AVSFQB__Generate_Object__c}.xml&recordId={!Opportunity.Id}&dbsyncId={!$User.AVSFQB__DBSync_Id__c}&profileName={!$User.AVSFQB__DBSync_Profile__c}&sessionId={!$Api.Session_ID}&dbsyncPasswd={!$User.AVSFQB__DBSync_Passwd__c}";
window.open(URL, "DBSync",
"menubar=0,resizable=0,width=650,height=300");
}
<!-- Update Invoice Details from QuickBooks Online -->
function updateInvoice() {
var URL="{!$User.AVSFQB__QBOE_DBSync_Server__c}/qboe.m?sfUrl={!$Api.Partner_Server_URL_320}&qboeCT={!$User.AVSFQB__QBOE_Connection_Ticket__c}&pdl=processdefinition_QBSF_InvoiceToInvoice.xml&recordId={!Opportunity.Id}&dbsyncId={!$User.AVSFQB__DBSync_Id__c}&profileName={!$User.AVSFQB__DBSync_Profile__c}&sessionId={!$Api.Session_ID}&dbsyncPasswd={!$User.AVSFQB__DBSync_Passwd__c}";
window.open(URL,"DBSync","menubar=0,resizable=0,width=650,height=300");
}
</script>
<apex:commandButton value="Create Invoice in QBO" id="theButton1"
onclick="createTransaction()"
style="margin:10px;font-size:15px;padding:10px;" />
<!-- <apex:outputPanel>Creates Transaction in QuickBooks Online from SF Opportunity</apex:outputPanel> -->
<apex:commandButton value="Update Invoice from QBO" id="theButton2"
onclick="updateInvoice()"
style="margin:10px;font-size:15px;padding:10px;" />
<!-- <apex:outputPanel>Updates Invoice Details in Salesforce from QuickBooks Online</apex:outputPanel> -->
</apex:form>
</apex:page>
Save
Go To Object Manager, Scroll to Opportunity
Click on Buttons, Links, and Actions
Click on new action, make sure to give action type- Custom visual Force
Select the created visual force page ( here : NewButtonVFP)
Give a label and a name (say: OppToInv) (name of the button)
Add to all the page layouts (drag oppToInv button from the quick action and mobile and lightening action)