<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
    <description>Manufacturing Services - Production Run</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <!-- Job Shop Management services -->
    <!-- creation of production runs -->
    <service name="createProductionRun" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRun" auth="true">
        <description>Create a Production Run</description>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="pRQuantity" type="BigDecimal" mode="IN" optional="false"/>
        <attribute name="startDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="routingId" type="String" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="productionRunId" type="String" mode="OUT" optional="false"/>
        <attribute name="estimatedCompletionDate" type="java.sql.Timestamp" mode="OUT" optional="true"/>
    </service>
    <service name="createProductionRunAssoc" engine="simple"
                location="component://manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml" invoke="createProductionRunAssoc" auth="false">
        <description>
            Associate the production run to another production run
        </description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productionRunIdTo" type="String" mode="IN" optional="false"/>
        <attribute name="workFlowSequenceTypeId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="createProductionRunsForProductBom" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunsForProductBom" auth="true">
        <description>Explodes a product id and creates all the needed production runs.</description>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" optional="true" mode="IN" type="BigDecimal"/>
        <attribute name="startDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="routingId" type="String" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="productionRuns" optional="true" mode="OUT" type="java.util.List"/><!-- TODO -->
        <attribute name="productionRunId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="createProductionRunsForOrder" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunsForOrder" auth="true">
        <description>Explodes a product id and creates all the needed production runs; if an order id is also provided, it links the production runs to the sales order.</description>
        <attribute mode="IN" name="orderId" optional="false" type="String"/>
        <attribute mode="IN" name="orderItemSeqId" optional="true" type="String"/>
        <attribute mode="IN" name="shipGroupSeqId" optional="true" type="String"/>
        <attribute mode="IN" name="quantity" optional="true" type="BigDecimal"/>
        <attribute mode="IN" name="fromDate" optional="true" type="String"/>
        <attribute mode="IN" name="shipmentId" optional="true" type="String"/>
        <attribute mode="OUT" name="productionRuns" type="java.util.List"/>
    </service>
    <service name="createProductionRunFromRequirement" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunFromRequirement" auth="true">
        <description>Creates a production run from a requirement.</description>
        <attribute mode="IN" name="requirementId" optional="false" type="String"/>
        <attribute mode="IN" name="quantity" optional="true" type="BigDecimal"/>
        <attribute mode="OUT" name="productionRunId" optional="true" type="String"/>
    </service>
    <service name="createProductionRunFromConfiguration" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunFromConfiguration" auth="true">
        <description>Creates a production run from a product configuration.</description>
        <attribute mode="IN" name="facilityId" optional="false" type="String"/>
        <attribute mode="IN" name="configId" optional="true" type="String"/>
        <attribute mode="IN" name="config" optional="true" type="org.ofbiz.product.config.ProductConfigWrapper"/>
        <attribute mode="IN" name="quantity" optional="true" type="BigDecimal"/>
        <attribute mode="IN" name="orderId" optional="true" type="String"/>
        <attribute mode="IN" name="orderItemSeqId" optional="true" type="String"/>
        <attribute mode="OUT" name="productionRunId" optional="false" type="String"/>
    </service>
    <service name="createProductionRunForMktgPkg" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunForMktgPkg" auth="true">
        <description>Creates a production run for a marketing package when the product is out of stock (ATP quantity less than zero.)
                Attempts to produce enough to bring total ATP quantity of the product back up to zero, but will only produce what is
                available based on the components required.</description>
        <attribute mode="IN" name="orderId" optional="false" type="String"/>
        <attribute mode="IN" name="orderItemSeqId" optional="false" type="String"/>
        <attribute mode="IN" name="facilityId" optional="false" type="String"/>
        <attribute mode="OUT" name="productionRunId" optional="true" type="String"/>
    </service>

    
    <service name="updateProductionRun" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="updateProductionRun" auth="true">
        <description>Update a Production Run</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="estimatedStartDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="facilityId" type="String" mode="IN" optional="true"/>
    </service>
    <service name="changeProductionRunStatus" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="changeProductionRunStatus" auth="true">
        <description>Change the Production Run status</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="statusId" type="String" mode="IN" optional="true"/>
        <attribute name="newStatusId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="changeProductionRunTaskStatus" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="changeProductionRunTaskStatus" auth="true">
        <description>Change the Production Run Task status</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/> <!-- The task id -->
        <attribute name="statusId" type="String" mode="IN" optional="true"/>
        <attribute name="issueAllComponents" type="Boolean" mode="IN" optional="true"/>
        <attribute name="oldStatusId" type="String" mode="OUT" optional="false"/>
        <attribute name="newStatusId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="addProductionRunRoutingTask" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="addProductionRunRoutingTask" auth="true">
        <description>add a RoutingTask to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="routingTaskId" type="String" mode="INOUT" optional="false"/>
        <attribute name="priority" type="Long" mode="IN" optional="false"/>
        <attribute name="estimatedSetupMillis" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="estimatedMilliSeconds" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="estimatedStartDate" type="Timestamp" mode="INOUT" optional="true"/>
        <attribute name="estimatedCompletionDate" type="Timestamp" mode="INOUT" optional="true"/>
    </service>
    <service name="checkUpdatePrunRoutingTask" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="checkUpdatePrunRoutingTask" auth="true">
        <description>check if field for routingTask update are correct and if needed  recalculated data and update Production Run</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="routingTaskId" type="String" mode="IN" optional="false"/>
        <attribute name="priority" type="Long" mode="IN"/>
        <attribute name="estimatedStartDate" type="Timestamp" mode="IN"/>
        <attribute name="estimatedSetupMillis" type="BigDecimal" mode="IN"/>
        <attribute name="estimatedMilliSeconds" type="BigDecimal" mode="IN"/>
    </service>
    <!-- TODO: NOT STILL IMPLEMENTED ('deleteWorkEffort' is called directly) -->
    <service name="deleteProductionRunRoutingTask" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="deleteProductionRunRoutingTask" auth="true">
        <description>delete a RoutingTask to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="routingTaskId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="addProductionRunComponent" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="addProductionRunComponent" auth="true">
        <description>add a Product Component to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="estimatedQuantity" type="BigDecimal" mode="IN"/>
        <attribute name="workEffortId" type="String" mode="IN" optional="true"/>
    </service>
    <service name="updateProductionRunComponent" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="updateProductionRunComponent" auth="true">
        <description>update a Product Component to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="workEffortId" type="String" mode="IN" optional="true"/>
        <attribute name="estimatedQuantity" type="BigDecimal" mode="IN" optional="true"/>
    </service>
    <!-- TODO: NOT STILL IMPLEMENTED ('removeWorkEffortGoodStandard' is called directly) -->
    <service name="deleteProductionRunComponent" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="deleteProductionRunComponent" auth="true">
        <description>delete a Product Component to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="issueProductionRunTask" engine="simple"
                location="component://manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml" invoke="issueProductionRunTask" auth="false">
        <description>
            Issues the Inventory for a Production Run Task.
            Note that this skips the normal inventory reservation process.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="reserveOrderEnumId" type="String" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotAvailable" type="String" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotOnHand" type="String" mode="IN" optional="true"/>
    </service>
    <service name="issueProductionRunTaskComponent" engine="simple"
                location="component://manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml" invoke="issueProductionRunTaskComponent" auth="false">
        <description>
            Issues the Inventory for a Production Run Task Component. For more info see the issueProductionRunTask service.
            If fromDate is passed, then the WorkEffortGoodStandard record with pk composed of (workEffortId|productId|fromDate)
            with type PRUNT_PROD_NEEDED is retrieved and used to get the quantity; its status is also updated to COMPLETED after
            the issuance is done.
            If locationSeqIds are provided, then the items are only issued from the inventory items associated to the locations.
            If failIfItemsAreNotAvailable is set to "Y" (the default is "Y") then the service fails if there is not enough inventory available:
            no reservation will be stolen.
            If failIfItemsAreNotOnHand is set to "Y" (the default is "Y") then the service fails if there is not enough inventory:
            no items with negative qoh will be created.
            If lotId is filled, failIfItemsAreNotAvailable is set to automatically set to "Y".
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="fromDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotAvailable" type="String" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotOnHand" type="String" mode="IN" optional="true"/>
        <attribute name="reserveOrderEnumId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" mode="IN" type="String" optional="true" />
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="secondaryLocationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="reasonEnumId" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
    </service>
    <service name="issueInventoryItemToWorkEffort" engine="simple"
                location="component://manufacturing/script/org/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.xml" invoke="issueInventoryItemToWorkEffort" auth="false">
        <description>
            Issue one InventoryItem (or part of it) to a WorkEffort.
            Note that this skips the normal inventory reservation process.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="inventoryItem" type="org.ofbiz.entity.GenericValue" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="quantityIssued" type="BigDecimal" mode="OUT" optional="false"/>
        <attribute name="finishedProductId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="productionRunProduce" engine="java" transaction-timeout="7200"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunProduce" auth="true">
        <description>
            Create Inventory for product produced by a Production Run.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="INOUT" optional="true"/>
        <attribute name="quantityUomId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" type="String" mode="IN" optional="true"/>
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="createLotIfNeeded" type="Boolean" mode="IN" optional="true"/>
        <attribute name="autoCreateLot" type="Boolean" mode="IN" optional="true"/>
    </service>
    <service name="productionRunDeclareAndProduce" engine="java" transaction-timeout="7200"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunDeclareAndProduce" auth="true">
        <description>
            Create Inventory for product produced by a Production Run and if necessary add declared quantities to tasks (and issue materials, if needed).
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="INOUT" optional="false"/>
        <attribute name="quantityUomId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" type="String" mode="IN" optional="true"/>
        <attribute name="createLotIfNeeded" type="Boolean" mode="IN" optional="true"/>
        <attribute name="autoCreateLot" type="Boolean" mode="IN" optional="true"/>
        <attribute name="componentsLocationMap" mode="IN" type="Map" optional="true"/>
    </service>
    <service name="productionRunTaskProduce" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunTaskProduce" auth="true">
        <description>
            Create Inventory from a Production Run Task.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="false"/>
        <attribute name="facilityId" type="String" mode="IN" optional="true"/>
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="unitCost" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="currencyUomId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
        <attribute name="lotId" mode="IN" type="String" optional="true" />
        <attribute name="isReturned" mode="IN" type="String" optional="true" default-value="N"></attribute>
    </service>
    <service name="productionRunTaskReturnMaterial" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunTaskReturnMaterial" auth="true">
        <description>
            Create Inventory from a Production Run Task, by returning to warehouse part of the materials allocated.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" mode="IN" type="String" optional="true" />
    </service>
    <service name="checkDecomposeInventoryItem" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="checkDecomposeInventoryItem" auth="true">
        <description>
            If the inventory item is for a 'marketing package' run the decomposeInventoryItem service.
            It is intended to be called as seca when a marketing package is received into warehouse (e.g. from a return).
        </description>
        <attribute name="inventoryItemId" type="String" mode="IN" optional="false"/>
        <!--<attribute name="quantityAccepted" type="BigDecimal" mode="IN" optional="true"/>-->
    </service>
    <service name="decomposeInventoryItem" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="decomposeInventoryItem" auth="true">
        <description>
            Create a decompose work effort, issue the inventory item (or part of it), and put in warehouse its components.
            It is intended to be called when a marketing package is received into warehouse (e.g. from a return).
            The components will be returned to inventory at ((Marketing Package Actual Inventory Unit Cost) / (Marketing Package Standard Cost)) * (Component Standard Cost)
        </description>
        <attribute name="inventoryItemId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
    </service>
    <service name="updateProductionRunTask" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="updateProductionRunTask" auth="true">
        <description>
            Add a TimeEntry for the production run task and updates the relevant fields.
        </description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productionRunTaskId" type="String" mode="IN" optional="false"/>
        <attribute name="partyId" type="String" mode="IN" optional="true"/>
        <attribute name="fromDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="thruDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="addQuantityProduced" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="addQuantityRejected" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="addSetupTime" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="addTaskTime" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="comments" type="String" mode="IN" optional="true"/>
        <attribute name="issueRequiredComponents" type="Boolean" mode="IN" optional="true"/>
        <attribute name="componentsLocationMap" mode="IN" type="Map" optional="true"/>
    </service>
    <service name="quickRunProductionRunTask" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickRunProductionRunTask" auth="true">
        <description>Quick runs a ProductionRun task to the completed status, also issuing components if necessary.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="taskId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="quickRunAllProductionRunTasks" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickRunAllProductionRunTasks" auth="true">
        <description>Quick runs all the tasks of a ProductionRun to the completed status, also issuing components if necessary.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="quickStartAllProductionRunTasks" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickStartAllProductionRunTasks" auth="true">
        <description>Quick starts all the tasks of a ProductionRun.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="quickChangeProductionRunStatus" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickChangeProductionRunStatus" auth="true">
        <description>Quick moves a ProductionRun to the passed in status, performing all the needed tasks in the way</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="statusId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="cancelProductionRun" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="cancelProductionRun" auth="true">
        <description>Cancels a ProductionRun.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="getProductionRunTotResQty" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="getProductionRunTotResQty" auth="true">
        <description>Given a productId and an optional date, returns the total qty of productId reserved by production runs</description>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="startDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="reservedQuantity" type="BigDecimal" mode="OUT" optional="false"/>
    </service>
    <service name="getWorkEffortCosts" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="getWorkEffortCosts" auth="true">
        <description>Retrieve the costs of a work effort (production run task).</description>
        <attribute mode="IN" name="workEffortId" optional="false" type="String"/>
        <attribute mode="OUT" name="costComponents" optional="false" type="List"/>
        <attribute mode="OUT" name="totalCost" optional="false" type="BigDecimal"/>
        <attribute mode="OUT" name="totalCostNoMaterials" optional="false" type="BigDecimal"/>
    </service>
    <service name="getProductionRunCost" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="getProductionRunCost" auth="true">
        <description>Retrieve the total cost of a production run.</description>
        <attribute mode="IN" name="workEffortId" optional="false" type="String"/>
        <attribute mode="OUT" name="totalCost" optional="false" type="BigDecimal"/>
    </service>
    <service name="createProductionRunTaskCosts" engine="java"
            location="org.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunTaskCosts" auth="true">
        <description>Compute the actual costs for the production run task.</description>
        <attribute mode="IN" name="productionRunTaskId" optional="false" type="String"/>
    </service>
</services>
