VDA 4994 GTL Label
The VDA 4994 GTL Label is a standardized logistics label format used in automotive supply chains. In COSMO Transport, the implementation provides two GTL labels according to VDA 4994: a large layout and a small layout. Both reports use the same application logic and data sources, while the RDLC layout determines the visual arrangement on the printed label.
The implementation in the COSMO EDI app generates:
- a primary Data Matrix code with the VDA 4994 GTL payload
- a Code128 barcode for the package identifier
- an optional supplier area Data Matrix based on free supplier data lines
| Attribute | Value |
|---|---|
| Norm | VDA |
| Version | 4994 |
| Specification ID | GTL3 |
Report Overview and Key Features
The VDA 4994 GTL Label system consists of two report formats:
| Report | Report Number | Caption | Layout File |
|---|---|---|---|
| Large GTL Label | 5309942 | GTL-Label VDA 4994 Large | GTLLabelVDA4994Large.rdlc |
| Small GTL Label | 5309943 | GTL-Label VDA 4994 Small | GTLLabelVDA4994Small.rdlc |
Data Matrix Generation
The primary Data Matrix is generated from the GetLabelMatrixInput() function and then encoded for printing by EncodeDataMatrix(). The generated content:
- uses the ISO/IEC 15434 message wrapper
- writes the VDA 4994 specification identifier
GTL3 - combines transport label, customer, partner, package, item, and tracking data
- includes multiple batch numbers when package tracking contains more than one lot or serial number
Supplier Area and Customer Data
VDA 4994 provides two extensible free-text areas on the label:
- Supplier Area: up to 5 lines, optionally encoded as a second Data Matrix
- Customer Data: up to 5 lines, intended for customer-provided PCI data
The standard implementation does not fill these lines automatically. They can be populated through report procedures or integration events.
Package Structure Evaluation
Before printing, the report evaluates the packaging hierarchy for the current label. This affects both the printed values and the barcode payload:
- S for single packages
- M for master packages
- MIX for mixed-item packages
If a package contains mixed items, the filling quantity is suppressed and returned as 0 for the VDA 4994 quantity logic.
Quantity and Weight Handling
The quantity logic depends on the package structure:
- mixed packages return quantity
0 - master labels and VDA 3B packages use Filling Quantity incl. SubPack
- other labels use the direct Filling Quantity
For the Data Matrix payload, quantities and weights are rounded to whole numbers by the report logic.
Package Tracking Integration
The label reads package tracking data and derives:
- lot or serial numbers for the batch section
- earliest expiration date across tracking entries
- earliest creation date across tracking entries
Batch numbers are printed as a comma-separated text list and are also appended to the primary Data Matrix as 1T, 2T, and subsequent identifiers.
Shipment Date Logic
The printed shipment date follows a priority rule:
E YYYY-MM-DDif an expiration date existsS YYYY-MM-DDif no expiration date exists but a shipment date existsP YYYY-MM-DDif neither of the above exists and a production date is known
Package ID Generation
The package identifier is derived from the label type and the package ID:
1Jfor single labels6Jfor master labels5Jfor mixed labels
The package ID itself is based on the supplier DUNS number and the transport label number. The report also renders this identifier as a Code128 barcode.
Data Matrix Code Structure
The primary VDA 4994 Data Matrix uses the ISO/IEC 15434 message structure:
- Format Header:
[)> - Format Version:
06 - Record Separator: ASCII RS (
30/1Ehex) - Group Separator: ASCII GS (
29/1Dhex) - End of Transmission: ASCII EOT (
4/04hex)
The Data Matrix contains the following identifiers in the standard implementation:
| Identifier | Field Name | Description | Source Table | Source Field or Rule |
|---|---|---|---|---|
| 12P | Specification ID | Fixed specification identifier | System | GTL3 |
| 9K | Specification Version | Fixed version value | System | 01 |
| 3L | Supplier No. of Shipping Plant | Supplier number of ship-from plant | Customer | Our Account No. |
| 4L | Country of Origin | Country of origin of the item | Item | Country/Region of Origin Code |
| 8V | Goods Receiver ID | Interchange identifier of receiver | EDI Partner | Partner Interchange ID |
| 2L | Unloading Plant | Unloading plant code | Transport Label | EDI Unloading Plant |
| 20L | Storage Location ID | Unloading point or gate | Transport Label | EDI Unloading Point |
| V | Supplier No. of Ship-From | Supplier number of ship-from | Customer | Our Account No. |
| 2S | Despatch Advice Number | Delivery or call-off reference | Transport Label | EDI Call No. if Use PUS, otherwise Source No. |
| 22L | Point of Consumption | Point of use or consumption | Sales Shipment Line | CCS ATM Point of Consumption |
| 23L | Customer Specific Routing | Routing information | Transport Label | EDI Routing Code |
| 8D | Expected Delivery Date/Time | Previewed delivery date and time plus qualifier 2 |
Transport Header | Previewed Delivery Date + Previewed Delivery Time |
| Q | Quantity | Label quantity according to package logic | Generated | GetFillingQuantity() |
| 3Q | Unit of Measure | Unit code from the item UoM | Item / Unit of Measure | International Standard Code or Base Unit of Measure |
| 2Q | Gross Weight | Gross weight of the label | Transport Label | Gross Weight |
| P | Customer Part Number | Customer-specific article number | Transport Label | Item Reference No. |
| blank | Package ID | Package identifier without explicit DI | Generated | GetLabelNo().Replace(' ', '') |
| B | Package Type | Packaging code | Transport Label | Package Code |
| 14D | Expiration Date | Earliest expiration date in CCYYMMDDHHMM format |
Package Tracking | Calculated expiration date |
| 16D | Date of Manufacture | Earliest creation date in CCYYMMDDHHMM format |
Package Tracking | Calculated creation date |
| 1T ... nT | Batch Number | Lot or serial numbers from package tracking | Package Tracking | Lot No. or Serial No. |
| 20P | Hardware Version | Additional information field | Generated | GetAdditionalInformation() |
| 21P | Software Version | Reserved, currently empty | System | Empty |
| 2P | Revision / Parts Generation Version | Drawing-based revision information | Transport Label | GetDrawingNo() |
| 23P | Additional Part Information | Reserved, currently empty | System | Empty |
| 30P | RoHS Guideline | RoHS compliance marker | Item | Y, N, or 0 |
| 12V | Supplier DUNS | Supplier or manufacturer DUNS number | EDI Partner | Our DUNS |
| 1P | Manufacturer Part Number | Internal item number | Transport Label | Item No. |
| 33T | Smallest Material Package Indicator | Fixed material package indicator | System | N |
Sample Data Matrix Content
[)>RS06GS12PGTL3GS9K01GS3L4711GS4LDEGS8V4012345000000GS2LPLANT1GS20LGATE2GSV4711GS2SSHIP000123GS22LATM-PNT-CONSUM-001GS23LROUTE001GS8D2026040415002GSQ25GS3QPCEGS2Q660GSPCUST-PART-001GS1JUN123456789000000123GSBEUROGS14D202604241200GS16D202603251200GS1TBATCH001GS2TBATCH002GS20PGS21PGS2PDRAWING-01GS23PGS30PYGS12V123456789GS1PITEM-1000GS33TNRSEOT
Large GTL Label Report
The Large GTL Label (Report 5309942) prints the complete VDA 4994 content in a large layout. It includes the primary GTL Data Matrix, the supplier area matrix, and the printed customer and supplier blocks.
Fields
| Field | Source Table | Source Field | Description |
|---|---|---|---|
| Ship From | Company Information | Name, Name 2, Address, City, Country/Region Code, Post Code | Sender address block |
| ID | Customer | Our Account No. | Supplier identifier in the address block |
| Country of Origin | Item | Country/Region of Origin Code | Origin of the item |
| Ship To | Transport Label | Receiver 1, Receiver 2, Receiver 3 | Receiver address block |
| Plant / Unloading / Internal Destination | Transport Label | EDI Unloading Plant, EDI Unloading Point, EDI Cust. Location Code | Combined unloading information |
| Label Type | Generated | S, M, or MIX |
Package type indicator |
| Primary Data Matrix | Generated | Main VDA 4994 barcode payload | |
| Delivery Note | Transport Label | Source No. or EDI Call No. | Despatch advice reference |
| Supplier Number | Customer | Our Account No. | Supplier number |
| Customer Specific Routing | Transport Label | EDI Routing Code | Routing information |
| ETA | Transport Order | Previewed Delivery Date, Previewed Delivery Time | Expected arrival timestamp |
| Quantity | Transport Label | Filling Quantity | Package quantity according to package logic |
| Net Weight | Transport Label | Net Weight | Net weight, rounded for output |
| Gross Weight | Transport Label | Gross Weight | Gross weight, rounded for output |
| Customer Part Number | Transport Label | Item Reference No. | Customer article number |
| Part Description | Transport Label / Item | Description | Printed item description |
| Safety-Relevant Part Marker | Item | CCS EDI Security-Sensitive | Marks safety-relevant parts |
| Package ID | Generated | Human-readable package identifier | |
| Package ID Barcode | Generated | Code128 representation of package ID | |
| Packaging Type | Transport Label | Package Code | Packaging code |
| Shipment Date | Generated | Expiry date, shipment date, or creation date | Printed with E, S, or P prefix |
| Batch Number | Package Tracking | Lot No. / Serial No. | Comma-separated batch list |
| Part / Hardware / Software Revision | Transport Label | Drawing Number / Drawing Index | Drawing-based revision value |
| Supplier Area 1-5 | Generated | Free supplier lines | |
| Supplier Area Matrix | Generated | Optional secondary Data Matrix | |
| Customer Data 1-5 | Generated | Free customer lines |
Small GTL Label Report
The Small GTL Label (Report 5309943) uses the same business logic and dataset as the large layout. The differences are limited to the RDLC layout and the placement of the visual blocks on the label.
Fields
| Field | Source Table | Source Field | Description |
|---|---|---|---|
| Ship From | Company Information | Name, Name 2, Address, City, Country/Region Code, Post Code | Sender address block |
| ID | Customer | Our Account No. | Supplier identifier in the address block |
| Country of Origin | Item | Country/Region of Origin Code | Origin of the item |
| Ship To | Transport Label | Receiver 1, Receiver 2, Receiver 3 | Receiver address block |
| Plant / Unloading / Internal Destination | Transport Label | EDI Unloading Plant, EDI Unloading Point, EDI Cust. Location Code | Combined unloading information |
| Label Type | Generated | S, M, or MIX |
Package type indicator |
| Primary Data Matrix | Generated | Main VDA 4994 barcode payload | |
| Delivery Note | Transport Label | Source No. or EDI Call No. | Despatch advice reference |
| Supplier Number | Customer | Our Account No. | Supplier number |
| Customer Specific Routing | Transport Label | EDI Routing Code | Routing information |
| ETA | Transport Header | Previewed Delivery Date, Previewed Delivery Time | Expected arrival timestamp |
| Quantity | Transport Label | Filling Quantity | Package quantity according to package logic |
| Net Weight | Transport Label | Net Weight | Net weight, rounded for output |
| Gross Weight | Transport Label | Gross Weight | Gross weight, rounded for output |
| Customer Part Number | Transport Label | Item Reference No. | Customer article number |
| Safety-Relevant Part Marker | Item | CCS EDI Security-Sensitive | Marks safety-relevant parts |
| Package ID | Generated | Human-readable package identifier | |
| Package ID Barcode | Generated | Code128 representation of package ID | |
| Packaging Type | Transport Label | Package Code | Packaging code |
| Shipment Date | Generated | Expiry date, shipment date, or creation date | Printed with E, S, or P prefix |
| Batch Number | Package Tracking | Lot No. / Serial No. | Comma-separated batch list |
| Part / Hardware / Software Revision | Transport Label | Drawing Number / Drawing Index | Drawing-based revision value |
| Supplier Area 1-5 | Generated | Free supplier lines | |
| Supplier Area Matrix | Generated | Optional secondary Data Matrix | |
| Customer Data 1-5 | Generated | Free customer lines |
Integration Events
The VDA 4994 implementation exposes the following primary extension points:
OnBeforeGetLabelNo: override the generated package identifierOnBeforeGenerateMatrixInput: replace the complete GTL Data Matrix payloadOnAfterGenerateMatrixInput: post-process the GTL Data Matrix payloadOnGetSupplierArea: fill or override supplier area linesOnGetCustomerData: fill or override customer data lines
The reports also rely on shared transport label events that are relevant for VDA 4994:
OnBeforeGetAdditionalInformation: provide content for identifier20POnAfterGetItemTrackingInfo: adjust batch numbers, expiry date, or creation dateOnBeforeReturnUnitOfMeasureCode: override the printed or encoded unit codeOnBeforeReturnRoHSMark: override the RoHS markerOnBeforeAppendToVdaBarcodeString: customize the serialization of individual identifiers
Feedback
Submit feedback for this page.