Skip to main content

Vista Integration

Mikee Salvacion avatar
Written by Mikee Salvacion
Updated over 10 months ago

Overview

The BuildOps to Viewpoint Vista integration provides real-time sync of essential business data between both platforms, ensuring accuracy and efficiency across your operations. This integration streamlines processes across modules like Job Costing (JC), Accounts Payable (AP), Accounts Receivable (AR), and Purchase Orders (PO), reducing manual data entry and errors. By bridging the gap between BuildOps and Vista, users benefit from simplified reporting, enhanced technician productivity, and a clear, up-to-date view of project and financial data.

Configurations Required

During the onboarding process, your implementation manager will work closely with you to complete a questionnaire that helps configure your connector for Vista. This questionnaire is designed to capture the specific settings and preferences needed to tailor the integration to your business needs. Below is a breakdown of the key areas covered in the questionnaire, along with the information we require to ensure a seamless setup of the connector.

Company

During the integration setup, we need to define specific company settings to ensure that data syncs correctly with Vista. This includes identifying the company or JC Company (JCCo) that the integration will operate under. We will also gather information on how you’d like transaction batches organized, whether by day or by day/department, as well as your preferences for syncing attachments and receiving sync notification emails.

Job

For job-related configurations, we will help you define how BuildOps jobs sync to Vista’s Job Cost (JC) module. This includes setting up your job numbering format, job number length, and template jobs that will standardize contract items, phases, and cost types. You can also specify a second template job for specific job types, as well as the default phase/cost type that should be used for purchase order receipts. More information on template jobs can be found in the next section.

Customer

The integration requires linking new customers created in BuildOps with the appropriate customer groups, tax groups, and receivable groups in Vista. You will also need to define the customer number range for new customer records. If your Vista environment includes custom user-defined (UD) fields, these can be mapped as well.

Purchasing

We’ll configure your default Ship To location for syncing purchase orders from BuildOps to Vista. If needed, we can also sync purchase order attachments, assigning them to a specific PO attachment type. Additionally, the integration can automatically post purchase order batches in Vista, eliminating manual steps in the approval process.

Accounts Receivable

For Accounts Receivable (AR) sync, we need to define key AR settings such as the AR attachment type, if applicable, and whether AR batches should be automatically posted in Vista. You will also provide information regarding your AR invoice number mask format and length to ensure that invoices are properly formatted and synced.

Vendors

When syncing vendor data from BuildOps to Vista, each vendor must be assigned to a vendor group in Vista. We will configure this group during onboarding to ensure that all new vendors created in BuildOps are properly categorized in your Vista system.

Template Jobs Configuration

When you create jobs or service agreement maintenances in BuildOps, you won’t need to manually create contract items, job phases, or job phase cost types. Instead, we work with you to set up ‘template’ or ‘archive’ jobs that contain a predefined list of these elements. These templates are stored within your Vista environment, giving you complete control to modify them for future jobs or maintenances. Even though BuildOps uses these templates, you can still update contract items, job phases, and cost types in Vista, and any changes you make will sync back into BuildOps.

The diagram below outlines the steps that BuildOps takes every time you create a job or maintenance.

AP Vendors

Configuration

For AP Vendors, you’ll need to designate a specific vendor group in Vista to ensure that all vendors synced from BuildOps are categorized correctly.

Data Flow and Trigger

Vista BuildOps

Trigger: When a new AP Vendor is created or updated in Vista.

Data Mapping

Vendor Create

Vista Fields

BuildOps Fields

Notes:

ven.Name + " ( " + ven.Vendor + " ) "

name

type

(string)null

ven.VendorGroup + "\" + ven.Vendor

accountRefID

ven.Contact

primaryContact

ven.Phone

phone

ven.EMail

email

ven.Address

addressLine1

ven.Address1

addressLine2

ven.City

city

ven.State

state

ven.zipcode

zipcode

ven.ActiveYN EQUALS "Y"

isActive

Vendor Update

Vista Fields

BuildOps Fields

Notes:

__key.id

Lookup Build Ops Vendor ID

ven.Name + " ( " + ven.Vendor + " ) "

name

type

(string)null

ven.VendorGroup + "\" + ven.Vendor

accountRefID

ven.Contact

primaryContact

ven.Phone

phone

ven.EMail

email

ven.Address

addressLine1

ven.Address1

addressLine2

ven.City

city

ven.State

state

ven.zipcode

zipcode

ven.ActiveYN EQUALS "Y"

isActive

HQ Tax Codes

Configuration

For HQ Tax Codes, you’ll need to specify the tax group that will be assigned to all customers synced from BuildOps.

Data Flow and Trigger

Vista BuildOps

Trigger: When a new HQ Tax Code is created or updated in Vista.

Data Mapping

Tax Code Create

Vista Fields

BuildOps Fields

Notes:

Tax.TaxCode

name

Tax.Description

description

Tax.TaxGroup + "/ " + Tax.TaxCode

accountingRefID

newRate *100

taxRate

If not multilevel use "newRate" if Multi Level use Sum of Linked Tax "newRate"

accountType

Hardcoded to "Vista"

accountingApplication

NULL

Tax Code Create

Vista Fields

BuildOps Fields

Notes:

__key.id

Lookup Build Ops Tax Code ID

Tax.TaxCode

name

Tax.Description

description

Tax.TaxGroup + "/ " + Tax.TaxCode

accountingRefID

newRate *100

taxRate

If not multilevel use "newRate" if Multi Level use Sum of Linked Tax "newRate"

accountType

Hardcoded to "Vista"

accountingApplication

NULL

Payment Terms

Data Flow and Trigger

Vista BuildOps

Trigger: When a new payment term is created or updated in Vista.

Data Mapping

Payment Term Create

Vista Fields

BuildOps Fields

Notes:

pay.Description

name

If pay.DaysTillDue IS NOT NULL then pay.DaysTillDue ELSE use pay DueDay

value

type

Hardcoded to "Both"

pay.PayTerms

accountingRefID

Payment Term Update

Vista Fields

BuildOps Fields

Notes:

__key.id

Lookup Build Ops Payment Terms ID

pay.Description

name

If pay.DaysTillDue IS NOT NULL then pay.DaysTillDue ELSE use pay DueDay

value

type

Hardcoded to "Both"

General Ledger (GL) Accounts

Data Flow and Trigger

Vista BuildOps

Trigger: When a new GL account is created or updated in Vista.

Data Mapping

GL Account Create

Vista Fields

BuildOps Fields

Notes:

GL.Description

name

GL.GLAcct

accountNumber

GL.AcctType

accountType

A = Assets, L = Liabilities, C = Capital, I = Income, E = Expense, S = Statistic, P = Profit/Loss

GL.Active

isActive

"Y"

GL.GLCo + "/ " GL.GLAcct

accountingRefID

accountingApplication

Hardcoded to "Vista"

GL Account Update

Vista Fields

BuildOps Fields

Notes:

__key.id

Lookup Build Ops Ledger Account ID

GL.Description

name

GL.AcctType

accountType

A = Assets, L = Liabilities, C = Capital, I = Income, E = Expense, S = Statistic, P = Profit/Loss

GL.Active

isActive

"Y"

JC Jobs

Configuration

For Jobs, you’ll need to configure the JC Company in Vista where new jobs created in BuildOps will be synced, along with setting up the template job that defines the phase and cost type structure for all future job creations.

Data Flow and Trigger

BuildOps Vista

Trigger:

When a new Job is created or updated in BuildOps, a JC Job is created or updated in Vista. When a new Service Agreement is created or updated in BuildOps, a JC Job is created or updated in Vista.

Data Mapping

Job Create

BuildOps Fields

Vista Fields

Notes:

JCCo

Lookup based on value stored in jobCompanyCode config

accountingJobNumber ELSE customIdentifier ELSE jobNumber

Job

WHEN Custom Field Label == "Job Name (Accounting Only)" then use Value ELSE jobName.Value , IF jobName.Value IS NULL OR EMPTY USE issueDescription

Description

Trimmed to 60 Characters

LookUp Contract in Vista

Contract

LookUp Liability template in Vista

LiabTemplate

WHEN Custom Field Label == PRStateCode Exist Use value ELSE Lookup PR State for Job in Vista

PRStateCode

billingAddress.addressLine1

MailAddress

billingAddress.City

MailCity

billingAddress.state

MailState

billingAddress.country

MailCountry

billingAddress.zip

MailZip

billingAddress.addressLine2

MailAddress2

companyAddresses.addressLine1

ShipAddress

companyAddresses.city

ShipCity

companyAddresses.state

ShipState

companyAddresses.zipCode

ShipZip

companyAddresses.address2

ShipAddress2

WHEN Custom Field Label == "Insurance Template" If Exsit Use value ELSE Lookup Insurance Template for Job in Vista

InsTemplate

The value stored in Custom Field Insurance Template will use the string before the "/"

certifiedPayroll = "True" Then "Y" ELSE "N"

Certified

LookUp Security Group in Vista

SecurityGroup

certifiedPayroll = "True" Then set to Current Date ELSE NULL

CertGroup

Date Format yyyy-MM-dd

IF Jobs.Owner is not NULL Then and contains an Email then LookUp ProjectMGR in Vista with matching Email ELSE NULL

ProjectMGR

customerRep.cellPhone

JobPhone

First 20 Characters

LookUp Lockphases in Vista

LockPhases

LookUp SLCompGroup in Vista

SLCompGroup

LookUp UpdateAPActualsYN in Vista

UpdateAPActualsYN

WHEN Custom Field Label == "Reviewer Group" Exsit Use Value ELSE Lookup Reviewer Group for Job in Vist

RevGrpInv

The value stored in Custom Field Reviewer Group will use the string before the "/"

WHEN Custom Field Label == ""PR Local Code""

THEN IF Value IN (""outside"" , ""OUTSIDE OF AREA"", """", NULL) NULL

ELSE Value

PRLocalCode

When customFields IS NOT NULL

AND vistaJobUdFieldForBuildOpsPrCounty IS NULL

THEN udProjType from Template Job

ELSE Not Mapped

__custom_fields.udProjType

When customFields IS NOT NULL

AND vistaJobUdFieldForBuildOpsPrCounty IS NOT NULL

THEN __custom_fields Where Label == ""county""

ELSE Not Mapped

__custom_fields.ud

ud Field cofigured will be configured in vistaJobUdFieldForBuildOpsPrCounty

LookUp RateTemplate in Vista

RateTemplate

LookUp TaxCode in Vista if Tax Found Use TaxCode Else NULL

TaxCode

Job Update

BuildOps Fields

Vista Fields

Notes:

__key.id

LookUp Job in vista

Rest of the fields are the same as the create.

Service Agreement Create

BuildOps Fields

Vista Fields

Notes:

LookUp JCCo

JCCo

customIdentifier else acccountingjobNumber else JobNumber

Job

​​issueDescription else NULL

Description

LookUp Contract from agreementNumber

Contract

LookUp Template Job in Vista "LiabTemplate"

LiabTemplate

WHEN Custom Field Label == PRStateCode Exist Use value ELSE Lookup PR State for Job in Vista

PRStateCode

billingAddress.addressLine1

MailAddress

billingAddress.City

MailCity

billingAddress.state

MailState

billingAddress.country

MailCountry

billingAddress.zip

MailZip

billingAddress.addressLine2

MailAddress2

companyAddresses.addressLine1

ShipAddress

companyAddresses.city

ShipCity

companyAddresses.state

ShipState

companyAddresses.zipCode

ShipZip

companyAddresses.address2

ShipAddress2

WHEN Custom Field Label == "Insurance Template" If Exsit Use value ELSE Lookup Insurance Template for Job in Vista

InsTemplate

The value stored in Custom Field Insurance Template will use the string before the "/"

certifiedPayroll = "True" Then "Y" ELSE "N"

Certified

LookUp Security Group in Vista

SecurityGroup

certifiedPayroll = "True" Then set to Current Date ELSE NULL

CertGroup

Date Format yyyy-MM-dd

IF Jobs.Owner is not NULL Then and contains an Email then LookUp ProjectMGR in Vista with matching Email ELSE NULL

ProjectMGR

customerRep.cellPhone

JobPhone

First 20 Characters

LookUp Lockphases in Vista

LockPhases

LookUp SLCompGroup in Vista

SLCompGroup

LookUp UpdateAPActualsYN in Vista

UpdateAPActualsYN

WHEN Custom Field Label == "Reviewer Group" Exsit Use Value ELSE Lookup Reviewer Group for Job in Vista

RevGrpInv

"WHEN Custom Field Label == ""PR Local Code""

THEN IF Value IN (""outside"" , ""OUTSIDE OF AREA"", """", NULL) NULL

ELSE Value"

PRLocalCode

"When customFields IS NOT NULL

AND vistaJobUdFieldForBuildOpsPrCounty IS NULL

THEN udProjType from Template Job

ELSE Not Mapped "

__custom_fields.udProjType

"When customFields IS NOT NULL

AND vistaJobUdFieldForBuildOpsPrCounty IS NOT NULL

THEN __custom_fields Where Label == ""county""

ELSE Not Mapped "

__custom_fields.ud

ud Field cofigured will be configured in vistaJobUdFieldForBuildOpsPrCounty

LookUp RateTemplate in Vista

RateTemplate

LookUp TaxCode in Vista if Tax Found Use TaxCode Else NULL

TaxCode

Service Agreement Update

BuildOps Fields

Vista Fields

Notes:

__key.id

LookUp Job in vista

Rest of the fields are the same as the create.

JC Contracts

Data Flow and Trigger

BuildOps Vista

Trigger:

When a new Service Agreement is created or updated in BuildOps, a JC Contract is created or updated in Vista.

When a new JC Contract is created or updated in Vista, a Contract is created in BuildOps.

Data Mapping

Service Agreement Create/Update

BuildOps Fields

Vista Fields

Notes:

jobCompanyCode

JCCo

Value is looked up based on the configuration set in jobCompanyCode.

agreementNumber

Contract

agreementName

Description

Length 60

tagName

Department

Data before the “-” in tagName is used to map the department.

Customer

Customer

Customer is looked up in Vista. If not found, a new customer is created.

Contract Items

Item

Description

Description

UM

UM

Tax.accountingRefId

TaxCode

The tax code is derived from the data stored after the “/” in accountingRefId.

Payterms.accountingRefId

PayTerms

Lookup SecurityGroup in Vista

SecurityGroup

__Custom_Fields

__Custom_Fields

Custom fields in BuildOps are mapped to the corresponding custom fields in Vista.

JBInfo.RecType

JBInfo

Record type is determined based on the contract template in Vista.

JC Contract Create/Update - BuildOps Contracts

Vista Fields

BuildOps Fields

Notes:

id

LookUp JC Contracts id in BuildOps for Update.

JCCo + "/" + Contract

accountingRefId

Description + "(" + Contract + ")"

name

Description

desciription

isActive

isActive

JC Contract Items Create/Update - BuildOps Contract Items

Vista Fields

BuildOps Fields

Notes:

id

LookUp Contract Items id in BuildOps for Update.

JCCo + "/" + Contract + "/" + "/" + Item

accountingRefId

Description + "(" + Item + ")"

name

Description

desciription

"true"

isActive

classId

LookUp Id for buildOps department

jcContractId

LookUp Contract id in BuildOps

JC Job Phases

Data Flow and Trigger

Vista BuildOps

Trigger: When a new Job Phase, Cost Type is created or updated in Vista for a JC Job.

Data Mapping

Job Phase Create/Update

Vista Fields

BuildOps Fields

Notes:

id

LookUp id in BuildOps for Update.

JCCo + "/" + Job + "/" + PhaseGroup + "/" + "Phase"

accountingRefId

Description + "(" + Phase + ")"

name

Description

description

if ActiveYN = Y then "true" else "false"

isActive

Cost Type Create/Update

Vista Fields

BuildOps Fields

Notes:

id

LookUp id in BuildOps for Update.

if description is NOT NULL then description + "(" Cost_Type+ ")" else "No Description" + "(" Cost_Type+ ")"

name

if description is NOT NULL then description else "No Description"

description

if ActiveYN = "Y" then "true" else "false"

isActive

JCCo + "/" + Job + "/" + PhaseGroup + "/" + Phase + "/" + CostType

accountingRefID

AR Customers

Data Flow and Trigger

Vista BuildOps

Trigger: When a new customer is created or updated in BuildOps or Vista.

Data Mapping

Customer Create/Update from Vista to BuildOps

Vista Fields

BuildOps Fields

Notes:

id

Lookup id from accountingRefId Update.

Lookup payTerms in BuildOps

paymentTermId

cus.Customer

customerNumber

cus.Name

customerName

cus.EMail

email

if cus.Status = A then "true" Else "false"

isActive

if cus.TaxCode is not null or blank then "true" else "false"

isTaxable

cus.Phone

phonePrimary

if cus.Status = A then "active" Else "inactive"

status

cus.CustGroup + "\" + cus.Customer

accountingRefId

Lookup taxRate in BuildOps

taxRateId

Company Addresses{} addressType = "businessAddress"

cus.Address

addressLine1

cus.Address2

addressLine2

cus.City

city

cus.state

state

cus.Zip

zipCode

country

"US"

if cus.Status = A then "active" Else "inactive"

status

if cus.Status = A then "true" Else "false"

isActive

Company Addresses{} addressType = "billingAddress"

cus.BillAddress

addressLine1

cus.BillAddress2

addressLine2

cus.BillCity

city

cus.BillState

state

cus.BillZip

zipCode

country

"US"

if cus.Status = A then "active" Else "inactive"

status

if cus.Status = A then "true" Else "false"

isActive

Customer Create/Update from BuildOps to Vista

BuildOps Fields

Vista Fields

Notes:

__Key

Lookup KeyID in Vista for customer

Value contained in config "subscriberCompanyCode"

ARCo

"var low = GetConfigValue(""customerNoRangeLow"")?.ToString();

var high = GetConfigValue(""customerNoRangeHigh"")?.ToString();

if(!String.IsNullOrEmpty(low) && !String.IsNullOrEmpty(high))

{

return JObject.FromObject(

new {

@default = ""next_within_range"",

range_low = int.Parse(low),

range_high = int.Parse(high)

});

}

else

{

return Data.customerNumber.ToString();

}"

Customer

customerName

Name

MailingAddress{}

addressLine1

MailingAddress.Address

if no addressLine1 where addressType = businessAddress and config enableCustomerMailingAddressDefault = True then addressLine1 where addressType = billingAddress will be used.

addressLine2

MailingAddress.Address2

if no addressLine2 where addressType = businessAddress and config enableCustomerMailingAddressDefault = True then addressLine2 where addressType = billingAddress will be used.

city

MailingAddress.City

if no city where addressType = businessAddress and config enableCustomerMailingAddressDefault = True then city where addressType = billingAddress will be used.

state

MailingAddress.State

zipcode

MailingAddress.Zip

country

MailingAddress.Country

BillingAddress{}

addressLine1

BillingAddress.BillAddress

where address type = billingAddress

addressLine2

BillingAddress.BillAddress2

where address type = billingAddress

city

BillingAddress.BillCity

where address type = billingAddress

state

BillingAddress.BillState

where address type = billingAddress

zipcode

BillingAddress.BillZip

where address type = billingAddress

country

BillingAddress.BillCountry

where address type = billingAddress

CompanyContact

if status = "active" then "A" else "I"

Status

id

Notes

customerName

SortName

new JObject(){

new JProperty(""udServiceOnly"", ""Y"")

}

__custom_fields

config recType

RecType

LookUp Payment term in Vista from BuildOps Customer

PayTerms

LookUp TaxCode in Vista from BuildOps Customer

TaxCode

JC Departments

Data Flow and Trigger

Vista BuildOps

Trigger: When a new department is created or updated in Vista.

Data Mapping

JC Department Create/Update

Vista Fields

BuildOps Fields

Notes:

id

LookUp BuildOps Class for update.

JCCo + "/" + Department

name

isActive

hardcoded to true

Description + "(" Department + ")"

accountingRefId

Purchase Order Receipts

Data Flow and Trigger

BuildOps Vista

Trigger: When a new purchase order receipt is created or updated in BuildOps, a corresponding purchase order is created in Vista.

Data Mapping

Purchase Order Receipt Create/Update - Vista Purchase Order Batch

BuildOps Fields

Vista Fields

Notes:

Vista Company Code from the config subscriberCompanyCode

Co

Current Month

Mth

Batch

Batch name is generated dynamically based on the local time zone and department configuration.

Purchase Order Receipt Create/Update - Vista Purchase Order Batch Entry

BuildOps Fields

Vista Fields

Notes:

Vista Company Code from the config subscriberCompanyCode

Co

Current Month

Mth

BatchId

BatchID

receiptNumber

PO

Look Up Vista Vendor from data after "/" in Ven.accountingRefId

Vendor

description

Description

createdDate

Order Date

0

Status

Hardcoded to 0

accountingRefId

JCCo

Looks up the JC Company using the data before the “/” in the accounting reference ID.

accountingRefId

Job

Looks up the Job using the data after the “/” in the accounting reference ID.

LineItems[]

description

LineItems Description

1

LineItems ItemType

lineNumber

LineItems POItem

accountingRefId

LineItems JCCo

Looks up the JC Company for line items using the data before the “/” in the accounting ref ID.

accountingRefId

LineItems Job

Looks up the Job for line items using the data after the “/” in the accounting ref ID.

LineItems Phase

jcCostTypeId

LineItems JCCType

Looks up the cost type in Vista using the JC Cost Type ID from BuildOps. If not found, returns “X”.

LineItems Amount {}

UM

LineItems Amount unitsOfMeasure

quantity

LineItems Amount OrigUnits

unitCost

LineItems Amount OrigUnitsCost

taxRate.accountingRefId

LineItems Tax

Maps the tax type and tax code based on whether the item is taxable, using the tax rate accounting reference.

LookUp PayTerms in Vista

PayTerms

Config "shipLoc"

ShipLoc

Purchase Order Bills

Data Flow and Trigger

Vista BuildOps

Trigger: When a new AP Invoice is posted in Vista a Purchase Order Bill is created in BuildOps.

Data Mapping

AP Posted Invoice to Purchase Order Bill

Vista Fields

BuildOps Fields

Notes:

inv.InvDate

transactionDate

inv.description

description

inv.MiscAmt

freight

inv.TaxAmt

tax

PO Receipt ID

purchaseOrderReceiptId

Looks up the Purchase Order receipt in BuildOps by receipt number and returns the receipt ID. If not found, returns null.

Vendor

vendorId

Looks up the vendor associated with the Purchase Order receipt in BuildOps and returns the vendor ID.

Job

jobId

Looks up the job ID linked to the PO receipt in BuildOps and returns the job ID.

billNumber

Retrieves the PO receipt number from BuildOps and maps it to the bill number field in Vista.

inv.APRef

vendorDocumentNumber

billLines{}

inv.Description

billLines.description

inv.Units

billLines.quantity

If UOM (Unit of Measure) is “LS” (Lump Sum), sets the quantity to 1.00; otherwise, maps the actual units from BuildOps.

inv.APLine

billLines.lineNumber

inv.UnitCost

billLines.UnitCost

If UOM is “LS”, maps to inv.GrossAmt (total amount); otherwise, maps to the unit cost from BuildOps.

Taxable

billLines.taxable

If the Tax Code is not empty or “Exempt”, the item is marked as taxable (“True”), otherwise it is “False.”

Product

productId

Looks up the product ID from the PO receipt lines in BuildOps based on the line number and maps to Vista.

AR Invoice

Data Flow and Trigger

BuildOps Vista

Trigger: When a new AR Invoice is created or updated in BuildOps a corresponding AR Invoice is created or updated in Vista.

Data Mapping

AR Invoice Create/Update

BuildOps Fields

Vista Fields

Notes:

LookUp ARCo

Co

Current Date

Mth

yyyy-MM-dd

LookUp BatchId

BatchId

LookUp CustGroup

CustGroup

LookUp Vista AR Customer

Customer

accountingRefId from BuildOps Contract

jCCo

value before "/"

accountingRefId from BuildOps Contract

Contract

value after "/"

invoiceNumber

Invoice

invoiceNumber + cus.name

Description

first 30 characters

issuedDate

Transdate

yyyy-MM-dd

dueDate

DueDate

LineItems.LineType

Hardcoded to “C” for line item type.

((JArray)(Step("lookup-contract-and-contract-items-in-buildops").Output[0].jcContract["jcContractItems"])).Where(c => c.Value<string>("id") == Data.jcContractItemId.ToString()).Select(s => s["accountingRefId"].ToString().Split('/')[2]).SingleOrDefault() ?? "X"

LineItems.item

Maps the contract item based on the lookup logic, splits the accounting reference ID, and returns the required value.

description

LineItems.Description

If the description is null, it defaults to “No Line Description”.

quantity

LineItems.ContractUnits

if(Step("lookup-hq-tax-codes-in-vista").Output.Count == 1)

{

if(Data.taxable?.ToString() == "True" && Step("calculate-taxrate").Output[0].TaxRate != null)

{

return new {

TaxCode = Step("lookup-hq-tax-codes-in-vista").Output[0].TaxCode.ToString()

//TaxBasis = string.Format("{0:0.00}", Data.amount),

//TaxAmount = string.Format("{0:0.00}", (decimal.Parse(Data.amount?.ToString()) * decimal.Parse(Step("lookup-hq-tax-codes-in-vista").Output[0].NewRate.ToString())))

};

}

}

return new {

TaxCode = (string)null

};

LineItems.Tax

Maps the tax code based on the taxability of the line item. If taxable, retrieves the tax code; otherwise, returns null.

if(Data.lineItemType?.ToString() == "Discount")

return (-1 * Decimal.Parse(Data.amount?.ToString())).ToString();

else

return Data.amount?.ToString();

LineItems.BaseAmount

Maps the base amount for the line item. If it’s a discount, the amount is negative. Otherwise, it maps the regular amount.

AR Cash Receipts / AR Payment

Data Flow and Trigger

Vista BuildOps

Trigger: When a new AR cash receipt is created in Vista an AR Payment is created in BuildOps.

Data Mapping

AR Cash Receipts to AR Payment Mapping

Vista Fields

BuildOps Fields

Notes:

CR.CMDeposit

paymentNumber

CR.Amount

paymentAmount

CR.TransDate

paymentDate

CR.Customer

billingCustomerId

Did this answer your question?