Questions and discussion about using ProcessMaker: user interface, running cases & functionality
#825481
I'm using:
- ProcessMaker Ver 3.2.1 Comminity
- Operating System: Red Hat Enterprise Linux Server release 7.5 (Maipo) (Linux)
- Web Server: Apache/2.4.6
I tested the case as follows:
- User enter: "test case 1 😥" or "test case 2 🐬"
- Save dynaform.
I check table application:APP_DATA: User data entered has been lost
I check log: __ERROR__ => preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

I have read mysql documentation:
"The “utf8” encoding only supports three bytes per character. The real UTF-8 encoding — which everybody uses, including you — needs up to four bytes per character."
I tried the following command but failed:
ALTER TABLE application MODIFY APP_DATA mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE app_history MODIFY HISTORY_DATA mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;


Has anyone encountered a similar case?
What is your solution?
#825492
I got it to work in PM 3.3.10 Community, manual install in Debian 9.5.

Here is what I did:

1. Log into MySQL as root:
mysql -u root -p

Then enter the following commands in MySQL:
mysql> ALTER DATABASE wf_workflow CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
mysql> ALTER TABLE APPLICATION MODIFY APP_DATA mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> ALTER TABLE APP_HISTORY MODIFY HISTORY_DATA mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> exit;

2. Edit workflow/engine/data/mysql/schema.sql, and globally replace:
CHARSET='utf8'
with:
CHARSET='utf8mb4'

3. Edit workflow/engine/config/schema.xml, and globally replace:
<parameter name="Collation" value="utf8_general_ci"/>
with:
<parameter name="Collation" value="utf8mb4_unicode_ci"/>

4. Edit workflow/engine/config/databases.php, and replace:
Code: Select all
        case 'mysql':
            $dsn       .= '?encoding=utf8';
            $dsnRbac   .= '?encoding=utf8';
            $dsnReport .= '?encoding=utf8';
with:
Code: Select all
        case 'mysql':
            $dsn       .= '?encoding=utf8mb4';
            $dsnRbac   .= '?encoding=utf8mb4';
            $dsnReport .= '?encoding=utf8mb4';
5. Edit gulliver/system/class.database_mysql.php, and replace:
Code: Select all
        $sql .= ')ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci';
With:
Code: Select all
        $sql .= ')ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci';
6. Edit database/factories/DbSourceFactory.php and replace:
Code: Select all
        'DBS_ENCODE' => 'utf8', // @todo Perhaps grab this from our definitions in DbConnections
With:
Code: Select all
        'DBS_ENCODE' => 'utf8mb4', // @todo Perhaps grab this from our definitions in DbConnections
7. Edit gulliver/bin/tasks/templates/db_insert.sql and replace:
Code: Select all
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
With:
Code: Select all
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
8. If using PM 3.2.2 or later, edit config/database.php and replace:
Code: Select all
            'charset' => 'utf8',
            'collation' => 'utf8_general_ci',
With:
Code: Select all
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
See if that works for you.

A 1xbet clone script is a pre-designed software so[…]

4rabet clone script is enabling entrepreneurs to e[…]

Parimatch clone script is enabling entrepreneurs t[…]

In the world of cryptocurrency, a wallet is an app[…]