= Excel Integration Client-Side Validation = * [[ExcelIntegration|Back]] <> = Introduction = Client-side validation will be implemented as Excel formulas and maps, assigned to validation cell properties. == Column Descriptions == Descriptions of columns used in the tables below: 1. '''Field''' - The field name from the ''Header Structure'' 1. '''Type''' - The field type/format validation that should be applied 1. '''Req.''' - Is a value for the field required? 1. '''RO''' - Is the field ''read-only'', e.g. the user cannot edit the field 1. '''Size''' - For fields of type ''text'' the maximum number of characters 1. '''Validation/Notes''' - Validation rules of other notes == Field Types == Explanation of the field types values: 1. '''date''' - Date. Format is '''dd.mm.yy''' 1. '''float''' - Floating point number. Format is '''9.9''' 1. '''integer''' - Integer value. Format is '''9''' 1. '''menu''' - Values determined by menu contents 1. '''text''' - Text field, with maximum length = Records = == Document == || '''Document Fields''' || ||<:30%> '''Field''' || '''Type''' || '''Req.''' || '''RO''' || '''Size''' ||<:30%> '''Validation/Notes''' || || xContractLookup || n/a || n/a || n/a || n/a || ''hidden'' || || bereichCode || menu || Y || N || n/a || locked if keyDocId set || || gruppeCodeMenu || menu || Y || N || n/a || || || gruppeCodeLookup || n/a || n/a || n/a || n/a || ''hidden'' || || archivCode || menu || Y || N || n/a || || || archivCodeLookup || n/a || n/a || n/a || n/a || ''hidden'' || || drawingIndex || text || Y || Y || n/a || ''calculated'' || || zugriffCode || menu || Y || N || n/a || || || projektphaseCode || menu || Y || N || n/a || || || fachCode || menu || Y || N || n/a || || || objektCode || menu || Y || N || n/a || || || kontaktCode || menu || Y || N || n/a || || || documenttypCode || menu || Y || N || n/a || || || drawingNo || integer || Y || N || n/a || >= 0, <= 9999 || || partNo || text || Y || N || 3 || [A-Za-z0-9] || || externalKeyDoc || text || Y || N || 255 || || || titel1 || text || Y || N || 255 || || || titel2 || text || N || N || 255 || || || titel3 || text || N || N || 255 || || || titel4 || text || N || N || 255 || || || massstab || text || N || N || 64 || || || formatCode || n/a || n/a || n/a || n/a || ''field not implemented'' || || glTech || n/a || n/a || n/a || n/a || ''field not implemented'' || || glVertrag || n/a || n/a || n/a || n/a || ''field not implemented'' || == Rev-A Vorabzug == || '''Document Fields''' || ||<:30%> '''Field''' || '''Type''' || '''Req.''' || '''RO''' || '''Size''' ||<:30%> '''Validation/Notes''' || || vorabzugMenu || menu || Y || N || n/a || locked if keyRevAId set || || revBVorabzugFlag || n/a || n/a || n/a || n/a || hidden, set to 1 if keyRevAId is set || || revARevisionCode || text || Y || Y || n/a || || || revATv || date || Y || Y || n/a || ''calculated'' || || revAErstellIst || date || Y || N || n/a || ''see below'' || || revAErstellWer || menu || Y || N || n/a || ''see below'' || || revADelta7 || integer || Y || N || n/a || >= 0 || || revAStellungStnNr || n/a || n/a || n/a || n/a || ''field not implemented'' || || revAStellungSoll || date || Y || Y || n/a || ''calculated'' || || revAStellungIst || date || Y || N || n/a || ''see below'' || || revAStellungWer || menu || Y || N || n/a || ''see below'' || || revAStellungStatus || menu || Y || N || n/a || ''see below'' || || revAStellungStatusFormula || n/a || n/a || n/a || n/a || ''hidden'' || || revADelta6 || integer || Y || N || n/a || >= 0 || || revABereinSoll || date || Y || Y || n/a || ''calculated'' || || revABereinIst || date || Y || N || n/a || || || revABereinWer || menu || Y || N || n/a || || || revABereinStatus || menu || Y || N || n/a || || || revABereinStatusFormula || n/a || n/a || n/a || n/a || ''hidden'' || == Rev-B zur Freigabe == || '''Document Fields''' || ||<:30%> '''Field''' || '''Type''' || '''Req.''' || '''RO''' || '''Size''' ||<:30%> '''Validation/Notes''' || || revBRevisionCode || text || Y || Y || n/a || || || revBDelta5 || integer || Y || N || n/a || >= 0 || || revBTzf || date || Y || Y || n/a || ''calculated'' || || revBErstellIst || date || Y || N || n/a || ''see below'' || || revBErstellWer || menu || Y || N || n/a || ''see below'' || || revBPruefArt || n/a || n/a || n/a || n/a || ''field not implemented'' || || revBDelta4 || integer || Y || N || n/a || >= 0 || || revBPruefNr || n/a || n/a || n/a || n/a || ''field not implemented'' || || revBPruefSoll || date || Y || Y || n/a || ''calculated'' || || revBPruefIst || date || Y || N || n/a || ''see below'' || || revBPruefWer || menu || Y || N || n/a || ''see below'' || || revBPruefStatus || menu || Y || N || n/a || ''see below'' || || revBPruefStatusFormula || n/a || n/a || n/a || n/a || ''hidden'' || || revBQeNr || n/a || n/a || n/a || n/a || ''field not implemented'' || || revBDelta3 || integer || Y || N || n/a || >= 0 || || revBTf || date || Y || Y || n/a || ''calculated'' || || revBFreiIst || date || Y || N || n/a || ''see below'' || || revBFreiWer || menu || Y || N || n/a || ''see below'' || || revBFreiStatus || menu || Y || N || n/a || ''see below'' || || revBFreiStatusLookupFormula || n/a || n/a || n/a || n/a || ''hidden'' || == Rev-C gut zur Ausführung / freigegeben == || '''Document Fields''' || ||<:30%> '''Field''' || '''Type''' || '''Req.''' || '''RO''' || '''Size''' ||<:30%> '''Validation/Notes''' || || revCRevisionCode || text || Y || Y || n/a || || || x_revCRevisionTypeMenu || menu || Y || N || n/a || || || revCRevisionTypeId || n/a || n/a || n/a || n/a || ''hidden'' || || revCVersandIst || date || Y || N || n/a || ''see below'' || || revCVersandWer || menu || Y || N || n/a || ''see below'' || || revCErhaltenIst || date || Y || N || n/a || ''see below'' || || revCErhaltenWer || menu || Y || N || n/a || ''see below'' || || revCErhaltenStatus || menu || Y || N || n/a || ''see below'' || || revCErhaltenStatusFormula || n/a || n/a || n/a || n/a || ''hidden'' || || revCDelta2 || integer || Y || N || n/a || >= 0 || || revCTgza || date || Y || Y || n/a || ''calculated'' || || revCUebergebenIst || date || Y || N || n/a || ''see below'' || || revCUebergebenWer || menu || Y || N || n/a || ''see below'' || || revCUebergebenStatus || menu || Y || N || n/a || ''see below'' || || revCUebergebenStatusFormula || n/a || n/a || n/a || n/a || ''hidden'' || || revCDelta1 || integer || Y || N || n/a || >= 0 || || revCT0 || date || Y || N || n/a || || || revCT0wv || date || Y || N || n/a || || == User Defined Fields == || '''Document Fields''' || ||<:30%> '''Field''' || '''Type''' || '''Req.''' || '''RO''' || '''Size''' ||<:30%> '''Validation/Notes''' || || resourcePlanCad || float || Y || N || n/a || >= 0 || || resourcePlanPi || float || Y || N || n/a || >= 0 || || resourcePlanPl || float || Y || N || n/a || >= 0 || || resourcePlanVon || date || Y || Y || n/a || || || resourcePlanBis || date || Y || Y || n/a || || || resourcePlAxpo || float || Y || N || n/a || >= 0 || || resourcePlPruef || float || Y || N || n/a || >= 0 || || resourcePlVon || date || Y || Y || n/a || || || resourcePlBis || date || Y || Y || n/a || || || verteilerRevAPl || integer || Y || N || n/a || >= 0 || || verteilerRevAPi || integer || Y || N || n/a || >= 0 || || verteilerRevAOebl || integer || Y || N || n/a || >= 0 || || verteilerRevAUn || integer || Y || N || n/a || >= 0 || || verteilerRevAExt || integer || Y || N || n/a || >= 0 || || verteilerRevAAblage || integer || Y || N || n/a || >= 0 || || verteilerRevBPl || integer || Y || N || n/a || >= 0 || || verteilerRevBPi || integer || Y || N || n/a || >= 0 || || verteilerRevBOebl || integer || Y || N || n/a || >= 0 || || verteilerRevBUn || integer || Y || N || n/a || >= 0 || || verteilerRevBExt || integer || Y || N || n/a || >= 0 || || verteilerRevBAblage || integer || Y || N || n/a || >= 0 || || verteilerRevCPl || integer || Y || N || n/a || >= 0 || || verteilerRevCPi || integer || Y || N || n/a || >= 0 || || verteilerRevCOebl || integer || Y || N || n/a || >= 0 || || verteilerRevCUn || integer || Y || N || n/a || >= 0 || || verteilerRevCExt || integer || Y || N || n/a || >= 0 || || verteilerRevCAblage || integer || Y || N || n/a || >= 0 || = Workflow Validation = == Rev-A Vorabzug == === Erstellen (design) === ==== Workflow Steps ==== * Prev step: ''n/a'' * This step: ''revAErstell'' * Next step: ''revAStellung'' ==== Validation Rules ==== 1. Field: '''''revAErstellIst''''' (design complete date) * required if ''revAStellungIst'' (next step) is set * <= today * <= ''revAStellungIst'' (next step), which may not be set 1. Field: '''''revAErstellWer''''' (design responsible id) * required if ''revAErstellIst'' (this step) is set === Stellungnahme (check) === ==== Workflow Steps ==== * Prev step: ''revAErstell'' * This step: ''revAStellung'' * Next step: ''revABerein'' ==== Validation Rules ==== 1. Field: '''''revAStellungIst''''' (check complete date) * cannot be set if ''revAErstellIst'' (prev step) is not set * required if ''revABereinIst'' (next step) is set * <= today * >= ''revAErstellIst'' (prev step) * <= ''revABereinIst'' (next step), which may not be set 1. Field: '''''revAStellungWer''''' (check responsible id) * required if ''revAStellungIst'' (this step) is set 1. Field: '''''revAStellungStatus''''' (check status) * if ''revAStellungIst'' (this step) is not set --> ''offen'' (open) * if ''revAStellungIst'' (this step) is set --> one of: * ''keine Bemerkungen'' (approved) * ''Bemerkungen einarbeiten'' (approved with comments) === Bereinigung (approve) === ==== Workflow Steps ==== * Prev step: ''revAStellung'' * This step: ''revABerein'' * Next step: ''revBErstell'' ==== Validation Rules ==== 1. Field: '''''revABereinIst''''' (approve complete date) * cannot be set if ''revAStellungIst'' (prev step) is not set * required if ''revBErstellIst'' (next step) is set * <= today * >= ''revAStellungIst'' (prev step) * <= ''revBErstellIst'' (next step), which may not be set 1. Field: '''''revABereinWer''''' (approve responsible id) * required if ''revABereinIst'' (this step) is set 1. Field: '''''revABereinStatus''''' (approve status) * if ''revABereinIst'' (this step) is not set --> ''offen'' (open) * if ''revABereinIst'' (this step) is set --> ''bereinigt'' (approved) == Rev-B zur Freigabe == === Erstellen (design) === ==== Workflow Steps ==== * Prev step: ''revABerein'' * This step: ''revBErstell'' * Next step: ''revBPruef'' ==== Validation Rules ==== 1. Field: '''''revBErstellIst''''' (design complete date) * cannot be set if ''revABereinIst'' (prev step) is not set * required if ''revBPruefIst'' (next step) is set * <= today * if ''revBVorabzugFlag'' then * >= ''revABereinIst'' (prev step), which may not be set * <= ''revBPruefIst'' (next step), which may not be set 1. Field: '''''revBErstellWer''''' (design responsible id) * required if ''revBErstellIst'' (this step) is set === Prüfbericht (check) === ==== Workflow Steps ==== * Prev step: ''revBErstell'' * This step: ''revBPruef'' * Next step: ''revBFrei'' ==== Validation Rules ==== 1. Field: '''''revBPruefIst''''' (check complete date) * cannot be set if ''revBErstellIst'' (prev step) is not set * required if ''revBFreiIst'' (next step) is set * <= today * >= ''revBErstellIst'' (prev step) * <= ''revBFreiIst'' (next step), which may not be set 1. Field: '''''revBPruefWer''''' (check responsible id) * required if ''revBPruefIst'' (this step) is set 1. Field: '''''revBPruefStatus''''' (check status) * if ''revBPruefIst'' (this step) is not set --> ''offen'' (open) * if ''revBPruefIst'' (this step) is set --> ''Prüfbericht erstellt'' (approved) === Freigabe (approve) === ==== Workflow Steps ==== * Prev step: ''revBPruef'' * This step: ''revBFrei'' * Next step: ''revCVersand'' ==== Validation Rules ==== 1. Field: '''''revBFreiIst''''' (approve complete date) * cannot be set if ''revBPruefIst'' (prev step) is not set * required if ''revCVersandIst'' (next step) is set * <= today * >= ''revBPruefIst'' (prev step) * <= ''revCVersandIst'' (next step), which may not be set 1. Field: '''''revBFreiWer''''' (approve responsible id) * required if ''revBFreiIst'' (this step) is set 1. Field: '''''revBFreiStatus''''' (approve status) * if ''revBFreiIst'' (this step) is not set --> ''offen'' (open) * if ''revBFreiIst'' (this step) is set --> one of: * ''Keine freigabe'' (rejected) * ''ohne Berkungen'' (approved) * ''mit Berkungen'' (approved with comments) == Rev-C gut zur Ausführung / freigegeben == === Versand (design) === ==== Workflow Steps ==== * Prev step: ''revBFrei'' * This step: ''revCVersand'' * Next step: ''revCErhalten'' ==== Validation Rules ==== 1. Field: '''''revCVersandIst''''' (design complete date) * cannot be set if ''revBFreiIst'' (prev step) is not set * cannot be set if ''revBFreiIst'' (prev step) is set to ''Keine Freigabe'' (rejected) * required if ''revCErhaltenIst'' (next step) is set * <= today * >= ''revBFreiIst'' (prev step), which may not be set * <= ''revCErhaltenIst'' (next step), which may not be set 1. Field: '''''revCVersandWer''''' (design responsible id) * required if ''revCVersandIst'' (this step) is set === erhalten (check) === ==== Workflow Steps ==== * Prev step: ''revCVersand'' * This step: ''revCErhalten'' * Next step: ''revCUebergeben'' ==== Validation Rules ==== 1. Field: '''''revCErhaltenIst''''' (check complete date) * cannot be set if ''revCVersandIst'' (prev step) is not set * required if ''revCUebergebenIst'' (next step) is set * <= today * >= ''revCVersandIst'' (prev step) * <= ''revCUebergebenIst'' (next step), which may not be set 1. Field: '''''revCErhaltenWer''''' (check responsible id) * required if ''revCErhaltenIst'' (this step) is set 1. Field: '''''revCErhaltenStatus''''' (check status) * if ''revCErhaltenIst'' (this step) is not set --> ''offen'' (open) * if ''revCErhaltenIst'' (this step) is set --> ''erhalten'' (approved) === übergeben (approve) === ==== Workflow Steps ==== * Prev step: ''revCErhalten'' * This step: ''revCUebergeben'' * Next step: ''n/a'' ==== Validation Rules ==== 1. Field: '''''revCUebergebenIst''''' (approve complete date) * cannot be set if ''revCErhaltenIst'' (prev step) is not set * <= today * >= ''revCErhaltenIst'' (prev step) 1. Field: '''''revCUebergebenWer''''' (approve responsible id) * required if ''revCUebergebenIst'' (this step) is set 1. Field: '''''revCUebergebenStatus''''' (approve status) * if ''revCUebergebenIst'' (this step) is not set --> ''offen'' (open) * if ''revCUebergebenIst'' (this step) is set --> ''erfolgt'' (approved)