# Differences

This shows you the differences between two versions of the page.

Line 1: Line 1:

+====== Sequences ======
+
+Sequences are typically used in constructing part numbers where an entire part number or a portion of a part number is serialized.  Sequences can be defined as numeric or alpha sequences.  They are referenced using tags, which will be discussed later. Sequences can be administrated by clicking on **Sequences **link under the **Products **admin menu.  Here you can easily copy, delete, or edit existing sequences. \\
+
+;#;//Figure A - Sequences List//;#;
+\\
+User can add a new Sequence by clicking the **Add New** button.  This will bring up a blank Sequence Definition page shown in Figure B.  Editing a Sequence will bring up the same screen. \\
+
+;#;//Figure B - Adding New Sequence// ;#;
+\\
+**Seqname** – Name given to the Sequence.  This name is used when referring to the sequence in an expression for part numbers or other definition area. \\
+**Description **– Field is used by the administrator to describe a sequence using additional details such as intended use, etc. \\
+**Globalseq **– Specifies whether or not the sequence will be shared globally among all products (Y) or independently for different products (N). \\
+**Startno **– The first element in the Sequence.  The value should be set to 0 for if a string list will be used. **Endno **– The last element in a sequence.  This value should also be set to 0 if a string list will be used. \\
+**Stepval **– This specifies what the Sequence will be incremented by.   is used most often, but any value can be used. \\
+**Order **– This specifies whether the Sequence will be set up as an Ascending Sequence or a Descending Sequence. \\
+**Alpha **– Specifies if the Sequence elements should be interpreted as Alpha (Y) or Numeric (N). \\
+**Stringlist **–If the sequence consists of an arbitrary sequence such as an array of strings, enter the values here.  Each value needs to be separated by commas (Ex.  Alpha, Bravo, Charlie, Delta, Echo, etc). \\
+**Presentation** – This controls how the Sequence will be displayed. \\
+  * **STR***- This displays the value by itself with no leading 0’s
+  * **STR2 – STR8** – Specifies that the value will be preceded by 0’s and the number of 0’s that will precede.  The choices count the number of digits in the number, NOT the number of 0’s preceding.  See example below.
+  * **CHAR** – Used when creating a Sequence of the Alphabet.  This is described later.  \\
+**Example:**  For STR* the number would be 8 or STR3 it would be 008
+**Seqtype **– Specifies the type of Sequence.  NUMERIC only allows a Sequence of numbers while STRINGLIST allows any characters.
+\\
+
+===== A to Z Sequence =====
+
+One method of creating an A to Z Sequence would be to type "A, B, C, …, Z" into the Stringlist field. An easier way is to use the CHAR function in the Presentation drop down box to generate an A to Z Sequence. To create an A to Z Sequence, enter 1 for Startno, 26 for Endno and 1 for Stepval.  Make sure the Order is Ascending, Alpha is set to Y, and Presentation is set to CHAR.  CHAR converts the Sequence value into an Alphabetic character.  If Lowercase is desired, use 33 for the StartNo and 58 for the Endno. \\
+===== Sequences And Part Numbers =====
+
+Sequences are generally used with part numbers to uniquely identify a configuration.  There are two options for a Sequence being attached to a product number:  the Sequence can be assigned in the configurator when the product is being configured, or it can be assigned when the product has been added to the cart.  If assigned in the cart, sequence values are more likely to be assigned to configurations that will turn into orders. Otherwise, sequence values may be wasted. \\
+There are two ways (in the standard functionality) to make this happen. There are a few settings under **Application Parameters** (under General admin menu) that relate to sequences and how the behave.  One setting is called **Delay Sequence Generation.**  If this is set to TRUE, a sequence can be assigned when the product is being configured.  Once a product has been flagged as complete, a button will show up in the responder labeled **Get Cat Code**.  Clicking this button will generate the sequence value in the configurator.  If Delay Sequence Generation is set to FALSE, the Sequence Value will be generated when the products gets added to the Cart. Another setting on the Application Parameters page is  **Do Not Recycle Sequences**.  This specifies whether the system should go through the sequence again once the Endno has been reached.  Setting it to TRUE will tell the system to not go through the sequence again. \\
+Another setting that is related to sequences on the Application Parameters page is **Unique Product Codes**.  Setting this to TRUE will tell the system to make every product code unique and helps to ensure that duplicate Product Codes are not being used in the system.\\
+===== Working With Sequences =====
+
+In order to include a sequence in the part number or other definition area, an administrator can use one of three (3) tags.  They are: \\
+  * PSEQ – product sequence \\
+  * GSEQ – global sequence \\
+  * SSEQ – nested sequences \\
+**PSEQ **(syntax: <***PSEQ(//sequence name//)***>) is a product sequence, which allows several products to use the same sequence independently of each other. In other words, under this scenario, two products can use the same sequence in their part numbers.  For example: \\
+Product ABC part numbers can be: ABC0001, ABC0002, ABC0003… Product XYZ part numbers can be: XYZ0001, XYZ0002, XYZ0003… \\
+Both products have the same sequences – 0001, 0002, 0003… \\
+**GSEQ **(syntax: <***GSEQ(//sequence name//)***>) is a global sequence, which allows several products to share the same sequence.  In other words, under this scenario, two products increment the same sequence and therefore a sequence number is only used once.  For example: \\
+Product ABC part numbers can be: ABC0001, ABC0002, ABC0004… Product XYZ part numbers can be: XYZ0003, XYZ0005, XYZ0006… \\
+Here Product ABC uses the sequence numbers 0001 and 0002. Product XYZ used the sequence number 0003.  Since 0003 had already been used the next sequence number available for Product ABC was 0004. \\
+
+**Note**: In order for GSEQ to work correctly, all products that will be incrementing the Sequence need to have GSEQ used in their expressions. \\
+
+**SSEQ** (syntax: <***SSEQ(//sequence name1, sequence name 2, …, sequence name n//)***>) allows sequences to be nested.  For example, two sequences go from 1 to 3 and they are named sequence One and Two. The expression <***SSEQ (one, two)***> would result in 11, 12, 13, 21, 22, 23, 31, 32, 33. \\
+Another example would be to have one sequence name of "ABC" with string elements A, B, C, and another sequence named "Ten" going from 1 to 10, then expression <***SSEQ(ABC, Ten)***> would result in A1, A2, A3, A4, A5, A6…, A9, A10, B1, B2, …, B10, C1…, C10. \\
+Similarly, if a portion of a part number is defined as <***SSEQ(Ten, ABC)***> then the results would be 1A, 1B, 1C, 2A, 2B, …10C. \\
+**CXSUB **(syntax: <***CXSUB(//sequence substitution name//)***>) is used for Sequence Substitutions. Sequence Substitution is used with serial numbers and substituting a number to replace long string of attribute values for a product number.  Sequence Substitution tells the system to use the same serial number when certain selected attributes are chosen again. \\
+There are no limits as to how many sequences can be used in defining a part number.  For example a part number can be defined as <nowiki><*Value(Number of Poles)*><PSEQ(some seqname)*><*Value(another attribute)*><PSEQ(another seqname)*><*GSEQ(third sequence)*><*SSEQ(seq four, seq five)*>.</nowiki>
+Sequences can also be included in the part number only if certain conditions are met. This is accomplished by using an IF statement: [If](condition) {expression if true}{expression if false – note this is optional} [ENDIF].  The condition will use the following syntax ([operator](variable1, variable 2)). \\
+For example if there is an attribute called Number of Poles and if that needs to use the numbers from 2000 to 2999 from a sequence named 2000-2999 when the number of poles is 2, but use numbers from 3000 to 4999, from a sequence named 3000-4999, when the number of poles is greater than 3, the expression entered into the Product Catalogue Code generator would be as follows:
+<code>
+<*Value(some attribute)*><*CatCode(another attribute)*>
+[IF]([EQ](<*Value(Number of Poles*>, 2)){PSeq( 2000-2999)}[ENDIF]
+[IF]([GT](<*Value(Number of Poles*>, 3)){PSeq( 3000-4999)}[ENDIF]
+</code>