<?xml version="1.0" encoding="utf-8"?>
<ManualTopic ID="/baanerp/ti/onlinemanual/100001" xml:lang="en">
   <Header>
      <Title>How to configure product variants and generate product
		structures</Title>
      <Keyword type="header" order="d1e2057033">
         <Level1>Configuring product variants</Level1>
      </Keyword>
      <Keyword type="header" order="d1e2057036">
         <Level1>Generating product variants</Level1>
      </Keyword>
   </Header>
   <GeneralSection>
      <Paragraph>The procedure to
		configure product variants and generate product variant structures is composed
		of a number of separate steps.</Paragraph>
      <List>
         <ListIntro>The product variant configuration process differs dependent on
		  the module it is initiated from:</ListIntro>
         <ListItem>
            <Link href="/baanerp/ti/onlinemanual/tipcf" role="manual">Product Configuration (PCF)</Link> in <GUIRef href="/baanerp/ti" role="package">Manufacturing</GUIRef>
         </ListItem>
         <ListItem>
            <GUIRef href="/baanerp/td/sls" role="module">Sales Control</GUIRef> in <GUIRef href="/baanerp/td" role="package">Order Management</GUIRef>
         </ListItem>
         <ListItem>
            <Link href="/baanerp/ti/onlinemanual/tipcs" role="manual">Project Control (PCS)</Link> in <GUIRef href="/baanerp/ti" role="package">Manufacturing</GUIRef>
         </ListItem>
         <ListItem>
            <Link href="/baanerp/tp/onlinemanual/tpptc" role="manual">
               <GUIRef href="/baanerp/tp/ptcb" role="module">Project Budget</GUIRef>
            </Link> in <GUIRef href="/baanerp/tp" role="package">Project</GUIRef>
         </ListItem>
         <ListItem>
            <Link href="/baanerp/tp/onlinemanual/tppss" role="manual">Project Planning and Requirements (PSS)</Link> in <GUIRef href="/baanerp/tp" role="package">Project</GUIRef>
         </ListItem>
      </List>
      <Paragraph>If you initiate a
		product variant from <GUIRef href="/baanerp/ti/pcf" role="module">Product Configuration</GUIRef>, you must define a product variant code before you start
		the configuration process. The product variant has the <GUIRef href="/baanerp/tc/domains/reft#standard" role="option">Standard Variant</GUIRef> reference type.</Paragraph>
      <Paragraph>In the other modules, LN generates a product
		variant code so you can start the configuration immediately. The product
		variant has one of the following reference types: <GUIRef href="/baanerp/tc/domains/reft#sls.quotation" role="option">Sales Quotation</GUIRef>, <GUIRef href="/baanerp/tc/domains/reft#sls.order" role="option">Sales Order</GUIRef>, <GUIRef href="/baanerp/tc/domains/reft#budget" role="option">Budget</GUIRef>, <GUIRef href="/baanerp/tc/domains/reft#project" role="option">Project</GUIRef>, <GUIRef href="/baanerp/tc/domains/reft#standard" role="option">Standard Variant</GUIRef>, or <GUIRef href="/baanerp/tc/domains/reft#tp" role="option">TP Project</GUIRef>.</Paragraph>
      <GeneralSection>
         <SectionTitle>The configuration process</SectionTitle>
         <List>
            <ListIntro>The configuration process section consists of the following
			 subsections:</ListIntro>
            <ListItem>To configure a product variant</ListItem>
            <ListItem>To select an option value</ListItem>
            <ListItem>To validate an option value</ListItem>
            <ListItem>To validate an option set</ListItem>
            <ListItem>To validate a product variant</ListItem>
         </List>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To configure a product variant</SectionTitle>
         <ProcedureList>
            <ListItem>Open the <GUIRef href="/baanerp/ti/pcf/tipcf5501m000" role="session">Product Variants (tipcf5501m000)</GUIRef> session, and start the details session.</ListItem>
            <ListItem>Determine the generic item for which you want to configure a
			 product variant.</ListItem>
            <ListItem>Start the
			 configuration process from the <GUIRef href="/baanerp/ti/pcf/tipcf5501m000" role="session">Product Variants (tipcf5501m000)</GUIRef> details session.</ListItem>
            <ListItem>LN reads the generic configuration structure
			 and searches for the <Link href="/baanerp/ti/glossary/glossary#100011" role="glossary">option set</Link> for the top of the product structure.</ListItem>
            <ListItem>If the option set is
			 found, the set is displayed in the <GUIRef href="/baanerp/ti/pcf/tipcf5120m000" role="session">Product Configurator (tipcf5120m000)</GUIRef> session; go to step 6. If the option set
			 is not found, nothing is displayed in the <GUIRef href="/baanerp/ti/pcf/tipcf5120m000" role="session">Product Configurator (tipcf5120m000)</GUIRef> session; go to step 10.</ListItem>
            <ListItem>LN reads the first option set of the generic
			 item. Refer to subsection To read option sets.</ListItem>
            <ListItem>Click the <GUIRef href="/baanerp/ti/pcf/tipcf5120m000#tipcf520.copt" role="manual">Option</GUIRef> field of a product feature. Double click '...'
			 to display the valid options. The options are displayed in the <Link href="/baanerp/ti/pcf/tipcf1110m000" role="session">Options by Product Feature and Generic Item (tipcf1110m000)</Link> session. Select the desired option value. Refer to
			 subsection To select an option value.</ListItem>
            <ListItem>LN validates the selected <Link href="/baanerp/ti/glossary/glossary#100001" role="glossary">option</Link> value. Refer to subsection To validate an option
			 value.</ListItem>
            <ListItem>Repeat steps 7 and 8
			 for each new feature. After you selected a option for each product feature, LN validates the entire
			 option set. Refer to subsection To validate an option set.</ListItem>
            <ListItem>Click the next group
			 button to prompt LN to
			 search for the next (lower level) option set for the item.</ListItem>
            <ListItem>LN searches for the next option set and
			 performs the constraint section <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef> for the
			 components of the generic bill of material.</ListItem>
            <ListItem>LN checks if another option set is available on
			 this level. If Yes, go to step 5. If No, go to step 13.</ListItem>
            <ListItem>LN validates the product variant. Refer to
			 subsection To validate a product variant.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To read option sets</SectionTitle>
         <ProcedureList>
            <ListItem>LN reads the product features of the generic
			 item and searches for the first product feature (the first option set) of the
			 generic item in the top of the structure.</ListItem>
            <ListItem>LN checks if a product constraint is linked to
			 the product feature. If Yes, go to step 3. If No, go to step 7.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the <GUIRef href="/baanerp/tc/domains/cnss#before.input" role="option">Before Input</GUIRef> constraint section.</ListItem>
            <ListItem>LN checks if the input or display of option
			 values is allowed. If Yes, go to step 5. If No, go to step 6.</ListItem>
            <ListItem>LN checks if there are any additional features
			 for which steps 2 through 4 must be performed. If Yes, go to step 8. If No, go
			 to step 7.</ListItem>
            <ListItem>If the input of an
			 option value is not allowed, LN initializes the option with the value
			 defined in the <GUIRef href="/baanerp/tc/domains/cnss#before.input" role="option">Before Input</GUIRef> constraint section, and continues the
			 procedure from step 8. If input and display are not allowed for any of the
			 options, LN disables the
			 option field. Such option sets are called invisible option sets. Invisible
			 option sets are option sets in which the input or display of an option value is
			 not allowed for any product feature. These invisible option sets are
			 automatically initialized and subsequently validated by the product
			 configurator.</ListItem>
            <ListItem>Select the option
			 values. Option values are discussed further in the To select an option value
			 subsection.</ListItem>
            <ListItem>LN searches for the next product feature of the
			 first option set.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To select an option value</SectionTitle>
         <ProcedureList>
            <ListItem>Double click the
			 Option field of the product feature for which you want to select an option
			 value.</ListItem>
            <ListItem>LN checks if a product constraint is linked to
			 that product feature. If Yes, go to step 3. If No, go to step 5.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the <GUIRef href="/baanerp/tc/domains/cnss#before.input" role="option">Before Input</GUIRef> constraint section.</ListItem>
            <ListItem>LN checks if the input or display of option
			 values is allowed. If Yes, go to step 5. If No, go to step 6.</ListItem>
            <ListItem>Zoom to the allowed
			 options. Click '...' to display all valid features in the <GUIRef href="/baanerp/ti/pcf/tipcf1110m000" role="session">Options by Product Feature and Generic Item (tipcf1110m000)</GUIRef> session. To compose the list
			 of allowed options, LN carries out the <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef> constraint
			 section of the relevant constraints for each available option. Go to step 7.</ListItem>
            <ListItem>If the input of an
			 option value is not allowed, LN initializes the option with the value
			 defined in the <GUIRef href="/baanerp/tc/domains/cnss#before.input" role="option">Before Input</GUIRef> constraint section. Continue the procedure
			 from step 9.</ListItem>
            <ListItem>Select the option
			 value.</ListItem>
            <ListItem>LN validates the option value selected. Refer
			 to subsection To validate an option value.</ListItem>
            <ListItem>Check whether another
			 product feature is present for which options must be selected. If Yes, go to
			 step 1. If No, go to step 10.</ListItem>
            <ListItem>LN validates the option set. Refer to
			 subsection To validate an option set.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To validate an option value</SectionTitle>
         <List>
            <ListIntro>The option value is only validated:</ListIntro>
            <ListItem>If the input of an
			 option value is allowed for the product feature.</ListItem>
            <ListItem>If the option value is
			 not empty.</ListItem>
         </List>
         <ProcedureList>
            <ListItem>LN checks if the options are selective (that
			 is, a set of option values of which you can select one), or whether you must
			 type a value yourself. If selective, go to step 2. If not selective, go to step
			 3.</ListItem>
            <ListItem>If a product feature
			 has selective options, LN checks if the selected option value is part of a set assigned to the feature.
			 Then LN checks if the
			 selection date falls within the validity period of the option.</ListItem>
            <ListItem>If the product
			 feature has no selective options, LN checks if the entered option value falls
			 within the option value domain.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the constraint section <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef>, which
			 determines whether the selected option value is allowed.</ListItem>
            <ListItem>LN checks if the selected option value is
			 allowed. If Yes, go to step 6. If No, go to step 7.</ListItem>
            <ListItem>Double click the
			 Option field of the next product feature.</ListItem>
            <ListItem>If you entered a
			 value that is not allowed, you can call the constraint expression involved.</ListItem>
            <ListItem>You can record an
			 extensive description or explanatory text that relates to the product variant
			 option by selecting the record in the <GUIRef href="/baanerp/ti/pcf/tipcf1110m000" role="session">Options by Product Feature and Generic Item (tipcf1110m000)</GUIRef> session, and click Text..</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To validate an option set</SectionTitle>
         <Paragraph>Option set validation
		  occurs for each product feature of the product variant option set. LN performs this step
		  before searching for another option set and before terminating the
		  configuration process.</Paragraph>
         <ProcedureList>
            <ListItem>LN reads the first product feature of the
			 option set.</ListItem>
            <ListItem>LN reads the product constraint and carries out
			 the <GUIRef href="/baanerp/tc/domains/cnss#before.input" role="option">Before Input</GUIRef> constraint section.</ListItem>
            <ListItem>LN checks if the input or display of option
			 values is allowed. If Yes, go to step 4. If No, go to step 5.</ListItem>
            <ListItem>LN checks if the options are selective. If Yes,
			 go to step 7. If No, go to step 8.</ListItem>
            <ListItem>If the input of an
			 option value is not allowed, LN initializes the option with the value
			 defined in the <GUIRef href="/baanerp/tc/domains/cnss#before.input" role="option">Before Input</GUIRef> constraint section.</ListItem>
            <ListItem>LN performs the <GUIRef href="/baanerp/tc/domains/cnss#substitution" role="option">Parameter Substitution</GUIRef> constraint section. You can give the option a fixed value
			 in this constraint section. This value may or may not be calculated with a
			 formula.</ListItem>
            <ListItem>If the product
			 feature has selective options, LN checks if the option value selected is part
			 of a set assigned to the product feature. Then, LN checks if the
			 selection date falls within the validity period of the option.</ListItem>
            <ListItem>If the product
			 feature has no selective options, LN checks if the option selected falls within
			 the option value domain.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef> constraint
			 section, which determines whether the option value selected is allowed.</ListItem>
            <ListItem>LN checks if the option value selected is
			 allowed. If Yes, go to step 11. If No, go to step 12.</ListItem>
            <ListItem>LN reads the next product feature of the option
			 set.</ListItem>
            <ListItem>If you have selected
			 an option value that is not allowed, you can correct the option value.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To validate a product variant</SectionTitle>
         <Paragraph>The product variant is
		  only validated if you have selected an allowed option value for each product
		  feature of each option set.</Paragraph>
      </GeneralSection>
      <Note>
         <SectionTitle>Note</SectionTitle>
         <Paragraph>You can validate a
		  range of product variants in the <Link href="/baanerp/ti/pcf/tipcf5200m000" role="session">Validate Product Variants (tipcf5200m000)</Link> session.</Paragraph>
      </Note>
      <GeneralSection>
         <SectionTitle>The generation process</SectionTitle>
         <List>
            <ListIntro>After you configured a product variant, you can continue to
			 generate the product variant using the following sessions:</ListIntro>
            <ListItem> 
               <GUIRef href="/baanerp/ti/pcs/tipcs2220m000" role="session">Generate (Project) Structure for Product Variant (tipcs2220m000)</GUIRef> session.</ListItem>
            <ListItem> 
               <GUIRef href="/baanerp/td/sls/tdsls1201m100" role="session">Generate (Budget) Structure for Sales Quotations (tdsls1201m100)</GUIRef> session.</ListItem>
            <ListItem> 
               <GUIRef href="/baanerp/td/sls/tdsls4244m000" role="session">Generate (Project) Structure for Sales Orders (tdsls4244m000)</GUIRef> session.</ListItem>
         </List>
         <List>
            <ListIntro>The generation process is explained in the following
			 subsections:</ListIntro>
            <ListItem>To generate a product variant structure</ListItem>
            <ListItem>To generate item data</ListItem>
            <ListItem>To generate a variant routing</ListItem>
            <ListItem>To generate a purchase/sales price</ListItem>
         </List>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To generate a product variant structure</SectionTitle>
         <ProcedureList>
            <ListItem>Select the product
			 variant for which you want to generate the product variant structure.</ListItem>
            <ListItem>Click Generate to
			 start the process.</ListItem>
            <ListItem>LN reads the generic product structure and
			 searches for the first item in the top of the structure.</ListItem>
            <ListItem>LN reads the product constraint linked to the
			 bill of material component and performs the <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef> constraint
			 section.</ListItem>
            <ListItem>LN determines whether the item is part of the
			 generic product structure. If Yes, go to step 6. If No, go to step 7.</ListItem>
            <ListItem>LN reads the item type of the item. If the type
			 is Generic, go to step 8. If it is another item type, go to step 7.</ListItem>
            <ListItem>LN searches for next item on this level.</ListItem>
            <ListItem>LN searches for the product variant and reads
			 the selected features and options.</ListItem>
            <ListItem>LN includes the item in the variant structure.</ListItem>
            <ListItem>LN generates the product variant structure on
			 the basis of the features and options selected. The following are generated
			 consecutively: product variant item data, purchase/sales price, bill of
			 material, and routing. Refer to the subsections below for more information.</ListItem>
            <ListItem>LN checks if the item is a generic, purchased,
			 or manufactured item. If the item is Manufactured, go to step 7. If the item is
			 Purchased, go to step 12.</ListItem>
            <ListItem>LN continues the search for the next item on
			 the next lower level. The procedure is resumed from step 4.</ListItem>
            <ListItem>LN generates the item data, the purchase and
			 sales data, the bill of material and the routing of the product variant.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To generate item data</SectionTitle>
         <ProcedureList>
            <ListItem>LN reads the first line of the generic item
			 data.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the constraint section <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef>.</ListItem>
            <ListItem>LN determines if the item data element can be
			 included in the variant structure. If Yes, go to step 4. If No, go to step 5.</ListItem>
            <ListItem>LN includes the data element in the product
			 variant structure.</ListItem>
            <ListItem>LN reads the next line of the item data.</ListItem>
         </ProcedureList>
         <ProcedureList>
            <ListItem>LN reads the first component of the generic
			 bill of material.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the constraint section <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef>.</ListItem>
            <ListItem>LN determines if the component may or may not
			 be included in the variant structure. If Yes, go to step 4. If No, go to step
			 5.</ListItem>
            <ListItem>LN performs the constraint section <GUIRef href="/baanerp/tc/domains/cnss#substitution" role="option">Parameter Substitution</GUIRef>. Using the formulas of this constraint section, LN calculates the length,
			 width, number of units, and net quantity of a bill of material component.</ListItem>
            <ListItem>LN includes the bill of material component in
			 the product variant structure.</ListItem>
            <ListItem>LN reads the next component.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To generate a variant routing</SectionTitle>
         <ProcedureList>
            <ListItem>LN reads the first operation of the variant
			 routing.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the constraint section <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef>.</ListItem>
            <ListItem>LN determines if the operation can be included
			 in the variant structure. If Yes, go to step 4. If No, go to step 5.</ListItem>
            <ListItem>LN performs the constraint section <GUIRef href="/baanerp/tc/domains/cnss#substitution" role="option">Parameter Substitution</GUIRef>. Using the formulas of this constraint section, LN calculates the setup
			 time and the run time for the operation.</ListItem>
            <ListItem>LN includes the operation in the product
			 variant structure.</ListItem>
            <ListItem>LN reads the next operation.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To generate a purchase/sales price</SectionTitle>
         <ProcedureList>
            <ListItem>LN reads the first line of the generic price
			 list.</ListItem>
            <ListItem>LN reads the product constraint and performs
			 the constraint section <GUIRef href="/baanerp/tc/domains/cnss#validation" role="option">Validation</GUIRef>.</ListItem>
            <ListItem>LN determines if the price list line can be
			 included in the price structure of the product variant. If Yes, go to step 4.
			 If No, go to step 5.</ListItem>
            <ListItem>LN performs the constraint section <GUIRef href="/baanerp/tc/domains/cnss#substitution" role="option">Parameter Substitution</GUIRef>. Using the formulas of this constraint section, LN calculates the
			 purchase/sales price or the surcharge/discountpercentage.</ListItem>
            <ListItem>LN includes the price list line in the
			 purchase/sales price structure of the product variant.</ListItem>
            <ListItem>LN reads the next price list line.</ListItem>
         </ProcedureList>
      </GeneralSection>
      <GeneralSection>
         <SectionTitle>To configure product variants that contain purchased
		  configurable items</SectionTitle>
         <Paragraph>You can configure <Link href="/baanerp/td/glossary/glossary#ProducVarian_td" role="glossary">product variants</Link> that contain purchased <Link href="/baanerp/tc/glossary/glossary#000440" role="glossary">configurable items</Link>. You can use a <Link href="/baanerp/tc/glossary/glossary#000440" role="glossary">configurable item</Link> to create a item structure that can hold a configurable purchased
		  sub-assembly. The purchased sub-assembly is issued at the assembly line like
		  other assembly parts.</Paragraph>
         <List>
            <ListIntro>For more information on procuring purchased <Link href="/baanerp/tc/glossary/glossary#000440" role="glossary">configurable items</Link> in Assembly Control module, refer to</ListIntro>
            <ListItem>
               <Link href="/baanerp/ti/onlinemanual/000530" role="manual">Procuring configured items in Assembly Control - Master Data Setup</Link>
            </ListItem>
            <ListItem>
               <Link href="/baanerp/ti/onlinemanual/000535" role="manual">Procuring configured items in Assembly Control - BOM setup</Link>
            </ListItem>
            <ListItem>
               <Link href="/baanerp/ti/onlinemanual/000540" role="manual">Product variants - Purchased configurable items</Link>
            </ListItem>
         </List>
      </GeneralSection>
   </GeneralSection>
   <RelatedTopics>
      <SectionTitle>Related topics</SectionTitle>
      <RelTopic>
         <Link href="/baanerp/ti/onlinemanual/100011" role="manual">PCF procedures</Link>
      </RelTopic>
   </RelatedTopics>
</ManualTopic>