# Purchase-to-Pay input fields

> Input fields for all Purchase-to-Pay input tables in Process Mining on Automation Suite, including field names, data types, and mandatory status per object.

## Introduction

This section contains an overview of the fields for each of the input tables of **Purchase-to-Pay**. For each object the fields are listed. For each field, the name and a data type are displayed. Apart from that, it is indicated whether the field is mandatory if the object is included in the Purchase-to-Pay process.

:::note
Optional tables should be part of the input, but may contain no records. When a field is mandatory, it should not contain `NULL` values.
:::

| Object | Table | Mandatory Y/N |
| --- | --- | --- |
| Purchase requisition | `Purchase_requisitions_base_raw` | N |
| Purchase order | `Purchase_orders_base_raw` | Y |
| Purchase order item | `Purchase_order_items_base_raw` | Y |
| Goods receipt | `Goods_receipt_base_raw` | N |
| Invoice | `Invoices_base_raw` | N |
| Invoice item | `Invoice_items_base_raw` | N |
| Accounting | `Accounting_documents_base_raw` | N |
| Payment | `Payments_base_raw` | N |
| Events* | `Event_base_raw` | Y |

*) **Events** is not an object of the Purchase-to-Pay process, but an events table is mandatory for a correct working of the Purchase-to-Pay process app.

The following illustration shows the relations between objects of **Purchase-to-Pay**.

![object-relation diagram Purchase-to-Pay](https://dev-assets.cms.uipath.com/assets/images/process-mining/process-mining-object-relation-diagram-purchase-to-pay-471238-5ac09649-5fdf0da1.webp)

:::important
Table names and field names are case-sensitive. Always make sure that the field names (column headers) in your dataset match the field names (in English) in the following tables and that the file names match the table names.
:::

### Field types

The following table describes the different field types and their default format settings.

| Field type | Format |
| --- | --- |
| boolean | `true`, `false`, `1`, `0` |
| date | `yyyy-mm-dd` |
| datetime | `yyyy-mm-dd hh:mm:ss[.ms]`, where `[.ms]` is optional.  Refer to the [official Microsoft documentation](https://support.microsoft.com/en-us/office/format-a-date-the-way-you-want-8e10019e-d5d8-47a1-ba95-db95123d273e#:~:text=what%20you%20want.-,Select%20the%20cells%20you%20want%20to%20format.,format%20you%20want%20in%20Type) if you want to change the date format. |
| double | Decimal separator: `.` (dot)  Thousand separator: none |
| integer | Thousand separator: none |
| text | N/A |

## Purchase requisition

### Purchase_requisitions_base_raw

The following table describes the fields of the `Purchase_requisitions_base_raw` table.

| Name | Data type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Purchase_requisition_ID` | text | Y | The unique identifier of the purchase requisition. |
| `Purchase_requisition_creator` | text | N |  |
| `Material` | text | N | The requested material. |
| `Material_group` | text | N | The categorization of the requested material. |
| `Purchase_requisition` | text | N | A user-friendly name to identify the purchase requisition. |
| `Appproval_status` | text | N | The status of the purchase requisition in the process. For example, ‘open’, ‘closed’, ‘pending’, ‘approved’, etc. |
| `Purchase_requisition_type` | text | N | The categorization of purchase requisitions. |
| `Quantity` | text | N |  |
| `Requisitioner` | text | N | The person who requested the purchase requisition. |
| `Value` | double | N | A monetary value related to the purchase requisition. |

## Purchase order

### Purchase_orders_base_raw

The following table describes the fields of the `Purchase_orders_base_raw` table.

| Name | Data type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Purchase_order_ID` | text | Y | The unique identifier of the purchase order. |
| `Company` | text | N | The company for which the purchase order is created. |
| `Creation_date` | date | N | The date on which the purchase order is created. |
| `One_time_supplier` | boolean | N | An indicator if the supplier is a one time supplier. |
| `Purchase_order` | text | N | A user-friendly name to identify the purchase order . |
| `Approval_status` | text | N | The status of the purchase order in the process. For example, ‘open’, ‘closed’, ‘pending’, ‘approved’, etc. |
| `Purchase_order_creator` | text | N | The person who created the purchase order. |
| `Purchase_order_type` | text | N | The categorization of purchase orders. |
| `Purchasing_group` | text | N | The purchasing group associated with the purchase order. |
| `Purchasing_organization` | text | N | The purchasing organization associated with the purchase order. |
| `Supplier` | text | N | The supplier associated with the purchase order. |
| `Supplier_country` | text | N | The country associated to the supplier. |
| `Supplier_region` | text | N | The region associated to the supplier. |

### Purchase_order_items_base_raw

The following table describes the fields of the `Purchase_order_items_base_raw` table.

| Name | Type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Purchase_order_item_ID` | text | Y | The unique identifier of the purchase order item |
| `Purchase_order_ID` | text | N | The unique identifier of the purchase order |
| `Purchase_requisition_ID` | text | N* | The unique identifier of the purchase requisition. |
| `Purchase_order_item_creator` | text | N |  |
| `Business_area` | text | N | The business area associated with the purchase order item. |
| `Cost_center` | text | N | The cost center associated with the purchase order item. |
| `Customer` | text | N | The customer on behalf of whom the purchase order item is created. |
| `Customer_country` | text | N | The country associated to the customer. |
| `Customer_region` | text | N | The region associated to the customer. |
| `Delivery_complete` | boolean | N | Indicator if all ordered goods are received. |
| `Latest_actual_delivery_date` | date | N | The latest actual delivery date for the purchase order item. |
| `Latest_expected_delivery_date` | date | N | The latest originally confirmed delivery date for the purchase order item. |
| `Material` | text | N | The ordered materials. |
| `Material_group` | text | N | The categorization of the ordered materials. |
| `Plant` | text | N | The plant associated to the purchase order item. |
| `Purchase_order_item` | text | N | A user-friendly name to identify the purchase order item. |
| `Storage_location` | text | N | The storage location associated to the purchase order item. |
| `Quantity` | text | N | The quantity and the unit of measurement ordered. |
| `Value` | double | N | The monetary value related to the purchase order item. |

* If you want to include **purchase requisition** events in the process graphs, the `Purchase_requisition_ID` field is mandatory.

### Goods_receipt_base_raw

The following table describes the fields of the `Goods_receipt_base_raw` table.

| Name | Type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Goods_receipt_id` | text | Y | The unique identifier of the goods receipt. |
| `Purchase_order_item_ID` | text | N* | The unique identifier of the purchase order item. |
| `Company` | text | N |  |
| `Delivery_complete` | boolean | N |  |
| `Goods_receipt_creator` | text | N |  |
| `Material` | text | N |  |
| `Material_group` | text | N |  |
| `Plant` | text | N |  |
| `Quantity` | text | N |  |
| `Value` | double | N |  |

* If you want to include **goods receipt** events in the process graphs, the `Purchase_order_item_ID` field is mandatory.

## Invoice

### Invoices_base_raw

The following table describes the fields of the `Invoices_base_raw` table.

| Name | Type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Invoice_ID` | text | Y | The unique identifier of the invoice. |
| `Invoice_creator` | text | N |  |
| `Baseline_date` | date | N |  |
| `Company` | text | N |  |
| `Discount_captured` | double | N |  |
| `Discount_percentage_1` | double | N |  |
| `Discount_percentage_2` | double | N |  |
| `Discount_period_1` | integer | N |  |
| `Discount_period_2` | integer | N |  |
| `Fiscal_year` | text | N |  |
| `Invoice_date` | date | N |  |
| `Invoice_type` | text | N |  |
| `Net_payment_period` | integer | N | Net payment period of the invoice in days. |
| `Payment_method` | text | N |  |
| `Payment_terms` | text | N |  |
| `Posting_date` | date | N |  |

* If you want to include **accounts payable** events in the process graphs, the `Invoice_ID` field is mandatory.

### Invoice_items_base_raw

The following table describes the fields of the `Invoice_items_base_raw` table.

| Name | Type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Invoice_item_ID` | text | Y | The unique identifier of the invoice item. |
| `Invoice_ID` | text | N* | The unique identifier of the invoice. |
| `Purchase_order_item_ID` | text | N* | The unique identifier of the purchase order item. |
| `Invoice_item_creator` | text | N |  |
| `Material` | text | N |  |
| `Material_group` | text | N |  |
| `Plant` | text | N |  |
| `Quantity` | text | N |  |
| `Value` | double | N |  |

* If you want to include events related to **accounts payable** in the process graphs, the `Invoice_ID` and `Purchase_ order_item_ID` fields are mandatory.

## Accounting

### Accounting_documents_base_raw

The following table describes the fields of the `Accounting_documents_base_raw` table.

| Name | Type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Accounting_document_ID` | text | Y | The unique identifier of the accounting document. |
| `Invoice_ID` | text | N* | The unique identifier of the invoice as known in the accounting system. |
| `Accounting_document_creator` | text | N |  |
| `Baseline_date` | date | N |  |
| `Company` | text | N |  |
| `Discount_captured` | double | N |  |
| `Discount_percentage_1` | double | N |  |
| `Discount_percentage_2` | double | N |  |
| `Discount_period_1` | integer | N |  |
| `Discount_period_2` | integer | N |  |
| `Document_date` | date | N |  |
| `Document_type` | text | N |  |
| `Fiscal_year` | text | N |  |
| `Net_payment_period` | integer | N |  |
| `Payment_date` | date | N |  |
| `Payment_status` | text | N |  |
| `Payment_terms` | text | N |  |
| `Posting_date` | date | N |  |
| `Transaction_type` | text | N |  |
| `Value` | double | N |  |

* If you want to include events related to accounts payable in the process graphs, both the `Accounting_document_ID` and `Invoice_ID` fields are mandatory.

## Payment

### Payments_base_raw

The following table describes the fields of the `Payments_base_raw` table.

| Name | Type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Payment_ID` | text | Y | The unique identifier of the payment. |
| `Accounting_document_ID` | text | N* | The unique identifier of the accounting document. |
| `Payment_creator` | text | N |  |
| `Company` | text | N |  |
| `Fiscal_year` | text | N |  |
| `Payment_is_complete` | boolean | N |  |
| `Payment_is_debit` | boolean | N |  |
| `Value` | double | N |  |

* If you want to include payment events in the process graphs, the `Accounting_document_ID` field is mandatory.

## Events

### Events_base_raw

The `Events_base_raw` table contains all sub-event logs for all objects. The following table describes the fields of the `Events_base_raw` table.

| Name | Type | Mandatory Y/N | Description |
| --- | --- | --- | --- |
| `Activity` | text | Y | The name of the event. This describes the step in the process. |
| `Event_end` | datetime | Y | The timestamp associated with the end of executing the event |
| `Purchase_requisition_ID` | text | Y | The unique identifier of the purchase requisition. |
| `Purchase_order_ID` | text | Y | The unique identifier of the purchase order. |
| `Purchase_order_item_ID` | text | Y | The unique identifier of the purchase order item. |
| `Goods_receipt_ID` | text | Y | The unique identifier of the goods receipt. |
| `Invoice_ID` | text | Y | The unique identifier of the invoice. |
| `Invoice_item_ID` | text | Y | The unique identifier of the invoice item. |
| `Accounting_document_ID` | text | Y | The unique identifier of the accounting document. |
| `Payment_ID` | text | Y | The unique identifier of the payment. |
| `Activity_order` | integer | N | The number that defines in which order activities are executed in case they have the same **Event end**. |
| `Automated` | boolean | N | An indicator whether the event is manually executed or automated. |
| `Department` | text | N | The department that executed the event. |
| `Event_detail` | text | N | Information related to the event. |
| `User` | text | N | The user who executed the event. |
| `User_function` | text | N | The function associated with the user. |
| `User_type` | text | N | The categorization of the user. |
| `Event_cost` | double | N | The costs for executing the event. |
| `Event_start` * | datetime | N | The timestamp associated with the start of executing the event |
| `Event_processing_time` | integer | N | The time for executing the event (in milliseconds). |

* If both `Event_start` and `Event_end` are defined in your dataset, the duration of the event is known. This will be used to calculate the *throughput time* of events. If only `Event_end` end is defined, the *throughput time* will be calculated as the difference between previous `Event_end` and the `Event_end`. `Event_start` is only taken into account if every record in the dataset contains a *not-null* value.
  :::important
  If you want to use `Event_cost` and/or `Event_start` in **Purchase-to-Pay**, you must add these fields to your `.mvp` connector and use **DataBridgeAgent** to load the data in your **Purchase-to-Pay** process app. Check out [Loading data using DataBridgeAgent](https://docs.uipath.com/process-mining/automation-suite/2024.10/user-guide/loading-data-using-databridgeagent#loading-data-using-databridgeagent). Make sure you add the connector to DataBridgeAgent. Check out [Adding a custom connector to DataBridgeAgent](https://docs.uipath.com/process-mining/automation-suite/2024.10/user-guide/adding-a-custom-connector-to-databridgeagent#adding-a-custom-connector-to-databridgeagent).
  :::
  :::note
  It is expected that for each record exactly one of the `ID` fields is filled in, which is the one of the object on which the event takes place. The other `ID` fields may be empty. Next to the standard mandatory fields (`Activity` and `Event_end`), one `Object_ID` is mandatory. This field depends on the object the event is part of.
  :::
