Your Order to Cash - Sales Order Processing Data Template
Your Order to Cash - Sales Order Processing Data Template
- Recommended attributes to collect
- Key activities to track
- Practical data extraction guidance
Order to Cash - Sales Order Processing Attributes
| Name | Description | ||
|---|---|---|---|
| Sales Order SalesOrder | The unique identifier for a sales order, serving as the primary case for the Order to Cash process. | ||
| Description The Sales Order number uniquely identifies each customer order throughout its lifecycle. It acts as the central thread connecting all related activities, from initial creation and confirmation to fulfillment, invoicing, and final payment. In process mining, this attribute is essential for grouping all related events into a single case. Analyzing the process by Sales Order allows for a complete end-to-end view, enabling the calculation of total cycle times, identification of process variants for individual orders, and tracking the journey of an order through different departments and systems. Why it matters This is the Case ID. It links all process events together, making it possible to trace the end-to-end journey of a single customer order. Where to get This identifier is typically found in the header table for sales orders in Oracle Fusion, such as DOO_HEADERS_ALL. Consult Oracle Fusion Financials documentation. Examples SO-100567SO-100568SO-100569 | |||
| Activity Name ActivityName | The name of the specific business event or task that occurred within the sales order process. | ||
| Description This attribute describes the step that was executed at a specific point in time for a sales order, such as 'Sales Order Created', 'Goods Shipped', or 'Payment Received'. The sequence of these activities forms the process flow for each case. Analyzing the ActivityName is fundamental to process mining. It allows for the visualization of the process map, discovery of different process variants, and identification of bottlenecks where cases accumulate. It is the basis for calculating transition times between steps and understanding the operational sequence of the Order to Cash process. Why it matters This attribute defines the steps in the process map, allowing for the visualization and analysis of the process flow. Where to get This is a derived attribute, constructed by mapping transaction statuses or event types from various Oracle Fusion tables (e.g., order status, shipment status, invoice status) to a standardized list of activity names. Examples Sales Order CreatedGoods ShippedInvoice CreatedPayment Received | |||
| Event Time EventTime | The timestamp indicating when a specific activity or event occurred for a sales order. | ||
| Description This attribute provides the date and time for each activity in the process, establishing the chronological sequence of events. It is the temporal backbone of the process analysis, recording exactly when each step happened. In process mining, the EventTime is critical for calculating cycle times, durations between activities, and overall case lead times. It enables performance analysis, bottleneck detection based on waiting times, and monitoring compliance with service level agreements (SLAs) related to timeliness. All time-based KPIs and dashboards rely on the accuracy of this attribute. Why it matters This timestamp is essential for ordering events chronologically and calculating all time-based metrics, such as cycle times and durations. Where to get This is a derived attribute, sourced from various timestamp fields across different Oracle Fusion tables, such as order creation date, shipment date, invoice date, and payment date. Examples 2023-04-15T09:00:00Z2023-04-18T14:30:00Z2023-04-20T11:25:00Z | |||
| Actual Delivery Date ActualDeliveryDate | The date when the goods were actually delivered to the customer. | ||
| Description This attribute records the final delivery date, which marks the completion of the fulfillment part of the process. It is the actual outcome against which planned or requested dates are measured. This date is compared against the RequestedDeliveryDate to calculate on-time delivery performance. It is a critical input for the 'On-Time Delivery Rate' KPI and the 'Delivery SLA' dashboard, providing a clear measure of logistics and supply chain effectiveness. Why it matters This is the actual outcome date used to calculate on-time delivery rates and assess fulfillment performance against customer requests. Where to get Sourced from shipping and delivery transaction tables in Oracle Fusion. Consult Oracle Fusion Financials documentation. Examples 2023-05-202023-06-032023-05-25 | |||
| Customer Name CustomerName | The name of the customer who placed the sales order. | ||
| Description This attribute identifies the legal name of the customer account associated with the sales order. It is a key dimension for segmenting and analyzing the process from a customer-centric view. Analyzing by customer helps identify if certain customers experience longer cycle times, more rework, or specific process deviations. This insight can be used to improve customer service, tailor processes for key accounts, and investigate issues affecting customer satisfaction. Why it matters Enables customer-centric analysis to identify process issues affecting specific customers and improve customer satisfaction. Where to get Sourced from customer master data tables (e.g., HZ_PARTIES) and linked to the sales order via a customer ID. Examples Global Corp Inc.Innovate Solutions Ltd.Tech Services LLC | |||
| Is Automated IsAutomated | A flag indicating whether an activity was performed automatically by the system or manually by a user. | ||
| Description This boolean attribute distinguishes between system-driven events (e.g., automated credit check, system-generated invoice) and manual user actions. It is typically derived based on the user name associated with an activity, where a generic system ID indicates automation. Analyzing this attribute helps in measuring the level of automation in the process and is a direct input for the 'Manual Reworked Orders Percentage' KPI. It can highlight opportunities for further automation by showing which manual steps are most time-consuming or error-prone. Why it matters Helps quantify the level of automation in the process and identify opportunities to reduce costly manual interventions. Where to get This is a derived field, often based on a rule applied to the UserName attribute. For example, if the user is 'SYSTEM' or 'BATCH', this flag is set to true. Examples truefalse | |||
| Payment Due Date PaymentDueDate | The date by which the customer is required to make payment for the invoice. | ||
| Description The Payment Due Date is calculated based on the invoice date and the payment terms agreed upon with the customer. It sets the deadline for timely payment collection. This attribute is crucial for the 'On-Time Payment Collection Rate' KPI. By comparing the PaymentDueDate with the actual payment receipt date, the system can determine if a payment was on-time or late, helping to monitor accounts receivable performance and manage cash flow. Why it matters Serves as the deadline for calculating on-time payment rates, which is a key measure of cash flow efficiency. Where to get Found in accounts receivable or invoice tables within Oracle Fusion, such as AR_PAYMENT_SCHEDULES_ALL. Examples 2023-06-192023-07-012023-06-25 | |||
| Requested Delivery Date RequestedDeliveryDate | The delivery date for the order as requested by the customer. | ||
| Description This attribute captures the date on which the customer wishes to receive the goods. It serves as a key performance target for the fulfillment part of the Order to Cash process. This date is essential for calculating the 'On-Time Delivery Rate' KPI and supporting the 'Delivery Service Level Agreement (SLA)' dashboard. By comparing this date with the ActualDeliveryDate, the organization can measure its ability to meet customer expectations and identify the root causes of delivery delays. Why it matters Acts as the baseline for measuring on-time delivery performance and customer service level agreement (SLA) compliance. Where to get Typically located in the sales order line item tables in Oracle Fusion. Consult Oracle Fusion Financials documentation. Examples 2023-05-202023-06-012023-05-25 | |||
| Sales Channel SalesChannel | The channel through which the sales order was received. | ||
| Description This attribute categorizes the origin of the sales order, such as 'Web', 'Direct Sales', 'Partner', or 'EDI'. It provides context on how the order entered the organization. Segmenting the process by sales channel is critical for the 'Sales Channel Performance Overview' dashboard. It helps in comparing the efficiency, cycle times, and error rates of different channels to identify which ones are most effective and which may require process improvements or further automation. Why it matters Supports performance analysis by channel, helping to identify the most and least efficient channels for order processing. Where to get This information may be stored in a dedicated field on the sales order header. Consult Oracle Fusion Financials documentation. Examples Direct SalesWeb PortalEDIReseller | |||
| Sales Order Total Amount SalesOrderTotalAmount | The total monetary value of the sales order. | ||
| Description This attribute represents the total amount charged to the customer for the entire sales order. It includes the sum of all line items, taxes, and other charges, before any discounts are applied. In process analysis, this attribute is crucial for value-based process mining. It allows for segmenting orders by value (e.g., high-value vs. low-value orders) to see if they follow different process paths or have different cycle times. It also helps prioritize process improvement efforts on the most financially significant cases. Why it matters Allows for financial impact analysis, helping to prioritize process improvements on high-value orders and understand cost drivers. Where to get Typically found in sales order header tables in Oracle Fusion. Consult Oracle Fusion Financials documentation. Examples 5250.00125000.75980.50 | |||
| User Name UserName | The name or ID of the user who performed the activity. | ||
| Description This attribute identifies the employee or system user responsible for executing a specific process step. It can be used to analyze user-level performance, workload distribution, and adherence to standard procedures. Analyzing by user helps in identifying training needs, recognizing high-performing individuals or teams, and investigating deviations caused by specific users. It is also valuable for compliance and audit purposes to track who performed which actions. Why it matters Enables analysis of performance by user, workload distribution, and identification of manual rework patterns tied to individuals. Where to get Typically sourced from fields like CREATED_BY or LAST_UPDATED_BY in Oracle Fusion transaction tables, often linked to a user master table like FND_USER. Examples john.smithjane.doesystem_batch_user | |||
| Business Unit BusinessUnitName | The name of the internal business unit responsible for the sales order. | ||
| Description This attribute represents the specific division or operational unit within the company that owns the transaction. It allows for performance comparison across different parts of the organization. Segmenting the process by business unit helps identify variations in efficiency, cost, and compliance across the company. This analysis can reveal best practices in high-performing units that can be shared, or highlight underperforming units that require targeted process improvements. Why it matters Enables performance benchmarking and process consistency analysis across different organizational units. Where to get Typically available on the sales order header and linked to the organization structure defined in Oracle Fusion. Examples BU-North AmericaBU-EMEAGlobal Services | |||
| Customer Country CustomerCountry | The country where the customer is located. | ||
| Description This attribute provides the country from the customer's shipping or billing address. It is a key dimension for geographical analysis. Segmenting the process by country can reveal regional differences in process performance, cycle times, or payment behavior. This is valuable for understanding the impact of local regulations, logistics challenges, and market conditions on the Order to Cash process. Why it matters Enables geographical analysis to identify regional variations in process efficiency, compliance, and customer behavior. Where to get Sourced from customer master data tables (HZ_LOCATIONS, HZ_PARTY_SITES) linked to the sales order. Examples USAGermanyJapan | |||
| Invoice Number InvoiceNumber | The unique identifier for the customer invoice. | ||
| Description This attribute is the unique number assigned to the invoice generated from the sales order. It links the sales and fulfillment activities to the financial settlement part of the process. While the Sales Order is the primary case ID, the Invoice Number is critical for analyzing the invoicing and payment sub-processes. It is essential for tracking invoice corrections, disputes, and payment status, supporting dashboards like 'Invoice Accuracy & Rework Analysis'. Why it matters Provides a crucial link to the accounts receivable process and is necessary for analyzing invoice rework and payment cycles. Where to get Available in the accounts receivable transaction tables in Oracle Fusion, such as RA_CUSTOMER_TRX_ALL. Examples INV-93485INV-93486INV-93487 | |||
| Is Invoice Corrected IsInvoiceCorrected | A flag indicating if an invoice has been corrected or revised after its initial creation. | ||
| Description This boolean attribute is true if an invoice underwent a correction loop, indicated by the presence of an 'Invoice Corrected' activity. It flags cases that involved rework in the invoicing stage. This is a key input for the 'Invoice Accuracy & Rework Analysis' dashboard and the 'Invoice Rework Rate' KPI. It helps quantify the extent of invoicing errors and allows for root cause analysis to identify why corrections are needed, aiming to reduce manual work and payment delays. Why it matters Identifies invoice rework, which is a key indicator of process inefficiency, data quality issues, and potential delays in payment. Where to get This is a calculated field, typically set to true for a case if an 'Invoice Corrected' activity exists in its event log. Examples falsetrue | |||
| Is Late Payment IsLatePayment | A calculated flag that is true if the payment was received after the payment due date. | ||
| Description This boolean attribute is derived by comparing the actual payment receipt date with the PaymentDueDate. It provides a clear indicator of whether an invoice was paid on time. This attribute is used to calculate the 'On-Time Payment Rate' KPI. It allows for easy segmentation of on-time vs. late payments to analyze the characteristics of late-paying customers, common reasons for delays, and the financial impact on working capital. Why it matters Directly measures payment collection effectiveness and simplifies the analysis of delinquent payments. Where to get This is a calculated field. The logic is: PaymentReceivedDate > PaymentDueDate. Examples falsetrue | |||
| Is On Time Delivery IsOnTimeDelivery | A calculated flag that is true if the actual delivery was on or before the requested delivery date. | ||
| Description This boolean attribute is derived by comparing the ActualDeliveryDate with the RequestedDeliveryDate. It provides a simple, case-level indicator of delivery performance. This flag is the foundation for calculating the aggregate 'On-Time Delivery Rate' KPI. It simplifies filtering and analysis, allowing users to quickly isolate all late orders to perform root cause analysis on the factors contributing to delays. Why it matters Directly measures fulfillment performance against customer expectations and simplifies the analysis of late orders. Where to get This is a calculated field. The logic is: ActualDeliveryDate <= RequestedDeliveryDate. Examples truefalse | |||
| Last Data Update LastUpdateDate | The timestamp indicating the last time the data for this event was refreshed from the source system. | ||
| Description This attribute records when the data was last extracted or updated in the process mining dataset. It provides transparency on the freshness of the data being analyzed. This information is vital for users to understand how current the process analysis is. It helps manage expectations about the data's timeliness and is important for setting up and monitoring data refresh schedules. Why it matters Indicates the freshness of the data, ensuring users are aware of how up-to-date their process analysis is. Where to get This value is generated and stamped onto the dataset during each data extraction and transformation cycle. Examples 2023-10-27T02:00:00Z2023-10-28T02:00:00Z | |||
| Order Type OrderType | A classification for the sales order, such as 'Standard Order' or 'Return Order'. | ||
| Description Order Type is used to categorize sales orders based on their business purpose. Common types include standard sales, service orders, return material authorizations (RMAs), and internal orders. Analyzing the process by order type is important because different types often have distinct process flows and performance targets. This segmentation helps in understanding process variations that are intentional and expected, preventing them from being misinterpreted as deviations. Why it matters Allows for the segmentation of different, legitimate process flows (e.g., standard vs. returns) to ensure a fair and accurate analysis. Where to get Typically available as a field on the sales order header table in Oracle Fusion. Consult Oracle Fusion Financials documentation. Examples Standard Sales OrderReturn AuthorizationService Order | |||
| Payment Terms PaymentTerms | The agreed-upon terms for customer payment. | ||
| Description This attribute specifies the conditions under which a customer is expected to pay their invoice, for example, 'Net 30' or 'Net 60'. These terms are the basis for calculating the PaymentDueDate. In analysis, segmenting by payment terms can help explain variations in payment cycle times. It provides context for the 'On-Time Payment Rate' KPI, as different terms naturally lead to different payment behaviors. This can inform credit policy and cash flow forecasting. Why it matters Provides crucial context for payment behavior analysis and helps explain variations in invoice-to-payment cycle times. Where to get Available on the sales order or customer account level within Oracle Fusion. Consult Oracle Fusion Financials documentation. Examples Net 30Net 60Due on Receipt | |||
| Product Name ProductName | The name of the product or service being sold. | ||
| Description This attribute specifies the item on the sales order line. If an order has multiple lines, the case might be analyzed at the line item level, or this attribute could be aggregated at the header level. Analyzing by product helps to understand if certain products are associated with more complex or problematic process flows, such as frequent delivery delays or payment issues. This can inform product management and supply chain strategies. Why it matters Allows for analysis of process performance for different products, highlighting items that may have complex fulfillment or invoicing paths. Where to get Sourced from the sales order line item tables and joined with a product master table. Consult Oracle Fusion Financials documentation. Examples Standard Widget X1Premium Service PackageComponent Y2-B | |||
| Shipping Method ShippingMethod | The method or carrier used for shipping the goods to the customer. | ||
| Description This attribute details the logistics carrier or service level used for delivery, such as 'Ground Freight', 'Air Express', or 'Local Courier'. This information is essential for the 'Shipping Method Delivery Compliance' dashboard. It allows for the comparison of on-time delivery performance and shipping costs across different methods and carriers, helping to optimize logistics strategy and vendor selection. Why it matters Directly supports logistics analysis by allowing performance comparison of different shipping carriers and methods. Where to get Available in the shipping and fulfillment tables within Oracle Fusion. Consult Oracle Fusion Financials documentation. Examples FedEx GroundUPS Next Day AirDHL International | |||
| Source System SourceSystemIdentifier | Identifies the source system from which the event data was extracted. | ||
| Description This attribute specifies the origin of the data, which is particularly useful in environments where multiple systems are involved in the Order to Cash process. For example, order data might come from Oracle Fusion, while shipping data could originate from a third-party logistics system. In analysis, this helps in understanding data lineage and can be used to filter the process view for events from specific systems. It is crucial for data validation and for identifying process fragmentation across different IT landscapes. Why it matters Provides context about data origin, which is crucial for data governance and troubleshooting in multi-system environments. Where to get This is typically a static value added during the data extraction and transformation process to label the dataset's origin. Examples Oracle Fusion Cloud FinancialsOracle SCM CloudOracle ERP | |||
Order to Cash - Sales Order Processing Activities
| Activity | Description | ||
|---|---|---|---|
| Goods Shipped | This activity marks the point when the goods have been dispatched from the warehouse and are in transit to the customer. It is captured when a ship confirmation transaction is processed in Oracle Shipping. | ||
| Why it matters This is a critical milestone that signifies the completion of the fulfillment part of the process and triggers invoicing. It is essential for measuring on-time shipping and delivery lead times. Where to get This is an explicit event recorded in Oracle Shipping Execution. The ship confirmation transaction creates a record in shipping tables like WSH_DELIVERY_DETAILS with a ship date. Capture Captured from the 'actual ship date' timestamp on the delivery detail record associated with the order line. Event type explicit | |||
| Invoice Created | This activity represents the creation of the customer invoice in the Accounts Receivable module, typically triggered by the ship confirmation event. An invoice record is generated with a unique number and creation date. | ||
| Why it matters Marks the official start of the payment collection cycle. It is the basis for measuring 'Invoice to Payment Time' and overall cash flow efficiency. Where to get This is an explicit event in Oracle Accounts Receivable (AR). An invoice record is created in the RA_CUSTOMER_TRX_ALL table with a transaction date. Capture Captured from the creation date of the invoice transaction in the AR module. Event type explicit | |||
| Order Closed | The final activity in the process, indicating that all lines on the sales order have been fulfilled, invoiced, and closed. The order header status is updated to 'Closed'. | ||
| Why it matters This activity marks the successful end of the sales order lifecycle. It is essential for calculating end-to-end process durations and identifying zombie orders that never close. Where to get Inferred from the sales order header status changing to 'Closed' in the DOO_HEADERS_ALL table. The timestamp of this final status change serves as the event time. Capture Derived from the timestamp of the status change to 'Closed' on the sales order header. Event type inferred | |||
| Order Confirmed | This key milestone signifies that the sales order has passed all initial checks, including credit approval, and is now committed for fulfillment. It is typically inferred when the order status progresses to a state like 'Awaiting Shipping' or 'Scheduled'. | ||
| Why it matters This activity is a critical milestone for calculating 'Average Order Confirmation Time' and marks the handoff from order entry to the fulfillment process. Where to get Inferred from a change in the sales order header or line status to a value indicating it is ready for fulfillment (e.g., 'Awaiting Shipping'). Check the status columns in DOO_HEADERS_ALL or DOO_FULFILL_LINES_ALL. Capture Derived from the timestamp when the order status changes to a confirmed or scheduled state. Event type inferred | |||
| Payment Received | This activity signifies that the customer's payment has been received and applied against the invoice in Accounts Receivable. This is captured when a cash receipt application is posted. | ||
| Why it matters This is a critical milestone for measuring the 'Overall Order to Cash Cycle Time' and 'On-Time Payment Rate'. It represents the conversion of the sale into cash. Where to get This is an explicit event in Oracle Accounts Receivable. It is recorded in cash receipt tables like AR_RECEIVABLE_APPLICATIONS_ALL when a receipt is applied to an invoice. Capture Captured from the 'apply date' timestamp of the cash receipt application record in AR. Event type explicit | |||
| Sales Order Created | This activity marks the beginning of the sales order process, representing the moment a new sales order is entered into Oracle Fusion. This event is typically captured explicitly when a user saves a new order record in the Order Management module. | ||
| Why it matters As the process start, this activity is essential for measuring the overall Order to Cash cycle time and analyzing order intake volumes. Where to get Recorded explicitly upon the creation of a sales order record in the Order Management Cloud. Look for creation timestamps on the DOO_HEADERS_ALL table. Capture Captured from the creation timestamp of the sales order header record. Event type explicit | |||
| Credit Check Performed | Represents the execution of a credit check against the customer's account to assess creditworthiness. This is often an automated or manual step within the order processing workflow, and its completion is typically logged as a status update or a completed task. | ||
| Why it matters Analyzing the time taken for credit checks helps identify bottlenecks in order approval. It is critical for the 'Credit Check to Confirmed Time' KPI. Where to get Can be inferred from status changes on the sales order, such as moving to a 'Pending Credit Approval' status, or from an explicit event log in the credit management functionality. Capture Inferred from order status changes or timestamps associated with credit review tasks. Event type inferred | |||
| Credit Hold Applied | This activity occurs when a sales order is automatically or manually placed on hold due to a failed credit check or other credit-related issue. This is generally captured by a change in the order's hold status within the system. | ||
| Why it matters Tracking credit holds is crucial for identifying reasons behind order processing delays and for measuring the efficiency of the credit hold release process. Where to get Inferred from the application of a hold on the sales order. This is typically recorded in hold-related tables such as DOO_HOLDS_ALL, linked to the sales order. Capture Inferred from a record creation in the order hold table with a 'Credit' hold type. Event type inferred | |||
| Goods Delivered | Indicates that the customer has received the shipment. This information often comes from an external carrier and is updated back into Oracle Fusion, or it may be inferred based on a standard transit time from the ship date. | ||
| Why it matters This activity is crucial for calculating the 'On-Time Delivery Rate' KPI and measuring customer service levels accurately. Where to get This is often not a native Oracle event. It can be captured if carrier integration is in place, or calculated by adding a standard transit time to the 'Goods Shipped' date. Requires system analysis. Capture Inferred from carrier data feeds or calculated based on the ship date plus an average transit time. Event type inferred | |||
| Goods Picked | Represents the physical picking of goods from the warehouse to fulfill the order. This is a key step in the logistics process and is usually recorded in the warehouse management or shipping module. | ||
| Why it matters This activity provides visibility into warehouse operations. Delays between inventory reservation and picking can indicate resource or process bottlenecks in the warehouse. Where to get Captured within the Oracle Fusion Cloud SCM (Supply Chain Management) modules. It can be inferred from the status change of a pick wave or pick slip associated with the sales order line. Capture Inferred from the completion timestamp of the pick transaction in the SCM modules. Event type inferred | |||
| Inventory Reserved | This activity represents the allocation or reservation of physical inventory to fulfill the sales order line. The system commits specific stock, ensuring it is available when the order is ready to be picked. | ||
| Why it matters Tracking this helps analyze the 'Inventory Allocation Lead Time' KPI and identifies delays between order confirmation and the securing of goods. Where to get This event is often captured in inventory or supply chain execution modules. It can be inferred from status updates on the fulfillment line indicating that inventory has been detailed or reserved. Capture Inferred from fulfillment line status changes related to inventory reservation or scheduling. Event type inferred | |||
| Invoice Corrected | Occurs when a previously created invoice is modified, re-issued, or credited due to errors or customer disputes. This is usually captured by creating a credit memo or a new version of the invoice. | ||
| Why it matters Tracking invoice corrections is key to the 'Invoice Rework Rate' KPI, highlighting issues in the billing process that can delay payments and increase administrative costs. Where to get Inferred by the creation of a credit memo (linked to the original invoice) or a subsequent version of the same invoice in the RA_CUSTOMER_TRX_ALL table. Capture Derived by identifying credit memos or invoices that reference a previous invoice transaction. Event type inferred | |||
| Order Cancelled | Represents the cancellation of a sales order before it has been fully shipped. This can occur for various reasons and results in a terminal status of 'Cancelled'. | ||
| Why it matters This is a critical exception path. Analyzing cancelled orders helps identify root causes, such as stock-outs, pricing issues, or customer change of mind, which can inform process improvements. Where to get Inferred from the sales order header or line status changing to a 'Cancelled' state. The timestamp of this status change is used to record the event. Capture Derived from the timestamp of the status change to 'Cancelled' on the order header or line. Event type inferred | |||
| Order Line Closed | Represents the final closure of an individual sales order line, indicating that it has been fully shipped, invoiced, and no further transactions are expected. The system updates the line status to 'Closed'. | ||
| Why it matters Closing order lines signifies the completion of all contractual obligations for that item. Analyzing this helps identify orders that remain open long after fulfillment and payment. Where to get Inferred from the fulfillment line status changing to 'Closed' in the DOO_FULFILL_LINES_ALL table. The timestamp of this status change marks the event. Capture Derived from the timestamp of the status change to 'Closed' on the fulfillment line. Event type inferred | |||
Extraction Guides
Steps
- Navigate to Oracle BI Publisher: Log into your Oracle Fusion environment with a user that has BI Administrator or BI Author privileges. Use the Navigator menu to go to Tools > Reports and Analytics. Click the 'Browse Catalog' button to open the Business Intelligence Catalog.
- Create a New Data Model: In the BI Catalog, navigate to a suitable folder (e.g., Shared Folders > Custom). Click the 'New' dropdown menu and select 'Data Model'.
- Define the SQL Query Dataset: In the Data Model editor, click the '+' icon to create a new dataset and select 'SQL Query'. A dialog box will appear. Name the dataset (e.g., 'OrderToCash_EventLog'), select 'Oracle BI EE' as the Data Source, and choose 'Standard SQL' as the type of SQL.
- Enter the SQL Query: Copy the complete SQL query provided in the 'query' section of this document and paste it into the SQL Query text area. The query includes parameters for the start and end date (:p_start_date and :p_end_date) which will be automatically recognized by BI Publisher.
- Configure Data Model Properties: After pasting the query, click 'OK'. Navigate to the 'Properties' section in the left pane of the data model editor. Ensure 'Include Parameter Tags' is checked. You can also set default values for the date parameters if desired.
- View and Save the Data Model: Click the 'Data' tab. You may be prompted to enter values for the date parameters. Enter a small date range to test. Click 'View' to see a sample of the data. If the data appears correctly, save the data model by clicking the save icon and giving it a descriptive name (e.g., 'OrderToCash_EventLog_DM').
- Create a Report from the Data Model: With the data model saved, click the 'Create Report' button in the upper right corner. This will open the report creation wizard.
- Configure the Report: In the wizard, select the 'Use Data Model' option. The wizard will guide you through the layout settings. For a simple CSV export, you can choose the 'Table' layout. Drag and drop all columns into the table. Click 'Next' and then uncheck 'Show Grand Totals Row'. Click 'Finish' to save the report. Give it a name like 'OrderToCash_EventLog_Report'.
- Run the Report: Open the newly created report. You will be prompted to enter the start and end dates for the extraction. Provide the desired date range.
- Export the Data: Once the report runs, click the 'View' dropdown and select a different view option, such as 'View Report'. Then, find the 'Export' link or icon and choose 'CSV' as the export format. This will download the event log file.
- Prepare for Upload: Open the downloaded CSV file. Verify the column headers match the required attributes: SalesOrder, ActivityName, EventTime, UserName, SalesOrderTotalAmount, CustomerName, SalesChannel, RequestedDeliveryDate, ActualDeliveryDate, PaymentDueDate, and IsAutomated. The file is now ready to be uploaded to the process mining tool.
Configuration
- User Privileges: You must have a role with BI Publisher data model and report creation privileges, such as 'BI Administrator' or 'BI Author'.
- Data Source: The query is designed for the standard 'Oracle BI EE' application data source, which connects to the transactional database (Fusion Apps). No special configuration is typically needed.
- Date Range Parameters: The query uses two parameters, :p_start_date and :p_end_date, to filter the data. It is highly recommended to extract data in manageable batches, such as 3 to 6 months at a time, to avoid report timeouts and performance issues.
- Business Unit Filtering: To limit the scope of the extraction, you can add a WHERE clause to the BaseOrders CTE in the query to filter by a specific Business Unit ID (e.g., AND dhead.SUBMITTING_BU_ID IN ([Your Business Unit ID])).
- Order Type Filtering: You can also filter for specific sales order types by adding a condition on dhead.SOURCE_ORDER_TYPE_CODE in the BaseOrders CTE.
- Performance: For very large datasets spanning several years, this single-query approach can be slow. Consider running it during off-peak hours or breaking the extraction into smaller, monthly batches. Ensure the 'Enable SQL Pruning' property is not selected in the Data Model, as it can interfere with complex UNION queries.
a Sample Query sql
WITH BaseOrders AS (
SELECT
dhead.HEADER_ID,
dhead.ORDER_NUMBER AS SalesOrder,
dhead.CREATION_DATE,
dhead.CREATED_BY,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dhead.CREATED_BY AND ROWNUM = 1) AS UserName,
dhead.SUBMITTING_BU_ID,
dhead.AMOUNT AS SalesOrderTotalAmount,
hp_sold.PARTY_NAME AS CustomerName,
dhead.SALES_CHANNEL_CODE AS SalesChannel,
dfl.REQUEST_SHIP_DATE AS RequestedDeliveryDate
FROM
DOO_HEADERS_ALL dhead
JOIN
DOO_FULFILL_LINES_ALL dfl ON dhead.HEADER_ID = dfl.HEADER_ID
JOIN
HZ_CUST_ACCOUNTS hc_sold ON dhead.SOLD_TO_CUSTOMER_ID = hc_sold.CUST_ACCOUNT_ID
JOIN
HZ_PARTIES hp_sold ON hc_sold.PARTY_ID = hp_sold.PARTY_ID
WHERE
dhead.OBJECT_VERSION_NUMBER = 1
AND dfl.LINE_NUMBER = 1 -- To avoid duplicating header-level events for each line
AND dhead.CREATION_DATE BETWEEN TO_DATE(:p_start_date, 'YYYY-MM-DD') AND TO_DATE(:p_end_date, 'YYYY-MM-DD')
)
-- 1. Sales Order Created
SELECT
bo.SalesOrder,
'Sales Order Created' AS ActivityName,
bo.CREATION_DATE AS EventTime,
bo.UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN bo.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM BaseOrders bo
UNION ALL
-- 2. Credit Check Performed (inferred from Credit Hold Release)
SELECT
bo.SalesOrder,
'Credit Check Performed' AS ActivityName,
dha.RELEASED_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dha.RELEASED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dha.RELEASED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HOLDS_ALL dha
JOIN BaseOrders bo ON dha.HEADER_ID = bo.HEADER_ID
WHERE dha.HOLD_CODE = '[Your Credit Check Hold Code]' AND dha.RELEASED_FLAG = 'Y' AND dha.RELEASED_DATE IS NOT NULL
UNION ALL
-- 3. Credit Hold Applied
SELECT
bo.SalesOrder,
'Credit Hold Applied' AS ActivityName,
dha.APPLIED_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dha.APPLIED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dha.APPLIED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HOLDS_ALL dha
JOIN BaseOrders bo ON dha.HEADER_ID = bo.HEADER_ID
WHERE dha.HOLD_CODE = '[Your Credit Check Hold Code]' AND dha.APPLIED_DATE IS NOT NULL
UNION ALL
-- 4. Order Confirmed (inferred from status 'Awaiting Shipping')
SELECT
bo.SalesOrder,
'Order Confirmed' AS ActivityName,
dfl.STATUS_CHANGE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dfl.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dfl.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_FULFILL_LINES_ALL dfl
JOIN BaseOrders bo ON dfl.HEADER_ID = bo.HEADER_ID
WHERE dfl.STATUS_CODE = 'AWAIT_SHIP'
UNION ALL
-- 5. Inventory Reserved
SELECT
bo.SalesOrder,
'Inventory Reserved' AS ActivityName,
irl.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = irl.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN irl.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM INV_RESERVATIONS irl
JOIN DOO_FULFILL_LINES_ALL dfl ON irl.DEMAND_SOURCE_LINE_ID = dfl.FULFILL_LINE_ID
JOIN BaseOrders bo ON dfl.HEADER_ID = bo.HEADER_ID
WHERE irl.DEMAND_SOURCE_TYPE_ID = 2 -- Order Entry
UNION ALL
-- 6. Goods Picked (inferred from delivery detail status 'Staged')
SELECT
bo.SalesOrder,
'Goods Picked' AS ActivityName,
wdd.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = wdd.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN wdd.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM WSH_DELIVERY_DETAILS wdd
JOIN BaseOrders bo ON wdd.SOURCE_HEADER_NUMBER = bo.SalesOrder
WHERE wdd.RELEASED_STATUS = 'S' -- 'S' typically means Staged/Picked
UNION ALL
-- 7. Goods Shipped
SELECT
bo.SalesOrder,
'Goods Shipped' AS ActivityName,
wnd.INITIAL_PICKUP_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = wnd.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN wnd.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM WSH_NEW_DELIVERIES wnd
JOIN WSH_DELIVERY_ASSIGNMENTS wda ON wnd.DELIVERY_ID = wda.DELIVERY_ID
JOIN WSH_DELIVERY_DETAILS wdd ON wda.DELIVERY_DETAIL_ID = wdd.DELIVERY_DETAIL_ID
JOIN BaseOrders bo ON wdd.SOURCE_HEADER_NUMBER = bo.SalesOrder
WHERE wnd.STATUS_CODE = 'CL' -- Closed/Shipped
UNION ALL
-- 8. Goods Delivered
SELECT
bo.SalesOrder,
'Goods Delivered' AS ActivityName,
wnd.ULTIMATE_DROPOFF_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = wnd.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
wnd.ULTIMATE_DROPOFF_DATE AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN wnd.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM WSH_NEW_DELIVERIES wnd
JOIN WSH_DELIVERY_ASSIGNMENTS wda ON wnd.DELIVERY_ID = wda.DELIVERY_ID
JOIN WSH_DELIVERY_DETAILS wdd ON wda.DELIVERY_DETAIL_ID = wdd.DELIVERY_DETAIL_ID
JOIN BaseOrders bo ON wdd.SOURCE_HEADER_NUMBER = bo.SalesOrder
WHERE wnd.ULTIMATE_DROPOFF_DATE IS NOT NULL
UNION ALL
-- 9. Invoice Created
SELECT
bo.SalesOrder,
'Invoice Created' AS ActivityName,
rct.TRX_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = rct.CREATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
aps.DUE_DATE AS PaymentDueDate,
CASE WHEN rct.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM RA_CUSTOMER_TRX_ALL rct
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl ON rct.CUSTOMER_TRX_ID = rctl.CUSTOMER_TRX_ID
JOIN AR_PAYMENT_SCHEDULES_ALL aps ON rct.CUSTOMER_TRX_ID = aps.CUSTOMER_TRX_ID
JOIN BaseOrders bo ON rctl.INTERFACE_LINE_ATTRIBUTE1 = bo.SalesOrder
WHERE rctl.INTERFACE_LINE_CONTEXT = 'ORDER ENTRY' AND rctl.LINE_TYPE = 'LINE'
UNION ALL
-- 10. Invoice Corrected (Credit Memo)
SELECT
bo.SalesOrder,
'Invoice Corrected' AS ActivityName,
rct_cm.TRX_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = rct_cm.CREATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN rct_cm.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM RA_CUSTOMER_TRX_ALL rct_cm
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl_cm ON rct_cm.CUSTOMER_TRX_ID = rctl_cm.CUSTOMER_TRX_ID
JOIN RA_CUSTOMER_TRX_ALL rct_orig ON rct_cm.PREVIOUS_CUSTOMER_TRX_ID = rct_orig.CUSTOMER_TRX_ID
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl_orig ON rct_orig.CUSTOMER_TRX_ID = rctl_orig.CUSTOMER_TRX_ID
JOIN BaseOrders bo ON rctl_orig.INTERFACE_LINE_ATTRIBUTE1 = bo.SalesOrder
WHERE rctl_orig.INTERFACE_LINE_CONTEXT = 'ORDER ENTRY' AND rctl_cm.LINE_TYPE = 'LINE'
UNION ALL
-- 11. Payment Received
SELECT
bo.SalesOrder,
'Payment Received' AS ActivityName,
araa.APPLY_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = araa.CREATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN araa.CREATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM AR_RECEIVABLE_APPLICATIONS_ALL araa
JOIN RA_CUSTOMER_TRX_ALL rct ON araa.APPLIED_CUSTOMER_TRX_ID = rct.CUSTOMER_TRX_ID
JOIN RA_CUSTOMER_TRX_LINES_ALL rctl ON rct.CUSTOMER_TRX_ID = rctl.CUSTOMER_TRX_ID
JOIN BaseOrders bo ON rctl.INTERFACE_LINE_ATTRIBUTE1 = bo.SalesOrder
WHERE araa.STATUS = 'APP' AND rctl.INTERFACE_LINE_CONTEXT = 'ORDER ENTRY' AND rctl.LINE_TYPE = 'LINE'
UNION ALL
-- 12. Order Line Closed
SELECT
bo.SalesOrder,
'Order Line Closed' AS ActivityName,
dfl.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dfl.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dfl.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_FULFILL_LINES_ALL dfl
JOIN BaseOrders bo ON dfl.HEADER_ID = bo.HEADER_ID
WHERE dfl.STATUS_CODE = 'CLOSED'
UNION ALL
-- 13. Order Closed
SELECT
bo.SalesOrder,
'Order Closed' AS ActivityName,
dhead.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dhead.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dhead.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HEADERS_ALL dhead
JOIN BaseOrders bo ON dhead.HEADER_ID = bo.HEADER_ID
WHERE dhead.STATUS_CODE = 'CLOSED'
UNION ALL
-- 14. Order Cancelled
SELECT
bo.SalesOrder,
'Order Cancelled' AS ActivityName,
dhead.LAST_UPDATE_DATE AS EventTime,
(SELECT u.USERNAME FROM PER_USERS u WHERE u.USER_GUID = dhead.LAST_UPDATED_BY AND ROWNUM = 1) AS UserName,
bo.SalesOrderTotalAmount,
bo.CustomerName,
bo.SalesChannel,
bo.RequestedDeliveryDate,
NULL AS ActualDeliveryDate,
NULL AS PaymentDueDate,
CASE WHEN dhead.LAST_UPDATED_BY LIKE 'FUSION_APPS%' THEN 'true' ELSE 'false' END AS IsAutomated
FROM DOO_HEADERS_ALL dhead
JOIN BaseOrders bo ON dhead.HEADER_ID = bo.HEADER_ID
WHERE dhead.STATUS_CODE = 'CANCELED' Steps
- Access the BICC Console: Log in to your Oracle Fusion Applications instance with a user that has the BICC_ADMINISTRATOR role. Navigate to Tools and select Business Intelligence Cloud Connector from the menu.
- Create a New Offering: Inside the BICC console, click Configure External Storage to set up your target destination, which can be Oracle Universal Content Management (UCM) or an OCI Object Storage bucket. Ensure your connection details and credentials are correct.
- Initiate a New Extract Job: Navigate to the Manage Extract Jobs section. Click the + icon to create a new job. Give it a descriptive name, for example, ProcessMind_O2C_SalesOrder_Extract.
- Select Data Stores (PVOs): In the job configuration, search for and add the Public View Objects (PVOs) required to capture the sales order lifecycle. You will need to add multiple PVOs, including FscmTopModelAM.DooTopAM.Header, FscmTopModelAM.DooTopAM.FulfillLine, FscmTopModelAM.DooTopAM.HoldInstance, FscmTopModelAM.ScmTopAM.ShipmentLine, FscmTopModelAM.ArTopAM.ReceivableInvoice, and FscmTopModelAM.ArTopAM.CashReceiptApplication.
- Configure Columns for Each PVO: For each PVO selected, click the Actions menu and choose Select Columns. Carefully select the columns needed to generate the event log, such as HeaderId, CreationDate, ShippedDate, TrxDate, ApplyDate, and user identifiers. Refer to the query manifest for a detailed list of required columns from each PVO.
- Apply Filters for Incremental Loads: To manage data volume, apply a filter to each PVO based on the LastUpdateDate column. For the initial run, you can select a broad date range. For subsequent scheduled runs, this filter should be configured to only extract records updated since the last job execution.
- Schedule the Extraction Job: Navigate to the Manage Schedule section. Create a new schedule for your job. It is recommended to run the job during off-peak hours, for instance, daily overnight, to minimize impact on system performance.
- Submit and Monitor the Job: Once configured, submit the job. You can monitor its progress from the Manage Extract Jobs screen. Upon successful completion, the data files will be available in your configured cloud storage location in a compressed CSV format.
- Transform Raw Data into an Event Log: Download the extracted CSV files. BICC provides raw table data, not a formatted event log. You must use an external tool (like Python, a database script, or an ETL platform) to process these files. This involves:
- Joining data from different files (e.g., linking invoice data back to the sales order header).
- Pivoting date columns into distinct activity rows. For example, from the FscmTopModelAM.DooTopAM.Header file, create one row for Sales Order Created using CreationDate and another for Order Closed using ClosedDate.
- Mapping status codes or flags to specific activities like Order Confirmed or Order Cancelled.
- Combining all transformed data into a single file with the required columns: SalesOrder, ActivityName, and EventTime.
- Format for Upload: Ensure the final transformed file is a single CSV, with columns matching the required and recommended attributes. The file is now ready to be uploaded to ProcessMind.
Configuration
- PVO Selection: The accuracy of the event log depends entirely on selecting the correct PVOs. Key PVOs include FscmTopModelAM.DooTopAM.Header (for order creation, closure), FscmTopModelAM.ScmTopAM.ShipmentLine (for shipping events), and FscmTopModelAM.ArTopAM.ReceivableInvoice (for invoicing).
- Incremental Extraction: Always use the LastUpdateDate filter for recurring extractions. This is critical for performance and avoids extracting the same multi-gigabyte dataset repeatedly. The initial full load should establish a baseline, with subsequent runs capturing only changes.
- Date Range: For the first historical load, extract a representative period, such as the last 3 to 6 months of data, to balance completeness with manageable data volume. Subsequent runs will be incremental.
- Storage Configuration: BICC can export to Oracle's UCM or OCI Object Storage. Using OCI Object Storage is generally recommended for bulk data scenarios and easier integration with downstream ETL tools.
- Job Scheduling: Schedule extraction jobs during non-business hours to avoid any potential performance degradation on the Oracle Fusion Financials transactional system.
- Prerequisites: Users configuring the job need the BICC_ADMINISTRATOR role. You must have pre-configured cloud storage credentials and a clear understanding of the data transformation logic required post-extraction.
a Sample Query config
# BICC Data Store (PVO) and Column Selection Manifest
# This manifest outlines the PVOs and columns to select in the BICC UI for the extract job.
# PVO for Sales Order Header information (Created, Confirmed, Closed, Cancelled events)
PVO: FscmTopModelAM.DooTopAM.Header
Columns:
- HeaderId -> SalesOrder
- CreationDate -> EventTime (for 'Sales Order Created')
- CreatedBy -> UserName (for 'Sales Order Created')
- LastUpdateDate # For incremental filtering
- StatusCode
- SubmittedDate -> EventTime (for 'Order Confirmed')
- SubmittedBy -> UserName (for 'Order Confirmed')
- OrderedTotal -> SalesOrderTotalAmount
- SoldToPartyName -> CustomerName
- SourceSalesChannelCode -> SalesChannel
- RequestShipDate -> RequestedDeliveryDate
- ClosedDate -> EventTime (for 'Order Closed')
- CanceledFlag
- CanceledDate -> EventTime (for 'Order Cancelled')
# PVO for Sales Order Lines (Line Closed event)
PVO: FscmTopModelAM.DooTopAM.FulfillLine
Columns:
- HeaderId -> SalesOrder
- ActualCompletionDate -> EventTime (for 'Order Line Closed')
- LastUpdateDate # For incremental filtering
- LastUpdatedBy -> UserName
- StatusName # To confirm closed status
# PVO for Holds (Credit Hold Applied event)
PVO: FscmTopModelAM.DooTopAM.HoldInstance
Columns:
- SourceHeaderId -> SalesOrder
- CreationDate -> EventTime (for 'Credit Hold Applied')
- CreatedBy -> UserName
- HoldName # To filter for credit-related holds
# PVO for Shipments (Picked, Shipped, Delivered events)
PVO: FscmTopModelAM.ScmTopAM.ShipmentLine
Columns:
- SourceHeaderNumber -> SalesOrder
- PickedDate -> EventTime (for 'Goods Picked')
- ShippedDate -> EventTime (for 'Goods Shipped')
- ActualDeliveryDate -> ActualDeliveryDate & EventTime (for 'Goods Delivered')
- LastUpdateDate # For incremental filtering
- LastUpdatedBy -> UserName
# PVO for Invoices (Invoice Created, Invoice Corrected events)
PVO: FscmTopModelAM.ArTopAM.ReceivableInvoice
Columns:
- InterfaceHeaderAttribute1 -> SalesOrder # Link to SO via reference field
- TrxDate -> EventTime (for 'Invoice Created')
- CreatedBy -> UserName
- DueDate -> PaymentDueDate
- PreviousTrxNumber # If populated, indicates a correction
- CreationDate # Can be used for 'Invoice Corrected' if a new record is made
- LastUpdateDate # For incremental filtering
# PVO for Payments (Payment Received event)
PVO: FscmTopModelAM.ArTopAM.CashReceiptApplication
Columns:
- AppliedCustomerTrxId # ID to link back to the invoice
- ApplyDate -> EventTime (for 'Payment Received')
- CreatedBy -> UserName
- LastUpdateDate # For incremental filtering