Overview of Setting Up Projects in Order Management

Create and fulfill sales orders that include project attributes, such as Project Number, Task Number, and Expenditure Organization.

Store project details on sales orders and order lines to reduce order processing time and improve the accuracy of tracking cost, revenue, and profitability throughout your supply chain.

  • Store project details on each sales order.

  • Fulfill all sales order for one project from the same inventory.

  • Examine the cost of services and items that you shipped for the project.

  • Compare budgeted costs to actual costs.

  • Create an invoice according to percent complete or milestone.

  • Manage more than one project from the same set of warehouses while maintaining visibility to material and cost for each project.

  • Ship each sales order for your project from project inventory or common inventory, according to your business rules.

  • Create a business rule that reserves project-specific inventory first, then reserves the remaining quantity from common inventory.

  • Set up orchestration so it reserves order line quantity in project-specific inventory, a mix of project-specific and common inventory, or only common inventory.

  • If you ship from common inventory, then you can send the cost of shipped goods to the project during shipment.

  • Use the ProjectRecordIndicator attribute to prevent Order Management from sending project-specific order lines to Receivables. Use the indicator when you set up your orchestration process and set up your assignment rule.

For example, Green Corp bids on a project to design and supply 100 custom batteries for an electric vehicle manufacturer. Green Corp expects design and development will require 100 hours at a cost of $50,000, and it will cost $1,000 to manufacture each unit. Green Corp adds 40% overhead and profit, and bids the job at $210,000, or $2,100 for each battery. Green Corp decides to run invoicing from the sales order when it ships the first 20 batteries, and then again when it ships the remaining 80.

Green Corp creates a project to capture cost and revenue, and then to calculate gross margin for the project.

  • Set up a project with a cost budget of $150,000 and revenue budget of $210,000.

  • Use the existing Quick Charge Battery item as the base item. Don't modify the original set up for this item because most items on the project are minor variances of Quick Charge Battery.

  • Standard cost for Quick Charge Battery is $1,000.

  • Charge 90 hours at a total of $45,000 directly to the project for design and development.

  • Include $100,000 for material in the project.

  • Project creates invoice for $210,000.

The project captures cost for manufacturing, design and development. It also captures revenue. For brevity, this example doesn't include shipping and other costs.

How it Works

Flow to create and fulfill sales orders that include project attributes

Note

  1. Create a sales order that includes project details, such as project number, task number, and so on.

    Order Management gets the list of projects defined in Project Management, filters them according to Sales Order Business Unit and Warehouse Business Unit, then displays them as choices in the Edit Project Details dialog on the order line.

    You click Submit, then Order Management validates each order line that includes project details. For example, Order Management makes sure:

    • The project that you select is associated with a project contract.

    • The value in the Ship-to Address attribute on the order line matches the value in the Ship-to Address for the contract.

    • The value in the Bill-to Address attribute on the order line matches the value in the Bill-to Address for the contract.

    If validation fails, Order Management displays an error and you must update the order and submit again.

    Learn how to set up and manage projects. For details, see Using Project Costing.

  2. An orchestration process orchestrates fulfillment for the item, including schedule, reserve, and ship.

    The ProjectRecordIndicator attribute comes predefined as set to No. If you add project details, then Order Management sets it to Yes, then sends it in a request to Warehouse Management. Shipping ships the order line, then uses the indicator to determine whether to add project details to the inventory transaction.

  3. Fulfill:

    • Global Order Promising promises and schedules without the context of the project, project task, or other project details, and updates order fulfillment details.

      Global Order Promising determines the warehouse for the order line, then Order Management validates the line again immediately before the orchestration process sends the line to shipping. Order Management also sets the Scheduled Ship Date to the Expenditure Item Date so it reflects the actual transaction date.

    • Inventory Management reserves the item in inventory.

    • Warehouse Management creates the shipment, picks the item from inventory, ships the item, then sends shipment confirmation to Cost Management.

  4. Cost Management uses the sales order as input when it does cost accounting.

  5. Project Management imports costs into the project.

If you enable Grants Management, then the Order Management work area displays the Contract Number and Funding Source attributes.

You can't:

  • Include project details in a drop-ship or back-to-back flow. For details, see Overview of Drop Ship in Order Management and Overview of Back-to-Back Fulfillment.

  • Send a transfer order that includes project details through Order Management.

  • Use project details with sales orders that you capture through a business-to-business flow (B2B) or electronic data interchange (EDI).

  • Use project details to bill an item that provides a service, such as a coverage or subscription.

  • Do order promising according to project or project task.

Extend

You can include project attributes in an order management extension.

Project attributes in an order management extension

Order Management calls Project Management when the On Start of Submission event happens. The call validates the changes that you make.

For example:

if("PROJECT EXTN".equals(header.getAttribute("CustomerPONumber"))){
  def lines = header.getAttribute("Lines"){

  while(lines.hasNext()){
    def line = lines.next();
        if("N".equals(line.getAttribute)("ProjectRecordIndicator"))){
          def rowIter = line.getAttribute("Projects");
          def row = rowIter.createRow();
          row.setAttribute("ProjectNumber","BAT-PJCBAT-Proj-02");
          row.setAttribute("TaskId",new BigDecimal"1000000019394094");
          row.setAttribute("ExpenditureType","Cartridges");
          row.setAttribute("ExpenditureOrganization","Vision Operations");
          row.setAttribute("ExpenditureItemDate",java.sql.Date.valueOf("2018-07-30"));
          rowIter.insertRow(row);
        }
  }
}

Note

  • Examine the ProjectRecordIndicator attribute to determine whether the order line contains project details.

  • Set a value for each of the required project attributes:

    • ProjectNumber

    • TaskId

    • ExpenditureType

    • ExpenditureOrganization

    • ExpenditureItemDate

  • Use the On Save, On Start of Submission, or On End of Submission event to read project attributes on the order line and ProjectRecordIndicator.

  • Use the On Save event or the On Start of Submission event to update project attributes on the order line.

  • Use an extension to set the project attribute's default value when the value is empty.

  • Don't use:

    • On End of Submission to update project attributes.

    • Any extension event to update ProjectRecordIndicator.

    • An extension to override an existing value of a project attribute.

Constrain

The DOO_PRJ_FULFILLMENTLINE_UPDATE processing constraint comes predefined to prevent you from updating a fulfillment line that includes project details. If you disable it, then you can update attributes that don't contain project details on the fulfillment line, such as the quantity, warehouse, and so on.

You can't update attributes that contain project details on the line after you submit the sales order even if you disable the constraint, such as project number, contract number, expenditure organization, and so on.

Order Management applies the disable behavior only on sales orders that you submit after you disable the constraint. For details, see Processing Constraints.

The DOO_PRJ_FULFILLMENTLINE_UPDATE processing constraint comes predefined to prevent the Order Entry Specialist from updating a fulfillment line that includes project details.