Export and Import

Workstation Import

Workstations are imported via store-specific Storemanager global configurations. This import must be assigned to SDC (Store Device Control).

Enterprise Cockpit Events

The logbook contains information intended for further processing by the Enterprise Cockpit (reports, etc.). The logbook writes all of the data to internal files. These files are exported to XML.

Directories have to be specified to save the log entries. These directories must be the same as defined in the Infoclient configuration.

Configuration file event-upload-sm.properties :

# global swith to enable/disable uploading of logbooks
event-upload.logbook.enabled=false
# default TTL period for all logbook messages (0d means no expiration)
event-upload.logbook.defaultMessageTtl=5d
# define custom expiration for the heart beat event
event-upload.logbook.filter.0220000012010.ttl-period=1h
event-upload.nodeId=@SYSTEM_UNIQUE_NAME@
event-upload.defaultDestinationName=ec.direct-event-receiver.inQueue
event-upload.baseDirectory=${pos-server.root.dir}
event-upload.targetDataDirectory=upload
event-upload.targetTriggerDirectory=trigger
event-upload.targetFilenamePrefix=POS_SERVER_
event-upload.targetFilenameSuffix=.xml
event-upload.uniqueFilenameDatePattern=yyyyMMdd_HHmmss
event-upload.logbook.defaultRetailStoreId=-1
event-upload.logbook.defaultWorkstationId=-1
event-upload.logbook.systemVersion=5.7.0
event-upload.logbook.truncateTooLongMessageContent=false
event-upload.logbook.filter.S_01000200000_00.enabled=false
event-upload.logbook.filter.S_01000200000_01.enabled=false
event-upload.logbook.filter.S_01000200000_02.enabled=false
event-upload.logbook.filter.S_01230202405_00.enabled=false
event-upload.logbook.filter.S_01230202405_01.enabled=false
event-upload.logbook.filter.S_01230202405_02.enabled=false
event-upload.logbook.filter.S_01240215126_00.enabled=false

Event upload is disabled in the example above. To enable event upload, set gkr.event-upload.logbook.enabled=true.

Hybrid Infoserver configuration files {structure ident}.properties :

info.dir.trigger=../../../events/pos-server/trigger
info.dir.upload=../../../events/pos-server/upload

The log files include an event ID, which allows for unique identification and classification of each entry. Event IDs are structured as follows:

X.FunctionID.NN

  • X: "S" = Standard event, "C" = Customer enhancement event
  • NN = Event number of this function, starting with 00
  • FunctionID (11 digits)

The following log entries are defined in the program:

Event ID Event level Event text Description
S_01000200000_00 ERROR Unable to store transaction {0}. The transaction could not be saved to the Enterprise Transaction Pool.
S_01000200000_01 ERROR Calculation {0} failed for transaction {1}. The calculation did not complete successfully.
S_01000200000_02 ERROR Transaction stream broken for till {0} and workstation {1}. Faulty transaction flow. Created if TillWorkstationTenderSummary.TransactionStreamBrokenFlag true.
S_01000200000_03 ERROR POS {0} not compatible. POS version is not compatible with POS Server.
S_ 01230202405 _00 INFO EOD started. End of day was started.
S_ 01230202405 _01 INFO EOD finished. End of day was successfully completed.
S_ 01230202405 _02 ERROR EOD failed because of step {0}. End-of-day process failed.
S_01240215126_00 ERROR Export of transaction {0} for process {1} failed. Export of transaction for a specific process failed.

{0} ... Transaction.TransactionID

{1} ... ProcessID

ProcessID:

  • 102 - POSLog Exports
S_01240200002_00 ERROR Preparation of the SAF-T Export failed with the following error: {0} The preparation of the data for the SAF-T export failed and was canceled: Transaction or master data for SAF-T export could not be written to the generic fiscal table.
S_01240200002_01 ERROR Yearly SAF-T Export failed with the following error: {0} Yearly SAF-T Export failed and was canceled.
S_01240200002_02 ERROR Monthly SAF-T Export failed with the following error: {0} Monthly SAF-T Export failed and was canceled.
S_01240200002_03 ERROR Subsequent SAF-T Export failed with the following error: {0} Subsequent SAF-T Export failed and was canceled.
S_01240200002_04 INFO During preparation of SAF-T Export the ProductCode {0} had to be truncated to {1}. During preparation of the data for the SAF-T export, the ProductCode had to be truncated to 60 characters.
S_01320203002_00 ERROR Unable to create 'Grand Total Period Day' for workstation {0} and day {1}. Creation of Grand Total Period Day transaction failed.
S_01320203002_01 ERROR Unable to create 'Grand Total Period Month' for workstation {0} and month {1}. Creation of Grand Total Period Month transaction failed.
S_01320203002_02 ERROR Unable to create 'Grand Total Period Year' for workstation {0} and year {1}. Creation of Grand Total Period Year transaction failed.
S_01320203003_00 ERROR Unable to create 'Grand Total Ticket' for transaction {0} and workstation {1}. Creation of Grand Total Ticket transaction failed.
S_01380200095_00 ERROR Processing of cash recycler event failed with the following error: {0} Processing error of cash recycler event
S_01380200095_01 WARN Unknown register ID {0} in event EndDispenseFloatEvent Unknown register ID in event EndDispenseFloatEvent
S_01380200095_02 WARN Unknown register ID {0} in event EndDepositEvent Unknown register ID in event EndDepositEvent

POSLog Export

The POSLog export is configured in the configuration file transaction-bulk-exporter.properties . File extract see below:

gkr.tx-export.poslog2route.transactionBulkExporter.enabled=true
# Minimum number of transactions to be exported.
gkr.tx-export.poslog2route.transactionBulkExporter.minBulkSize=1
#If transaction is longer in current pool than maxUnexportedAge, then it will be exported even if minBulkSize was not reached.
gkr.tx-export.poslog2route.transactionBulkExporter.maxUnexportedAge=30s
# Maximum number of transactions to be exported in one file
gkr.tx-export.poslog2route.transactionBulkExporter.maxBulkSize=${gkr.tx-export.poslog2route.poslogMapper.poslog.maxTransactionPerXML}
# Maximum attemtps to persist context when tx pool is locked by some other process (with defined delay between attempts)
gkr.tx-export.poslog2route.transactionBulkExporter.poolLockedRetryCount=10
gkr.tx-export.poslog2route.transactionBulkExporter.poolLockedRetryPeriod=1s
# Maximum attempts to map transaction if mapping failed before transaction is marked as failed
gkr.tx-export.poslog2route.transactionBulkExporter.mapperFailureRetryCount=3
gkr.tx-export.poslog2route.transactionBulkExporter.mapperFailureRetryPeriod=400
#Should XML be "human-readable" ? Defaults to true.
gkr.tx-export.poslog2route.poslogMapper.formattedOutput=true
#XML-specification version of xml produces. Only valid values are "1.0" or "1.1". Defaults to "1.0"
gkr.tx-export.poslog2route.poslogMapper.xmlVersion=1.0
gkr.tx-export.poslog2route.poslogMapper.poslog.maxTransactionPerXML =10
gkr.tx-export.poslog2route.poslogMapper.poslog.xml.validation.enabled =true
gkr.tx-export.poslog2route.poslogMapper.poslog.tender.exportCreditDebitCardNumber =false
gkr.tx-export.poslog2route.poslogMapper.poslog.saleItemForMstrExport =true
gkr.tx-export.poslog2route.poslogMapper.poslog.position.tax.amount.decimalPlacesCount =4
gkr.tx-export.poslog2route.poslogMapper.poslog.position.regularSalesUnitPrice.decimalPlacesCount =2
gkr.tx-export.poslog2route.poslogMapper.poslog.loyalty.trigger.reasonCode.enabled =true
gkr.tx-export.poslog2route.poslogMapper.poslog.priceRevaluation.priceTypes =13
gkr.tx-export.poslog2route.poslogMapper.poslog.promotionIDPrefix =C_
gkr.tx-export.poslog2route.poslogMapper.poslog.missingItemID =not_found
gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema.version =2.6
gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema =http://www.gk-software.com/storeweaver/sdc/pos_upload/pos_upload/${gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema.version}
gkr.tx-export.poslog2route.poslogMapper.poslog.tenderType.foreignCurrency.dbValue.enabled =true
gkr.tx-export.poslog2route.poslogMapper.poslog.tenderType.foreignCurrency =YTFW
gkr.tx-export.poslog2route.poslogMapper.priceChange.rebateMethod =ZRMP
gkr.tx-export.poslog2route.poslogMapper.priceChange.rebateID =0
gkr.tx-export.poslog2route.poslogMapper.priceChange.externalofferID =0
gkr.tx-export.poslog2route.poslogMapper.tillTenderCorrectionReasonCode =TillTenderCorrection
# Exclude some specific types of suspended retail transaction from export
gkr.tx-export.poslog2route.poslogMapper.omit.suspendedRetailTransactionTypeCodeList=SC,ER,RC,RD,FP,GB
# Exclude some specific types of retail transaction from export
gkr.tx-export.poslog2route.poslogMapper.omit.retailTransactionTypeCodeList=SM
gkr.tx-export.poslog2route.routeUploader.export.endpoint=activemq:queue:${system-landscape.prefix:}cis.msg-router-cdep.inQueue
gkr.tx-export.poslog2route.routeUploader.export.messageClass=690352
gkr.tx-export.poslog2route.routeUploader.export.gkImportJobLogicalType=SellingTransactions
gkr.tx-export.poslog2route.routeUploader.export.gkArchiveSourceFileName=[TIMESTAMP].xml
gkr.tx-export.poslog2route.routeUploader.header.messageClass=${gkr.tx-export.poslog2route.routeUploader.export.messageClass}
gkr.tx-export.poslog2route.routeUploader.header.GKLogicalDataType=${gkr.tx-export.poslog2route.routeUploader.export.gkImportJobLogicalType}
gkr.tx-export.poslog2route.routeUploader.header.GKMetaData_SellingTransaction_Version=${gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema.version}
#This is shared by all route uploaders, configured by other property due backward compatibility
gkr.tx-export.endpoint=${gkr.tx-export.poslog2route.routeUploader.export.endpoint}
gkr.tx-export.poslog2route.routeUploader.endpoint=${gkr.tx-export.poslog2route.routeUploader.export.endpoint}
Property Description Default
gkr.tx-export.poslog2route.transactioBulkExporter.enabled Activates the bulk exporter. true
gkr.tx-export.poslog2route.transactioBulkExporter.minBulkSize Defines the minimum number of transactions which are exported in a file 1
gkr.tx-export.poslog2route.transactioBulkExporter.maxBulkSize Defines the maximum number of transactions which are exported in a file ${gkr.tx-export.poslog2route.poslogMapper.poslog.maxTransactionPerXML}
gkr.tx-export.poslog2route.transactionBulkExporter.maxUnexportedAge Defines the maximum age of an unexported transaction in pool.

If a transaction is longer in the current pool than in maxUnexportedAge, then it will be exported even if minBulkSize was not reached.

30s
gkr.tx-export.poslog2route.transactionBulkExporter.poolLockedRetryCount Defines the maximum number of attempts to persist context when the transaction pool is locked by another process (with defined delay between attempts) 10
gkr.tx-export.poslog2route.transactionBulkExporter.poolLockedRetryPeriod Defines the delay between the attempts to persist context when the transaction pool is locked by another process 1s
gkr.tx-export.poslog2route.transactionBulkExporter.mapperFailureRetryCount Defines the maximum number of attempts to map a transaction before the transaction is marked as failed. 3
gkr.tx-export.poslog2route.transactionBulkExporter.mapperFailureRetryPeriod Defines the delay between the next attempts to map the transaction if mapping failed. 400
gkr.tx-export.poslog2route.poslogMapper.formattedOutput Specifies whether the marshalled XML data is formatted with linefeeds and indentation. true
gkr.tx-export.poslog2route.poslogMapper.softwareVersion

(not used anymore, value of app-info.properties directly used)

This property knows special token $INFO{...} which resolves properties from app-info.properties POS-Server v$INFO{project.version}
gkr.tx-export.poslog2route.poslogMapper.poslog.maxTransactionPerXML Defines the maximum number of transactions which are exported per XML. 10
gkr.tx-export.poslog2route.poslogMapper.poslog.xml.validation.enabled Specifies whether the created XML file is validated against the corresponding XSD. true
gkr.tx-export.poslog2route.poslogMapper.poslog.tender.exportCreditDebitCardNumber Specifies whether the credit card number and account number are also exported. false
gkr.tx-export.poslog2route.poslogMapper.poslog.saleItemForMstrExport Specifies whether item information (item number, EAN) is exported for merchandise category items. true
gkr.tx-export.poslog2route.poslogMapper.poslog.position.tax.amount.decimalPlacesCount Specifies the number of decimal places for rounding of the item tax amount 4
gkr.tx-export.poslog2route.poslogMapper.poslog.position.regularSalesUnitPrice.decimalPlacesCount Specifies the number of decimal places to which the regular sales unit price is rounded 2
gkr.tx-export.poslog2route.poslogMapper.poslog.loyalty.trigger.reasonCode.enabled Specifies whether discount reasons are exported. true
gkr.tx-export.poslog2route.poslogMapper.poslog.priceRevaluation.priceTypes List of price types (comma-separated or semicolon-separated) for sales price revaluation 13
gkr.tx-export.poslog2route.poslogMapper.poslog.promotionIDPrefix Prefix prepended to discount ID in order to prevent overlapping discount IDs from different imports. C_
gkr.tx-export.poslog2route.poslogMapper.poslog.missingItemID Content of the XML element ItemID if the receipt does not contain an item number not_found
gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema.version POSLog version to be exported 2.5
gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema Namespace of the version to be exported http://www.gk-software.com/storeweaver/sdc/pos_upload/pos_upload/${gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema.version}
gkr.tx-export.poslog2route.poslogMapper.poslog.tenderType.foreignCurrency Consistent tender code to be exported for all foreign currencies

(Only if '…foreignCurrency.dbValue.enabled' = false)

YTFW
gkr.tx-export.poslog2route.poslogMapper.poslog.tenderType.foreignCurrency.dbValue.enabled This flag defines whether the corresponding tender code is exported from the database for foreign currencies.

(If false, a consistent tender type is exported, see property '…tenderType.foreignCurrency')

true
gkr.tx-export.poslog2route.poslogMapper.priceChange.rebateMethod Discount method to be exported for price changes ZRMP
gkr.tx-export.poslog2route.poslogMapper.priceChange.rebateID Discount ID to be exported for price change 0
gkr.tx-export.poslog2route.poslogMapper.priceChange.externalofferID External offer ID to be exported for price change 0
gkr.tx-export.poslog2route.poslogMapper.tillTenderCorrectionReasonCode Reason of change correction document TillTenderCorrection
gkr.tx-export.poslog2route.poslogMapper.omit.suspendedRetailTransactionTypeCodeList Transactions where Transaction.RetailTransaction.RetailTransactionTypeCode is a part of the property and Transaction.SuspendedFlag=true will be skipped by the POSLog mapper. SC, ER, RC, RD, FP, GB
gkr.tx-export.poslog2route.poslogMapper.omit.retailTransactionTypeCodeList Transactions where Transaction.RetailTransaction.RetailTransactionTypeCode is a part of the property and Transaction.SuspendedFlag!=true will be skipped by the POSLog mapper.
gkr.tx-export.poslog2route.routeUploader.export.endpoint Defines the JMS queue where the POSLog will be exported activemq:queue:${system-landscape.prefix:}cis.msg-router-cdep.inQueue
gkr.tx-export.poslog2route.routeUploader.export.messageClass 690352
gkr.tx-export.poslog2route.routeUploader.export.gkImportJobLogicalType SellingTransactions
gkr.tx-export.poslog2route.poslogMapper.skipInternalSeqNr

(obsolete for POSLog v.2.1 and higher, because SES:InternalSequenceNumber will not be exported anymore)

Defines if 'SESInternalSequenceNumber' will be exported. false
gkr.tx-export.poslog2route.routeUploader.export.gkArchiveSourceFileName Defines the filename of the source archive. [TIMESTAMP].xml
gkr.tx-export.poslog2route.routeUploader.header.messageClass ${gkr.tx-export.poslog2route.routeUploader.export.messageClass}
gkr.tx-export.poslog2route.routeUploader.header.GKLogicalDataType ${gkr.tx-export.poslog2route.routeUploader.export.gkImportJobLogicalType}
gkr.tx-export.poslog2route.routeUploader.header.GKMetaData_SellingTransaction_Version ${gkr.tx-export.poslog2route.poslogMapper.poslog.uploadSchema.version}
gkr.tx-export.endpoint ${gkr.tx-export.poslog2route.routeUploader.export.endpoint}
gkr.tx-export.poslog2route.routeUploader.endpoint ${gkr.tx-export.poslog2route.routeUploader.export.endpoint}
gkr.tx-export.poslog2route.poslogMapper.xmlVersion Version of the XML specification produced; valid values are "1.0" or "1.1" 1.0

If export is enabled, the POSLog files are saved to the following path on the Enterprise Connector:

ucon\dataexchange\export_channel\results\export\EXPORT_SUCCESS

Export of Reports

The export of a report can be configured in configuration file report-descriptor.xml. After creation, the report will be exported as PDF, PNG, RTF or XLS. Example of a gift certificate report exported as a PDF:

<report id="gift-certificate">
<archive type="PDF" visible="false">
<export type="FILESYSTEM">
<export-parameter key="FileName" value="D:/gkretail/pos-server/store_[STORE_NUMBER]_[CURRENT_DATE].[REPORT_CONTENT_TYPE_LOWERCASE]"/>
<export-parameter key="ZipEnabled" value="false"/>
</export>
<export type="FILESYSTEM">
<export-parameter key="FileName" value="D:/gkretail/pos-server/store_[STORE_NUMBER]_[CURRENT_TIMESTAMP].[REPORT_CONTENT_TYPE_LOWERCASE]"/>
<export-parameter key="ZipEnabled" value="true"/>
</export>
<export type="PRINTER">
<export-parameter key="PrinterName" value=""/>
<export-parameter key="NumberOfCopies" value="1"/>
</export>
<export type="MAIL">
<export-parameter key="From" value=""/>
<export-parameter key="To" value=""/>
<export-parameter key="SmtpHost" value=""/>
</export>
</archive>
</report> 

Report Archive Function

A report archive entry can be hidden in the Report Archive UI5 function. To hide a report in the UI function, the attribute 'visible' must be defined and set to 'false' (see example above). The parameter is optional and the default value is 'true' (entry is visible in the Report Archive function).

Export Types

Placeholders

It is possible to use placeholders for values in String parameters of all export types. The following placeholders are currently supported.

Placeholders have to start with '[' and end with ']'

Placeholder name Description
STORE_NUMBER BusinessUnit.BusinessUnitID (4-digits, filled with leading zeros).

It is possible to define another amount of digits and another leading character.

See general export parameter StoreNumberMinLength / StoreNumberPadCharacter.

CURRENT_DATE Current date in the format "yyyyMMdd".

The date pattern can be defined with general export parameter CurrentDatePattern.

CURRENT_TIMESTAMP Current timestamp in the format "yyyyMMddHHmmss".

The timestamp pattern can be defined with general export parameter CurrentTimestampPattern.

REPORT_CONTENT_TYPE The data type of the content e.g. PDF, RTF, XLS (See ReportArchiveGK.ReportContentType)
REPORT_CONTENT_TYPE_LOWERCASE Same as REPORT_CONTENT_TYPE, but in lower case letters
REPORT_TYPE_CODE The typecode of the report e.g. safe-pay-in. (See ReportArchiveGK.ReportTypeCode)
REPORT_DESCRIPTION The description of the report (in report language). (See ReportArchiveGK.ReportDescription)

General Export Parameter

General export parameters can be used for all report export types.

Export parameter key Configuration details Data type, range Description Default
StoreNumberMinLength Optional Integer Defines the minimum length of STORE_NUMBER. If the length(businessUnitID) < StoreNumberMinLength, then it will be filled with leading characters. 4
StoreNumberPadCharacter Optional Char Defines the padding character of STORE_NUMBER. The store number is filled with leading padding characters until StoreNumberMinLength is reached. 0
CurrentTimestampPattern Optional String The pattern for the placeholder CURRENT_TIMESTAMP. yyyyMMddHHmmss
CurrentDatePattern Optional String The pattern for the placeholder CURRENT_DATE. yyyyMMdd

FILESYSTEM

With the FILESYSTEM export type, it is possible to export a report archive entry to a specific file system destination.

Export parameter key Configuration details Data type, range Description Default
FileName Optional String Defines the filename for the export file. Must be defined with absolute path. store_[STORE_NUMBER]_[CURRENT_DATE].

[REPORT_CONTENT_TYPE_LOWERCASE]

ZipEnabled Optional Boolean Defines if the report will be zipped before saving it to file system.

If it is set to true, then the filename will get a new file extension defined by ZipExtension.

false
ZipExtension Optional String Defines the extension of the ZIP file. This is only used if ZipEnabled is set to true.

If the filename ends with a string that is different to that specified by this parameter, then the extension is appended to the filename.

If the filename already ends with this ZipExtension (the check is not case-sensitive), then the original filename extension is used.

.zip

MAIL

With the MAIL export type, it is possible to send a report archive entry to a specific mail address.

Export parameter key Configuration details Data type, range Description Default
From Required String The sender mail address e.g. "systemuser@mail.com"
To Required String The comma-separated list of recipients. e.g. "user1@mail.com,user2@mail.com"
Subject Required String The subject of the mail. [REPORT_DESCRIPTION]
Text Optional String The body text of the mail.
SmtpHost Required String The smtp host for sending mails.
SmtpPort Optional Integer The port of the SMTP server. Must be integer value between 0 and 65535. 25
MailUser Optional String The smtp mail user name.
MailPassword Optional String The smtp mail password.
MailPassword

Encrypted

Optional String The encrypted mail password. Encrypted with GK standard encryption mechanism.

If this parameter is set, then the MailPassword is ignored.

TLS Optional Boolean Use TLS for communication encryption. false
Charset Optional String The charset for mail text. UTF-8
Debug Optional Boolean Write debug information. false
Attachment

Filename

Required String The name of the attachment, e.g.

store_[STORE_NUMBER]_

[CURRENT_DATE].pdf

store_[STORE_NUMBER]_

[CURRENT_DATE].

[REPORT_CONTENT_

TYPE_LOWERCASE]

Attachment

Mimetype

Required String The MIME type of the attachment e.g. application/pdf application/

[REPORT_CONTENT_

TYPE_LOWERCASE]

PRINTER

With the PRINTER export type, it is possible to print a report archive entry from a specific system printer. Currently, only PDF content is supported.

Export parameter key Configuration details Data type, range Description Default
PrinterName Required String Defines the name of the printer which is used to print this PDF.
PageRange Optional String Defines the range of printed pages. e.g. 1-50. If the parameter is empty, then all pages are printed.
NumberOfCopies Optional Integer The number of copies to print. 1
PageOrientation Optional String The orientation of the print page. PORTRAIT | LANDSCAPE | REVERSE_LANDSCAPE. If the value is omitted, then the orientation is calculated from the page width and height.
ShrinkToPrintableArea Optional Boolean Shrink the report size to fit into the printable area. false
PrinterFormat Optional String The printer paper format.
UserRotation Optional Float The rotation of the printed page. 0