--- 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]].