PentaInvoiceConnector to SAP Concur - Technical Guide
Applies To: PentaInvoiceConnector
- 1 What is PentaInvoiceConnector?
- 2 How Does it Work?
- 3 The Functions
- 3.1 SyncVendors
- 3.2 SyncPurchaseOrders
- 3.3 SyncBalanceSheetOUs
- 3.4 SyncFixedAssets
- 3.5 SyncLedgerAccounts
- 3.6 SyncJobs
- 3.7 SyncPaymentTerms
- 3.8 SyncSubcontracts
- 3.9 SyncWorkOrders
- 3.10 SyncInvoices
- 3.11 SyncInvoiceImages
- 4 Token Management
- 5 Logging
What is PentaInvoiceConnector?
PentaInvoiceConnector is a middleware solution that facilitates the automatic synchronization of invoices and invoice-necessary data between PENTA and SAP/Concur, allowing clients to maintain up-to-date financial data while leveraging the power of both Concur and Penta. This integration will be for Concur Invoice only. The solution is a collection of Azure functions that run on client-specified schedules to send the data necessary for clients to create invoices within Concur, and once the invoices have been marked final-approved within Concur, send these invoices to PENTA, including the image.
How Does it Work?
At regular, configurable intervals, each of several Azure functions will be triggered to sync data from PENTA to Concur, and visa versa. Only records that have been modified since the last time the given function was run will be synced. These functions access PENTA data through the PentaConnectAP API endpoints and access Concur through the Concur API, using REST calls. Each function handles different types of data, and can be independently scheduled. This and all other configurations will be set up by Penta within its Azure Management space. Below is a diagram of how this process works.
The Functions
As stated previously, each Azure function within PentaInvoiceConnector runs independently and is responsible for the synchronization of discrete types of data.
SyncVendors
Handles: Vendors
From: PentaConnectAP API - GET Vendors
SyncPurchaseOrders
Handles: Purchase Orders
From: PentaConnectAP API - GET PurchaseOrders
To: SAP Concur Purchase Order API
SyncBalanceSheetOUs
Handles: Balance Sheet Organization Units
From: PentaConnectAP API - GET OrganizationUnits
To: SAP Concur List API and SAP Concur List Item API
SyncFixedAssets
Handles: Fixed Assets and Associated Expense Categories
From: PentaConnectAP API - GET FixedAssets
To: SAP Concur List API and SAP Concur List Item API
Creates Multi-Tiered Lists in the following pattern:
Fixed Asset
Expense Categories
SyncLedgerAccounts
Handles: Ledger Accounts and the Organization Units for which they are Valid
From: PentaConnectAP API - GET OrganizationUnits and PentaConnectAP API - GET LedgerAccounts
To: SAP Concur List API and SAP Concur List Item API
Creates Multi-Tiered Lists in the following pattern:
Organization Unit
Ledger Account
SyncJobs
Handles: Jobs, Cost Types, and Cost Codes
From: PentaConnectAP API - GET Jobs
To: SAP Concur List API and SAP Concur List Item API
Creates Multi-Tiered Lists in the following pattern:
Job
Cost Type
Cost Code
SyncPaymentTerms
Handles: Payment Terms
From: PentaConnectAP API - GET PaymentTerms
To: SAP Concur List API and SAP Concur List Item API
SyncSubcontracts
Handles: Subcontracts
From: PentaConnectAP API - GET Subcontracts
To: SAP Concur List API and SAP Concur List Item API
Creates Multi-Tiered Lists in the following pattern:
Job
Subcontract
Subcontract Detail (Line Number)
SyncWorkOrders
Handles: Work Orders
From: PentaConnectAP API - GET WorkOrders
To: SAP Concur List API and SAP Concur List Item API
Creates Multi-Tiered Lists in the following pattern:
Work Order
Organization Unit
Cost Type
SyncInvoices
Handles: Invoices
From: SAP Concur Financial Integration API
To: PentaConnectAP API - POST AccountsPayableInvoiceBatch
SyncInvoiceImages
Handles: Invoice Images
From: SAP Concur Image API
To: PentaConnectAP API - POST Documents
Token Management
Concur authentication uses an OAUTH2 framework and manages access to its APIs via tokens of two types: refresh tokens and access tokens. Token management requires no input from the customer after the initial implementation when the customer supplies the company ID and uses the landing page. Refresh tokens are used to obtain access tokens, which can then be used in communications between PentaInvoiceConnector and Concur APIs. Refresh tokens can expire after 6 months, and so need to be replaced from time to time. Access Tokens can only be used for a one hour, and so, Penta will get a new one on a per-request basis to ensure validity. An initial refresh token is obtained by Penta for each client during the implementation of PentaInvoiceConnector and stored in a secured location. The refresh token is then used to obtain an access token from Concur, which then will be used for one request to Concur. As part of the acquisition of the access token, a refresh token is also sent back. If this refresh token does not match the refresh token stored by Penta for the client, the new refresh token will replace the old one, and thus avoid any token expiration issues.
Logging
By default, the following messages will be logged within Azure, and will be available upon request:
All serialized request and response objects to and from PentaConnectAP API
All serialized request and response objects to and from Concur APIs
The URLs that these messages are being sent to
The Company ID of our client
The Concur Correlation ID of each transaction with Concur (excluding Access and Refresh Token transactions)
More detailed logging can be configured on a per client, per function basis which would additionally include:
The Http response for all transactions, including headers and content.
The request content string sent with each call if applicable.
Â