# FAQ¶

This page offers quick answers to some common questions and related references to other parts of this manual. Please note that the FAQ is not a general guide to pSeven: if you are looking for a place to start, see Introduction (also FAQ: Where should I start?).

## Using pSeven¶

This section contains various tips that may help you understand the pSeven environment better. For more general guides, see sections Introduction, Tutorials, and Examples first.

### FAQ: Where should I start?¶

Q: I want to start working with pSeven right away. Which documentation sections I need? See the Getting Started section and follow the links from there.

Getting Started references all recommended entry points in this manual. To understand basic concepts in pSeven, see section Introduction. It provides enough information to get you started with Examples and Tutorials.

Before you start a real project in pSeven, it is recommended to complete the following tutorials that cover the basics in more detail:

### FAQ: How to move workflows between projects?¶

Q: There is a workflow I want to add to a new project or copy from one project to another. What is the best way to do it? Workflow documents can be simply copied to project directory, but to avoid side effects you should close the project first and reopen it after adding the workflow.

While workflows are intended to be an integral part of a project, pSeven still allows moving and copying workflow documents (files with p7wf extension) between projects. To keep it simple, there is no specific (built-in) transfer function: since a project is just a directory, you can add any file there using your system file manager or the Filesystem pane in Workspace.

If the workflow was created in the same pSeven version as the one you are using, there are no caveats. However if it comes from an older version, the project becomes partially outdated when you add the file. To resolve this issue you will have to do a project upgrade:

• Close the project (File ‣ Close Project).
• Copy the workflow document to the project directory.
• Select File ‣ Upgrade Project, locate the project and let pSeven run the upgrade.
• Open the project and continue.

Optionally you can skip the manual upgrade step and just reopen the project after adding a workflow. pSeven will detect an outdated document and run the upgrade automatically.

Workflow as a Block
How to import an existing workflow into another workflow as a new block.

### FAQ: What are pSeven integration capabilities?¶

Q: How does pSeven integrate third-party applications? Is integration available at the user level? pSeven provides several integration methods varying in flexibility and complexity. You can use blocks designed for tight integration (such as SolidWorks or Kompas3D), configure a generic integration adapter (see below), or even include Python wrappers in PythonScript blocks.

Tight integration in pSeven is enabled for certain third-party tools (see Integration blocks). Production ready integration blocks include:

• ANSYSWorkbench — ANSYS Workbench projects integration.
• Creo — PTC Creo integration.
• Excel — Excel integration with support for recalculating documents containing formulas and macros.
• FloEFD — FloEFD integration.
• Kompas3D — KOMPAS-3D integration.
• NX — Siemens NX integration.
• SolidWorks — SolidWorks integration.
• UQ — OpenTURNS integration, uncertainty quantification.

Blocks currently in development:

• CATIA — CATIA V5 integration.

These blocks are designed to easily connect pSeven with the above tools and provide advanced configuration options.

For other cases, a generic integration method is available that relies on the Program and Text blocks. It allows to create a custom wrapper block for any tool that supports command line interface. This solution can be implemented entirely by user and does not require programming (except creating a shell script that runs the tool). A detailed example is found in the Integration Basics tutorial.

Finally, your workflow can integrate any Python script with the help of PythonScript blocks. This can also be used for third-party tool integration, since a Python interface is available for many applications. It does not require installing Python because the scripts are run with the pSeven’s built-in Python interpreter.

### FAQ: How to read data from a file?¶

Q: Guessing from their names, there are several blocks for reading files, like CSVParser, File, Text. Why they are so many? Which one should I use? It depends on what do you want to do, and each type is there for a reason. Most probably you want an CSVParser block.

Your guess is right for CSVParser and Text — these blocks are file readers, yet with different capabilities:

• CSVParser can read only CSV files.

This actually means many different text file formats representing tabular data (since CSV is not a well defined format itself). In particular, CSVParser supports arbitrary field delimiters, escape and comment characters, separate parsing of the first row as a table header and more. It is a simple and convenient solution if your input file has tabular structure, with some allowances. This block is found in many examples.

• The Text block is capable of extracting data values from any structured text file. It is typically used to parse an output of some external application.

This block does not assume any specific file structure: its key feature is that you define the parsing rules yourself. It can parse a CSV file too, but usually there is no reason to not use CSVParser for such matters.

File is an entirely different block. It is not intended for reading file contents: a File block creates a file object in a workflow, and its output has File type. This output can then be sent to another block that is capable of working with files that are received to ports.

### FAQ: Does pSeven support long file paths?¶

Q: Some of my files have very long names or paths. Can such files be used in pSeven projects? Can they cause errors? pSeven does not aim to support long paths. In the Windows version paths are limited to 260 characters. There also exists a recommended limit in Linux related to the maximum path length in the project database.

In pSeven for Windows, the path length limit is the same as in older Windows versions: the maximum length, including full path, filename and extension, is 260 characters. This limitation applies both to files in project directories and to external files that are used in a project. Paths longer than 260 characters have to be shortened, which can be done in several ways:

• move files to another directory,
• associate a partial path with a drive letter using the subst command (see Subst), or

In pSeven for Linux, the path length limit is related to the project database structure that cannot handle very long filenames and paths. The limits are:

• Filename should not be longer than 255 characters.
• Full path should not be longer than 450 characters.

For better compatibility, it is recommended to always keep short paths to project files both under Windows and Linux.

### FAQ: How to use Excel files with pSeven?¶

Q: How do I use data from Excel files in pSeven? pSeven supports Excel integration with the Excel block and can import and export Excel files in Analyze. The CSVParser and PythonScript blocks can also be useful in certain cases.

There are several options to use Excel files with pSeven. If you want to use the data from an Excel file in a report, you can add it to the report database using the Import data from Excel... command available from the menu on the Data series pane. The Export data to Excel... command from the same menu allows to save report data to an Excel file. Data export and import in Analyze are handled by pSeven and do not require Excel installed.

Excel files can also be integrated in workflows using the Excel block. This block, in addition to reading and writing files, also supports Excel functions and macros — so a workflow with an Excel block can automatically run calculations too (see the Excel block page for more details). The block requires Excel installed: it actually communicates with Excel in order to open a file and read or write data.

If Excel is not available in the system, some workarounds are still possible to use data from an Excel file in a workflow.

In many cases you can simply convert your Excel file to CSV and use the CSVParser and CSVGenerator blocks to read and write data. This solution can be used when function and macros support is not required. The CSV format is also fully supported by Excel, and CSV files can be imported and exported in Analyze too.

For advanced data manipulation, you can use a PythonScript block. pSeven’s Python built-in provides the cross-platform openpyxl, xlrd, and xlwt modules (see Available Modules) which you can import in PythonScript to work with Excel files (see also Opening Files in PythonScript). These modules work both in Windows and Linux and do not require Excel.

Finally, if you have Excel installed but the Excel block does not meet your needs, pSeven for Windows also supports Python extensions for Windows (PyWin32). It provides Python bindings for WinAPI, allowing you to use Excel through the Microsoft COM interface, for example:

import win32com.client as win32

# create Excel COM object
xl = win32.gencache.EnsureDispatch('Excel.Application')

# open file, select a worksheet
wb = xl.Workbooks.Open(u'C:\\path\\to\\data.xlsx')
sheet = wb.Worksheets(u'SheetName')

# ... work with sheet data

# finish
wb.Save()
wb.Close()
xl.Quit()


PyWin32 is closely bound to the Win32 API, so relevant documentation can be found on MSDN; for example, see How do I... (Excel VBA reference) and the Worksheet Members reference. For more details on using PyWin32, see PyWin32 Documentation.

### FAQ: How do I read data from a file which is not in CSV format?¶

Q: I have some files with resource data, but they do not use the comma-separated values format. How can I load this data? General solution is to use a Text block, although CSVParser is preferred for any tabular data.

First of all, CSV is not a well-defined format, and this name is commonly used for files containing text fields separated by a certain character, not necessarily the comma. If your files contain some sort of tabular data, you can still use CSVParser: it supports arbitrary field delimiters, escape and comment characters, missing values (empty fields) and other excursionы.

The Text block is the way to go if your file is, for example, a text report or a copy of program output. It is a custom parser which does not assume any specific file structure: instead, you define the parser rules to extract the values needed. The block offers several ways to create a parser: semi-automatic, where you use one of your files as a template and simply select an area containing values; manual, using simple seek and read operations configured from the block’s GUI; advanced scripting which allows to combine these operations with a Python script.

Note the last option is much more simple than a custom parser implemented as a PythonScript block, since in a Text block you will work with the file contents directly without the need to create file objects, doing file reads and so on. Also, Text can automatically convert rows or columns to vectors and rectangular shapes to matrices (in PythonScript you will need to read file contents and construct Python lists or arrays instead); allows to set data type explicitly and automatically validate the data (in PythonScript you will have to rely on the rules described in pSeven to Python Types Conversion); allows to preview the parser result before you start the workflow (there is no such feature in PythonScript, so only manual testing is possible).

### FAQ: How do the files of project origin work with absolute and relative paths?¶

Q: If I set a relative path for a project file, does pSeven guarantee that it will be found or created there? When should I use an absolute path? If you set a relative path, you can move the project to another location, and it will not break the file configuration. Use absolute paths only for files that cannot be placed in the project directory.

For project files, a relative path is resolved from the project directory. This guarantees that it works even if you move the project directory, because the block is aware of the project location and searches for (or creates) the file there.

Note that for opening a file you are not required to type the path — if you select a file in the project directory from the file open dialog, the block automatically transforms its path to relative once you apply the block configuration settings.

If you are configuring the block to write a file, you can also use the dialog, or input the path manually. For example, if your project directory is C:\Users\User\Documents\pSeven\MyProject, and the file to write is C:\Users\User\Documents\pSeven\MyProject\data\table.csv:

• Set the file origin to project.
• In the path input field, type: data/table.csv.
• Leave other settings default.

This solution also works if you send the file path to port (that is, check the “path from port” option after setting the file origin to project, and the connect the port so it receives a string containing a relative path).

This section contains additional information on the pSeven licensing system and related questions.

How to obtain and register a pSeven license.

### FAQ: What licensing options are available for pSeven?¶

Currently there are three license types available: trial (free), commercial, academic. Trial licenses are provided for a limited evaluation period only. Academic and commercial licenses allow flexible pricing by selecting specific license features: for example, a license can exclude some advanced features or blocks. For more details on available features and their pricing you can contact sales@datadvance.net.

For license management, pSeven uses the FlexNet Licensing system by Flexera Software. Licenses can be issued on a per-user basis (for a standalone pSeven installation) or for a number of users (server-based management for a network deployment). Technically all licenses are floating, but a standalone license will work only with a local license server automatically started by pSeven, and is bound to a specific computer (so its behavior is similar to a node-locked license). Server licenses also support three-server redundancy, where one server is master and two others provide failover protection (three-server option can be selected when requesting a license). For more details you can see the License Setup section.

### FAQ: What is a host ID?¶

Q: What is a host ID and when is it needed? How to find the host ID? How to verify that the found host ID is valid? A host ID is a computer identifier in the pSeven’s licensing system. Licenses are checked against current host ID to resolve permissions, so a correct host ID is required when you request a license.

For pSeven a host ID is a unique string which identifies the host computer. License files are generated in such a way that they will only work for the system with a specific host ID. When performing a license check, the host ID is determined automatically (by pSeven or by the license server), and it is checked if the current license file is valid for a host with this ID. Thus a correct host ID is needed when you request a license.

To find your host ID, it is recommended to follow the instructions in section Obtaining a License. If the methods described there do not work, you can also see FAQ: How to find a host ID manually?

A valid host ID consists of 12 characters and can include only numbers from 0 to 9 and letters from a to f (the case does not matter). If there are more or less characters, or the string contains other symbols or letters, the ID is invalid. For example, e05806420eb4 and E05806420EB4 are valid IDs; ffffffff (8 characters) or xtm8-jj6r-pxgj (letters above f, dashes) are not valid. If you get an invalid ID following the instructions in the Host ID section, refer to FAQ: How to find a host ID manually?.

### FAQ: How to find a host ID manually?¶

Q: Is it possible to determine a host ID without using special utilities? pSeven uses Ethernet host IDs, so the host ID it requires is the hardware (MAC) address of the primary network interface. MAC addresses are easily found with system commands, but identifying which of them is the required one can be problematic (there can be multiple network adapters).

Before you attempt to find a host ID manually, see section Host ID. As described there, you can get the host ID from pSeven installer or using lmutil.

According to the FlexNet Licensing documentation (the licensing system used by pSeven), lmutil should print the exact host ID on any given system. This stands for pSeven installer as well, because it uses lmutil internally. If lmutil fails for some reason, see the alternative methods below.

Windows

Open a command prompt and execute ipconfig /all. Look for the “Physical Address” line in the output and remove dashes from the address to get the host ID. In the following example, the host ID is E05806420EB4:

> ipconfig /all

Windows IP Configuration

Host Name . . . . . . . . . . . . : SOMEHOST
Primary Dns Suffix  . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : yourdns

Connection-specific DNS Suffix  . : yourdns
Description . . . . . . . . . . . : Ethernet Adapter
Physical Address. . . . . . . . . : E0-58-06-42-0E-B4

...


Note that you need the address of the primary wired Ethernet adapter. The ipconfig /all command lists all available Ethernet adapters (active or inactive), including those for team-bonding virtual adaptors. The name of the primary adapter may vary — it is usually “Local Area Connection” in clean configurations (like the above example), but can be changed.

Linux

Open a terminal and execute /sbin/ifconfig ethernet_name, where ethernet_name is one of the following Ethernet interface names:

• ethxx is a number from 0 up.
• Other name type (for example, p3p4).
• bond0 for a team-bonding virtual adaptor.

Look for the “HWaddr” value in the output and remove colons from the address to get the host ID. In the following example, the host ID is e05806420eb4:

\$ /sbin/ifconfig eth0

...


Note that the eth0 interface (as in the example) may be unavailable (ifconfig will print a message like “eth0: error fetching interface information: Device not found”). Try other interface names listed above, or run /sbin/ifconfig -a first to get all available information.

### FAQ: How to change the local license port?¶

Q: There is a port conflict when pSeven runs in the standalone mode (with a local license file). What is the origin of this conflict and how can it be resolved? In the standalone mode, pSeven automatically starts a local license server and connects to it in order to get a license. This local server can conflict with another local license server started by some software that also uses the FlexNet licensing system. To resolve this issue, change the port number in the pSeven license file.

The port number for pSeven’s local license server is set in the license file. You will need to edit the file to change the port number.

• Close pSeven if it is running.

• Stop the pSeven license server. You can use a menu shortcut — for example, in Windows: Start ‣ All Programs ‣ pSeven ‣ License Management ‣ Stop pSeven License Server.

• Locate your license file. It can be found in the pSeven installation directory, pSeven documents directory, or both. See Standalone License Registration for details.

• Create a backup copy of the license file.

• Open the license file in a text editor and find the “SERVER” line (usually the first line of file). It looks like follows (“XXXXXXXXXXXX” is your host ID, 27042 is the standard port number):

SERVER 127.0.0.1 XXXXXXXXXXXX 27042

• Change the port number to an unused port. Do not change other strings in the line (address and the host ID). For example:

SERVER 127.0.0.1 XXXXXXXXXXXX 38153

• Save your changes and close the file. If the license file is also found in another location, apply the same changes to that copy.

• Start pSeven.

### FAQ: How to use license diagnostics?¶

Q: I was advised to enable license diagnostics in pSeven (set FLEXLM_DIAGNOSTICS) but it shows incorrect results after this. What is the problem? Use diagnostic level 2 unless you really need a higher level. Disable diagnostics when your license problems are solved.

The license diagnostics is enabled by setting the FLEXLM_DIAGNOSTICS environment variable. It can have values from 1 to 3, higher level provides more information. Diagnostics is useful when debugging licensing issues — in particular, if license is denied, you can find the name of the denied feature setting FLEXLM_DIAGNOSTICS to 2.

Whenever you use license diagnostics, keep in mind that setting FLEXLM_DIAGNOSTICS to 3 can cause unexpected behavior when running pSeven workflows, and keeping it enabled can later cause issues that will be hard to investigate.

If FLEXLM_DIAGNOSTICS is set to 3, all blocks write extended diagnostic information to their log files. These log files are saved to the current working directory of the block’s process by default. In pSeven this is the block’s sandbox directory (see section Sandbox for details). Since log files are kept open while the block executes, they can prevent clearing the sandbox (which is enabled by default), re-creating sandbox from its prototype (if sandbox prototype is configured), and cause other filesystem conflicts. Note that corresponding warnings are output to the pSeven console only; the workflow usually executes and finishes seemingly normal.

Note

The list of environment variables and their values is output to the pSeven console when you launch pSeven. To view it, switch the console output level to “Debug”.

It is strongly recommended not to use diagnostic level 3 unless level 2 does not provide enough information. If you were instructed to enable diagnostic level 3, use it only when debugging, and disable diagnostics afterwards.

## General Support¶

This section contains questions related to technical issues with installing, configuring, or running pSeven.

System Requirements
pSeven requirements for Windows and Linux systems.

### FAQ: Why installation does not start in localized Windows?¶

Q: I am using Windows with a local language interface (not English). When I click the pSeven installer in the downloads folder or on my desktop, nothing happens. What is the problem? Check whether the installer path or filename contains parentheses. If so, try to move the installer to another location or to remove parentheses from its name.

This issue is known to appear in Windows 8 and possibly other versions. It is not actually related to the interface language. The pSeven installer cannot handle paths that contain a combination of parentheses and non-ANSI (local alphabet) characters. To start installation, you need to work around this issue — for example, rename the installer if a suffix like $$(1)$$ was added to it when downloading, or move the installer to another folder if it was saved to a folder with a non-English name.

### FAQ: Why pSeven does not start in localized Windows?¶

Q: I am using Windows with a local language interface (not English). When I click pSeven shortcut or select it from the menu, the splash screen appears but after it pSeven does not start. What is the problem? Check whether the path to pSeven installation contains non-English characters, possibly from multiple languages. If so, reinstall pSeven to another folder.

This issue is not actually related to the interface language. It can appear in a mixed language environment where two or more local languages (not English) are used. Sometimes the installation path contains characters that are not found in the default character set (codepage) for the current system locale. For example, the locale can be set according to the first language, and users can name folders in the second language. The only way to resolve this issue is to uninstall pSeven and then re-install it to another location. This problem appears because the pSeven’s built-in Python interpreter cannot start from such a path.

Note that the system locale can be different from the display language seen in menus and dialog boxes. You can find your system locale in Control PanelRegion and Language, Administrative tab, “Language for non-Unicode programs”. To find the default codepage, open a command prompt and run chcp without parameters.

### FAQ: How to troubleshoot pSeven?¶

Q: What are the general troubleshooting methods for pSeven? It is recommended to verify installation and license setup. If you could not resolve the issue, contact DATADVANCE support.

If you could not resolve the issue, send a message to support@datadvance.net describing your problem. Please include as much detail as you can and attach recent pSeven logs. The logs are found in the workspace directory — by default, it is %USERPROFILE%\Documents\pSeven\ in Windows and ~/Documents/pSeven/ in Linux.

### FAQ: Can pSeven be blocked by antiviruses or firewalls?¶

Q: I have antivirus or firewall software installed. Do I need to create any rules for pSeven? It is recommended to add the pSeven executables (p7gui.exe and p7batch.exe) to the antivirus exclusion list. Firewalls must allow connection to the pSeven license server (even if you run pSeven in the standalone mode).

When pSeven runs a workflow, each block in it starts in a separate process. Moreover, pSeven can launch external programs when the workflow includes integration blocks such as Program or other Integration blocks. Antiviruses with real-time protection can consider such activity to be suspicious and block it, thus interfering with normal workflow execution. Also, blocks can use temporary files or directories that are created and removed several times while a workflow is running. Proper removal of these files and directories can be blocked by antivirus on-access protection, causing unexpected block behavior or a notable slowdown of workflow execution.

For these reasons it recommended to at least add the pSeven executables (p7gui.exe and p7batch.exe) to the antivirus exclusion list. If you experience errors or slowdowns when running workflows on a system protected with an anvitivirus, you can try temporary disabling its real-time protection to see if this fixes the issue.

### FAQ: How to fix black window when using pSeven over Remote Desktop?¶

Q: When I run pSeven on a remote computer and connect to it using Remote Desktop, I see a black window in place of the pSeven GUI. How to fix this? Set color depth of the remote session to 32 bit.

This issue is possible with pSeven 6.8 or above: since 6.8, pSeven requires 32 bit color depth (see System Requirements), and Remote Desktop can set lower depth by default.

To change the color depth of your remote session:

• In Windows, open the Remote Desktop Connection window, switch to the Display tab and select “Highest Quality (32 bit)” in the color settings.
• In Linux, add the -a 32 option to the rdesktop command line, for example: rdesktop -a 32 <hostname>.

### FAQ: How to work in pSeven remotely from a Linux host?¶

Q: I would like to run pSeven on a remote host and work remotely. Is this possible if the local or remote host runs Linux? It is, however if you are running pSeven 6.8 or above, you have to use VNC or RDP since the support for X11 forwarding have stopped in 6.8.

Earlier versions of pSeven supported the common Linux method of using X11 forwarding (running under ssh -X) to work with pSeven running on a remote host. Unfortunately, the support for X11 forwarding has stopped because newer pSeven versions use OpenGL which is not supported natively by the X Window System core protocol. The last version of pSeven that supports X11 forwarding is pSeven 6.7.

As a workaround for pSeven 6.8 and above, it is recommended to use VNC for connecting to a remote Linux host. Various VNC servers and viewers are available for all major Linux distributions; please refer to your OS documentation to install and configure a recommended VNC suite.

VNC utilities are also available for Windows (for example, TightVNC, RealVNC, or TigerVNC). However if you run Windows and connect to a Linux host, it may be easier to install a Remote Desktop Protocol server (xrdp) on the remote host. Running xrdp on the remote Linux host will allow you to use the standard Remote Desktop client on your local Windows host (note that pSeven requires 32 bit color depth of the Remote Desktop session; see FAQ: How to fix black window when using pSeven over Remote Desktop?). Note that if you decide to use RDP, Linux client hosts can also connect to xrdp using rdesktop.