Frequently Asked Questions (FAQs) and known error messages, their cause and suggested solutions
- General information
- Printing (Word/BIRT/PDF)
- Order processing
- Incoming invoices
- Warehouse statistics
- Online help
- GESTIN
- HESTIA
- The ClassiX system does not start up
- Error messages during operation
- Programming
- Error handling TAPI
- Error handling WebService
- MorphIT
- Administration
General
- Why is my data not saved when I close the window?
- How can I cancel the search via an input field?
- How can I close all open windows at the same time?
- Why does ClassiX® not respond to my mouse or keyboard input?
- Display problems - labelling of buttons, checkboxes etc. is not displayed completely
| Data to be entered is always saved via the disc symbol Closing a window directly allows you to reset data that has not yet been saved. |
| You can try to cancel a running transaction using the key combination 'Ctrl-F12'. If this is not possible, you will have to be patient. |
| Select 'Close all' in the last menu item 'Windows'. |
There are various reasons why ClassiX® does not respond to your inputs:
|
There are various reasons why the labelling of buttons, checkboxes etc. is not displayed correctly in ClassiX®
|
Printing (Word/BIRT/PDF)
- General problems when printing with Word (Word preview)
- General problems when creating PDF files
- Continuous text is wrapped incorrectly
- Printing from ClassiX® and the contents of the clipboard
- Missing information in data fields (person, signature, ...)
- The control cannot be processed when printing -> Incorrect installation, registration or licensing
- BIRT: Value specification in totals line is incorrect
- When OLE printing or editing OLE objects, the message "Name of function not in MDI ..." appears
- Error! Unknown op-code for linked condition
- Barcodes under Word are not printed
- Conversion from these types to COM types is not yet supported
- Printing is no longer possible after changing the path to classix.dot
- Printing is not possible under terminal server Win Server 2022 without open Word
- Printing in night run or printing via task planning
- Related topics
|
|
|
|
|
|
|
| Possible cause: |
| This message occurs if the control to be accessed is faulty. The control can be MS Word, a component of Microsoft WebCoponents2003 etc. |
| Verification: |
| Check in the code which control is to be accessed. |
| Solution: |
| WebComponents: If WebComponents2003 are faulty, they must be reinstalled. MSWord |
| Possible cause: |
|---|
| This behaviour occurred in an English-language operating system environment with German ClassiX Locale (location). |
| Verification: |
| Check config.ini in the BIRT Runtime folder |
| Solution: |
| The following entry must be added to config.ini in the BIRT runtime folder (%BIRT_HOME%\ReportEngine\configuration\): osgi.nl=de_DE This sets the locale hard to German, which means that the totals are calculated correctly again |
| The message appears when editing OLE objects in ClassiX or when OLE printing from ClassiX: |
| Possible cause: |
|
| Solution: |
|
| The expression with XML displays the following line: Error! Unknown op-code for linked condition |
| Possible cause: |
| In the document module, the call following an IF statement is not in inverted commas: IF { DOCVARIABLE ... } |
| Solution: |
| Determine document module and check all IF statements there and add missing inverted commas: IF "{ DOCVARIABLE ... }" Then don't forget to convert the block |
| Barcodes entered in Word are not printed. |
| Possible cause: |
| Solution: |
| With the field function
field function can be used to print any barcode in Word. Link to further information. |
(sgn= 2055) -> VT_VARIANT (VARIANT *)|VT_BYREF |
|---|
| The following error is reported when printing with XML: Conversion from these types to COM types is not yet supported (sgn= 2055) -> VT_VARIANT (VARIANT *)|VT_BYREF |
| Possible cause: |
| The form template cannot be accessed by the user. or The template was imported without Word. |
| Solution: |
| Go to the form header and check the path of the template. Can all users reach it? Possibly use the variable CX_ROOTDIR so that the template can be accessed by everyone. Switch to a computer with Word and open the form header again. Under the menu item "Edit" there is the function "Import XML template". Execute this. You should then be able to print the form. |
| CXS_EXCEPTION(400489): OLE error (please exit the OLE application if necessary) The remote procedure call failed. |
| Cause |
| When ClassiX Windows asks for a Word instance, it seems to search for an open instance, regardless of whether the instance belongs to the user or not. |
| Solution |
| Include the following line of code in the ClassiX start file:
This starts an invisible Word instance and you can print again. |
| If you set a night run in the task planning that is to print something and set the option that it should be executed independently of the logged in user, then printing via Word does not work. |
| Cause |
| Windows |
| Solution |
| An empty (!) directory must be created:
No, no joke or mistake, the directory paths are correct! |
Order processing
| Known warning messages |
| Attention, the characteristic of the article ... is not permitted according to the restriction table. |
| In the sales role of the part named in the notification under the Additional data tab, there is a restriction in the Characteristics group of the Restriction button. In this case, the permitted attribute combinations are stored there and if these do not match the specification in the item, the information message is displayed. Either the order item must be corrected or the restriction table must be extended. |
Incoming invoices
| Possible cause |
|---|
| A hard conversion between the two currency units is defined in the unit tables of one of the associated parts: |
| Solution |
| Remove entry from the table of units |
Stock statistics
| Why do the values of the stock statistics for a part differ from the actual stock level? |
|---|
| Possible causes |
|
| Solution |
|
Online help (Infothek)
- How do I access the online help in ClassiX®?
- Why does only one page appear in the browser, where are the individual navigation areas?
- How do I get specific information on a certain topic or term?
- Can I customise/expand the help content myself?
| Press the 'F1' key on your keyboard to open your standard browser with the documentation page of the active ClassiX® window. |
| If you cannot see the navigation areas, the Javascript function of your browser has been deactivated. A current browser with Javascript enabled is recommended to display the online help. |
| The Infothek's built-in search function allows you to find information quickly and specifically. |
| This is only possible in the customised help if you have a user with the necessary rights. |
The ClassiX system does not start up
The error messages that can occur before the ClassiX system starts are summarised here.
- The ObjectStore Cache Manager service cannot be started
- ClassiX cannot be started because ObjectStore cannot open a file
- After starting the computer, the message "Cannont open application schema" appears when trying to start ClassiX
- ObjectStore internal error: VirtualAlloc failed to allocate at any address
- ClassiX does not start, but shows the error message "Server access control problem"
- ClassiX does not start, but displays the error message ObjectStore internal error
- ClassiX does not start, but displays the error message ObjectStore internal error 2
- ClassiX does not start, but displays the error message "error during schema validation"
- ClassiX does not start, but displays the error message "RPC: Procedure unavailable"
- ClassiX start is cancelled by the message: "Java.exe cannot be started. Please install Java"
- Crash directly at startup (SAP is installed)
| After restarting the server, the ObjectStore Cache Manager service does not start automatically and cannot be started manually. |
| Possible cause: |
| A process or application with the name ObjectStore Cache Manager has already been started. |
| Verification: |
| Open Task Manager and check whether a process or application named ObjectStore Cache Manager has already been started. |
| Solution: |
| The started process/application ObjectStore Cache Manager must be terminated, then the service can be started. |
| The ObjectStore cache manager was unexpectedly terminated on the terminal server and cannot be started manually. |
| Possible cause: |
| A process or application with the name ObjectStore Cache Manager has already been started for a terminal server user. |
| Verification: |
| Open Task Manager and check whether a process or application named ObjectStore Cache Manager has already been started. (Tick the "All users" checkbox) |
| Solution: |
| The started process/application ObjectStore Cache Manager must be terminated, then the service can be started. |
| Possible cause: |
|---|
| A process or application named ObjectStore Cache Manager has already been started. |
| Verification: |
| Open Task Manager and check whether a process or application named ObjectStore Cache Manager has already been started. (tick the "All users" checkbox) |
| Solution: |
| The started process/application ObjectStore Cache Manager must be terminated, then the service can be started. |
| When the system is started, the Cache Manager is started as a process and not as a service. |
| Possible cause: |
| ClassiX tries to find the already running Cache Manager at startup and starts its own process if necessary. The two ObjectStore services start with a delay by default. So if ClassiX is started before this grace period, no service but a process is started. |
| Verification: |
| Show services (Windows key "Services"). Does "Automatic (Delayed start)" appear after "ObjectStore"? |
| Solution: |
| Right-click, Properties, Set start type to "Automatic". |
| The ObjectStore database tries to allocate main memory space for itself before starting the system, which is no longer available on the computer |
| Possible causes: |
| Too little main memory is installed on the computer or other programmes are running on the computer that have already almost completely used up the main memory space. The OS_AS_SIZE environment variable may also be set too high |
| Check: |
| - |
| Solution: |
| Close other programmes or reduce the OS_AS_SIZE |
![]() |
| Possible cause: |
| ObjectStore 7.3 without patch is used as database server and the user's computer is located outside the domain. |
| Verification: |
| Execute the command osversion in the command prompt of the ObjectStore server. Alternatively, the file ../ODI7.3/OStore/Bin/osversion.bat can be executed. If the patch is installed, the following line is displayed: ObjectStore Cumulative Patch Release 7.3.0.02 |
| Solution: |
| The patch 7.3.0.02 must be installed on the server. |
| Possible cause: |
|---|
| There was a crash of the ObjectStore Cache Manager and the next ClassiX user started the Cache Manager as a process. All other users can then no longer start ClassiX. |
| Verification: |
| Is an ObjectStore Cache Manager service or a process running? (Check once for all users on the terminal server). |
| Solution: |
| Stop the ObjectStore Cache Manager process and start the ObjectStore Cache Manager service. |
|
|
| Possible cause: |
| The database server runs with a 64-bit version and is controlled by a 32-bit client. The client pulls in 64-bit ADBs and not the required 32-bit ADBs. |
| Solution: |
| Create a directory with the required 32-bit ADBs on the database server and use the OS_SCHEMA_PATH variable to tell the client where the required ADBs are located. |
|
|
| Possible cause: |
| A 32-bit ObjectStore client (with 32-bit ADBs) tries to open a 64-bit ObjectStore database. |
| Solution: |
| Install a 64-bit client or use a 32-bit database. |
| Possible cause: |
|---|
| The database server is running a 64-bit version and an attempt is being made to open a 64-bit database with a 32-bit client. |
| Solution: |
| The client must be updated to 64-bit or a 32-bit database must be used. |
Error messages during operation
The error messages that can occur while working with the ClassiX system are summarised here
- Block nesting overflow
- Error when iterating over a root entry point collection (REP)
- The cluster has been deleted
- A hash function is missing
- Hard crash when displaying an object
- Hard crash when displaying an object (purchase order)
- Hard crash when accessing an object within a collection (LogCube transactions)
- Evaluate3 - Function can only call SendMsg if a MESSAGE is known
- Timeout and deadlock messages
- Error message with crash when accessing dictionaries
- Error message: Name of the data field not in the DDI
- The connection to the server was broken
- Formula processing error in connection with UTF8 conversion
- Statemant stub: Call of a (still) undefined statement
- Firewall notification at ClassiX start after replacing the ClassiX DLLs
- No manager object with this name existing WEB_SERVICE
- Failed to generate temporary file
- Failed to recognise token while parsing: "Sort items by weeks " interpreted as 40
| |
| Cause: |
| Recursive macro call may have a maximum of 16 levels. If there are several levels, this error may occur. |
| Solution: |
Do loop instead of recursive macro call![]() |
| When iterating over objects of a REP collection, ClassiX® crashes as soon as work is done with the object(s), e.g. a slot is read out. |
| Possible cause: |
| The REP collection contains corrupt pointers. |
| Verification: |
| Call: cxaosr /R CX_CLASS_NAME |
| Solution: |
The REP collection must be repaired:
|
![]() |
| Possible cause: |
| Each master object has a tuple Segment+Cluster stored in the "clusterInfo" slot, where new slave objects are to be stored. Due to a bug in an older version of ClassiX® the value became negative. |
| Verification: |
| The "clusterInfo" slot of the object (here: a sales order) is negative. |
| Solution: |
| The slot must be deleted and the step that triggered the error message must be repeated. The slot is then created again and should then contain a positive number. |
| Possible cause: |
|---|
| An attempt was made to activate an index that is unsorted. |
| Verification: |
| Double-click on the index entry in the Index Manager; "Ordered" should be set under "Sorting". |
| Solution: |
| ClassiX® only supports sorted indices for most data fields, e.g. strings. As a rule, this is also meant by the user, it was probably just forgotten to switch the index to sorted. |
| Hard crash when trying to display an object. Display in the object inspector is also no longer possible. |
| Possible cause: |
| A slot is damaged and cannot be displayed correctly. |
| Verification: |
| The object can still be retrieved with "GrabObject"; a "Get" on the damaged slot may also work. When calling methods of the broken slot (especially virtual methods), the crash occurs. This should also be confirmed in the log file. One hundred per cent check is only possible with debugger. |
| Solution: |
| Delete the dynamic data field with "DeleteSlot". This may cause data to be lost, so you should first try to find out what data was stored in the slot. If this is only a basic object (CX_VALUE, CX_DATE etc.), then the operation is not critical. If the slot points to a business object, this business object must be checked first. |
| Hard crash when trying to access a purchase order. Display in the object inspector is also no longer possible. |
| Possible cause: |
| In this case, the purchase order itself is damaged. |
| Verification: |
| The error occurs as soon as the object is interacted with, i.e. both a query with the object as a subset and access via pointers to the object lead to a crash. |
| Suggested solutions: |
| An osverifydb run showed transactions in the purchase order and compound segments whose transaction pointers point to any strings instead of CX_TRANSACTION objects:
As long as the "uniqueID" field is readable, it should be possible to find the purchase order in question using a simple query. You probably only have to prevent the object from being displayed in the ClassiX shell, as some data fields are accessed and this can lead to a crash. Another alternative to find the object would be to export the REP collection of the purchase orders to a file via DumpCollection or ExportCollection (these files consist only of ObjectIds of the elements in text form), then read this file into InstantView and touch the objects individually and log out which object is currently being touched. If the process crashes, you can then see the address of the corrupt object in the log file. Once you have the object address of the purchase order, you can |
| Hard crash when accessing transactions within a LogCube. |
| Possible cause: |
| In this case, the object within the transactions slot is damaged. |
| Verification: |
| The error occurs as soon as the object is interacted with, i.e. both a query with the object as a subset and accesses to the object via pointers lead to a crash. As part of the analysis, a transactions collection containing a broken object was identified. Neither the transactions can be retrieved, nor can I identify this object, because dbUtils Call(GetCollection) and<object>Copy(uniqueID) lead to a crash.</ob |
| Suggested solutions: |
| You can try to remove the corrupt object using : logCube Get(transactions) TRUE GetManager(OBJECT) Call(GetDBUtility) Call (RebuildCollection) This logs to the cx.txn logger at ERROR level which objects (with type and object address) were thrown out of the collection. If this does not work and ClassiX crashes: Since the object is broken (i.e. deleted or incorrectly typed), osverifydb should recognise this object as an invalid pointer in the collection. If so, then you get the address of the pointer from the osverifydb log and could zero it with osverifydb (restricted to the segment+cluster) (-illegal_pointer_action null) and then there would only be a NULL pointer in the collection, which you can then easily remove from the collection using RebuildCollection (as above). To determine only the address of the object in the collection, the method CX_DB_UTILITY::GetCollectionAddresses has been available since Dll version 235301, which outputs the database addresses of all objects contained in a collection (including corrupt objects) as a vector. |
| Possible cause: |
|---|
| No MESSAGE has been defined with SetBindMessage, which is to be called if a missing attribute is present. |
| Solution: |
| Before the function call (e.g. Call(Resolve) or Call(ResolveNew)), use the SetBindMessage function to set a MESSAGE with which the missing attribute is intercepted and processed further. GET_VARIABLES = Query for missing variables MISSING_VARIABLE = Error message regarding missing attributes |
![]() ![]() |
| Possible cause: |
| This type of blockage can occur when a large number of users try to access the same database areas. |
| Solution: |
| If these messages occur repeatedly so that you cannot continue working, please contact your IT department. They can identify and contact the cause relatively quickly (if necessary via the log file) using the information on the "Conflicting client" contained in the message. These blockages can be monitored directly by the IT department using client profiling and, if necessary, the responsible client (user) can be contacted/terminated. |
![]() |
| Possible cause: |
| A dictionary entry can no longer be accessed Crash when calling via object inspector: System data - Search term dictionaries -> (not case-sensitive) |
| Solution: |
| Determination of the entry FindAll(CX_OBJECT_DICTIONARY_CI) iterate(UNSAFE) Skip position to compare value and check with functioning test system: FindAll(CX_OBJECT_DICTIONARY_CI) iterate(UNSAFE) If the entry does not contain any values or is not used, it can be removed (call in the object inspector): FindAll(CX_OBJECT_DICTIONARY_CI) 10 Swap GetElement |
| Possible cause: |
|---|
| (1) It was started with an OS_AS_SIZE that is too small. Or (2) The memory requirement is set to "a lot of memory". (32-bit application only - button in the top right of the main toolbar) |
| Solution: |
| (1) The recommended minimum value is 0x44000000 (32Bit) or 0x5000000000 (64Bit). The value should be set as high as possible. (2) If the memory requirement is set to "a lot of memory", then address space handling has been switched off. Set the memory requirement to "little memory" and repeat the operation you want to perform. |
| |
| Possible cause: |
|
| Solution: |
|
![]() |
| Possible cause: |
| The value of "YMBS=without" could not be reset during the conversion because it no longer exists as a NUM entry. |
| Solution: |
| Change value to existing entry. (Perforce history) |
|
|
| Possible cause: |
| In computer science, "stub" stands for a connection point. If the "connection point" also connects to the correct end point, it remains invisible. In this case, the definition of the Test macro is missing. (Define(Test)) |
| Solution: |
| Define macro Test or adapt the Declare statement and the macro call accordingly. |
|
|
| Possible cause: |
| The path with the cx_osuo.ece is not released in the firewall. |
| Solution: |
| Variant 1 Enter the path in the Windoss firewall. (Problem is present again after an update of the ClassiX DLLs and must be released again) Variant 2 Copy the ClassiX DLL to a local directory and check at startup whether the DLL version has changed (if so, copy it again). With this variant, the path only needs to be released once in the firewall. Variant 3 User is administrator on the local PC and can authorise access. |
|
|
| Possible cause: |
| The DLL for the WebService is missing in _Kunden_.ini. |
| Solution: |
| Enter the DLL for the WebService in _Customer_.ini: cxivsa_EXT_ |
| Temporary files are created in ClassiX. If these files cannot be created, this message is displayed. |
| Possible cause: |
|
| Solution: |
|
| The LogFile says: Failed to recognize token while parsing: "Sort items by weeks " interpreted as 40 The message appears in the application:
|
| Possible cause: |
|
| Solution: |
|
Programming
Conversion
| Possible cause: |
|---|
| The created file was not converted to the ANSI code set. |
| Solution: |
| Convert the file to the ASCI code set: CreateTransObject(CX_ASCII_FILE) -> oFile |
Error handling TAPI
| Verification: |
|---|
| This Estos tool can be used to check the TAPI client. |
| Solution: |
| Verification: |
|---|
| This Ectos tool can be used to check the TAPI client. |
| Solution: |
MorphIT
| MS WORD cannot be used with MorphIT because MorphIT runs in the background and MS WORD was not developed for use in the background.
A PDF now exists at the desired location, which can be processed further. (e.g. filename SystemObject Call(OpenDocument) -> The document is downloaded to MoprhIT) |
Administration
|
| Is currently not visible. |
| Poor performance of the ClassiX application can have several causes:
|
| Solution: |
|







