---
tags:
- printing integration
alias: tutorials-printingintegrationintroduction
hide:
- toc
description: "Critical Manufacturing MES provides a flexible printing system for documents and reports"
---
# Introduction
Critical Manufacturing MES offers an out-of-the-box printing mechanism that allows you to effortlessly create labels or reports using the **Printable Document** entity, which can be found in the **Business Data** menu. This feature includes the ability to configure both the layout and respective contexts, which are dynamically applied at runtime using an internal layout creator and editor.
Although the base system is versatile to the point of providing easy configuration with out-of-the-box printers, there is also the possibility of integrating third-party vendors to accommodate different solutions tailored to specific user requirements, which often comprise numerous pre-configured documents and layouts. Consequently, leveraging the Critical Manufacturing MES printing approach required migrating existing documents, or alternatively, integration via customization.
To streamline and enhance the viability of the solution, this extension not only offers out-of-the-box integration with two popular printing solutions, **NiceLabel** and **BarTender**, but also provides easy extensibility for integration with other vendors.
The summary of a Printing Operation workflow can be seen in the following diagram:
```mermaid
flowchart TD
A[Print Operation] -->|Resolve PrinterTypePrintersContext| C{Has Printer Integration?}
C -->|No| D[Use default logic]
C -->|Yes| E[Format Data Context Items
Use Printing Integration
InputFormatterRule
and
Printable Document External Layout
if exists]
E -..->|Default DEE Rules| G{Print
System?}
subgraph DEE
G -->|BarTender| PS{Integration
Type?}
G -->|NiceLabel| PS2{Integration
Type?}
PS -->|File| H1[PrintingIntegration
BarTender
FileInput]
PS -->|WebService| H2[PrintingIntegration
BarTender
WebServiceInput]
PS2 -->|File| J1[PrintingIntegration
NiceLabel
FileInput]
PS2 -->|WebService| J2[PrintingIntegration
NiceLabel
WebServiceInput]
end
E --> IM{Integration
Method?}
IM -->|File|Call1[Call PrintingIntegrationFile
NameGenerator]
IM -->|WebService|Call2[Call WebService
Use Authentication Method
defined in Printing Integration Service body
=Result from Printing Integration
InputFormatterRule]
Call2 --> SCM{Web Service Call Mode
Synchronous?}
SCM -->|Yes| FWSR{OutputFormatter
defined?}
SCM -->|No| RIE[Run Integration Entry]
FWSR -->|Yes| OFYES[Parse the response]
FWSR -->|No| OFNO[Keep response as-is]
RIE --> End[End]
Call1 --> End[End]
OFYES --> End
OFNO --> End
Call2 -.->|Default Authentication Methods| G2{Print
System?}
subgraph DAM
G2 -->|BarTender| PIAM[Basic Authentication
None
Printing Integration Authentication Method
Generic Table]
G2 -->|NiceLabel| PIAM
end
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Entity mermaid_entity
class Version1,Version2,Version3,Version4,Version5,Version6,Version7,Version8,Version9,Version10,Version11 mermaid_businessdata
class RevisionA,RevisionB,RevisionC mermaid_entitylinked
```
For more information on data structures and their relations see, [[tutorials-generalarchitecture]].