- Site: https://gwws.greywolf.com/p21/wsdl.aspx?result=wsdl&v=1
- Entities:
- ItemsProductsSelect
- SalesOrderSelect
- SalesCustomerSelect
- SalesOrderPaymentAuthInsert
- SalesOrderPaymentSelect
- SalesOrderLinesSelect
- SalesCustomerInvoicesList
- SalesCustomerInvoiceLinesSelect
- ItemsWarehouseList
- ItemsWarehouseProductList
- SalesShipToSelect
- SalesQuoteList
- SalesQuoteLinesSelect
- ROB- Connect 4.7
- Developers: (P) Greg Deane (A) Anonymous User
- Integrations: Accounts (From/To), Invoices (From), Payments: (To), Payment Notes: (To), Credit Invoices: (From), Surcharge Fee Invoices (To)
- Current Branches
4.7/develop
- P21DB Module is standard SQL server integration
- The Prophet 21 Rest API requires API Key authentication.
- The Prophet 21 API is a set of services that enable you to design your own applications that access Prophet 21's business entities and data in real time. For example, if you build an application to create customers, any customers added or updated through that application are immediately available for processing in Prophet 21. Likewise, if you build an application to create orders, orders created through the application are immediately available for processing. You do not have to import data created via the Prophet 21 application. The API is a tool for your internal development, or as an integration point for your business partners. As such, the API requires a comprehensive understanding of the Prophet 21 ERP.
- The Prophet 21 API is a website that hosts web services. The IIS server manages the incoming web service calls and relays them to Prophet 21 sessions. The IIS Servier also executes business logic. The Prophet 21 API installation includes service management software, a nonvisual version of the Prophet 21 application, and the related support components for both. The API runs against the Prophet 21 database. The API expects to run against a version of the Prophet 21 database that precisely matches the nonvisual application's nonvisual version by the version number.
You can use the web services (as deployed by the API website) for internal consumption, but ideally, you take extra security precautions when exposing services to external partners or third-party devices.
We recommend that you implement one or more of the following security strategies:
- Set up a proxy IIS server to deploy your web services, which wrap the internal Prophet 21 services. Proxy IIS Servers tailor your business logic to precisely what your customers need. Use this method to design third party applications or internal business applications, create isolation for contracts, and provide protection for your web services.
- Restrict access to subsections of the API deployment using third party consumer keys. Use this method to limit access to specific branches of the API service tree. Even though this method is easy to implement, it does not allow you to tailor the look and feel of the web service based on the consumer.
- Implement HTTPS over SSL when required.
Web Services
A domain object represents a logical entity within the Prophet 21 business system, and the API web services process these domain objects. If you are familiar with the database schema, this may translate to tables; however, in some circumstances, a single domain object may represent a grouping of multiple tables. For example, the OE_HDR is the table, but Orders is the related domain object.
Likewise, domain objects may include detailed sub domain object logic alongside or within them. For example, Lines exist within Orders.
For more information about each specific endpoint's capabilities, click the web service link on the API home page. Doing so provides the following information:
- REST – Callable URLs, verbs, and parameters
- SOAP – WSDL definition
If the service operates on a domain object, you also receive the full domain object definitions.
- CRUD services allow you to create and update operations on a given domain object.
- You can perform Get operations by an ID or variable criteria using CRUD services.
- CRUD services accept a domain object as content and return domain objects.
Action/Functional services
- Action and functional services perform functionality based on parameters passed into the service.
- Use these services to perform system actions rather than manipulate domain objects. For example:
- GetPrice – Accepts an item and context information and returns a pricing object.
- InventoryMovement – Creates an inventory adjustment that corresponds with moving inventory from bin to bin. InventoryMovement uses item and bin context information and returns the quantity that Prophet 21 was able to move.
Pass through services (specialty calls)
Pass through services are highly specialized web service calls that require specific functional knowledge. For example, E-commerce /XBG calls pass specific documents as a parameter with variable result documents. These calls require specialized knowledge of B2B functionality.
NOTE: Before using pass-through services calls, contact Support for related documentation. Locate Ecommerce call documentation in the CodeExamples resource folder. As of version 12.16, find this documentation and XML samples in the Ecommerce folder.
Usage
API service calls are a multi-step process. Start by acquiring a token that permits API access to your running session. Each subsequent call against the API must include that token information. Refer to the Code Examples topics in the SDK documentation for more information on tokens.
NOTE: When exploring the API and submitting calls, changing data is effortless. Make sure you set up your configuration to call against a mock database before experimenting with web service executions and code examples.
Typical CRUD web services operation
Create a New Domain Object :
- GetNew – Use this call to set up a domain object template; you do not need to store templates locally to create new data: l GET http://[hostname:port]/api/sales/orders/new
- Populate the domain object or XML document with your data. You do not need to provide all XML fields in the domain object; rather, including the critical fields. Similar to the imports in Prophet 21, transactions require only a small subset of available columns.
- Update the domain object: l POST http://[hostname:port]/api/sales/orders/
GET by Query String:
Use GET http://[hostname:port]/api/sales/orders?$query=PoNo EQ ‘MYPONO’
For more information on the possible Query operations, review the query syntax options in the Query Filters topic in the SDK documentation.
Use the web service calls as you would any SOAP or REST web service. Alternatively, you can use the provided SOA Rest Client to implement your call in a more traditional programming environment.
The Prophet 21 SOA CodeExamples application, included in every SOA installation, provides an opportunity to execute simple web services (via the .exe) or examine simple code samples (via the .sln) that you can use to incorporate the API into your existing applications. The following example illustrates how to create an order using the SOA REST Client in a C# application. This example assumes that you have already acquired the ApiToken.
Create, Read, Update, Delete, in P21DB all use Standard SQL Operations
CONNECT REQUIREMENT:
- Account Sync from P21 to The Payment Hub/Virtual Terminal Application via Clarity Connect.
- This feature is associated with the Account Setup Email Notification Workflow.
- The Virtual Terminal User Role
- May need to add Role UI to the Account Admin’s Users Dashboard to setup AR vs. Account Viewer vs. etc. Profiles.
- Account Admin vs. Account Viewer to start (Viewer has not edit permissions)
ROB: https://clarityventures.sharepoint.com/:w:/s/ROB-Integration/Ebb5Fb2E5nFOvRHW54GA9igBpwIaRcB_UZpYE2Ue-v2gPw?e=sP9CTe
- Payments
- Payment Notes & Credit
- Adding Transaction Notes
- Credit Invoices
P21 Has only been implemented in one project, so there is limited experience among Devs.
P21 Documentation and resources are behind account and/or pay walls via Epicor resources.
https://clarityventures-my.sharepoint.com/:x:/g/personal/eric_weathers_claritymis_com/EbtkC5a0pXNEr5tkT6WFVYwB6hYa5sbYcAcgTbdzh-uD5g
Phase 2