Synergize Process Server
Synergize Process Server (SPS) is a fully configurable business process environment that works in conjunction with other parts of the complete Synergize solution including repositories, workflows, and documents.
-
Processes are designed and configured in a graphical environment called the Synergize Process Designer.
-
Once created, the processes run on the Process Server.
The processes are actually XML files with a Synergize Job Description .sjd file type. When the Process Designer saves a file, it will report "Job was saved successfully", which means that the XML file was written to disk.
The default save location is:
C:\Program Files\Microdea\Synergize Process Server\Processes
We recommend that you edit the Microdea.ProcessServer.Service.exe config file in the Synergize Process Server \bin directory to change the default save location for processes. That way, you can reinstall Process Server and your processes remain intact. Edit the line as follows:
Original:
<add key="ProcessPath" value="C:\Program Files\Microdea\Synergize Process Server\Processes" />
Recommended:
<add key="ProcessPath" value="C:\Users\<username>\SPS Processes" />
Actions are the building blocks of any process. In the Process Designer, a toolbox (or palette) contains a wide range of actions. Additional actions can be created for even more customization. Actions are connected together to form a flow.
Example:
Actions can derive useful information from each other through a technique known as binding. By binding a property of one action to the property of another action, dynamic data processing can be done.
Actions can not only represent discrete steps in a process but can act as logical containers, representing loops and branches in the flow. In this way, actions can be nested within other actions. In fact, nesting is often necessary to design a valid process.
Although many properties of actions are bindable, specific types of data are required by some downstream actions.
-
For example, an action might extract a specific string from a document. Although that string may be a valid date, a subsequent action would still need to convert the string to an actual date for use by actions expecting the date data type.
-
In another example, the TextFormatter action is useful as an intermediary between actions that output only integers and ones that need a valid string.
Because a property value is sometimes no longer in scope when an action has completed, nesting is necessary for some actions. This is true for actions that connect to another source, like a database. For example, a connection to the Synergize Repository must be active for queries to be made. Therefore, the Synergize Connection action contains all the actions that rely on the search and return of documents from the connected repository.
Each action is delivered as a dynamic link library (DLL) file used by Synergize Process Server (SPS). An action can appear in its own DLL or be combined with other actions in a single DLL. There are often a series of files associated with any particular DLL and they reside in the bin folder of Process Server in the associated pair of sub-folders called actions and references.
Tip: Make sure you have all references as well as the action DLL itself.
These actions are installed, when Synergize Process Server is installed.
BARCODE |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Barcode.dll |
|
|
Microdea.ProcessServer.Actions.Barcode.dll |
(Barcode Separator) Split Batch on Separator |
|
Microdea.ProcessServer.Actions.Barcode.dll |
|
|
Microdea.ProcessServer.Actions.Barcode.dll |
CALCULATIONS |
Icon Appearance |
|
---|---|---|
|
|
|
|
|
|
|
|
CONTROL FLOW |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
DATABASE |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEBUGGING |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
DOCUMENT GROUPING |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DOCUMENT MANIPULATION |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DYNAMIC PROPERTY EXTRACTION |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
FILE PROCESSING |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IMAGE PROCESSING |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
(DEPRECATED: Use instead) |
|
|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Imaging.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
LOGGING |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
MISC |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
|
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
PRINTING |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
RESULTS COLLECTION |
Icon Appearance |
DLL |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
SYNERGIZE |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
SYNERGIZE ACTIONS |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
|
|
Microdea.ProcessServer.Actions.Synergize.dll |
SYNERGIZE VISUAL ANNOTATIONS |
Icon Appearance |
DLL |
---|---|---|
|
|
TEXT PROCESSING |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
TIME ACTIONS |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
VARIABLES |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
WEB SERVICE |
Icon Appearance |
DLL |
---|---|---|
|
|
MicrodeaProcessServer.Actions.WebService.dll |
|
|
MicrodeaProcessServer.Actions.WebService.dll |
|
|
MicrodeaProcessServer.Actions.WebService.dll |
XML Payload Creator |
||
XML Payload Parser |
TRIGGERS |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
|
|
Microdea.ProcessServer.Actions.Core.dll |
Custom actions are specific to individual deployments. Ensure that the custom action DLLs appear in the correct directory: a subdirectory called Actions under the bin directory containing the Process Server executable.
Some actions also have dependencies and need one or more prerequisite DLLs added to the subdirectory called References (also under bin). You should see all the standard action DLLs already there, assuming SPS was installed correctly.
Inbox Monitoring |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
|
|
Microdea.ProcessServer.Actions.InboxMonitoring.dll |
TMW Suite |
Icon Appearance |
DLL |
---|---|---|
TMW Lookup |
|
|
TMW Reference Type Export |
|
|
TMW Reference Type Import |
|
TripPak |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Trippak |
|
|
Microdea.ProcessServer.Actions.Trippak |
|
|
Microdea.ProcessServer.Actions.Trippak |
|
|
Microdea.ProcessServer.Actions.Trippak |
GP Integration |
Icon Appearance |
DLL |
---|---|---|
|
Mercury Gate |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.MercuryGate.dll |
|
|
Microdea.ProcessServer.Actions.MercuryGate.dll |
Grimshaw |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.Grimshaw.dll |
|
|
Microdea.ProcessServer.Actions.Grimshaw.dll |
3GTMS |
Icon Appearance |
DLL |
---|---|---|
|
|
Microdea.ProcessServer.Actions.S3Gtms.dll |
|
|
Microdea.ProcessServer.Actions.S3Gtms.dll |
|
|
Microdea.ProcessServer.Actions.S3Gtms.dll |
|
|
Microdea.ProcessServer.Actions.S3Gtms.dll |
|
|
Microdea.ProcessServer.Actions.S3Gtms.dll |
|
|
Microdea.ProcessServer.Actions.S3Gtms.dll |
|
|
Microdea.ProcessServer.Actions.S3Gtms.dll |
After installation and configuration in QA and production environments you can use Synergize Process Server Actions version 1.0.0.10 SP38 including action binding.
-
Use a descriptive name for each Action.
-
A bar code reader Action should indicate which bar code is being read
-
ReadBillToCodeBC
-
-
-
The RegEx parser splitting the the bar code should reflect the bar code Action.
-
ParseBillToCodeBC
-
-
Blue box
-
The Blue Box allows the user to bind the property to a value defined or returned in a prior Action. The binding property MUST be of a like data type; String, Numeric, or Date.
-
-
Red X
-
Deletes the bound property.
-
-
Ellipsis
-
The ellipsis (...) property opens the dialog for the current property type.
-
Directory Select
-
Binding point
-
Other properties; if the ellipsis opens any other dialog menu, please contact Support who can reach out to Development or QA.
-
-
Inbox Monitoring is a collection of Synergize Process Server actions that allow you to read and process email messages from your inbox. Generally, for dealing with exceptions to expected documents, you use Synergize Workflow in conjunction with Inbox Monitoring.
When using Inbox Monitoring, first drag and drop the For Each Mail Store action onto the Process Designer canvas. Once you have configured the For Each Mail Store container action, you have a wide variety of actions that can be performed on the email messages in a mail store.
You can also create email messages and send them to specified recipients. Set up inbox monitoring actions by entering parameters for the For Each Mail Store action. Different email providers have different values.
The following are some examples from the most common email systems:
For Gmail
Activity |
Type |
Value |
---|---|---|
ConnectionType |
|
IMAP |
IMapPassword |
|
your Gmail password |
IMapPort |
|
993 |
IMapServer |
|
imap.gmail.com |
IMapUserName |
|
Your full email address (including @gmail.com or @your_domain.com) |
IMapUseSSL |
Boolean |
True |
IMapUseStartTLS |
Boolean |
False |
SmtpPort |
|
587 |
SmtpServer |
|
smtp.gmail.com |
SmtpUseSSL |
Boolean |
True |
SmtpUseStartTLS |
Boolean |
True |
For Exchange (Using IMAP)
Activity |
Type |
Description |
---|---|---|
ConnectionType |
|
IMAP |
IMapPort |
|
993 |
IMapServer |
|
outlook.office365.com |
IMapUserName |
|
Your username |
IMapUseSSL |
Boolean |
True |
IMapUseStartTLS |
Boolean |
False |
SmtpPort |
|
587 |
SmtpServer |
|
smtp.office365.com |
SmtpUseSSL |
Boolean |
True |
SmtpUseStartTLS |
Boolean |
True |
For Exchange (Using EWS)
Activity |
Type |
Description |
---|---|---|
ConnectionType |
|
EWS |
ExchangeDomain |
|
Your local exchange domain (for example, yourcompany.com) |
ExchangeMailBox |
|
Your inbox email address (for example, accounting@yourcompany.com) |
ExchangePassword |
|
Exchange Password |
ExchangeUserName |
|
Exchange Username |
ServerName |
|
Exchange Server Endpoint (fully-qualified URL) |
For Hotmail
Activity |
Type |
Description |
---|---|---|
ConnectionType |
|
IMAP |
IMapPort |
|
993 |
IMapServer |
|
imap-mail.outlook.com |
IMapUserName |
|
Your main address in full (including @hotmail.com, @live.com, or @outlook.com) |
IMapUseSSL |
Boolean |
True |
IMapUseStartTLS |
Boolean |
False |
SmtpPort |
|
587 |
SmtpServer |
|
smtp-mail.outlook.com |
SmtpUseSSL |
Boolean |
True |
SmtpUseStartTLS |
Boolean |
True |
Process Server can be used in a Synergize-TMW integration for producing invoices or other documents in bulk for printing or emailing to customers. There is a special collection of Synergize Process Server actions that allow you to bulk print or email documents.
Note, for Truckmate, this integration is accomplished with Bulk Print. With the release of Bulk Print 2.3.0, this Print Renditioning function for TMW Suite is now supported in Bulk Print.
Synergize Process Server can read through a searchable PDF to perform certain actions in a business process. For example, you can follow these steps to split a batch and extract data.
A split is created. The split is a self-contained document, with pages from the original batch.
-
Does this batch contain the right kind of documents? If not, skip the Split Searchable PDF Batch action.
-
Is this a valid page or a garbage page? If the page should not be included, discard it.
-
Look on each page of the batch for a split condition. If found, or if end of batch file, send split to next step.
-
All valid pages represent a document that is processed by all steps (actions) in the Split Searchable PDF Batch container.
-
After the split is created, the process can extract data. Batch page numbers and the new split document page numbers are separate. Actions in the container refer to the split off document and not the original batch. For example, extracting data from the "first" or "last" page means the first or last page of the split document.
-
The actions in the split container can accomplish many different business processes. In this topic, we'll just focus on the PDF extraction action: Extract Value From PDF Document.
-
To extract data, determine which page should contain the data (first, last, or a specific one) and then define a region. Regions are defined with an X, Y coordinate plus Width and Height. This is measured in points, with (0,0) being the bottom left corner of the document. The default region of 0, 0, 0, 0 means the whole page; you should define a more specific region if the data may exist in more than one place on the page.
-
Search for a specific keyword in the specified region or extract the data directly from the region.
-
The keyword is often a field label or a heading that identifies the data.
-
You can specify where the data should be in relation to the keyword (below, to the right, etc.).
-
Note that the data can be positioned outside of the defined region, as long as the keyword appears within.
-
-
Searchable PDF files can be split into discrete individual documents, using the SplitPDF action. In the following process, a typical series of steps is taken. The actions in green boxes and faded out are disabled.
-
All processes start with some sort of trigger. Commonly a delay trigger is used and the process is launched manually, as in this example.
-
Establish a connection to the Synergize repository. This connection is also a container, so all actions that assume a repository will use the one connected in this step.
-
Establish a connection to an external database. In this case, a connection is made to a TMW database. Like the Synergize Connection, this is a container so that all actions assume the connected database when referencing tables, views, and fields.
-
A loop is another important kind of container. The For Each File loop monitors a directory and iterates each time a file within that directory matches its criteria. In this case, the search pattern is *.pdf and the minimum file age is three (3) minutes.
-
The Split Searchable PDF Batch action is yet another container that iterates through a PDF to split it into separate documents for storage in the Synergize repository. In this loop, multiple actions extract and manipulate data from the source document, so that the individual splits can be stored with meaningful metadata.
For example, Invoice Number, Date, and PO Number are captured in each iteration of this loop.
-
Once the data is extracted, the process verifies the items that can be reviewed against existing database entries. In the PONumberLookupSuccess Select Branch container, the split off document is stored in the repository, regardless of whether a PO number is found or not. However, if the PO Number is missing, an error message is stored with the document.
To build a Synergize Process Server process, follow these basic steps:
1. In Process Designer, drag actions from the toolbox onto the canvas.
2. Each process must start with a "trigger". Commonly you can use a delayed execution for testing where you will be starting the process yourself manually.
Once the process is fully tested, you can change the trigger to a timed execution so the process will run at a specified time.
3. Many actions rely on predetermined connections or bulk processing actions. In other words, many actions are designed to be nested inside other actions. For example, you may establish a Synergize Repository connection and nest a bunch of actions inside that connection so they can all rely on transactions with the repository.
4. Once you have created a complete process, test it:
-
Switch from the Process Designer view to the Process Overview.
In the Synergize Processes tree view, right-click the Process you have created and select Process Overview from the menu.
-
Under Process Status, click Start. The results of your test will be displayed in the Activity Log area.
Since the April 2016 release of SPS 1.0.2.8, as long as you had the required Synergize Server up and running, you could create a new process by exporting, importing, and modifying an existing one. You can export and import an existing process and then modify it for the specific environment where it will be running.
Export a Process
SPS processes can be exported to corresponding SJD files in a backup directory.
The SJD file name will be based on the process name.
If a process with the same name has already been saved, a version number is appended to the name.
We recommend that you use the Export Processes function, instead of copying and renaming files using Windows. Also, if you export processes and then copy the files into a different Processes directory, Process Designer will not be able to work directly with those files. They must be imported using the Import Process function.
Import a Process
You can import an SJD file into a different process server. Alternatively, you can use Windows to copy the entire Processes directory from an existing installation to a backup directory and import the SJD files one at a time. These steps assume that your process SJD files are being imported from a backup directory. We do not recommend importing directly from a live Processes directory.
-
Right-click Synergize Processes and choose Import Process.
-
Click Browse. Specify the file you want to import and click Open.
Usually the SJD process file you want is in the Processes directory, which you should have backed up in an earlier step. Often a process file name is system-generated as a long alphanumeric string. However, if you used the Export Processes function, all SJD files will have meaningful, versioned names.
Modify a Process
You can choose to review and modify properties for the process and actions.
-
Click Yes. If you select No, the process is imported as-is.
-
You can modify process-wide parameters, like the name and description of the whole process.
-
You can update the properties of each connection action. The import wizard steps you through each connection action in the imported process. Connection actions are one of the following:
-
Synergize Connection
-
Database Connection
-
-
If the way you connect to the Synergize repository or a database is different in this new environment, you can take the opportunity to update the associated properties. For example, you may have a new Repository name.
-
Click Finish, when you have completed the last connection action you want to update.
-
By entering new property values, you're preparing the process so that it can be viewed and edited. You can test the connection when you enter the information. If a connection action is failing to connect, it will try again several times, increasing the waiting time to determine that your connection information is not valid.
Caution: If a process has errors, sometimes the Process Designer cannot even be opened.
-
Finally, test your imported process.
Like most modern programming languages, the Process Server supports exception handling. When you use Process Designer to create process flows, you can anticipate and handle certain error conditions with the use of a group of Debugging actions.
Generally, any unanticipated error is called an exception, as in "exception to the norm".
Anticipated errors, like user input or calculation boundaries are usually handled directly.
However, even these kinds of anticipated errors can be handled using the same structures as exceptions.
In Process Server the Debugging actions include an error container.
In conjunction with an error container, exceptions can be caught, generated, handled, or "rethrown".
There is also a facility to record the error conditions or even normal processing information in a debug log, with the Write to Debug action.
With the correct DLL installed, you should see the following actions on the palette in Process Designer:
Standard HTTP requests contain specific information in the URL that can be passed to web services to get results.
For example, a GET request is structured based on the key-value pairs that you specify through the key definition and key-value collection entries. A typical Get request might look like this:
http://localhost.com:9999/app/api.do?function=login&username=username&password=password&corp-code=corporation-code
The server response often comes back with XML in the body of the response, which you can parse using the Query XPath Expression action. The response might look like this example:
<result>
<token>a123-456-789-47df4343bf383df43ae3</token>
<user_id>563542</user-id>
</result>
With a PUT request, you are essentially writing to the web service. You may be writing a new record in the service database or you may be modifying an existing one. As with the GET request, a PUT is structured based on the key-value pairs you provide.