# 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 Introduction for the basics, or Examples if you prefer to run some demos first.

To understand basic concepts in pSeven, see section Introduction. It provides enough information to get you started with Tutorials. Before you begin a real project in pSeven, it is recommended to complete the following tutorials that cover the basics in more detail:

If you are looking for a showcase of pSeven’s features first, see section Examples for a quick guide on how to run the examples installed with pSeven. The examples package contains various illustrative projects; you can see their brief descriptions in the examples browser in Workspace.

### 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: 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 a 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 not to 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 be no longer than 255 characters.
• Full path should be no 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 Python 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 in Microsoft Docs; for example, see How do I… (Excel VBA reference) and the Worksheet object 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 excursions.

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 combining these operations with a Python script.

Note that 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 a relative one 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:

• Open the Configure file dialog.
• In the path input field, type: data/table.csv.
• Leave other settings default.

This solution also works, if you send the file path to a port (that is, check the “path from port” option and 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 foundhost 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 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 eth0 Link encap:Ethernet HWaddr e0:58:06:42:0e:b4 inet addr:10.1.0.42 Bcast:10.1.0.255 Mask:255.255.255.0 ...  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. See also 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 work properly in localized Windows?¶ Q: I am using Windows with a local language interface (not English). pSeven does not work properly: it does not start or various errors occur when running a workflow. What is the problem? Check whether the path to pSeven installation directory or to your temporary files directory contains non-English characters, possibly from multiple languages. These issues are not actually related to the interface language. They 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. The problem with temporary files directory is similar. By default, Windows places it inside the user profile directory for each user. So the temporary directory path includes the user profile directory path, which includes the username. As a result, if the username contains non-English characters, then the temporary directory path also contains them. Some blocks depend on this directory because they need to create temporary files, but they cannot work with such paths (PythonScript, for example). To resolve this issue, you can either change the username, or configure Windows to use another temporary directory for the user. 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. See also Using pSeven in Localized Windows Known issues of running pSeven under a localized version of Windows. ### 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. Before you attempt troubleshooting, please verify your pSeven installation and license (see sections Installation and License Setup for all related information). In particular, if you have run into a licensing issue, verify that the license was registered correctly. You can try to register the license manually — see Standalone License Registration or Server License Registration depending on your licensing model. If you are not sure what type of license is used, check the Licensing System section or ask your system administrator. 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: Do antiviruses, firewalls, network or proxy settings affect pSeven?¶ 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 is 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 antivirus, you can try temporary disabling its real-time protection to see if this fixes the issue. A firewall configured to allow only known connections can block access to pSeven license server. Note that even if you use a local license file, pSeven automatically starts a local server to load the license and connects to it. In any case, your firewall must allow connection to the license server’s port — otherwise pSeven will not be able to get the license and will not start. Standard port number for pSeven license is 27042, however, it can be different depending on your license server configuration. If you use a network (floating) license, contact your network administrator for the port number. If you use a local license, you can find the port number in the license file (and change it if needed — see FAQ: How to change the local license port? for details). ### FAQ: How to work with pSeven running on a remote host?¶ Q: Is it possible to run pSeven on a remote host (server) and work remotely, connecting to it from the local host (workstation)? Can it be done if the local and remote hosts run different operating systems (Windows and Linux)? Yes, you have several options depending on which operating systems are installed on the local and remote hosts. pSeven is tested for compatibility with various remote connection setups in a mixed network environment. For example, it can run on a Linux server and users can connect to it from their Windows workstations. This FAQ provides a summary of such setups. • If you connect from a Windows workstation to a Windows server, it is recommended to use Remote Desktop. This is a built-in Windows feature. Note also that Remote Desktop clients are available for portable devices and other operating systems. • If you connect from a Linux workstation to a Linux server, you can use X11 forwarding. On the workstation, run ssh -X username@server.hostname. After the SSH connection is established, cd to the pSeven installation directory on the remote host and run ./client/p7gui. • If you connect from a Windows workstation to a Linux server, there are the following options: • Install a Remote Desktop Protocol server (xrdp) on the Linux server and connect using the standard Windows Remote Desktop client. • Install an SSH client and an X server on the Windows workstation to enable X11 forwarding in Windows. See FAQ: How to enable X11 forwarding in Windows? for the details of this setup. • If you connect from a Linux workstation to a Windows server, you can install a Remote Desktop client for Linux (such as rdesktop or Remmina) and connect to the built-in Windows RDP server. Finally, you can use VNC both on Windows and Linux. This is not recommended since VNC is generally slower than other methods, however you can use it as a workaround in various cases. 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 or TigerVNC). ### FAQ: How to enable X11 forwarding in Windows?¶ Q: I want to run pSeven on a Linux server and use X11 forwarding to work with pSeven remotely from a Windows client host. What changes are needed in Windows to add the SSH and X11 forwarding support? You are required to install a third-party SSH client and X server for Windows. X11 forwarding is a standard Linux feature which allows to run a program on a remote host (server) and display its graphical interface on the local host (client). It uses the X Window System network protocols for client-server interaction, commonly over an SSH connection. On Linux systems, required packages are usually pre-installed, or can be added from the system’s package repository. Windows, however, does not provide a built-in support for SSH connections and the X protocol, so you will need to install the following third-party utilities: • An SSH client which will be used to establish an SSH connection from a Windows client host to the Linux server. The PuTTY terminal emulator is commonly used for this purpose. • An X server which runs on the Windows client host and handles the X protocol connection from the Linux server which runs the X client program (in this case, pSeven). Suggested X server implementations for Windows include: • Xming, which has two kinds of releases: the Public Domain version 6.9.0.31 (outdated) and the current 7.x version, which requires a donation to the author. Note: you should avoid using the Public Domain version of Xming (6.9.0.31). This is legacy software, and running it can negatively affect compatibility and performance, along with posing various security risks. It is suggested to resort to VcXsrv if you cannot install the latest version of Xming. • VcXsrv, a GPLv3-licensed version of the X server for Windows. Note In X Window System (the UNIX GUI environment framework), an X server is the provider of graphics resources, keyboard and mouse events to X clients. It means that the X server is usually running on the computer in front of a human user (the client host), while the X client application runs somewhere on the network (on a server). For example, when you connect from a Windows client to your Linux server and launch pSeven, it connects back to the X server running on the Windows client host to request the rendering of graphics content and receive keyboard and mouse events. The summary of steps required to run pSeven on a Linux server and work remotely from a Windows client host using X11 forwarding: 1. Install an X server and an SSH client for Windows on the client host. 2. Verify that the Linux server allows SSH connections and X11 forwarding. Refer to your Linux distribution documentation for details. 3. Run the X server on the Windows client host. Usually no changes are needed to the X server configuration. 4. Run the SSH client on the Windows host and establish an SSH connection to the Linux server. Verify that X11 forwarding is enabled for this SSH session. For example, if using PuTTY, select Connection ‣ SSH ‣ X11 in the session settings and tick the Enable X11 forwarding checkbox. 5. In the SSH client window, run pSeven from the command line: $ cd ~/DATADVANCE/pSeven/  # input the actual pSeven installation directory
\$ ./client/p7gui


Note

When using X11 forwarding, running pSeven in the OpenGL mode is not recommended. In this case the OpenGL mode provides no improvement over the default rendering mode, and may even make the pSeven GUI less responsive.