You are on page 1of 22

Scribe ERP Integration for Salesforce

BRIDGING THE GAP BETWEEN ON DEMAND CRM AND ON DEMAND ERP

SEPTEMBER 2007

WRITTEN BY PETER R. CHASE


EXECUTIVE VICE PRESIDENT, SCRIBE SOFTWARE CORPORATION

PUBLISHED BY SCRIBE SOFTWARE CORPORATION 2007 ©. ALL RIGHTS RESERVED.


REPRODUCTION WITHOUT PRIOR WRITTEN PERMISSION IS STRICTLY PROHIBITED.

SCRIBE SOFTWARE CORPORATION THREE BEDFORD FARMS DRIVEBEDFORD, NH 03110 USAT 1.603.622.5109F 1.603.622.3862
Scribe ERP Integration for Salesforce

TECHNICAL BRIEF

Over the past 10 years and across thousands of customers in the volume CRM market, Scribe
has developed an approach to integration that solves the seemingly unsolvable dilemma posed
by front to back office integration; how to deliver a highly functional, real-time integration
solution that can be quickly customized to meet the needs of each and every customer. This
paper will discuss the challenges posed by alternative integration approaches and present the
Scribe template model, and its inherent advantages, in detail.

Traditional Alternatives

In the past, customers and partners have been forced to compromise with two inadequate
approaches to their front office to back office integration needs:

ƒ Custom developed solutions – This is where the customer or implementation partner


hard-codes the integration. Because all of the data mappings and business logic have to
be built from scratch, customers are typically forced by money and time to dramatically
compromise on functionality. These solutions typically are expensive to maintain since
they have little or no error detection and management built in and are very difficult to
troubleshoot. And what happens when you change or upgrade either your back office
or front office systems? You will likely need to rip it out and start over again.

ƒ Packaged, point solutions – This is where either the application vendor or a niche
software developer creates an integration solution between one front office product and
one back office product. On the surface, these solutions appear to be a good option
since they have compelling functionality “out of the box.” The challenges typically arise
at implementation when the customer requires customizations to the integration
solution to meet their unique business requirements. “Out of the box” with these
solutions typically means “black box.” To open up that “black box” requires extensive
and expensive consulting services that typically can only be provided by a small, finite
group of individuals. The customer along with their implementation partner is not only
locked in up front, but is locked in to high costs down the road when they change their
processes or upgrade their systems.

The Scribe Advantage

This is where Scribe Insight platform and the Scribe ERP integration templates provide an
advantage. Scribe’s unique template model provides “out of the box” functionality, built over
its industry leading integration platform that can be quickly implemented within a customer’s
specific ERP environment. The templates can be quickly extended and customized utilizing the
GUI-based mapping and development environment to deliver a solution that meets the unique
needs of each and every customer, within days, regardless of their back office system.

With Scribe’s component architecture, when a new version of Salesforce is released, your
existing integration continues to function with no disruption. If new field mappings or business
rules need to be applied to take advantage of new capabilities, you can quickly make them in

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 2


the Scribe Workbench. This capability is particularly important with on demand applications
such as Salesforce, where upgrading to the new version is not an option…it happens whether
your integration is ready, or not.

This component architecture also enables customers to implement integration functionality in


phases or pick and choose the elements of capability that they require. For example, a customer
may not wish to implement order integration initially (or in some cases never) but can still
synchronize customer activity (accounts, contacts, invoices) between their ERP system and
Salesforce. This modularity enables customers to implement an integration solution “right-
sized” to their exact needs.

In addition, since the Scribe Insight product represents the general integration platform for
hundreds of top ERP and Salesforce implementation partners, there is no shortage of resources
to help customers customize the Solution for their business. Scribe’s on-line training curriculum
and Web Community containing documented best practices resources, enable customers and
partners to take full control of their implementations, now and in the future.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 3


The Scribe Solution Architecture

The following diagram represents the components of an integration solution between a


premise-based ERP system and Salesforce utilizing the Scribe Insight platform.

Templates

Developer/Designer Administrator

` `

Scribe Workbench Scribe Server Scribe Console

Scribe Connectivity Adapter

Salesforce Adapter

AppExchange
Entry –
ERP Application
Customizations
to Salesforce

Salesforce

The Scribe technology platform is represented by the blue text in the diagram. This includes the
Scribe Insight product with its two graphical components, the Workbench and the Console
along with the specific application Adapters.

Scribe Adapters – These components enable the Scribe Insight product to easily read data
from and write data to a particular business application. Adapters give each application a
consistent look within the Scribe Workbench, shielding the user from having to deal with
the particular processing rules of the application. For example, a Scribe Adapter would
typically take care of things like primary key generation and standard default values that will
not change from implementation to implementation. The specific data mappings and
processing rules of the integration that may change are part of the template.

Scribe Workbench - The Workbench is the design environment where all the business rules
and data mappings are established, at both the object and field level. These mappings and
business rules are then saved as metadata in a portable template file that drives the
integration process at run time.

Scribe Console - The Console is the SOAP-based automation and management


environment where the events that initiate an integration process (as defined in the
template file) are established. These events can be established in real-time, via queuing or
polling, or in batch, via a schedule or file transfer, depending on the needs of the customer.
The Salesforce Integration for ERP operates in a real-time mode. In addition, the Console is
where errors are reported and corrected, system monitors and alerts are established for

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 4


proactive integration management, and business activity monitors that enhance the
effectiveness of the business applications are set up.

ERP Integration to Salesforce Template - The elements created and set up by the
Workbench and Console represent the ERP Integration to Salesforce Template. Scribe
provides the Template as a highly functional “starting point” that then can be extended and
customized via the Workbench and Console to meet each customer’s needs. Scribe
regularly updates its Templates and posts them to its Web community for download, at no
additional cost, for its customers and partners.

Salesforce Sales Order Module - AppExchange Entry – This item represents the
customizations made to Salesforce to support the information and process requirements of
an integrated back office system. These customizations include the creation of custom
objects, custom tabs, S-Controls to support Salesforce-bound processes, and a dashboard.

The Scribe Solution Architecture Advantage

To support their integration needs, a customer purchases the Scribe Solution, they receive the
Scribe Insight product (that includes the Connectivity Adapter required to support their ERP
application) along with the Adapter for Salesforce. They also purchase first year maintenance
and support for the aforementioned platform products. In addition, they receive full access at
no charge to the Scribe Web Community where they can download the latest Scribe templates
that they need. Online training, delivered via the Web Community is also available for purchase.
The customer or partner simply imports the AppExchange customizations, installs the Scribe
Insight product and required adapters, and installs the appropriate Scribe template(s). They can
immediately begin configuring the Template to meet their particular needs.

Customers receive another significant benefit from this approach. Since Scribe templates are
built on the full Scribe Insight migration and integration platform, customers can use the
product to integrate Salesforce or their ERP application with other in-house systems, import
leads from their Web site in real-time, load marketing lists, and migrate data from previous
customer systems. Scribe provides many templates for download on the Web Community at no
additional charge including ACT!, Goldmine, and Quickbooks Migrations, automatic update
from the donotcall.gov Web service, the Web Leads to Salesforce template, the eCommerce to
ERP template, and more. With Scribe, one investment supports all of your CRM and ERP data
integration needs.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 5


Functionality of the Scribe Solution

The Scribe Salesforce Integration for ERP is comprised of Scribe Insight, the Scribe Adapter for
Salesforce, and the Scribe ERP Integration Template for Salesforce (herinafter referred to as the
“Template,” which is available for download on the Scribe Web Community. The following
diagram depicts the functionality of the Template at a high-level:

Customer, Address
New/Update (ERP primary to SF New/Update
billing only)

New/Update/Del Master Product


Schedule / Price Lists

New/Update Orders (Header and New / Cancel


Detail)

New/Update Invoices (Header


and Detail)
Salesforce Sample ERP
Application

The processes depicted as dashed lines are not available in the current version of the
Template and are planned in a future update. Customers wishing to support a two-way
integration with their ERP application can add that functionality using the Scribe Insight
configurable integration platform. Typically each of these processes will add 1 to 3 days of
effort to the project. For a rich and highly functional example of these processes, customers can
reference the Scribe Integration Template for Great Plains that is available via the Scribe Web
Community at no charge.

Customer and Address– This data can be created or modified in ERP and the additions or
changes are synchronized with the other application. Scribe’s match component provides
fuzzy account matching to avoid the creation of duplicate accounts and to facilitate an initial
synchronization of existing ERP and Salesforce environments.

Master Product Schedule and Price List – This data is mastered in ERP and replicated to
Salesforce to support the order process needs in Salesforce.

Orders – New orders are integrated in real-time into the appropriate account record within
Salesforce and set as read only. As changes occur to the order records in ERP, they are
updated in real-time in Salesforce.

Invoices – Invoices that are created in ERP are integrated in real-time into the appropriate
account record in Salesforce and set as read only. The order record that relates to the
invoice is also updated to reflect the relationship. As changes occur in the invoice records in
ERP, they are updated in real-time in Salesforce.

For more detailed information regarding the integration, please see the detailed object and
process mappings outlined in Appendix A.

In addition to the integration processes themselves, customizations to Salesforce via the


AppExchange are required to support the data and processing requirements of the integrated
solution. These customizations are detailed in Appendix B.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 6


Exhibit A:

ERP Integration Template for Salesforce Functional Specification

ERP Integration Template for Salesforce


The ERP Integration Template for Salesforce (herinafter referred to as the “Template”)
represents a set of rich integration processes between Salesforce and a sample ERP application.
These integration processes can quickly be configured to work with a variety of ERP applications
in a matter of days.

Primary Objectives
The primary objectives of the Template are to:
• Deliver efficiency for the sales and accounting teams by minimizing redundant data entry
and processes.
• Provide the Salesforce user with a complete order and invoice history for each customer
including product line item details.
• Provide for the creation of reports that key off of the relationship between products
ordered and/or invoiced and customers. Customers can then report on product
purchase trends for all customers or groups of customers, such as region/territory and
rep.
• Provide business activity monitors that notify key business users of events related to their
customers purchase of the company’s products (i.e. order over certain $, order shipping
late, etc.)

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 7


Integration overview

The following flow chart illustrates the process that the Scribe Template will use to replicate data
from the back office system into Salesforce. The scope of this process flow has been minimized
to only include those elements necessary to achieve the primary objectives for the Template. At
its core, the key functionality is the population of invoices and orders by customer in Salesforce,
including the line item detail that supports product-based reporting in Salesforce.

Start

New or Changed New or changed


New or Changed
Product Catalog Order or Invoice
Account in BO
Entry in BO in BO

Does Order or
Does Product Does Account
Invoice exist in
exist in CRM? exist in CRM?
Yes CRM?
No Yes
No

No

Update Account
Insert Order/ Delete all detail
Yes Insert Product and (BO owned fields Insert Account w/
Invoice Header items for Order/
Price Book Entry only) primary address
record Invoice

Add entry to Add entry to


Update Product Update Order /
Account cross Invoice/Order
and Price Book Invoice Header
reference table if cross reference
Entry record
necessary table

Insert Order/
Invoice detail
items

Stop

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 8


ERP Interface Methods

Connectivity Adapters are included in the core Insight Platform. They are designed to provide
a wide variety of integration options to support connectivity to a varied number of ERP
applications. These Connectivity Adapters enable Scribe Insight to communicate with other ERP
applications in the following ways:
¾ Direct communication with database tables, views, and stored procedures through
ODBC 3.0 or higher and natively to SQL Server. Scribe leverages all of the filtering and
querying capability of these databases when employing this approach.
¾ The exchange of flat files or XML documents via a directory or FTP/HTTP location.
¾ The asynchronous exchange of XML messages via an industry standard message queue,
email, or integration broker.

These Connectivity Adapters support a number of approaches to integrating with various


applications, depending on the business requirements and available technical resources
including, but not limited to, the following:
1. Directly to the database – This is a simple, straightforward approach if you are
migrating from an application or your project is limited to a one-way feed of data from
that application. Scribe Insight provides a number of methods to extract “net change”
data from the application utilizing this approach.
2. Via interface tables – Many applications support a set of interface or staging tables
that provide for a safe way to integrate data into that application. For applications that
do not support interface tables out of the box, customers can create and populate them
via programming or stored procedures. After data is passed into the interface tables an
application process is initiated that validates the data and applies appropriate application
rules. With Scribe Insight, you can write to these tables and initiate the application
process automatically.
3. Via an XML/messaging interface– Many enterprise applications provides an XML
interface that is incorporated into the workflow engine within the application. Using
this method, Scribe Insight can publish XML messages into a message queue for real-
time integration with the other application. Scribe Insight can also receive XML
transactions published by the application’s workflow engine into a message queue in
real-time. For applications that do not have a workflow engine that publishes or
consumes transaction messages, customers can support this via programming or stored
procedures.
4. Via the applications API – Many applications expose a Web Services or COM-based
API where transactions can be passed to the application. Data can also be queried via
this API. Out of the box, Scribe Insight cannot “natively” integrate with this API,
however customers can programmatically convert these calls into an intermediate
format. This intermediate format can be an XML message, a flat file, or a record in a
database staging table.

The Template utilizes the XML/Messaging interface approach to publish changes out of the
Scribe Sample ERP application. Samples and examples for the other approaches are available for
review on the Scribe Web Community.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 9


Integration Touch Points – Salesforce

The following objects in Salesforce are populated in the Template:

Process ERP Objects Salesforce Object(s) Operations* Default Sharing/Filters Pre-


Frequency requisite
** Process
1 Account, Account I/U Hourly All active None
Primary Address customers
2 Product Product2 I/U Nightly All products None
PricebookEntry
3 Addresses (bill to) SCRB_SalesOrder_c I/U Hourly All posted 1,2
SalesOrders SCRB_SalesOrderLineItem (D for invoices and
SalesOrderDetails _c details) returns

* I = Insert, U = Update, D = Delete


** Frequency can be modified during implementation

Account
All active customers in the ERP system are replicated to Salesforce. If a match is found in
Salesforce, a cross reference is established between the ERP and Salesforce primary keys, and
some of the Salesforce fields are updated. Otherwise, a new account is added to Salesforce and
the cross reference is created. Note that if a match is found, only the fields “owned” by ERP are
updated within Salesforce. This is due to the nature of one-way integrations. If all fields updates
were included, then changes made by a user in the Salesforce application would be overwritten
the next time that record is updated from ERP. Since the integration is one-way, the changes
never make it down to ERP to get preserved. The customer can determine which fields should
be “owned” by ERP, but likely candidates are Account Number (from ERP), Credit Hold, Credit
Limit, Payment Terms and default Price List.

Customization option: The Template can be modified to reject the record if the account is not
found in Salesforce. The assumption in this case is that all customers should already be in
Salesforce and the integration should not add a duplicate.

The primary address from ERP is replicated to Salesforce when the integration adds a new
account in Salesforce. Contact and alternate address records are not replicated. The bill to/ship
to contact names and addresses are included in the order and invoice data that is replicated.

Product
Products and product prices are replicated to Salesforce from the ERP system. Both new
products added and changes to the existing product catalog are replicated. Price book
categories are manually maintained between the two systems. One of the implementation steps
is to manually add price book names in Salesforce. The Template requires that price books
match exactly between ERP and Salesforce. If they do not, a cross reference will need to be
created and the integration will need to be modified to translate the values.

SalesOrder
Order header and detail for all active accounts are replicated to Salesforce from the ERP system.
Both new orders added and changes to existing orders are replicated. The seek step on the
order header object in Salesforce is executed based on the entries in the order cross reference
table. If the order exists, the order header will be updated, all existing order detail items related

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 10


to the order header will be deleted, and all new related order detail items will be added. If the
order does not exist, order header and detail line items will be inserted and linked to the
appropriate account based on a lookup in the key cross reference table for accounts. If the
account can not be found in CRM, the transaction will error and entries into exception tables for
the order header and detail items will be added. Upon a successful insert of the order, an entry
into the cross reference table for orders will be made.

Orders in Salesforce have a status of Submitted in Salesforce.

The initial migration of order history can be filtered by date as needed. Orders created by the
integration are not linked to existing opportunities.

Invoice
New posted invoices (header and detail) for all active accounts are replicated to Salesforce.
Invoices do not typically change in ERP after they are posted, but changes regarding returned
items will cause updates to invoices in Salesforce. A foreign key relationship between the
invoice header and the account, as determined by a lookup in the key cross reference table for
accounts will be established. If the account can not be found in Salesforce, the transaction will
error and entries into exception tables for the invoice header and detail items will be added.
Invoices are read only in Salesforce. The initial migration of invoice history can be filtered by
date as needed.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 11


Monitors & Views

The following list of out-of-the-box monitors and views are included with the Template. All
monitors and views that are keyed off product line item detail will be based on Invoices versus
Orders, since Invoices should represent a more complete and accurate measure of products
purchased for each customer. Additional monitors and views can be created by the partner at
implementation time based on customer requirements.

Description Monitor/View Recipient Based on Default


Order or Frequency
Invoice?
Open Orders: Current Date >= Monitor Account Order Daily
Requested Delivery Date Owner
Large Orders Monitor VP Sales Order Daily
Follow up on promotion for Monitor Account Invoices Daily
targeted purchases Owner
Notification of new customer order Monitor Account Order Daily
Owner
Notification of VIP customer order Monitor VP Sales Order Daily
Reminder to call and verify product Monitor Account Invoices Daily
receipt and satisfaction of Owner
transaction
Notification of New Customer(s) Monitor
from BO
Order Rate Low Monitor
Order Rate High Monitor
Accounts Placed on Credit Hold Monitor
Accounts with No Recent Orders Monitor
Order Rate by Day View
Sales of products by region View N/A Invoices Ad-hoc
Sales of products by rep View N/A Invoices Ad-hoc
Product up-sell View N/A Invoices Ad-hoc
Product cross-sell View N/A Invoices Ad-hoc
Seasonal trend analysis View N/A Invoices Ad-hoc
Maintenance service contract View N/A Invoices Ad-hoc
renewal

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 12


Technical Overview
System Requirements
Scribe Insight, version 6.0.7 or later
Salesforce Unlimited, Enterprise or Professional Product Editions
Windows 2000, XP or 2003
Scribe Insight must be installed at the BO location (generally on the customer premises)

Salesforce Customizations Required


The Template is designed to work with the Scribe Sales Order Component which is located on
AppExchange.

General
• Scribe Adapter for Salesforce is used to connect to Salesforce for data replication and
monitors and views
• KeyCrossReference table in the Scribe Internal database is used to maintain the links
between the BO and Salesforce
• Company matching on StripCompany Suffix (account name) and first 3 digits of postal
code
• The template will default the object owner to the user login utilized by the Scribe
process. User mapping will be left to implementation.

Initial Migration and Replication


The initial migration for products, orders and invoices, as well as the initial replication for
accounts, are part of the “go live” process. Some consideration should be given to this process
when planning the implementation timeline. Processing times for large data sets could impact
how long it takes to get the Template running in a live environment.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 13


Salesforce Objects and Fields

This section lists the field mappings from Scribe ERP to Salesforce organized by the Salesforce
target object.

Account Object

ScribeERP object ScribeERP field Salesforce field


Account CustomerNumber AccountNumber
Account Active Active__C
Account City BillingCity
Account Country BillingCountry
Account PostalCode BillingPostalCode
Account State BillingState
Account AddressLine1, AddressLine2 BillingStreet
Account Fax Fax
Account CompanyName Name
Account Phone Phone
Account City ShippingCity
Account Country ShippingCountry
Account PostalCode ShippingPostalCode
Account State ShippingState
Account AddressLine1, AddressLine2 ShippingStreet
Account PrimaryAddrName Site
Account Type (set to "Customer")
Account WebSiteURL Website

Product2 Object

ScribeERP object ScribeERP field Salesforce field


Product Type Family

Product Discontinued IsActive


Product ProductName Name
Product ProductNumber ProductCode

PriceBookEntry Object

ScribeERP object ScribeERP field Salesforce field


Product Discontinued IsActive
Product PriceList Pricebook2Id

Product ListPrice, UnitPrice UnitPrice

Product UseStandardPrice (set to


FALSE)

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 14


SCRB_SalesOrder_c Object

ScribeERP object ScribeERP field Salesforce field


Addresses (bill to) AddressLine1, AddressLine2 BillingStreet__c
Addresses (bill to) City BillingCity__c
Addresses (bill to) State BillingState__c
Addresses (bill to) PostalCode BillingPostalCode__c
Addresses (bill to) Country BillingCountry__c
Addresses (bill to) Phone BillingPhone__c
Addresses (bill to) Fax BillingFax__c
SalesOrders Type Type__c
SalesOrders OrderNumber DocumentNumber__c
SalesOrders OrderNumber Name
SalesOrders Type, Status StatusCode__c
SalesOrders OrderDate DocumentDate__c
SalesOrders ShippingMethod ShippingMethod__c
SalesOrders PriceList Pricebook__c
SalesOrders PaymentTerms PaymentTerms__c
SalesOrders TotalAmount - Tax - Freight + LineItemAmount__c
Discount
SalesOrders Freight FreightAmount__c
SalesOrders Discount DiscountAmount__c
SalesOrders Tax Tax__c
SalesOrders TotalAmount Amount__c
SalesOrders RequestedShipDate RequestedShipmentOn__c
SalesOrders ShipAddressLine1, ShippingStreet__c
ShipAddressLine2
SalesOrders ShipCity ShippingCity__c
SalesOrders ShipState ShippingState__c
SalesOrders ShipPostalCode ShippingPostalCode__c
SalesOrders ShipCountry ShippingCountry__c
SalesOrders ShipPhone ShippingPhone__c
SalesOrders ShipContact ShippingContact__c
SalesOrders OriginalOrderNumber OriginatingDocument__c

SCRB_SalesOrderLineItem_c Object

ScribeERP object ScribeERP field Salesforce field


SalesOrderDetails LineNumber SortOrder__c
SalesOrderDetails ProductNumber, ProductId__c
UnitOfMeasure
SalesOrderDetails Description Name
SalesOrderDetails UnitPrice + ItemDiscount ListPrice__c
SalesOrderDetails UnitPrice SalesPrice__c
SalesOrderDetails ItemTax Tax__c
SalesOrderDetails ExtendedPrice TotalPrice__c
SalesOrderDetails Quantity Quantity__c

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 15


SalesOrderDetails QuantityCancelled QuantityCanceled__c
SalesOrderDetails QuantityShipped QuantityShipped__c
SalesOrderDetails RequestedShipDate RequestedShipmentOn__c
SalesOrders ShippingMethod ShippingMethod__c

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 16


Appendix B – Salesforce Sales Order Module, AppExchange Entry

This section details the Salesforce Sales Order Module designed to support the integration
requirements with ERP systems. The Sales Order Module represents a set of Salesforce
customizations, S-Controls, and a Dashboard that are easily installed via the AppExchange.

The Sales Order Module is designed to support two modes of operation:


1. One-way: Order and invoice history/status information is populated one-way from an
ERP system into Salesforce. In this scenario, orders are never originated from Salesforce.
The primary purpose of a one-way solution is to provide visibility to users of Salesforce to
information about customers that is “locked up” in the back office system.
2. Two-way: This extends the one-way solution to also include the ability for users within
Salesforce to place customer orders. This extended capability provides greater levels of
efficiency and accuracy, particularly for customers with high-volume order transaction
requirements. This functionality is not included in the Template.

The remainder of this section describes the customizations made to Salesforce in further detail.

Two custom objects have been added to Salesforce (SalesOrder & SalesOrderLineItem). These
objects are used to contain/present the order & invoice history from the ERP system. See
Appendix C for a detailed field list.

One set of header/detail objects can have a type field to indicate: order, invoice
or quote (quote integration is not included in the default template). The ability to relate entries
within the same order header object is included. For example, invoices can be related to the
corresponding order for easy reference. The use of one object simplifies the deployment and
customization of the integration since changes to the behavior of objects only need to be made
once.

The standard Opportunity and OpportunityLineItem objects are leveraged to provide most of the
“order entry” user interface and special business logic. This enables the solution to take
advantage of the price book within Salesforce, which is only available to the
OpportunityLineItem object within Salesforce. The majority of the data required to create an
order is initially entered as an Opportunity with associated Products (line items). Standard
Opportunity behavior provides an approximate price (without taxes, freight, etc.) using the
appropriate/selected pricebook.

Once the user is ready to convert an opportunity to an order, they can click the Create and
Submit Order link contained in the Opportunity screen.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 17


By selecting the Create and Submit Order link, an S-control is launched that enables the user to
create an order. From this originating Opportunity, a Sales Order is created/cloned into custom
Order Header and Detail objects and submitted to the ERP system in one user-driven step. A
simple page to collect additional important data, including requested ship date and shipping
address, is presented before the Sales Order is created and subsequently submitted to the ERP
system.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 18


The SalesOrder and SalesOrderLineItem objects are accessible on a custom Sales Order tab.
These objects are added as related lists on the Accounts tab and the Opportunities tab.

Regardless of how the SalesOrder header and SalesOrderLineItem records are accessed, the data
in these objects will always be a read-only view of the data “mastered” in the ERP system.
Orders created from an Opportunity round trip to ERP, get re-priced with taxes, shipping, etc.,
and then show as read-only orders from these tabs. There is one exception to the read-only rule
for orders. A custom link is shown on the SalesOrder page to enable a user to cancel an order.
This link displays an s-control page with a confirmation button. This order cancellation is picked
up and applied to the ERP system via an integration process.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 19


The Sales Order Module also includes a number of standard reports presented in a dashboard
within Salesforce. These reports are primarily focused on providing real-time insight into sales
activity sliced by product, time, sales rep, and geography.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 20


Appendix C – Detailed Field List for Custom Salesforce Objects
Source Name Type Req'd Default Sample Values Notes

SCRB_SalesOrder
s Id char(18) Y
o AccountId char(18) - lookup Y
o OpportunityId char(18) - lookup N
o OwnerId char(18) - lookup N
d Type char(10) - picklist Y Order Order, Invoice, Quote
u DocumentNumber char(15) - externalid N ABC123 not req'd, can be assigned by GP
d DocumentDate date N today( ) 1/1/2006
e OriginatingDocument char(15) N ABC456
o/u Name char(80) Y New monitors the "record name" field
u Description long varchar(32000) N
o Pricebook char(40) N Retail
u PaymentTerms char(12) - picklist N Net 30, Net 60 show picklist, match to GP
u ShippingMethod char(12) - picklist N UPS, FedEx, etc. show picklist, match to GP
u RequestedShipmentOn date N null 1/5/2006 calendar pop-up
e Amount decimal - currency N 1,500.00
e LineItemAmount decimal - currency N 1,450.00
u DiscountAmount decimal - currency N 10.00 discount for header
e TotalDiscountAmount decimal - currency N 30.00 total of lines + header discounts
u FreightAmount decimal - currency N 50.00
e Tax decimal - currency N 10.00
e TrackingNumber char(30) N 34A34BD3322
e StatusCode char(12) - picklist N null New, Submitted, Billed business status, null in mid transaction
Canceled, Invoiced, Paid (header, lines, update header with "New")
e Failed boolean N null 1 if failing adding to ERP, 0 if submitted/shared
e SubmitMessage char(255) N Error creating in ERP
a BillingStreet char(255) N
a BillingCity char(40) N
a BillingState char(20) N
a BillingPostalCode char(20) N
a BillingCountry char(40) N
a BillingPhone char(40) - phone N
a BillingFax char(40) - phone N
u ShippingLocation char(15) N warehouse
u ShippingContact char(40) N Bill Jones
a/u ShippingStreet char(255) N
a/u ShippingCity char(40) N
a/u ShippingState char(20) N
a/u ShippingPostalCode char(20) N
a/u ShippingCountry char(40) N
a/u ShippingPhone char(40) - phone N
a/u ShippingFax char(40) - phone N
s CreatedDate datetime Y
s CreatedById char(18) Y
s LastModifiedDate datetime Y
s LastModifiedById char(18) Y
s SystemModstamp datetime Y

SCRB_SalesOrderLineItem
s Id char(18) Y
o SalesOrderId char(18) - master Y
o SortOrder integer - number Y 1, 2, 3
o ProductId char(18) - lookup Y
o Description char(255) N the "record name" field
o Quantity float - number N 5.00
e QuantityShipped float - number N 3.00
e QuantityCancelled float - number N 2.00
o ListPrice decimal - currency N list price for this pricebook
o SalesPrice decimal - currency N unit price on this order (list - unit = item discount)
e Tax decimal - currency N
e TotalPrice decimal - currency N unit * qty + tax
u RequestedShipmentOn date N
u ShippingMethod char(12) - picklist N UPS, FedEx, etc. show picklist, match to GP
s CreatedDate datetime Y
s CreatedById char(18) Y
s LastModifiedDate datetime Y
s LastModifiedById char(18) Y
s SystemModstamp datetime Y

The Record Name appears in page layouts, key lists, related lists, lookups, and search results.
For example, the Record Name for Account is "Account Name" and for Case it is "Case Number".
Note that the Record Name field is always called "Name" when referenced via the API.

The Record Name field can be of type Text or Auto-Number (like an order #, case #, etc.).
It is always char(80) and is not updatable if it is an auto-number.
It must be included and come first on the related list view.

Source Key
s = standard/generated field
o = copied from Opportunity
u = entered by user
a = copied from Account
e = only from ERP system
d = default/constant

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 21


About Scribe Software Corporation
Scribe Software Corporation provides data integration and migration software solutions to help
people within an organization share customer data, to better focus - and take action - on critical
business events. By helping everybody within an organization work as one, Scribe helps its
customers sell more and provide better customer service. Scribe Software, founded in 1996, is a
privately held corporation headquartered in Bedford, New Hampshire, USA.

Scribe Software Corporation


Three Bedford Farms Drive
Bedford, NH 03110 USA

Tel: 1.603.622.5109
Fax: 1.603.622.3862

Email: info@scribesoftware.com
www.scribesoftware.com

About the author


Peter R. Chase is Executive Vice President and founder of Scribe Software Corporation. With
over 7,500 customers, Scribe is the leading provider of mid-market integration solutions. In his
capacity at Scribe, Mr. Chase has advised numerous CRM vendors as they formulated their
strategic integration strategies. He has also worked with many of Scribe’s customers to ensure a
successful rollout of their enterprise integration solutions.

SCRIBE SOFTWARE CORPORATION SCRIBE ERP INTEGRATION FOR SALESFORCE 22

You might also like