SAP Business One
Workist connects to your company database through the SAP Business One Service Layer. Workist reads business partners and items as master data and creates completed orders as sales orders. Nothing is installed in SAP Business One.
This page covers SAP Business One. For SAP ECC and SAP S/4HANA, see SAP Connector.
Overview
Prerequisites
- SAP Business One with the Service Layer. Workist must be able to reach the Service Layer over the internet.
- A Service Layer user that may read business partners, items and catalog numbers and create sales orders and attachments.
- Order creation is currently tailored to a specific field structure in SAP Business One. Agree the setup with your Workist contact person beforehand.
Data flow
| Direction | Content | When |
|---|---|---|
| SAP Business One → Workist | Business partners, contact persons, addresses, items, catalog numbers | daily at 01:30 UTC and on demand |
| Workist → SAP Business One | Sales order with lines and attachments | as soon as an order is completed |
What we read from SAP Business One
| Master data in Workist | Source in SAP Business One |
|---|---|
| Customers | Business partners (customers) |
| Customer contacts | Business partner contact persons |
| Delivery addresses | Business partner addresses of type ship-to (bo_ShipTo) |
| Invoice addresses | Business partner addresses of type bill-to (bo_BillTo) |
| Articles | Items |
| Customer-specific item numbers | Business partner catalog numbers (AlternateCatNum) |
- The integration's filter queries limit which business partners and items Workist reads. Without a filter, Workist reads all of them.
- Workist does not read prices, unit conversions, framework agreements or quotes from SAP Business One.
- Business partners without an automation flag: enter a business partner property (for example
Properties50) and a text in the integration. Business partners that do not have this property get the text as an internal note in the Workist master data. If the "Customer internal note" check is active in the channel, their orders go to manual processing, see Validation checks.
The field reference lists every field Workist takes over.
What we write to SAP Business One
For every completed order, Workist creates a sales order:
- Header: client, order number, order date, delivery date, customer contact, note text, and the delivery and billing address.
- Lines: item number and quantity. SAP Business One sets the price. Exceptions: if the business partner has property 51, Workist takes the unit price from the document. If "Calculate Prices with the API on order create?" is on, Workist asks SAP Business One's price determination for price and discount and writes them to the line.
- Addresses: if Workist matched the address to an address ID from master data, the order refers to that address. Otherwise Workist writes the address into the order as text. If the document has no address, Workist uses the business partner's default address.
- Attachments: on request, Workist attaches the order document to the order. Workist attaches the original email and an enclosed delivery note if you enter a document name for them.
- The order is created as not confirmed.
As the reference on the document in the Workbench, Workist stores the sales order's internal key (DocEntry), not the document number SAP Business One displays.
Workist only creates new sales orders and does not change existing documents.
Setup in the Workbench
-
Open Settings → Business Systems (ERP) → Integrations and click Connect next to SAP Business One.
-
Enter the connection:
Field Content Integration Name any name Service Layer URL address of your Service Layer SAP Business One Company DB name of the company database Service Layer User, Service Layer Password credentials of the Service Layer user Order Channels channels whose orders are created as sales orders -
Optional:
Field Effect Filter Query to filter the client entries to be synced to Workist filter for the business partners Workist reads Filter Query to filter the item entries to be synced to Workist filter for the items Workist reads Avoid delivery dates in the past if the delivery date is missing or in the past, Workist sets the next day Calculate Prices with the API on order create? when creating the order, Workist asks SAP Business One's price determination for each line's price and discount Overwrite value for the Default Shipping Method on the Line Item shipping method Workist writes into every line Business partner property and text for non-automated business partners see What we read from SAP Business One Upload original order to Business One? attaches the order document to the order Custom document name for emails or for delivery notes to upload also attaches the original email or an enclosed delivery note Custom document type field in Business One writes the matching document name (order, email, delivery note) into this field of the attachment -
Click Create. Trigger master data update loads the master data right away.
How the master data reaches the channels and how Workist switches the channels over is described under What all connectors have in common.
Error handling
If SAP Business One rejects the sales order, the order appears again among the open documents, with the Service Layer's message. Workist does not retry automatically. Fix the cause and complete the order again after Reopen for assistance.
If Workist cannot query the price determination while creating the order, Workist still creates the order. SAP Business One then sets the price.
Limitations
- Workist only transfers orders. The connector does not support requests for quotation, invoices or other document types.
- Workist does not check whether a sales order already exists for the order before creating one. If an order is completed again, another sales order is created.
Field reference
Fields read
Customers
| Workist column | From SAP Business One |
|---|---|
client_id1 | CardCode |
internal_note | Text from the setting for non-automated business partners, when the business partner does not have the property named there |
client_contact_person1 | MailAddress |
company_name | CardName |
address1 | Address |
address2 | MailAddress |
zip_code | ZipCode |
city | City |
country_subdivision | County |
country | Country |
extra_data | user-defined fields (U_…), default bill-to address (BilltoDefault), default ship-to address (ShipToDefault), properties 11, 51 and 52 |
Customer contacts
| Workist column | From SAP Business One |
|---|---|
partition_id | CardCode |
contact_id | InternalCode |
first_name | FirstName |
last_name | LastName |
phone | Phone1 |
email | E_Mail |
Delivery and invoice addresses
Both address types have the same fields.
| Workist column | From SAP Business One |
|---|---|
partition_id | BPCode |
address_id1 | AddressName |
address_id2 | GlobalLocationNumber |
name | AddressName2 |
address1 | Street + StreetNo |
zip_code | ZipCode |
city | City |
country_subdivision | County |
country | Country |
misc | BuildingFloorRoom |
Articles
| Workist column | From SAP Business One |
|---|---|
article_id1 | ItemCode |
description | ItemName + User_Text |
description_boosted | User_Text – else ItemName |
order_units | SalesUnit |
sales_units | SalesUnit |
extra_data | user-defined fields (U_…), property 12 |
Customer-specific item numbers
| Workist column | From SAP Business One |
|---|---|
partition_id | CardCode |
article_id1 | ItemCode |
article_id2 | Substitute |
description | ItemName + User_Text |
description_boosted | ItemName |
order_units | SalesUnit |
sales_units | SalesUnit |
extra_data | user-defined fields (U_…), property 12 |
Fields written
Listed are the fields Workist fills. SAP Business One sets the document number, prices without price determination, totals and taxes itself.
Sales order – header
| Sales order field | Content |
|---|---|
AttachmentEntry | Attachment with the order document (only when “Upload original order to Business One?” is on); original email and an enclosed delivery note when a document name is set for them |
DocDate | Order date |
TaxDate | Date the document arrived in Workist |
DocDueDate | Delivery date. With “Avoid delivery dates in the past”: the next day when the delivery date is missing or in the past |
CardCode | Client (customer number) |
NumAtCard | Order number |
ContactPersonCode | Customer contact, if matched |
Confirmed | fixed: N (not confirmed) |
Comments | Note text, if present |
BillToCode | The business partner's default bill-to address when the document has no billing address |
PayToCode | Billing address (address ID from master data) – else the business partner's default bill-to address |
ShipToCode | Delivery address (address ID from master data) – else the business partner's default ship-to address |
Sales order – lines
| Line field | Content |
|---|---|
LineNum | Position (counting from 0) |
ItemCode | Item number |
Quantity | Quantity |
UnitPrice | Unit price from the document when the business partner has property 51 – else the price from SAP Business One's price determination (only with “Calculate Prices with the API on order create?”) – else SAP Business One sets the price |
DiscountPercent | Discount from the same price determination |
ShippingMethod | Value from “Overwrite value for the Default Shipping Method on the Line Item”, if set |
Sales order – address as text
Only when the address in the document is not matched to an address ID from master data.
| Field | Content |
|---|---|
BillToStreet / ShipToStreet | Street and number |
BillToCity / ShipToCity | City |
BillToZipCode / ShipToZipCode | Postal code |
BillToCountry / ShipToCountry | Country |
BillToAddress2 / ShipToAddress2 | Company name |
BillToAddress3 / ShipToAddress3 | Name |