<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.
-->
<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5.0" 
    xmlns:xl="http://www.w3.org/1999/xlink" 
    xmlns:xi="http://www.w3.org/2001/XInclude"
    xsi:schemaLocation="http://docbook.org/ns/docbook ../../../../content/dtd/docbook.xsd"
    xmlns="http://docbook.org/ns/docbook">
       <title>OFBiz:MFG: BoM Simulation</title>
        <section>
            <para>
                Dit scherm toont de effecten van een simulatie van een BoM.
            </para>
            <section>
            <title>Het invulscherm</title>
                <para>Selecteer het product van de te simuleren BoM. Kies vervolgens het BoM-type en zet het aantal</para>
                <para>Kies de type simulatie en selecteer het magazijn, om de vooraad van de componenten op te halen</para>
                <para>Klik vervolgens op de 'Uitvoeren'-knop om de simulatie uit te voeren. De gegevens van de simulatie worden onder het invulformulier getoond.</para>
            </section>
            <section>
            <title>Het simulatie overzicht</title>
                <para>Nadat op de knop is gedrukt wordt het simulatie overzicht getoond.</para>
                <para>Het eerste deel toont de BoM. Het tweede deel toont de benodigde hoeveelheden, en de kosten.</para>
            </section>
        </section>
</section>