<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2001-2006 The Apache Software Foundation

Licensed 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://www.ofbiz.org/dtds/services.xsd">
    <description>Assetmaint Services: Fixed Asset </description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <service name="addPartFixedAssetMaint" engine="java"
                location="org.ofbiz.assetmaint.FixedAssetMaintServices" invoke="addPartFixedAssetMaint" auth="true">
        <description>Add Part item to a FixedAssetMaint</description>
        <attribute type="String" mode="IN" name="fixedAssetId" optional="false"/>
        <attribute type="String" mode="IN" name="maintHistSeqId" optional="false"/>
        <attribute type="Double" mode="IN" name="quantity" optional="false"/>
        <attribute type="String" mode="IN" name="productId" optional="false"/>
        <attribute type="String" mode="IN" name="facilityId" optional="false"/>
    </service>
    
</services>
