Notes from B&T Acquisitions API Implementation

B&T Acquisitions API

See also: Polaris & TS360: The Acquisitions API in Action

Background

Polaris users can configure an API connection from TS360 to Polaris to streamline acquisitions workflow. Once configured, submitting an order in TS360 will automatically import MARC records into Polaris, create a Purchase Order, create item records, release the PO, and order the materials.


TS360 SetUp Document

On the TS360 side, Baker & Taylor needs some information from the customer’s Polaris system. Customers should create a workbook with the following pieces of information:

PAPI Access

B&T needs API credentials to access Polaris:

  • URL: https://{your_domain}/PAPIService/
  • Access ID: [Created in WebAdmin]
  • Key: [Created in WebAdmin]
  • Staff user Credentials: [Create new staff user in Polaris. The account does not need Admin permissions, but will need all permissions in the “Acquisitions” subsystem.]
  • Domain: PIN

Optional: Edit the permissions of the API Key through web-based PolarisAdmin

Vendor Codes

The Polaris-equivalent of B&T’s Vendor Code field is Polaris’ Suppliers. Provide a list of Suppliers used for B&T ordering.

B&T can use either the “Name” or “AlternativeName” field in the Supplier record. Values must be less than 15 characters with no special characters.

By default, Polaris will use Alternative Name. To use Supplier Name, change setting in SA – [Branch] – Acq/Serials – API: Use Fund Name.

Branches

In Polaris: Organizations. Provide a list of branches that will order materials from B&T. This might already be set up in TS360

B&T TS360 Term Polaris Term
Location Code Abbreviation
Description Organization Name

Collections

A list of Collections from Polaris. This may already exist in TS360.

Provide both Collection name and abbreviation.

Funds

Provide a list of funds from Polaris used for B&T ordering.

B&T can use either the “Name” or “AlternateName” field in the Fund record. Values must be less than 15 characters with no special characters.

If multiple branches order materials, check the settings in SA – Profiles – Acquisitions / Serials – Acq fund droplist setup. Depending on how funds are set up, “Display all funds linked to the destination’s parent library (no filter)” may need to be selected.

Duplicate Profile

This is what Polaris calls an Import Profile.

The import profile name must be less than 15 characters and contain no special characters.

Recommendation: Create a new profile, copied from the existing B&T brief import profile named “[Library] BT API”

The import profile must contain profile-specific duplicate detection criteria, not system defined criteria. At a minimum, the ISBN=ISBN rule should be supplied as one of the pieces of criteria.


Other TS360 Configuration

Prices

The list price needs to be set at the 020$c in the TS360 MARC profile tag rules. The discounted price can be used in the 970$p, but the API will throw an error if the price is not included in the 020.


Frequently Asked Questions

When canceling an order, will we still need to cancel items in both Polaris and TS360.

Yes, the API integration is for ordering only, so the cancellation process is unchanged.

How does this work for Leased materials, direct orders, or other orders placed on the website?

The API integration will not affect this type of ordering. When placing an order through TS360, two new options will appear:

  • Acquisitions API - Polaris
    • Use the new Polaris API integration to order materials.
  • Bypass Acquisitions API - Polaris
    • Traditional ordering that ignores the API configuration. This option will be used for ordering Leased materials or other direct orders.

How are the MARC records added to Polaris? I don’t see a file in the import job queue

Although the import profiles are used in the integration, records are not imported using the traditional import job queue. Instead, MARC data is transferred to Polaris via JSON which is parsed to create the brief MARC record. The imported JSON data can be seen in the SQL server with the Polaris.Job_PurchaseOrders table. (Cast the “Data” column as a varchar(max) )


Appendix: Sample SQL Queries

Suppliers

Select S.SupplierName
	, S.RecordName AS 'AlternativeName'
	, case when ElecCommFlag = 1 then 'EDI' ELSE '' END AS EDI
From Polaris.Suppliers S
WHERE S.OrganizationID = 11 	-- Change OrganizationID
AND ( 
		(SupplierName like '%Baker%') OR (SupplierName LIKE '%B&T%') OR (RecordName like '%Baker%') OR (RecordName LIKE '%B&T%')
	)
ORDER BY 3 desc, SupplierName

Collections

Select C.Name, C.Abbreviation
From Polaris.OrganizationsCollections OC
JOIN Polaris.Collections C
	ON C.CollectionID = OC.CollectionID
WHERE OC.OrganizationID = 11 -- Change OrganizationID
	and c.name not like 'zz%'
Order by C.Name

Funds

Select F.Name, f.AlternativeName
From Polaris.Funds F
JOIN Polaris.FiscalYears FY
	ON FY.FiscalYearID = F.FiscalYearID
	AND FY.FiscalYearStatusID = 1
WHERE F.OrganizationID = 11	 -- Change OrganizationID
	and F.Name NOT LIKE 'zz%'
ORDER BY 1

2 Likes