Merge remote branch 'upstream/master'
This commit is contained in:
@@ -478,4 +478,132 @@ Scenario: Returns a list of the cases for the logged in user (Paused)
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "array"
|
||||
And the response has 12 records
|
||||
And the response has 12 records
|
||||
|
||||
|
||||
#Case Tasks
|
||||
|
||||
Scenario: case tasks of case 180
|
||||
Given I request "cases/235641998533b158ec1f951078648880/tasks"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "array"
|
||||
And that "tas_uid" is set to "1655978655335cc3a8bb542099129747"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Task 1"
|
||||
And that "rou_next_task" is set to "9985264545335cc3bd0ad26061293336"
|
||||
And that "rou_condition" is set to ""
|
||||
And that "rou_to_last_user" is set to "FALSE"
|
||||
And that "rou_optional" is set to "FALSE"
|
||||
And that "usr_uid" is set to "Administrator"
|
||||
And that "usr_firstname" is set to "Administrator"
|
||||
And that "usr_lastname" is set to ""
|
||||
And that "del_init_date" is set to "2014-04-01 15:37:51"
|
||||
And that "del_task_due_date" is set to "2014-04-02 15:37:50"
|
||||
And that "del_finish_date" is set to "2014-04-01 15:37:54"
|
||||
And that "duration" is set to "0 Hours 0 Minutes 3 Seconds"
|
||||
And that "color" is set to "#006633"
|
||||
And that "tas_uid" is set to "9985264545335cc3bd0ad26061293336"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Task 2"
|
||||
And that "rou_next_task" is set to "-1"
|
||||
And that "rou_condition" is set to ""
|
||||
And that "rou_to_last_user" is set to "FALSE"
|
||||
And that "rou_optional" is set to "FALSE"
|
||||
And that "usr_uid" is set to "Administrator"
|
||||
And that "usr_firstname" is set to "Administrator"
|
||||
And that "usr_lastname" is set to ""
|
||||
And that "del_init_date" is set to "2014-04-02 22:57:10"
|
||||
And that "del_task_due_date" is set to "2014-04-02 15:37:54"
|
||||
And that "del_finish_date" is set to "Not finished"
|
||||
And that "duration" is set to "Not finished"
|
||||
And that "color" is set to "#FF0000"
|
||||
|
||||
Scenario: case tasks of case 145, case on unassigned list
|
||||
Given I request "cases/940289753533b0d265a3885025822950/tasks"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "array"
|
||||
And that "tas_uid" is set to "30657958950ec8d5c50aef0095926988"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Cyclical"
|
||||
And that "rou_type" is set to ""
|
||||
And that "color" is set to "#939598"
|
||||
And that "tas_uid" is set to "57516479450ec8d5f696207052804906"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Manual"
|
||||
And that "rou_type" is set to ""
|
||||
And that "color" is set to "#939598"
|
||||
|
||||
And that "tas_uid" is set to "70190429650ec8d77e3e6e1056691766"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Last"
|
||||
And that "rou_type" is set to ""
|
||||
And that "color" is set to "#939598"
|
||||
|
||||
And that "tas_uid" is set to "86489868150ec8d68a1a9e7010589518"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Init"
|
||||
And that "rou_type" is set to ""
|
||||
And that "color" is set to "#939598"
|
||||
And that "tas_uid" is set to "89648437550ec8d593c2159010276089"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Reports to"
|
||||
And that "rou_type" is set to "4"
|
||||
And that "rou_next_task" is set to "94757080050ec8d6e2b93a0015133851"
|
||||
And that "rou_to_last_user" is set to "FALSE"
|
||||
And that "rou_optional" is set to "FALSE"
|
||||
And that "usr_uid" is set to "Administrator"
|
||||
And that "usr_firstname" is set to "Administrator"
|
||||
And that "usr_lastname" is set to ""
|
||||
And that "del_init_date" is set to "2014-04-01 15:01:58"
|
||||
And that "del_task_due_date" is set to "2014-04-02 15:01:58"
|
||||
And that "del_finish_date" is set to "2014-04-01 15:02:17"
|
||||
And that "duration" is set to "0 Hours 0 Minutes 19 Seconds"
|
||||
And that "rou_next_task" is set to "30657958950ec8d5c50aef0095926988"
|
||||
And that "rou_to_last_user" is set to "FALSE"
|
||||
And that "rou_optional" is set to "FALSE"
|
||||
And that "usr_uid" is set to "Administrator"
|
||||
And that "usr_firstname" is set to "Administrator"
|
||||
And that "usr_lastname" is set to ""
|
||||
And that "del_init_date" is set to "2014-04-01 15:01:58"
|
||||
And that "del_task_due_date" is set to "2014-04-02 15:01:58"
|
||||
And that "del_finish_date" is set to "2014-04-01 15:02:17"
|
||||
And that "duration" is set to "0 Hours 0 Minutes 19 Seconds"
|
||||
And that "rou_next_task" is set to "57516479450ec8d5f696207052804906"
|
||||
And that "rou_to_last_user" is set to "FALSE"
|
||||
And that "rou_optional" is set to "FALSE"
|
||||
And that "usr_uid" is set to "Administrator"
|
||||
And that "usr_firstname" is set to "Administrator"
|
||||
And that "usr_lastname" is set to ""
|
||||
And that "del_init_date" is set to "2014-04-01 15:01:58"
|
||||
And that "del_task_due_date" is set to "2014-04-02 15:01:58"
|
||||
And that "del_finish_date" is set to "2014-04-01 15:02:17"
|
||||
And that "duration" is set to "0 Hours 0 Minutes 19 Seconds"
|
||||
And that "rou_next_task" is set to "86489868150ec8d68a1a9e7010589518"
|
||||
And that "rou_to_last_user" is set to "FALSE"
|
||||
And that "rou_optional" is set to "FALSE"
|
||||
And that "usr_uid" is set to "Administrator"
|
||||
And that "usr_firstname" is set to "Administrator"
|
||||
And that "usr_lastname" is set to ""
|
||||
And that "del_init_date" is set to "2014-04-01 15:01:58"
|
||||
And that "del_task_due_date" is set to "2014-04-02 15:01:58"
|
||||
And that "del_finish_date" is set to "2014-04-01 15:02:17"
|
||||
And that "duration" is set to "0 Hours 0 Minutes 19 Seconds"
|
||||
And that "color" is set to "#006633"
|
||||
And that "tas_uid" is set to "94757080050ec8d6e2b93a0015133851"
|
||||
And that "tas_type" is set to "NORMAL"
|
||||
And that "tas_title" is set to "Self Service"
|
||||
And that "rou_type" is set to "5"
|
||||
And that "rou_next_task" is set to "70190429650ec8d77e3e6e1056691766"
|
||||
And that "rou_condition" is set to ""
|
||||
And that "rou_to_last_user" is set to "FALSE"
|
||||
And that "rou_optional" is set to "FALSE"
|
||||
And that "usr_uid" is set to "None"
|
||||
And that "usr_firstname" is set to "null"
|
||||
And that "usr_lastname" is set to "null"
|
||||
And that "del_init_date" is set to "Case not started yet"
|
||||
And that "del_task_due_date" is set to "2014-04-02 15:02:17"
|
||||
And that "del_finish_date" is set to "Not finished"
|
||||
And that "duration" is set to "Not finished"
|
||||
And that "color" is set to "#FF0000"
|
||||
@@ -6,76 +6,73 @@ Background:
|
||||
|
||||
|
||||
Scenario Outline: Create a new case (Negative Test)
|
||||
Given POST this data:
|
||||
"""
|
||||
{
|
||||
"pro_uid": "<pro_uid>",
|
||||
"tas_uid": "<tas_uid>",
|
||||
"variables": [{"name": "admin", "amount":"1030"}]
|
||||
}
|
||||
"""
|
||||
Given POST this data:
|
||||
"""
|
||||
{
|
||||
"pro_uid": "<pro_uid>",
|
||||
"tas_uid": "<tas_uid>",
|
||||
"variables": [{"name": "admin", "amount":"1030"}]
|
||||
}
|
||||
"""
|
||||
And I request "cases"
|
||||
Then the response status code should be <error_code>
|
||||
And the response status message should have the following text "<error_message>"
|
||||
|
||||
|
||||
|
||||
Examples:
|
||||
| Description | pro_uid | tas_uid | error_code | error_message |
|
||||
| Create new case with pro_uid wrong | 99209594750ec1111111927000421575 | 68707275350ec281ada1c95068712556 | 400 | pro_uid |
|
||||
| Create new case with tas_uid wrong | 46279907250ec73b9b25a78031279680 | 99371337811111111111116024620271 | 400 | tas_uid |
|
||||
| Create new case with tas_uid wrong | 46279907250ec73b9b25a78031279680 | 99371337811111111111116024620271 | 400 | tas_uid |
|
||||
| Create new case without pro_uid | | 52838134750ec7dd0989fc0015625952 | 400 | pro_uid |
|
||||
| Create new case without tas_uid | 34579467750ec8d55e8b115057818502 | | 400 | tas_uid |
|
||||
| Create new case without tas_uid | 34579467750ec8d55e8b115057818502 | | 400 | tas_uid |
|
||||
| Create new case whith pro_uid and tas_uid wrong | 8245849601111111181ecc7039804404 | 5690001111111118e4a9243080698854 | 400 | pro_uid |
|
||||
|
||||
|
||||
|
||||
|
||||
Scenario Outline: Create a new case Impersonate (Negative Test)
|
||||
Given POST this data:
|
||||
"""
|
||||
{
|
||||
"pro_uid": "<pro_uid>",
|
||||
"usr_uid": "<usr_uid>",
|
||||
"tas_uid": "<tas_uid>",
|
||||
"variables": [{"name": "pruebaQA", "amount":"10400"}]
|
||||
}
|
||||
"""
|
||||
Given POST this data:
|
||||
"""
|
||||
{
|
||||
"pro_uid": "<pro_uid>",
|
||||
"usr_uid": "<usr_uid>",
|
||||
"tas_uid": "<tas_uid>",
|
||||
"variables": [{"name": "pruebaQA", "amount":"10400"}]
|
||||
}
|
||||
"""
|
||||
And I request "cases/impersonate"
|
||||
Then the response status code should be <error_code>
|
||||
Then the response status code should be <error_code>
|
||||
And the response status message should have the following text "<error_message>"
|
||||
|
||||
Examples:
|
||||
| Description | pro_uid | usr_uid | tas_uid | error_code | error_message |
|
||||
| Create new case with process "Derivation rules - sequential" invalid pro_uid | 99201111111111111138927000421575 | 51049032352d56710347233042615067 | 68707275350ec281ada1c95068712556 | 400 | pro_uid |
|
||||
| Create new case with process "Derivation rules - evaluation" invalid tas_uid | 99209594750ec27ea338927000421575 | 44811996752d567110634a1013636964 | 68707211111111111111111111712556 | 400 | tas_uid |
|
||||
| Create new case with process "Derivation rules - Parallel" usr_uid | 99209594750ec27ea338927000421575 | 24166331111111111111115035621101 | 68707275350ec281ada1c95068712556 | 400 | usr_uid |
|
||||
| Create new case with process "Derivation rules - without pro_uid | | 86677227852d5671f40ba25017213081 | 68707275350ec281ada1c95068712556 | 400 | pro_uid |
|
||||
| Create new case with process "Derivation rules - selection" tas_uid | 99209594750ec27ea338927000421575 | 62625000752d5672d6661e6072881167 | | 400 | tas_uid |
|
||||
| Description | pro_uid | usr_uid | tas_uid | error_code | error_message |
|
||||
| Create new case with process "Derivation rules - sequential" invalid pro_uid | 99201111111111111138927000421575 | 51049032352d56710347233042615067 | 68707275350ec281ada1c95068712556 | 400 | pro_uid |
|
||||
| Create new case with process "Derivation rules - evaluation" invalid tas_uid | 99209594750ec27ea338927000421575 | 44811996752d567110634a1013636964 | 68707211111111111111111111712556 | 400 | tas_uid |
|
||||
| Create new case with process "Derivation rules - Parallel" usr_uid | 99209594750ec27ea338927000421575 | 24166331111111111111115035621101 | 68707275350ec281ada1c95068712556 | 400 | usr_uid |
|
||||
| Create new case with process "Derivation rules - without pro_uid | | 86677227852d5671f40ba25017213081 | 68707275350ec281ada1c95068712556 | 400 | pro_uid |
|
||||
| Create new case with process "Derivation rules - selection" tas_uid | 99209594750ec27ea338927000421575 | 62625000752d5672d6661e6072881167 | | 400 | tas_uid |
|
||||
|
||||
|
||||
Scenario Outline: Create a case, derivate and cancel. then try do pause or route
|
||||
#Create case
|
||||
Given POST this data:
|
||||
"""
|
||||
{
|
||||
"pro_uid": "<pro_uid>",
|
||||
"tas_uid": "<tas_uid>",
|
||||
"variables": [{"name": "admin", "amount":"1030"}]
|
||||
}
|
||||
"""
|
||||
Given POST this data:
|
||||
"""
|
||||
{
|
||||
"pro_uid": "<pro_uid>",
|
||||
"tas_uid": "<tas_uid>",
|
||||
"variables": [{"name": "admin", "amount":"1030"}]
|
||||
}
|
||||
"""
|
||||
And I request "cases"
|
||||
Then the response status code should be 200
|
||||
And store "app_uid" in session array as variable "app_uid_<case_number>"
|
||||
|
||||
#Send some variables
|
||||
And PUT this data:
|
||||
"""
|
||||
{
|
||||
"continue": "yes",
|
||||
"tasks": "Cyclical"
|
||||
And PUT this data:
|
||||
"""
|
||||
{
|
||||
"continue": "yes",
|
||||
"tasks": "Cyclical"
|
||||
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
And I request "cases/app_uid/variable" with the key "app_uid" stored in session array as variable "app_uid_<case_number>"
|
||||
Then the response status code should be 200
|
||||
And the content type is "application/json"
|
||||
@@ -83,7 +80,7 @@ Scenario Outline: Create a case, derivate and cancel. then try do pause or route
|
||||
And the type is "object"
|
||||
|
||||
#Cancel case
|
||||
And PUT this data:
|
||||
And PUT this data:
|
||||
"""
|
||||
{
|
||||
|
||||
@@ -96,36 +93,37 @@ Scenario Outline: Create a case, derivate and cancel. then try do pause or route
|
||||
And the type is "object"
|
||||
|
||||
#Route case: it should not allow
|
||||
And PUT this data:
|
||||
"""
|
||||
{
|
||||
"case_uid": "<case_number>",
|
||||
"del_index": "1"
|
||||
}
|
||||
"""
|
||||
And PUT this data:
|
||||
"""
|
||||
{
|
||||
"case_uid": "<case_number>",
|
||||
"del_index": "1"
|
||||
}
|
||||
"""
|
||||
And I request "cases/app_uid/route-case" with the key "app_uid" stored in session array as variable "app_uid_<case_number>"
|
||||
Then the response status code should be 400
|
||||
And the response status message should have the following text "<error_message_route>"
|
||||
|
||||
#Pause case
|
||||
And PUT this data:
|
||||
And PUT this data:
|
||||
"""
|
||||
{
|
||||
"unpaused_date": "2016-12-12"
|
||||
}
|
||||
"""
|
||||
{
|
||||
"unpaused_date": "2016-12-12"
|
||||
}
|
||||
"""
|
||||
And I request "cases/app_uid/pause" with the key "app_uid" stored in session array as variable "app_uid_<case_number>"
|
||||
Then the response status code should be 400
|
||||
And the response status message should have the following text "<error_message_pause>"
|
||||
And I request "cases/app_uid/pause" with the key "app_uid" stored in session array as variable "app_uid_<case_number>"
|
||||
Then the response status code should be 400
|
||||
And the response status message should have the following text "<error_message_pause>"
|
||||
|
||||
Examples:
|
||||
| Description | case_number | pro_uid | tas_uid | error_message_route | error_message_pause |
|
||||
| Create new case with process "Derivation rules - sequential" | 1 | 99209594750ec27ea338927000421575 | 68707275350ec281ada1c95068712556 | This case delegation is already closed | This case delegation is already closed |
|
||||
Examples:
|
||||
|
||||
| Description | case_number | pro_uid | tas_uid | error_message_route | error_message_pause |
|
||||
| Create new case with process "Derivation rules - sequential" | 1 | 99209594750ec27ea338927000421575 | 68707275350ec281ada1c95068712556 | This case delegation is already closed | canceled |
|
||||
|
||||
|
||||
#Delete case
|
||||
|
||||
Scenario Outline: Delete a case created previously in this script
|
||||
Scenario Outline: Delete a case created previously in this script
|
||||
Given that I want to delete a resource with the key "app_uid" stored in session array as variable "app_uid_<app_uid_number>"
|
||||
And I request "cases"
|
||||
And the content type is "application/json"
|
||||
|
||||
@@ -5,7 +5,6 @@ Feature: Activity Resources Main Tests
|
||||
the process name is "Test Activity"
|
||||
there are three Activity Resources in the process
|
||||
|
||||
|
||||
Background:
|
||||
Given that I have a valid access_token
|
||||
|
||||
@@ -58,195 +57,216 @@ Scenario Outline: Get the Definition of a Activity are exactly three activity
|
||||
| 24689389453502b73597aa5052425148 | Task 3 |
|
||||
|
||||
|
||||
Scenario Outline: Get a activity (Verification of initial values)
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/<activity>"
|
||||
Scenario: Get a activity (Verification of initial values) "Task1"
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/28629650453502b70b7f3a8051740006"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
And the property "tas_type" of "properties" is set to "<tas_type>"
|
||||
And the property "tas_duration" of "properties" is set to "<tas_duration>"
|
||||
And the property "tas_type_day" of "properties" is set to "<tas_type_day>"
|
||||
And the property "tas_timeunit" of "properties" is set to "<tas_timeunit>"
|
||||
And the property "tas_priority_variable" of "properties" is set to "<tas_priority_variable>"
|
||||
And the property "tas_assign_type" of "properties" is set to "<tas_assign_type>"
|
||||
And the property "tas_assign_variable" of "properties" is set to "<tas_assign_variable>"
|
||||
And the property "tas_transfer_fly" of "properties" is set to "<tas_transfer_fly>"
|
||||
And the property "tas_send_last_email" of "properties" is set to "<tas_send_last_email>"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to "<tas_derivation_screen_tpl>"
|
||||
And the property "tas_selfservice_timeout" of "properties" is set to "<tas_selfservice_timeout>"
|
||||
And the property "tas_selfservice_time" of "properties" is set to "<tas_selfservice_time>"
|
||||
And the property "tas_selfservice_time_unit" of "properties" is set to "<tas_selfservice_time_unit>"
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to "<tas_selfservice_trigger_uid>"
|
||||
And the property "tas_title" of "properties" is set to "<tas_title>"
|
||||
And the property "tas_description" of "properties" is set to "<tas_description>"
|
||||
And the property "tas_def_title" of "properties" is set to "<tas_def_title>"
|
||||
And the property "tas_def_description" of "properties" is set to "<tas_def_description>"
|
||||
And the property "tas_def_message" of "properties" is set to "<tas_def_message>"
|
||||
And the property "tas_def_subject_message" of "properties" is set to "<tas_def_subject_message>"
|
||||
And the property "tas_calendar" of "properties" is set to "<tas_calendar>"
|
||||
And the property "tas_def_message_type" of "properties" is set to "<tas_def_message_type>"
|
||||
And the property "tas_def_message_template" of "properties" is set to "<tas_def_message_template>"
|
||||
|
||||
Examples:
|
||||
|
||||
| activity | tas_type | tas_duration | tas_type_day | tas_timeunit | tas_priority_variable | tas_assign_type | tas_assign_variable | tas_transfer_fly | tas_send_last_email | tas_derivation_screen_tpl | tas_selfservice_timeout | tas_selfservice_time | tas_selfservice_time_unit | tas_selfservice_trigger_uid | tas_title | tas_description | tas_def_title | tas_def_description | tas_def_message | tas_def_subject_message | tas_calendar | tas_def_message_type | tas_def_message_template |
|
||||
| 28629650453502b70b7f3a8051740006 | NORMAL | 1 | | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | FALSE | | 0 | | | | Task 1 | | | | | | | text | alert_message.html |
|
||||
| 52976670353502b71e2b0a8036043148 | NORMAL | 1 | | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | FALSE | | 0 | | | | Task 2 | | | | | | | text | alert_message.html |
|
||||
| 24689389453502b73597aa5052425148 | NORMAL | 1 | | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | FALSE | | 0 | | | | Task 3 | | | | | | | text | alert_message.html |
|
||||
And the property "tas_type" of "properties" is set to "NORMAL"
|
||||
And the property "tas_duration" of "properties" is set to "1"
|
||||
And the property "tas_type_day" of "properties" is set to ""
|
||||
And the property "tas_timeunit" of "properties" is set to "DAYS"
|
||||
And the property "tas_priority_variable" of "properties" is set to ""
|
||||
And the property "tas_assign_type" of "properties" is set to "BALANCED"
|
||||
And the property "tas_assign_variable" of "properties" is set to "@@SYS_NEXT_USER_TO_BE_ASSIGNED"
|
||||
And the property "tas_group_variable" of "properties" is set to ""
|
||||
And the property "tas_transfer_fly" of "properties" is set to "FALSE"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to ""
|
||||
And the property "tas_selfservice_timeout" of "properties" is set to "0"
|
||||
And the property "tas_selfservice_time" of "properties" is set to ""
|
||||
And the property "tas_selfservice_time_unit" of "properties" is set to ""
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to ""
|
||||
And the property "tas_title" of "properties" is set to "Task 1"
|
||||
And the property "tas_description" of "properties" is set to ""
|
||||
And the property "tas_def_title" of "properties" is set to ""
|
||||
And the property "tas_def_description" of "properties" is set to ""
|
||||
And the property "tas_calendar" of "properties" is set to ""
|
||||
And the property "tas_def_message_type" of "properties" is set to "text"
|
||||
And the property "tas_def_message_template" of "properties" is set to "alert_message.html"
|
||||
|
||||
|
||||
Scenario Outline: Update the Definition of a Activity and the check if the values had changed
|
||||
Scenario: Get a activity (Verification of initial values) "Task2"
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/52976670353502b71e2b0a8036043148"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
And the property "tas_type" of "properties" is set to "NORMAL"
|
||||
And the property "tas_duration" of "properties" is set to "1"
|
||||
And the property "tas_type_day" of "properties" is set to ""
|
||||
And the property "tas_timeunit" of "properties" is set to "DAYS"
|
||||
And the property "tas_priority_variable" of "properties" is set to ""
|
||||
And the property "tas_assign_type" of "properties" is set to "BALANCED"
|
||||
And the property "tas_assign_variable" of "properties" is set to "@@SYS_NEXT_USER_TO_BE_ASSIGNED"
|
||||
And the property "tas_transfer_fly" of "properties" is set to "FALSE"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to ""
|
||||
And the property "tas_selfservice_timeout" of "properties" is set to "0"
|
||||
And the property "tas_selfservice_time" of "properties" is set to ""
|
||||
And the property "tas_selfservice_time_unit" of "properties" is set to ""
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to ""
|
||||
And the property "tas_title" of "properties" is set to "Task 2"
|
||||
And the property "tas_description" of "properties" is set to ""
|
||||
And the property "tas_def_title" of "properties" is set to ""
|
||||
And the property "tas_def_description" of "properties" is set to ""
|
||||
And the property "tas_calendar" of "properties" is set to ""
|
||||
And the property "tas_def_message_type" of "properties" is set to "text"
|
||||
And the property "tas_def_message_template" of "properties" is set to "alert_message.html"
|
||||
|
||||
|
||||
Scenario: Get a activity (Verification of initial values) "Task3"
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/24689389453502b73597aa5052425148"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
And the property "tas_type" of "properties" is set to "NORMAL"
|
||||
And the property "tas_duration" of "properties" is set to "1"
|
||||
And the property "tas_type_day" of "properties" is set to ""
|
||||
And the property "tas_timeunit" of "properties" is set to "DAYS"
|
||||
And the property "tas_priority_variable" of "properties" is set to ""
|
||||
And the property "tas_assign_type" of "properties" is set to "BALANCED"
|
||||
And the property "tas_assign_variable" of "properties" is set to "@@SYS_NEXT_USER_TO_BE_ASSIGNED"
|
||||
And the property "tas_transfer_fly" of "properties" is set to "FALSE"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to ""
|
||||
And the property "tas_selfservice_timeout" of "properties" is set to "0"
|
||||
And the property "tas_selfservice_time" of "properties" is set to ""
|
||||
And the property "tas_selfservice_time_unit" of "properties" is set to ""
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to ""
|
||||
And the property "tas_title" of "properties" is set to "Task 3"
|
||||
And the property "tas_description" of "properties" is set to ""
|
||||
And the property "tas_def_title" of "properties" is set to ""
|
||||
And the property "tas_def_description" of "properties" is set to ""
|
||||
And the property "tas_calendar" of "properties" is set to ""
|
||||
And the property "tas_def_message_type" of "properties" is set to "text"
|
||||
And the property "tas_def_message_template" of "properties" is set to "alert_message.html"
|
||||
|
||||
|
||||
Scenario: Update the Definition of a Activity "Task1" and the check if the values had changed
|
||||
Given PUT this data:
|
||||
"""
|
||||
{
|
||||
"definition": {},
|
||||
"properties":
|
||||
{
|
||||
"tas_type": "<tas_type>",
|
||||
"tas_duration": "<tas_duration>",
|
||||
"tas_timeunit": "<tas_timeunit>",
|
||||
"tas_priority_variable": "<tas_priority_variable>",
|
||||
"tas_assign_type": "<tas_assign_type>",
|
||||
"tas_assign_variable": "<tas_assign_variable>",
|
||||
"tas_transfer_fly": "<tas_transfer_fly>",
|
||||
"tas_derivation_screen_tpl": "<tas_derivation_screen_tpl>",
|
||||
"tas_selfservice_time_unit": "<tas_selfservice_time_unit>",
|
||||
"tas_selfservice_timeout": "<tas_selfservice_timeout>",
|
||||
"tas_selfservice_trigger_uid": "<tas_selfservice_trigger_uid>",
|
||||
"tas_title": "<tas_title>",
|
||||
"tas_description": "<tas_description>",
|
||||
"tas_def_title": "<tas_def_title>",
|
||||
"tas_def_description": "<tas_def_description>",
|
||||
"tas_def_message": "<tas_def_message>",
|
||||
"tas_def_subject_message": "<tas_def_subject_message>",
|
||||
"tas_calendar": "<tas_calendar>",
|
||||
"tas_def_message_type": "<tas_def_message_type>",
|
||||
"tas_def_message_template": "<tas_def_message_template>"
|
||||
"tas_type": "ADHOC",
|
||||
"tas_duration": 2,
|
||||
"tas_type_day": "DAYS",
|
||||
"tas_timeunit": "DAYS",
|
||||
"tas_priority_variable": "@@PROCESS",
|
||||
"tas_assign_type": "BALANCED",
|
||||
"tas_assign_variable": "@@USER_LOGGED",
|
||||
"tas_group_variable": "@@USER_LOGGED",
|
||||
"tas_transfer_fly": "TRUE",
|
||||
"tas_send_last_email": "TRUE",
|
||||
"tas_derivation_screen_tpl": "test activity.html",
|
||||
"tas_selfservice_timeout": 1,
|
||||
"tas_selfservice_time": 1,
|
||||
"tas_selfservice_time_unit": "HOURS",
|
||||
"tas_selfservice_trigger_uid": "",
|
||||
"tas_title": "Task 1 Update Activity",
|
||||
"tas_description": "Update Description",
|
||||
"tas_def_title": "Case Title",
|
||||
"tas_def_description": "Case Description UPDATE",
|
||||
"tas_def_message": "Esta es una Notificacion - UPDATE ",
|
||||
"tas_def_subject_message": "UPDATE Titulo de Notificacion 1",
|
||||
"tas_calendar": "14606161052f50839307899033145440",
|
||||
"tas_def_message_type": "text",
|
||||
"tas_def_message_template": "test activity.html"
|
||||
}
|
||||
}
|
||||
"""
|
||||
And I request "project/59534741653502b6d1820d6012095837/activity/<activity>"
|
||||
And I request "project/59534741653502b6d1820d6012095837/activity/28629650453502b70b7f3a8051740006"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
|
||||
Examples:
|
||||
|
||||
|
||||
| test_description | activity | tas_type | tas_duration | tas_timeunit | tas_priority_variable | tas_assign_type | tas_assign_variable | tas_transfer_fly | tas_derivation_screen_tpl | tas_selfservice_time_unit | tas_selfservice_timeout | tas_selfservice_trigger_uid | tas_title | tas_description | tas_def_title | tas_def_description | tas_def_message | tas_def_subject_message | tas_calendar | tas_def_message_type | tas_def_message_template |
|
||||
| Update Task1 | 28629650453502b70b7f3a8051740006 | ADHOC | 2 | DAYS | @@PROCESS | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | test activity.html | HOURS | 1 | | Task 1 Update Activity | Update Description | Case Title | Case Description UPDATE | Esta es una Notificacion - UPDATE | UPDATE Titulo de Notificacion 1 | 14606161052f50839307899033145440 | text | test activity.html |
|
||||
| Update Task2 | 52976670353502b71e2b0a8036043148 | NORMAL | 3 | HOURS | @@PROCESS | BALANCED | @@USER_LOGGED | TRUE | test activity.html | HOURS | 1 | | Task 2 Update Activity | Update Description | Case Title | Case Description UPDATE | Esta es una Notificacion - UPDATE | UPDATE Titulo de Notificacion 1 | 14606161052f50839307899033145440 | text | test activity.html |
|
||||
| Update Task3 | 24689389453502b73597aa5052425148 | NORMAL | 2 | HOURS | @@PROCESS | BALANCED | @@USER_LOGGED | FALSE | test activity.html | HOURS | 1 | | Task 3 Update Activity | Update Description | Case Title | Case Description UPDATE | Esta es una Notificacion - UPDATE | UPDATE Titulo de Notificacion 1 | 14606161052f50839307899033145440 | text | test activity.html |
|
||||
|
||||
|
||||
Scenario Outline: Get a activity (Review of variables after the update)
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/<activity>"
|
||||
Scenario: Get a activity (Review of variables after the update) Task1
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/28629650453502b70b7f3a8051740006"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
And the property "tas_type" of "properties" is set to "<tas_type>"
|
||||
And the property "tas_duration" of "properties" is set to "<tas_duration>"
|
||||
And the property "tas_timeunit" of "properties" is set to "<tas_timeunit>"
|
||||
And the property "tas_priority_variable" of "properties" is set to "<tas_priority_variable>"
|
||||
And the property "tas_assign_type" of "properties" is set to "<tas_assign_type>"
|
||||
And the property "tas_assign_variable" of "properties" is set to "<tas_assign_variable>"
|
||||
And the property "tas_transfer_fly" of "properties" is set to "<tas_transfer_fly>"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to "<tas_derivation_screen_tpl>"
|
||||
And the property "tas_selfservice_time_unit" of "properties" is set to "<tas_selfservice_time_unit>"
|
||||
And the property "tas_selfservice_timeout" of "properties" is set to "<tas_selfservice_timeout>"
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to "<tas_selfservice_trigger_uid>"
|
||||
And the property "tas_title" of "properties" is set to "<tas_title>"
|
||||
And the property "tas_description" of "properties" is set to "<tas_description>"
|
||||
And the property "tas_def_title" of "properties" is set to "<tas_def_title>"
|
||||
And the property "tas_def_description" of "properties" is set to "<tas_def_description>"
|
||||
And the property "tas_def_message" of "properties" is set to "<tas_def_message>"
|
||||
And the property "tas_def_subject_message" of "properties" is set to "<tas_def_subject_message>"
|
||||
And the property "tas_calendar" of "properties" is set to "<tas_calendar>"
|
||||
And the property "tas_def_message_type" of "properties" is set to "<tas_def_message_type>"
|
||||
And the property "tas_def_message_template" of "properties" is set to "<tas_def_message_template>"
|
||||
And the property "tas_type" of "properties" is set to "ADHOC"
|
||||
And the property "tas_timeunit" of "properties" is set to "DAYS"
|
||||
And the property "tas_priority_variable" of "properties" is set to "@@PROCESS"
|
||||
And the property "tas_assign_type" of "properties" is set to "BALANCED"
|
||||
And the property "tas_transfer_fly" of "properties" is set to "TRUE"
|
||||
And the property "tas_send_last_email" of "properties" is set to "TRUE"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to "test activity.html"
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to ""
|
||||
And the property "tas_title" of "properties" is set to "Task 1 Update Activity"
|
||||
And the property "tas_description" of "properties" is set to "Update Description"
|
||||
And the property "tas_def_title" of "properties" is set to "Case Title"
|
||||
And the property "tas_def_description" of "properties" is set to "Case Description UPDATE"
|
||||
And the property "tas_def_message" of "properties" is set to "Esta es una Notificacion - UPDATE"
|
||||
And the property "tas_def_subject_message" of "properties" is set to "UPDATE Titulo de Notificacion 1"
|
||||
And the property "tas_def_message_type" of "properties" is set to "text"
|
||||
|
||||
Examples:
|
||||
|
||||
| activity | tas_type | tas_duration | tas_timeunit | tas_priority_variable | tas_assign_type | tas_assign_variable | tas_transfer_fly | tas_derivation_screen_tpl | tas_selfservice_time_unit | tas_selfservice_timeout | tas_selfservice_trigger_uid | tas_title | tas_description | tas_def_title | tas_def_description | tas_def_message | tas_def_subject_message | tas_calendar | tas_def_message_type | tas_def_message_template |
|
||||
| 28629650453502b70b7f3a8051740006 | ADHOC | 2 | DAYS | @@PROCESS | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | test activity.html | HOURS | 1 | | Task 1 Update Activity | Update Description | Case Title | Case Description UPDATE | Esta es una Notificacion - UPDATE | UPDATE Titulo de Notificacion 1 | 14606161052f50839307899033145440 | text | test activity.html |
|
||||
| 52976670353502b71e2b0a8036043148 | NORMAL | 3 | HOURS | @@PROCESS | BALANCED | @@USER_LOGGED | TRUE | test activity.html | HOURS | 1 | | Task 2 Update Activity | Update Description | Case Title | Case Description UPDATE | Esta es una Notificacion - UPDATE | UPDATE Titulo de Notificacion 1 | 14606161052f50839307899033145440 | text | test activity.html |
|
||||
| 24689389453502b73597aa5052425148 | NORMAL | 2 | HOURS | @@PROCESS | BALANCED | @@USER_LOGGED | FALSE | test activity.html | HOURS | 1 | | Task 3 Update Activity | Update Description | Case Title | Case Description UPDATE | Esta es una Notificacion - UPDATE | UPDATE Titulo de Notificacion 1 | 14606161052f50839307899033145440 | text | test activity.html |
|
||||
|
||||
|
||||
Scenario Outline: Update the Definition of a Activity to return to baseline
|
||||
|
||||
Scenario: Update the Definition of a Activity to return to baseline of the task1
|
||||
Given PUT this data:
|
||||
"""
|
||||
{
|
||||
"definition": {},
|
||||
"properties":
|
||||
{
|
||||
"tas_type": "<tas_type>",
|
||||
"tas_duration": "<tas_duration>",
|
||||
"tas_timeunit": "<tas_timeunit>",
|
||||
"tas_priority_variable": "<tas_priority_variable>",
|
||||
"tas_assign_type": "<tas_assign_type>",
|
||||
"tas_assign_variable": "<tas_assign_variable>",
|
||||
"tas_transfer_fly": "<tas_transfer_fly>",
|
||||
"tas_derivation_screen_tpl": "<tas_derivation_screen_tpl>",
|
||||
"tas_selfservice_time_unit": "<tas_selfservice_time_unit>",
|
||||
"tas_selfservice_timeout": "<tas_selfservice_timeout>",
|
||||
"tas_selfservice_trigger_uid": "<tas_selfservice_trigger_uid>",
|
||||
"tas_title": "<tas_title>",
|
||||
"tas_description": "<tas_description>",
|
||||
"tas_def_title": "<tas_def_title>",
|
||||
"tas_def_description": "<tas_def_description>",
|
||||
"tas_def_message": "<tas_def_message>",
|
||||
"tas_def_subject_message": "<tas_def_subject_message>",
|
||||
"tas_calendar": "<tas_calendar>",
|
||||
"tas_def_message_type": "<tas_def_message_type>",
|
||||
"tas_def_message_template": "<tas_def_message_template>"
|
||||
"tas_type": "NORMAL",
|
||||
"tas_duration": 1,
|
||||
"tas_type_day": "",
|
||||
"tas_timeunit": "DAYS",
|
||||
"tas_priority_variable": "",
|
||||
"tas_assign_type": "BALANCED",
|
||||
"tas_assign_variable": "@@SYS_NEXT_USER_TO_BE_ASSIGNED",
|
||||
"tas_group_variable": "",
|
||||
"tas_transfer_fly": "FALSE",
|
||||
"tas_send_last_email": "FALSE",
|
||||
"tas_derivation_screen_tpl": "",
|
||||
"tas_selfservice_timeout": 0,
|
||||
"tas_selfservice_time": "",
|
||||
"tas_selfservice_time_unit": "",
|
||||
"tas_selfservice_trigger_uid": "",
|
||||
"tas_title": "Task 1",
|
||||
"tas_description": "",
|
||||
"tas_def_title": "",
|
||||
"tas_def_description": "",
|
||||
"tas_def_message": "",
|
||||
"tas_def_subject_message": "",
|
||||
"tas_calendar": "",
|
||||
"tas_def_message_type": "text",
|
||||
"tas_def_message_template": "alert_message.html"
|
||||
}
|
||||
|
||||
}
|
||||
"""
|
||||
And I request "project/59534741653502b6d1820d6012095837/activity/<activity>"
|
||||
And I request "project/59534741653502b6d1820d6012095837/activity/28629650453502b70b7f3a8051740006"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
|
||||
Examples:
|
||||
|
||||
| activity | tas_type | tas_duration | tas_timeunit | tas_priority_variable | tas_assign_type | tas_assign_variable | tas_transfer_fly | tas_derivation_screen_tpl | tas_selfservice_timeout | tas_selfservice_time | tas_selfservice_time_unit | tas_selfservice_trigger_uid | tas_title | tas_description | tas_def_title | tas_def_description | tas_def_message | tas_def_subject_message | tas_calendar | tas_def_message_type | tas_def_message_template |
|
||||
| 28629650453502b70b7f3a8051740006 | NORMAL | 1 | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | | 0 | | | | Task 1 | | | | | | | text | alert_message.html |
|
||||
| 52976670353502b71e2b0a8036043148 | NORMAL | 1 | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | | 0 | | | | Task 2 | | | | | | | text | alert_message.html |
|
||||
| 24689389453502b73597aa5052425148 | NORMAL | 1 | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | | 0 | | | | Task 3 | | | | | | | text | alert_message.html |
|
||||
|
||||
|
||||
Scenario Outline: Get a activity (Verification of initial values)
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/<activity>"
|
||||
|
||||
Scenario: Get a activity (Verification of initial values) Task1
|
||||
Given I request "project/59534741653502b6d1820d6012095837/activity/28629650453502b70b7f3a8051740006"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
And the property "tas_type" of "properties" is set to "<tas_type>"
|
||||
And the property "tas_duration" of "properties" is set to "<tas_duration>"
|
||||
And the property "tas_type_day" of "properties" is set to "<tas_type_day>"
|
||||
And the property "tas_timeunit" of "properties" is set to "<tas_timeunit>"
|
||||
And the property "tas_priority_variable" of "properties" is set to "<tas_priority_variable>"
|
||||
And the property "tas_assign_type" of "properties" is set to "<tas_assign_type>"
|
||||
And the property "tas_assign_variable" of "properties" is set to "<tas_assign_variable>"
|
||||
And the property "tas_transfer_fly" of "properties" is set to "<tas_transfer_fly>"
|
||||
And the property "tas_send_last_email" of "properties" is set to "<tas_send_last_email>"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to "<tas_derivation_screen_tpl>"
|
||||
And the property "tas_selfservice_timeout" of "properties" is set to "<tas_selfservice_timeout>"
|
||||
And the property "tas_selfservice_time" of "properties" is set to "<tas_selfservice_time>"
|
||||
And the property "tas_selfservice_time_unit" of "properties" is set to "<tas_selfservice_time_unit>"
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to "<tas_selfservice_trigger_uid>"
|
||||
And the property "tas_title" of "properties" is set to "<tas_title>"
|
||||
And the property "tas_description" of "properties" is set to "<tas_description>"
|
||||
And the property "tas_def_title" of "properties" is set to "<tas_def_title>"
|
||||
And the property "tas_def_description" of "properties" is set to "<tas_def_description>"
|
||||
And the property "tas_def_message" of "properties" is set to "<tas_def_message>"
|
||||
And the property "tas_def_subject_message" of "properties" is set to "<tas_def_subject_message>"
|
||||
And the property "tas_calendar" of "properties" is set to "<tas_calendar>"
|
||||
And the property "tas_def_message_type" of "properties" is set to "<tas_def_message_type>"
|
||||
And the property "tas_def_message_template" of "properties" is set to "<tas_def_message_template>"
|
||||
|
||||
Examples:
|
||||
|
||||
| activity | tas_type | tas_duration | tas_type_day | tas_timeunit | tas_priority_variable | tas_assign_type | tas_assign_variable | tas_transfer_fly | tas_send_last_email | tas_derivation_screen_tpl | tas_selfservice_timeout | tas_selfservice_time | tas_selfservice_time_unit | tas_selfservice_trigger_uid | tas_title | tas_description | tas_def_title | tas_def_description | tas_def_message | tas_def_subject_message | tas_calendar | tas_def_message_type | tas_def_message_template |
|
||||
| 28629650453502b70b7f3a8051740006 | NORMAL | 1 | | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | FALSE | | 0 | | | | Task 1 | | | | | | | text | alert_message.html |
|
||||
| 52976670353502b71e2b0a8036043148 | NORMAL | 1 | | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | FALSE | | 0 | | | | Task 2 | | | | | | | text | alert_message.html |
|
||||
| 24689389453502b73597aa5052425148 | NORMAL | 1 | | DAYS | | BALANCED | @@SYS_NEXT_USER_TO_BE_ASSIGNED | FALSE | FALSE | | 0 | | | | Task 3 | | | | | | | text | alert_message.html |
|
||||
And the property "tas_type" of "properties" is set to "NORMAL"
|
||||
And the property "tas_duration" of "properties" is set to "1"
|
||||
And the property "tas_type_day" of "properties" is set to ""
|
||||
And the property "tas_timeunit" of "properties" is set to "DAYS"
|
||||
And the property "tas_priority_variable" of "properties" is set to ""
|
||||
And the property "tas_assign_type" of "properties" is set to "BALANCED"
|
||||
And the property "tas_assign_variable" of "properties" is set to "@@SYS_NEXT_USER_TO_BE_ASSIGNED"
|
||||
And the property "tas_group_variable" of "properties" is set to ""
|
||||
And the property "tas_transfer_fly" of "properties" is set to "FALSE"
|
||||
And the property "tas_send_last_email" of "properties" is set to "FALSE"
|
||||
And the property "tas_derivation_screen_tpl" of "properties" is set to ""
|
||||
And the property "tas_selfservice_timeout" of "properties" is set to "0"
|
||||
And the property "tas_selfservice_time" of "properties" is set to ""
|
||||
And the property "tas_selfservice_time_unit" of "properties" is set to ""
|
||||
And the property "tas_selfservice_trigger_uid" of "properties" is set to ""
|
||||
And the property "tas_title" of "properties" is set to "Task 1"
|
||||
And the property "tas_description" of "properties" is set to ""
|
||||
And the property "tas_def_title" of "properties" is set to ""
|
||||
And the property "tas_def_description" of "properties" is set to ""
|
||||
And the property "tas_calendar" of "properties" is set to ""
|
||||
And the property "tas_def_message_type" of "properties" is set to "text"
|
||||
And the property "tas_def_message_template" of "properties" is set to "alert_message.html"
|
||||
@@ -39,6 +39,7 @@ Feature: Output Documents Main Tests
|
||||
"out_doc_title": "<out_doc_title>",
|
||||
"out_doc_description": "<out_doc_description>",
|
||||
"out_doc_filename": "<out_doc_filename>",
|
||||
"out_doc_template": "<out_doc_template>",
|
||||
"out_doc_report_generator": "<out_doc_report_generator>",
|
||||
"out_doc_landscape": "<out_doc_landscape>",
|
||||
"out_doc_media": "<out_doc_media>",
|
||||
@@ -66,22 +67,22 @@ Feature: Output Documents Main Tests
|
||||
|
||||
Examples:
|
||||
|
||||
| test_description | project | out_doc_number | out_doc_title | out_doc_description |out_doc_filename | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions |
|
||||
| Create with old version and both | 4224292655297723eb98691001100052 | 1 | Endpoint Old Version | Output Document old version - EndPoint | Output 1 | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Craate with old version and pdf security | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version PDF SECURITY | Output Document old version PDF SECURITY | Output 2 | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with old version only doc | 4224292655297723eb98691001100052 | 3 | Endpoint Old Version Doc | Output Document old version solo doc | Output 3 | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 1 | | | 0 | | | |
|
||||
| Create with old version only pdf | 4224292655297723eb98691001100052 | 4 | Endpoint Old Version PDF | Output Document old version solo pdf | Output 4 | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample | sample | print |
|
||||
| Create with new version and both | 4224292655297723eb98691001100052 | 5 | Endpoint New Version | Output Document new version - EndPoint | Output 5 | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Create with new version and pdf security | 4224292655297723eb98691001100052 | 6 | Endpoint New Version PDF SECURITY | Output Document new version PDF SECURITY | Output 6 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with new version only doc | 4224292655297723eb98691001100052 | 7 | Endpoint New Version Doc | Output Document new version solo doc | Output 7 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 1 | | | 0 | | | |
|
||||
| Create with new version only pdf | 4224292655297723eb98691001100052 | 8 | Endpoint New Version PDF | Output Document new version solo pdf | Output 8 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample | sample | print |
|
||||
| Create with special characters in out doc title | 4224292655297723eb98691001100052 | 9 | test !@#$%^&*€¤¾½²³€¼½¼ | Output Document old version - EndPoint | Output 9 | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Create with special characters in out doc description | 4224292655297723eb98691001100052 | 10 | Endpoint Old1 | test %^&*€¤¾½²³€ | Output 10 | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with special characters in out doc filename | 4224292655297723eb98691001100052 | 11 | Endpoint Old Version Doc 2 | Output Document old version solo doc | Output @#$%^&*€¤ | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 1 | | | 0 | | | |
|
||||
| Create with special characters in out doc destination path | 4224292655297723eb98691001100052 | 12 | Endpoint New Version 16 | Output Document new version - EndPoint | Output 13 | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | 23rg@#$% | | 0 | | | |
|
||||
| Create with special characters in out doc tags | 4224292655297723eb98691001100052 | 13 | Endpoint New Version PDF SECURI17 | Output Document new version PDF SECURITY | Output 14 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | vfv23@$@% | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with special characters in out doc pdf security open password | 4224292655297723eb98691001100052 | 14 | Endpoint New Version PDF 19 | Output Document new version solo pdf | Output 15 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample432@$#@$¼€¼½ | sample | print |
|
||||
| Create with special characters in out doc pdf security owner password | 4224292655297723eb98691001100052 | 15 | Endpoint New Version 20 | Output Document new version - EndPoint | Output 16 | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | sample432@$#@$¼€¼½ | |
|
||||
| test_description | project | out_doc_number | out_doc_title | out_doc_description |out_doc_filename | out_doc_template |out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions |
|
||||
| Create with old version and both | 4224292655297723eb98691001100052 | 1 | Endpoint Old Version | Output Document old version - EndPoint | Output 1 | Example | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Craate with old version and pdf security | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version PDF SECURITY | Output Document old version PDF SECURITY | Output 2 | Example | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with old version only doc | 4224292655297723eb98691001100052 | 3 | Endpoint Old Version Doc | Output Document old version solo doc | Output 3 | Example | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 1 | | | 0 | | | |
|
||||
| Create with old version only pdf | 4224292655297723eb98691001100052 | 4 | Endpoint Old Version PDF | Output Document old version solo pdf | Output 4 | Example | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample | sample | print |
|
||||
| Create with new version and both | 4224292655297723eb98691001100052 | 5 | Endpoint New Version | Output Document new version - EndPoint | Output 5 | Example | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Create with new version and pdf security | 4224292655297723eb98691001100052 | 6 | Endpoint New Version PDF SECURITY | Output Document new version PDF SECURITY | Output 6 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with new version only doc | 4224292655297723eb98691001100052 | 7 | Endpoint New Version Doc | Output Document new version solo doc | Output 7 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 1 | | | 0 | | | |
|
||||
| Create with new version only pdf | 4224292655297723eb98691001100052 | 8 | Endpoint New Version PDF | Output Document new version solo pdf | Output 8 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample | sample | print |
|
||||
| Create with special characters in out doc title | 4224292655297723eb98691001100052 | 9 | test !@#$%^&*€¤¾½²³€¼½¼ | Output Document old version - EndPoint | Output 9 | Example | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Create with special characters in out doc description | 4224292655297723eb98691001100052 | 10 | Endpoint Old1 | test %^&*€¤¾½²³€ | Output 10 | Example | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with special characters in out doc filename | 4224292655297723eb98691001100052 | 11 | Endpoint Old Version Doc 2 | Output Document old version solo doc | Output @#$%^&*€¤ | Example | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 1 | | | 0 | | | |
|
||||
| Create with special characters in out doc destination path | 4224292655297723eb98691001100052 | 12 | Endpoint New Version 16 | Output Document new version - EndPoint | Output 13 | Example | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | 23rg@#$% | | 0 | | | |
|
||||
| Create with special characters in out doc tags | 4224292655297723eb98691001100052 | 13 | Endpoint New Version PDF SECURI17 | Output Document new version PDF SECURITY | Output 14 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | vfv23@$@% | 1 | sample | sample | print\|modify\|copy\|forms |
|
||||
| Create with special characters in out doc pdf security open password | 4224292655297723eb98691001100052 | 14 | Endpoint New Version PDF 19 | Output Document new version solo pdf | Output 15 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample432@$#@$¼€¼½ | sample | print |
|
||||
| Create with special characters in out doc pdf security owner password | 4224292655297723eb98691001100052 | 15 | Endpoint New Version 20 | Output Document new version - EndPoint | Output 16 | Example | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | sample432@$#@$¼€¼½ | |
|
||||
|
||||
|
||||
Scenario: Create Output Documents with same name
|
||||
@@ -91,6 +92,7 @@ Feature: Output Documents Main Tests
|
||||
"out_doc_title": "Endpoint Old Version",
|
||||
"out_doc_description": "Output Document old version - EndPoint",
|
||||
"out_doc_filename": "Output 1",
|
||||
"out_doc_template": "Example",
|
||||
"out_doc_report_generator": "HTML2PDF",
|
||||
"out_doc_landscape": "1",
|
||||
"out_doc_media": "Letter",
|
||||
@@ -130,6 +132,7 @@ Feature: Output Documents Main Tests
|
||||
"out_doc_title": "<out_doc_title>",
|
||||
"out_doc_description": "<out_doc_description>",
|
||||
"out_doc_filename": "<out_doc_filename>",
|
||||
"out_doc_template": "<out_doc_template>",
|
||||
"out_doc_report_generator": "<out_doc_report_generator>",
|
||||
"out_doc_landscape": "<out_doc_landscape>",
|
||||
"out_doc_media": "<out_doc_media>",
|
||||
@@ -156,11 +159,11 @@ Feature: Output Documents Main Tests
|
||||
|
||||
Examples:
|
||||
|
||||
| test_description | project | out_doc_number | out_doc_title | out_doc_description |out_doc_filename | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions |
|
||||
| Update out doc title and description | 4224292655297723eb98691001100052 | 1 | Endpoint Old Version UPDATE | Output Document old version - UPDATE | Output 1 | HTML2PDF | 0 | Letter | 20 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Update out doc title and out doc generate | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version PDF SECURITY UPDATE | Output UPDATE old version PDF SECURITY | Output 2 | TCPDF | 1 | Legal | 20 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy |
|
||||
| Update out doc title and description | 4224292655297723eb98691001100052 | 5 | Endpoint New Version UPDATE | Output UPDATE new version - EndPoint | Output 5 | TCPDF | 0 | Letter | 30 | 20 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Update out doc title and out doc generate | 4224292655297723eb98691001100052 | 6 | Endpoint New Version PDF SECURITY UPDATE | Output UPDATE new version PDF SECURITY | Output 6 | HTML2PDF | 1 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy |
|
||||
| test_description | project | out_doc_number | out_doc_title | out_doc_description |out_doc_filename | out_doc_template | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions |
|
||||
| Update out doc title and description | 4224292655297723eb98691001100052 | 1 | Endpoint Old Version UPDATE | Output Document old version - UPDATE | Output 1 | Example | HTML2PDF | 0 | Letter | 20 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Update out doc title and out doc generate | 4224292655297723eb98691001100052 | 2 | Endpoint Old Version PDF SECURITY UPDATE | Output UPDATE old version PDF SECURITY | Output 2 | Example | TCPDF | 1 | Legal | 20 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy |
|
||||
| Update out doc title and description | 4224292655297723eb98691001100052 | 5 | Endpoint New Version UPDATE | Output UPDATE new version - EndPoint | Output 5 | Example | TCPDF | 0 | Letter | 30 | 20 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | |
|
||||
| Update out doc title and out doc generate | 4224292655297723eb98691001100052 | 6 | Endpoint New Version PDF SECURITY UPDATE | Output UPDATE new version PDF SECURITY | Output 6 | Example | HTML2PDF | 1 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy |
|
||||
|
||||
|
||||
Scenario Outline: Get a single Output Document and check some properties
|
||||
|
||||
@@ -12,6 +12,7 @@ Feature: Output Documents Negative Tests
|
||||
"out_doc_title": "<out_doc_title>",
|
||||
"out_doc_description": "<out_doc_description>",
|
||||
"out_doc_filename": "<out_doc_filename>",
|
||||
"out_doc_template": "<out_doc_template>",
|
||||
"out_doc_report_generator": "<out_doc_report_generator>",
|
||||
"out_doc_landscape": "<out_doc_landscape>",
|
||||
"out_doc_media": "<out_doc_media>",
|
||||
@@ -37,19 +38,19 @@ Feature: Output Documents Negative Tests
|
||||
|
||||
Examples:
|
||||
|
||||
| test_description | project | out_doc_title | out_doc_description |out_doc_filename | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions | error_code | error_message |
|
||||
| Invalid PDF Generator | 4224292655297723eb98691001100052 | Endpoint New Version 4 | Output Document new version - EndPoint | Output 5 | @#$%¼¤¾½ | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | | 400 | out_doc_report_generator |
|
||||
| Invalid landscape | 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURIT5 | Output Document new version PDF SECURITY | Output 6 | TCPDF | 34 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms | 400 | out_doc_landscape |
|
||||
| Invalid media type | 4224292655297723eb98691001100052 | Endpoint New Version Doc6 | Output Document new version solo doc | Output 7 | TCPDF | 0 | Legal!@#$$$%^&| 25 | 25 | 25 | 25 | WORD | HTML | 1 | | | 0 | | | | 400 | out_doc_media |
|
||||
| Invalid document type | 4224292655297723eb98691001100052 | Endpoint New Version PDF7 | Output Document new version solo pdf | Output 8 | TCPDF | 0 | Legal | 25,56.98 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample | sample | print | 400 | out_doc_left_margin |
|
||||
| Invalid left margin | 4224292655297723eb98691001100052 | Endpoint New Version8 | Output Document new version - EndPoint | Output 9 | TCPDF | 1 | Letter | 30 | 30,7.98 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | | 400 | out_doc_right_margin |
|
||||
| Invalid right margin | 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURIT9 | Output Document new version PDF SECURITY | Output 10 | TCPDF | 0 | Legal | 25 | 25 | 25,54.98 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms | 400 | out_doc_top_margin |
|
||||
| Invalid top margin | 4224292655297723eb98691001100052 | Endpoint New Version Doc10 | Output Document new version solo doc | Output 11 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25,34.09 | WORD | HTML | 1 | | | 0 | | | | 400 | out_doc_bottom_margin |
|
||||
| Invalid bottom margin | 4224292655297723eb98691001100052 | Endpoint New Version PDF 11 | Output Document new version solo pdf | Output 12 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDtest@#$$ | HTML | 1 | | | 1 | sample | sample | print | 400 | out_doc_generate |
|
||||
| Invalid doc versioning | 4224292655297723eb98691001100052 | Endpoint New Version PDF 15 | Output Document new version solo pdf | Output 16 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1,99.98 | | | 1 | sample | sample | print | 400 | out_doc_versioning |
|
||||
| Invalid doc pdf security enabled | 4224292655297723eb98691001100052 | Endpoint New Version Doc 18 | Output Document new version solo doc | Output 18 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 1 | | | 23454 | | | | 400 | out_doc_generate |
|
||||
| Invalid doc pdf security permissions | 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURI22 | Output Document new version PDF SECURITY | Output 21 | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modfy\|cop\|for\|aaa | 400 | out_doc_pdf_security_permissions |
|
||||
| Field requered out doc title | 4224292655297723eb98691001100052 | | Output Document old version - EndPoint | Output 22 | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | | 400 | out_doc_title |
|
||||
| Field required out doc filename | 4224292655297723eb98691001100052 | Endpoint Old Version Doc | Output Document old version solo doc | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 1 | | | 0 | | | | 400 | out_doc_generate |
|
||||
| Output created with same name | 4224292655297723eb98691001100052 | Endpoint Old Version (base) | Output Document old version solo doc | Output 23 | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 0 | | | | 400 | Output Document with the same name in this process |
|
||||
| test_description | project | out_doc_title | out_doc_description |out_doc_filename | out_doc_template | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions | error_code | error_message |
|
||||
| Invalid PDF Generator | 4224292655297723eb98691001100052 | Endpoint New Version 4 | Output Document new version - EndPoint | Output 5 | Example | @#$%¼¤¾½ | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | | 400 | out_doc_report_generator |
|
||||
| Invalid landscape | 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURIT5 | Output Document new version PDF SECURITY | Output 6 | Example | TCPDF | 34 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms | 400 | out_doc_landscape |
|
||||
| Invalid media type | 4224292655297723eb98691001100052 | Endpoint New Version Doc6 | Output Document new version solo doc | Output 7 | Example | TCPDF | 0 | Legal!@#$$$%^&| 25 | 25 | 25 | 25 | WORD | HTML | 1 | | | 0 | | | | 400 | out_doc_media |
|
||||
| Invalid document type | 4224292655297723eb98691001100052 | Endpoint New Version PDF7 | Output Document new version solo pdf | Output 8 | Example | TCPDF | 0 | Legal | 25,56.98 | 25 | 25 | 25 | PDF | HTML | 1 | | | 1 | sample | sample | print | 400 | out_doc_left_margin |
|
||||
| Invalid left margin | 4224292655297723eb98691001100052 | Endpoint New Version8 | Output Document new version - EndPoint | Output 9 | Example | TCPDF | 1 | Letter | 30 | 30,7.98 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | | 400 | out_doc_right_margin |
|
||||
| Invalid right margin | 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURIT9 | Output Document new version PDF SECURITY | Output 10 | Example | TCPDF | 0 | Legal | 25 | 25 | 25,54.98 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms | 400 | out_doc_top_margin |
|
||||
| Invalid top margin | 4224292655297723eb98691001100052 | Endpoint New Version Doc10 | Output Document new version solo doc | Output 11 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25,34.09 | WORD | HTML | 1 | | | 0 | | | | 400 | out_doc_bottom_margin |
|
||||
| Invalid bottom margin | 4224292655297723eb98691001100052 | Endpoint New Version PDF 11 | Output Document new version solo pdf | Output 12 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDtest@#$$ | HTML | 1 | | | 1 | sample | sample | print | 400 | out_doc_generate |
|
||||
| Invalid doc versioning | 4224292655297723eb98691001100052 | Endpoint New Version PDF 15 | Output Document new version solo pdf | Output 16 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 1,99.98 | | | 1 | sample | sample | print | 400 | out_doc_versioning |
|
||||
| Invalid doc pdf security enabled | 4224292655297723eb98691001100052 | Endpoint New Version Doc 18 | Output Document new version solo doc | Output 18 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 1 | | | 23454 | | | | 400 | out_doc_generate |
|
||||
| Invalid doc pdf security permissions | 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURI22 | Output Document new version PDF SECURITY | Output 21 | Example | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 1 | sample | sample | print\|modfy\|cop\|for\|aaa | 400 | out_doc_pdf_security_permissions |
|
||||
| Field requered out doc title | 4224292655297723eb98691001100052 | | Output Document old version - EndPoint | Output 22 | Example | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | | 0 | | | | 400 | out_doc_title |
|
||||
| Field required out doc filename | 4224292655297723eb98691001100052 | Endpoint Old Version Doc | Output Document old version solo doc | | Example | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 1 | | | 0 | | | | 400 | out_doc_generate |
|
||||
| Output created with same name | 4224292655297723eb98691001100052 | Endpoint Old Version (base) | Output Document old version solo doc | Output 23 | Example | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 1 | | | 0 | | | | 400 | Output Document with the same name in this process |
|
||||
|
||||
|
||||
@@ -1,21 +1,14 @@
|
||||
@ProcessMakerMichelangelo @RestAPI
|
||||
Feature: Import/Export Process Main Tests
|
||||
Requirements:
|
||||
a workspace without the project 1455892245368ebeb11c1a5001393784 ("Process Complete BPMN") already loaded
|
||||
a workspace without the project 1455892245368ebeb11c1a5001393784 ("Process Complete BPMN", "Export process empty") already loaded
|
||||
there are many activities, steps, triggers, pmtables, asignee, process supervisor, process permissions, etc. in the process
|
||||
|
||||
Background:
|
||||
Given that I have a valid access_token
|
||||
|
||||
|
||||
Scenario: Get for Export Project
|
||||
Given I request "project/1455892245368ebeb11c1a5001393784/export"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the content type is "application/xml"
|
||||
And the type is "array"
|
||||
|
||||
#Verificar cantidad de dynaform, output, inputs, triggers, asignacion de usuarios, etc.
|
||||
#Verificar cantidad de dynaform, output, inputs, triggers, asignacion de usuarios, etc. del proyecto "Process Complete BPMN"
|
||||
|
||||
Scenario: Get a List DynaForms of a Project Process Complete BPMN
|
||||
Given I request "project/1455892245368ebeb11c1a5001393784/dynaforms"
|
||||
@@ -39,6 +32,7 @@ Scenario: Get the Output Documents List when there are exactly two output docume
|
||||
And the response charset is "UTF-8"
|
||||
And the content type is "application/json"
|
||||
And the type is "array"
|
||||
And that "out_doc_template" is set to "Ejemplo de Output Document"
|
||||
And the response has 1 records
|
||||
|
||||
Scenario: Get the Triggers List when there are exactly two triggers
|
||||
@@ -86,6 +80,20 @@ Scenario: Get a list templates folder of process files manager
|
||||
And the type is "array"
|
||||
And the response has 1 records
|
||||
|
||||
Scenario: Verify that there are report tables
|
||||
Given I request "project/1455892245368ebeb11c1a5001393784/report-tables"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the response has 1 record
|
||||
|
||||
Scenario: Get the Case Trackers Objects of a Project
|
||||
And I request "project/1455892245368ebeb11c1a5001393784/case-tracker/objects"
|
||||
And the content type is "application/json"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "array"
|
||||
And the response has 1 record
|
||||
|
||||
Scenario: Get a single Process
|
||||
Given that I want to get a resource with the key "obj_uid" stored in session array
|
||||
And I request "project/1455892245368ebeb11c1a5001393784/process"
|
||||
@@ -122,6 +130,24 @@ Scenario: Get a single Process
|
||||
And that "pro_summary_dynaform" is set to "898822326536be3a12addb0034537553"
|
||||
And that "pro_calendar" is set to "14606161052f50839307899033145440"
|
||||
|
||||
#Export Process
|
||||
|
||||
Scenario: Get for Export Project
|
||||
Given I request "project/1455892245368ebeb11c1a5001393784/export"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the content type is "application/xml"
|
||||
And save exported process to "/home/wendy/uploadfiles/" as "Process_Complete_BPMN"
|
||||
|
||||
|
||||
Scenario: Delete a Project created previously in this script
|
||||
Given that I want to delete a resource with the key "prj_uid" stored in session array
|
||||
And I request "projects/1455892245368ebeb11c1a5001393784"
|
||||
And the content type is "application/json"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
|
||||
#Import Process
|
||||
|
||||
Scenario Outline: Import a process
|
||||
@@ -136,9 +162,10 @@ Scenario Outline: Import a process
|
||||
Examples:
|
||||
| project_file | import_option | prj_uid_number |
|
||||
| /home/wendy/uploadfiles/Process_NewCreate_BPMN.pmx | create | 1 |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | overwrite | 2 |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | disable | 3 |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | keep | 4 |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | create | 2 |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | overwrite | 3 |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | disable | 4 |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | keep | 5 |
|
||||
|
||||
|
||||
#Verificar cantidad de dynaform, output, inputs, triggers, asignacion de usuarios, etc.
|
||||
@@ -154,9 +181,10 @@ Scenario Outline: Get a List DynaForms of a Project Process Complete BPMN
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 4 |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 26 |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 26 |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 26 |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 26 |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 26 |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 26 |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 26 |
|
||||
|
||||
|
||||
Scenario Outline: Get the Input Documents List when there are exactly zero input documents
|
||||
@@ -170,9 +198,10 @@ Scenario Outline: Get the Input Documents List when there are exactly zero input
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 0 |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
|
||||
|
||||
Scenario Outline: Get the Output Documents List when there are exactly two output documents
|
||||
@@ -186,9 +215,10 @@ Scenario Outline: Get the Output Documents List when there are exactly two outpu
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 0 |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
|
||||
|
||||
Scenario Outline: Get the Triggers List when there are exactly two triggers
|
||||
@@ -202,9 +232,10 @@ Scenario Outline: Get the Triggers List when there are exactly two triggers
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 0 |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 3 |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 3 |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 3 |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 3 |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 3 |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 3 |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 3 |
|
||||
|
||||
|
||||
Scenario Outline: List assignees of each activity
|
||||
@@ -220,9 +251,10 @@ Scenario Outline: List assignees of each activity
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records | project | activity | records | aas_uid | aas_type |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 0 | 601816709536cfeae7d7cd9079578104 | 771350954536cfec446fab9019867857 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 26 | 1455892245368ebeb11c1a5001393784 | 6274755055368eed1116388064384542 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 26 | 1455892245368ebeb11c1a5001393784 | 4790702485368efad167477011123879 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 26 | 1455892245368ebeb11c1a5001393784 | 2072984565368efc137a394001073529 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 26 | 1455892245368ebeb11c1a5001393784 | 6274755055368eed1116388064384542 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 26 | 1455892245368ebeb11c1a5001393784 | 6274755055368eed1116388064384542 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 26 | 1455892245368ebeb11c1a5001393784 | 4790702485368efad167477011123879 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 26 | 1455892245368ebeb11c1a5001393784 | 2072984565368efc137a394001073529 | 1 | 70084316152d56749e0f393054862525 | group |
|
||||
|
||||
|
||||
Scenario Outline: Get a List of current process supervisors of a project
|
||||
@@ -236,9 +268,10 @@ Scenario Outline: Get a List of current process supervisors of a project
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 0 |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
|
||||
|
||||
Scenario Outline: Get a List of current Process Permissions of a project
|
||||
@@ -250,9 +283,10 @@ Scenario Outline: Get a List of current Process Permissions of a project
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 0 |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
|
||||
|
||||
Scenario Outline: Get a list templates folder of process files manager
|
||||
@@ -266,9 +300,10 @@ Scenario Outline: Get a list templates folder of process files manager
|
||||
Examples:
|
||||
| import_option | prj_uid_number | prj_uid | records |
|
||||
| create | 1 | 601816709536cfeae7d7cd9079578104 | 0 |
|
||||
| overwrite | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| create | 2 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| overwrite | 3 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| disable | 4 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
| keep | 5 | 1455892245368ebeb11c1a5001393784 | 1 |
|
||||
|
||||
|
||||
Scenario: Get a single Process process "Process Complete BPMN"
|
||||
@@ -358,8 +393,8 @@ Scenario Outline: Delete a Project created previously in this script
|
||||
| prj_uid_number |
|
||||
| 1 |
|
||||
| 2 |
|
||||
| 3 |
|
||||
| 4 |
|
||||
| 5 |
|
||||
|
||||
|
||||
Scenario: Get a list of projects
|
||||
@@ -380,4 +415,66 @@ Scenario Outline: Import a process
|
||||
Examples:
|
||||
| project_file | import_option |
|
||||
| /home/wendy/uploadfiles/Process_Complete_BPMN.pmx | create |
|
||||
|
||||
|
||||
|
||||
#For example, to export a empty process
|
||||
|
||||
Scenario: Get for Export Project "Export process empty"
|
||||
Given I request "project/5195971265375127fce82f4015927137/export"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the content type is "application/xml"
|
||||
And save exported process to "/home/wendy/uploadfiles/" as "Export process empty"
|
||||
|
||||
Scenario: Delete a Project created previously in this script "Export process empty"
|
||||
Given that I want to delete a resource with the key "prj_uid" stored in session array
|
||||
And I request "projects/5195971265375127fce82f4015927137"
|
||||
And the content type is "application/json"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "object"
|
||||
|
||||
Scenario: Import a process "Export process empty"
|
||||
Given POST upload a project file "/home/wendy/uploadfiles/Export_process_empty.pmx" to "project/import?option=create"
|
||||
Then the response status code should be 201
|
||||
And the response charset is "UTF-8"
|
||||
And the content type is "application/json"
|
||||
And the type is "object"
|
||||
|
||||
Scenario: Get a List DynaForms of a Project "Export process empty"
|
||||
Given I request "project/5195971265375127fce82f4015927137/dynaforms" with the key "prj_uid" stored in session array
|
||||
And the content type is "application/json"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "array"
|
||||
And the response has 0 records
|
||||
|
||||
Scenario: Get the Input Documents List when there are exactly zero input documents
|
||||
Given I request "project/5195971265375127fce82f4015927137/input-documents" with the key "prj_uid" stored in session array
|
||||
And the content type is "application/json"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "array"
|
||||
And the response has 0 records
|
||||
|
||||
Scenario: Get the Output Documents List when there are exactly zero output documents
|
||||
Given I request "project/5195971265375127fce82f4015927137/output-documents" with the key "prj_uid" stored in session array
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the content type is "application/json"
|
||||
And the type is "array"
|
||||
And the response has 0 records
|
||||
|
||||
Scenario: Verify that there are report tables
|
||||
Given I request "project/5195971265375127fce82f4015927137/report-tables"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the response has 0 record
|
||||
|
||||
Scenario: Get the Case Trackers Objects of a Project
|
||||
And I request "project/5195971265375127fce82f4015927137/case-tracker/objects"
|
||||
And the content type is "application/json"
|
||||
Then the response status code should be 200
|
||||
And the response charset is "UTF-8"
|
||||
And the type is "array"
|
||||
And the response has 0 record
|
||||
@@ -1623,4 +1623,29 @@ class RestContext extends BehatContext
|
||||
throw new \Exception("JSON Response does not have '$varName' property\n\n" );
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Given /^save exported process to "([^"]*)"$/
|
||||
* @Given /^save exported process to "([^"]*)" as "([^"]*)"$/
|
||||
*/
|
||||
public function saveExportedProcessTo($destinationFolder, $exportedProcessFileName="")
|
||||
{
|
||||
|
||||
if($exportedProcessFileName == ""){//Obtain name from XML
|
||||
$exportedProcessFileName=$this->_data->xpath('//metadata/meta[@key="name"]');
|
||||
$exportedProcessFileName = $exportedProcessFileName[0];
|
||||
$exportedProcessFileName = "ExpBehat ".$exportedProcessFileName;
|
||||
|
||||
|
||||
}
|
||||
|
||||
$exportedProcessFileName = $destinationFolder.str_replace(" ","_",$exportedProcessFileName).".pmx";
|
||||
|
||||
$this->printDebug("Exporting process to: $exportedProcessFileName");
|
||||
|
||||
file_put_contents($exportedProcessFileName, $this->_response->getBody(true));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -299,7 +299,52 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"artifacts": [],
|
||||
"artifacts": [
|
||||
{
|
||||
"art_uid": "9008273035360fb4508c320094467351",
|
||||
"art_type": "VERTICAL_LINE",
|
||||
"art_name": "linea ejemplo",
|
||||
"art_category_ref": "9008273035360fb4508c320094467351",
|
||||
"bou_x": "180",
|
||||
"bou_y": "0",
|
||||
"bou_width": "50",
|
||||
"bou_height": "0",
|
||||
"bou_container": ""
|
||||
},
|
||||
{
|
||||
"art_uid": "9008273035360fb4508c320094467351",
|
||||
"art_type": "VERTICAL_LINE",
|
||||
"art_name": "linea ejemplo",
|
||||
"art_category_ref": "9008273035360fb4508c320094467351",
|
||||
"bou_x": "420",
|
||||
"bou_y": "0",
|
||||
"bou_width": "50",
|
||||
"bou_height": "0",
|
||||
"bou_container": ""
|
||||
},
|
||||
{
|
||||
"art_uid": "9008273035360fb4508c320094467351",
|
||||
"art_type": "VERTICAL_LINE",
|
||||
"art_name": "linea ejemplo",
|
||||
"art_category_ref": "9008273035360fb4508c320094467351",
|
||||
"bou_x": "660",
|
||||
"bou_y": "0",
|
||||
"bou_width": "50",
|
||||
"bou_height": "0",
|
||||
"bou_container": ""
|
||||
},
|
||||
{
|
||||
"art_uid": "9008273035360fb4508c320094467351",
|
||||
"art_type": "VERTICAL_LINE",
|
||||
"art_name": "linea ejemplo",
|
||||
"art_category_ref": "9008273035360fb4508c320094467351",
|
||||
"bou_x": "900",
|
||||
"bou_y": "0",
|
||||
"bou_width": "50",
|
||||
"bou_height": "0",
|
||||
"bou_container": ""
|
||||
}
|
||||
],
|
||||
"laneset": [],
|
||||
"lanes": []
|
||||
}
|
||||
|
||||
@@ -370,6 +370,24 @@ class Processes
|
||||
return $oCaseScheduler->Exists( $sUid );
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if exists the "Process User" in table PROCESS_USER
|
||||
*
|
||||
* @param string $processUserUid Unique id of "Process User"
|
||||
*
|
||||
* return bool Return true if exists the "Process User" in table PROCESS_USER, false otherwise
|
||||
*/
|
||||
public function processUserExists($processUserUid)
|
||||
{
|
||||
try {
|
||||
$processUser = new ProcessUser();
|
||||
|
||||
return $processUser->Exists($processUserUid);
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* get an unused input GUID
|
||||
*
|
||||
@@ -602,6 +620,24 @@ class Processes
|
||||
return $sNewUid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an unused "Process User" unique id
|
||||
*
|
||||
* return string Return a new generated unique id
|
||||
*/
|
||||
public function getUnusedProcessUserUid()
|
||||
{
|
||||
try {
|
||||
do {
|
||||
$newUid = G::generateUniqueID();
|
||||
} while ($this->processUserExists($newUid));
|
||||
|
||||
return $newUid;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* change the GUID for a serialized process
|
||||
*
|
||||
@@ -726,6 +762,13 @@ class Processes
|
||||
$oData->caseScheduler[$key]['PRO_UID'] = $sNewProUid;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($oData->processUser)) {
|
||||
foreach ($oData->processUser as $key => $value) {
|
||||
$oData->processUser[$key]["PRO_UID"] = $sNewProUid;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1503,6 +1546,32 @@ class Processes
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create "Process User" records
|
||||
*
|
||||
* @param array $arrayData Data to create
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
public function createProcessUser(array $arrayData)
|
||||
{
|
||||
try {
|
||||
$processUser = new ProcessUser();
|
||||
|
||||
foreach ($arrayData as $value) {
|
||||
$record = $value;
|
||||
|
||||
if ($processUser->Exists($record["PU_UID"])) {
|
||||
$result = $processUser->remove($record["PU_UID"]);
|
||||
}
|
||||
|
||||
$result = $processUser->create($record);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Input Documents Rows from aProcess.
|
||||
*
|
||||
@@ -1966,6 +2035,34 @@ class Processes
|
||||
$oData->uid["CASE_SCHEDULER"] = $map;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renew all the unique id for "Process User"
|
||||
*
|
||||
* @param $data Object with the data
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
public function renewAllProcessUserUid(&$data)
|
||||
{
|
||||
try {
|
||||
if (isset($data->processUser)) {
|
||||
$map = array();
|
||||
|
||||
foreach ($data->processUser as $key => $value) {
|
||||
$record = $value;
|
||||
|
||||
$newUid = $this->getUnusedProcessUserUid();
|
||||
$map[$record["PU_UID"]] = $newUid;
|
||||
$data->processUser[$key]["PU_UID"] = $newUid;
|
||||
}
|
||||
|
||||
$data->uid["PROCESS_USER"] = $map;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Renew the GUID's for all the Uids for all the elements
|
||||
*
|
||||
@@ -1994,6 +2091,7 @@ class Processes
|
||||
$this->renewAllFieldCondition( $oData );
|
||||
$this->renewAllEvent( $oData );
|
||||
$this->renewAllCaseScheduler( $oData );
|
||||
$this->renewAllProcessUserUid($oData);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2166,6 +2264,7 @@ class Processes
|
||||
* @param string $sProUid
|
||||
* @return $aDynaform array
|
||||
*/
|
||||
//Deprecated
|
||||
public function getGroupwfSupervisor ($sProUid, &$oData)
|
||||
{
|
||||
try {
|
||||
@@ -2481,6 +2580,50 @@ class Processes
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get "Process User" (Groups) records of a Process
|
||||
*
|
||||
* @param string $processUid Unique id of Process
|
||||
*
|
||||
* return array Return an array with all "Process User" (Groups)
|
||||
*/
|
||||
public function getProcessUser($processUid)
|
||||
{
|
||||
try {
|
||||
$arrayProcessUser = array();
|
||||
|
||||
//Get data
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->add(ProcessUserPeer::PRO_UID, $processUid, Criteria::EQUAL);
|
||||
$criteria->add(ProcessUserPeer::PU_TYPE, "GROUP_SUPERVISOR", Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = ProcessUserPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
//Verify group status
|
||||
$criteria2 = new Criteria("workflow");
|
||||
|
||||
$criteria2->add(GroupwfPeer::GRP_UID, $row["USR_UID"], Criteria::EQUAL);
|
||||
$criteria2->add(GroupwfPeer::GRP_STATUS, "ACTIVE", Criteria::EQUAL);
|
||||
|
||||
$rsCriteria2 = GroupwfPeer::doSelectRS($criteria2);
|
||||
|
||||
if ($rsCriteria2->next()) {
|
||||
$arrayProcessUser[] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
//Return
|
||||
return $arrayProcessUser;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Task User Rows from an array of data
|
||||
*
|
||||
@@ -2638,6 +2781,129 @@ class Processes
|
||||
}
|
||||
} #@!neyek
|
||||
|
||||
/**
|
||||
* Merge groupwfs data
|
||||
*
|
||||
* @param array $arrayGroupwfsData Data groupwfs
|
||||
* @param array $arrayData Data for merge
|
||||
* @param string $groupUidFieldNameInArrayData Field name of unique id
|
||||
*
|
||||
* return array Return an array with all groupwfs data
|
||||
*/
|
||||
public function groupwfsMerge(array $arrayGroupwfsData, array $arrayData, $groupUidFieldNameInArrayData = "GRP_UID")
|
||||
{
|
||||
try {
|
||||
$arrayUid = array();
|
||||
|
||||
foreach ($arrayGroupwfsData as $value) {
|
||||
$record = $value;
|
||||
|
||||
$arrayUid[] = $record["GRP_UID"];
|
||||
}
|
||||
|
||||
//Merge
|
||||
$groupwf = new Groupwf();
|
||||
|
||||
foreach ($arrayData as $value) {
|
||||
$record = $value;
|
||||
|
||||
if (isset($record[$groupUidFieldNameInArrayData]) && !in_array($record[$groupUidFieldNameInArrayData], $arrayUid)) {
|
||||
$arrayGroupwfsData[] = $groupwf->Load($record[$groupUidFieldNameInArrayData]);
|
||||
}
|
||||
}
|
||||
|
||||
//Return
|
||||
return $arrayGroupwfsData;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update unique ids in groupwfs data by database
|
||||
*
|
||||
* @param object $data Data
|
||||
*
|
||||
* return object Return data
|
||||
*/
|
||||
public function groupwfsUpdateUidByDatabase($data)
|
||||
{
|
||||
try {
|
||||
//Get Groupwf of database
|
||||
$arrayGroupwf = array();
|
||||
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(GroupwfPeer::GRP_UID);
|
||||
$criteria->addSelectColumn(ContentPeer::CON_VALUE);
|
||||
$criteria->addJoin(GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN);
|
||||
$criteria->add(ContentPeer::CON_CATEGORY, "GRP_TITLE", Criteria::EQUAL);
|
||||
$criteria->add(ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = GroupwfPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$arrayGroupwf[] = $row;
|
||||
}
|
||||
|
||||
//Check if any group name exists in database
|
||||
$arrayUid = array();
|
||||
|
||||
foreach ($data->groupwfs as $key => $value) {
|
||||
$groupwfsRecord = $value;
|
||||
|
||||
foreach ($arrayGroupwf as $key2 => $value2) {
|
||||
$groupwfRecord = $value2;
|
||||
|
||||
if ($groupwfRecord["CON_VALUE"] == $groupwfsRecord["GRP_TITLE"] && $groupwfRecord["GRP_UID"] != $groupwfsRecord["GRP_UID"]) {
|
||||
//Update unique id
|
||||
$uidOld = $data->groupwfs[$key]["GRP_UID"];
|
||||
|
||||
$data->groupwfs[$key]["GRP_UID"] = $groupwfRecord["GRP_UID"];
|
||||
$arrayUid[$uidOld] = $groupwfRecord["GRP_UID"];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Update in $data
|
||||
if (count($arrayUid) > 0) {
|
||||
foreach ($data->taskusers as $key => $value) {
|
||||
$record = $value;
|
||||
|
||||
if (isset($arrayUid[$record["USR_UID"]])) {
|
||||
$data->taskusers[$key]["USR_UID"]= $arrayUid[$record["USR_UID"]];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data->objectPermissions as $key => $value) {
|
||||
$record = $value;
|
||||
|
||||
if (isset($arrayUid[$record["USR_UID"]])) {
|
||||
$data->objectPermissions[$key]["USR_UID"]= $arrayUid[$record["USR_UID"]];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($data->processUser)) {
|
||||
foreach ($data->processUser as $key => $value) {
|
||||
$record = $value;
|
||||
|
||||
if (isset($arrayUid[$record["USR_UID"]])) {
|
||||
$data->processUser[$key]["USR_UID"]= $arrayUid[$record["USR_UID"]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Return
|
||||
return $data;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* change Status of any Process
|
||||
@@ -2681,7 +2947,9 @@ class Processes
|
||||
$oData->caseScheduler = $this->getCaseSchedulerRow( $sProUid );
|
||||
$oData->processCategory = $this->getProcessCategoryRow( $sProUid );
|
||||
$oData->taskExtraProperties = $this->getTaskExtraPropertiesRows( $sProUid );
|
||||
$this->getGroupwfSupervisor( $sProUid, $oData);
|
||||
$oData->processUser = $this->getProcessUser($sProUid);
|
||||
|
||||
$oData->groupwfs = $this->groupwfsMerge($oData->groupwfs, $oData->processUser, "USR_UID");
|
||||
|
||||
//krumo ($oData);die;
|
||||
//$oJSON = new Services_JSON();
|
||||
@@ -2975,7 +3243,7 @@ class Processes
|
||||
$oCriteria->addSelectColumn( ContentPeer::CON_ID );
|
||||
$oCriteria->addSelectColumn( ContentPeer::CON_VALUE );
|
||||
$oCriteria->add( ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$oCriteria->add( ContentPeer::CON_LANG, 'en' );
|
||||
$oCriteria->add(ContentPeer::CON_LANG, SYS_LANG);
|
||||
$oCriteria->addJoin( ContentPeer::CON_ID, GroupwfPeer::GRP_UID );
|
||||
$oDataset = ContentPeer::doSelectRS( $oCriteria );
|
||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
@@ -3049,6 +3317,7 @@ class Processes
|
||||
* @param $sGroupList array of a group list
|
||||
* @return $mergedGroupList array of existing groups
|
||||
*/
|
||||
//Deprecated
|
||||
public function mergeExistingGroups ($sGroupList)
|
||||
{
|
||||
$oCriteria = new Criteria( 'workflow' );
|
||||
@@ -3101,6 +3370,7 @@ class Processes
|
||||
* the task and the group list
|
||||
* @return $mergedTaskUserList array of the merged task user list
|
||||
*/
|
||||
//Deprecated
|
||||
public function mergeExistingUsers ($sBaseGroupList, $sGroupList, $sTaskUserList)
|
||||
{
|
||||
foreach ($sTaskUserList as $taskuser) {
|
||||
@@ -3710,6 +3980,8 @@ class Processes
|
||||
|
||||
//Create data related to Configuration table
|
||||
$this->createTaskExtraPropertiesRows( isset( $oData->taskExtraProperties ) ? $oData->taskExtraProperties : array () );
|
||||
|
||||
$this->createProcessUser((isset($oData->processUser))? $oData->processUser : array());
|
||||
}
|
||||
|
||||
|
||||
@@ -4037,7 +4309,7 @@ class Processes
|
||||
* @param $proId process Uid
|
||||
* @return $result
|
||||
*/
|
||||
public function getTaskExtraPropertiesRows( $proId )
|
||||
public function getTaskExtraPropertiesRows($proId)
|
||||
{
|
||||
try {
|
||||
|
||||
|
||||
@@ -24,57 +24,18 @@
|
||||
|
||||
use ProcessMaker\Importer\XmlImporter;
|
||||
|
||||
ini_set( 'max_execution_time', '0' );
|
||||
|
||||
if (isset($_FILES["PROCESS_FILENAME"])) {
|
||||
$ext = pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION);
|
||||
|
||||
if ($ext == "pmx") {
|
||||
$importer = new XmlImporter();
|
||||
$importer->setData("usr_uid", $_SESSION['USER_LOGGED']);
|
||||
$importer->setSaveDir(PATH_DOCUMENT . 'input');
|
||||
$importer->setSourceFromGlobals("PROCESS_FILENAME");
|
||||
|
||||
try {
|
||||
$prjUid = $importer->import();
|
||||
|
||||
$result = array(
|
||||
"success" => true,
|
||||
"catchMessage" => "",
|
||||
"ExistProcessInDatabase" => 0,
|
||||
"ExistGroupsInDatabase" => 0,
|
||||
"sNewProUid" => $prjUid,
|
||||
"project_type" => "bpmn"
|
||||
);
|
||||
} catch (Exception $e) {
|
||||
$result = array(
|
||||
"success" => true,
|
||||
"catchMessage" => "", //$e->getMessage(),
|
||||
"ExistProcessInDatabase" => 1,
|
||||
"ExistGroupsInDatabase" => 0,
|
||||
"groupBeforeAccion" => "uploadFileNewProcess",
|
||||
"sNewProUid" => "",
|
||||
"proFileName" => $_FILES['PROCESS_FILENAME']['name'],
|
||||
"project_type" => "bpmn"
|
||||
);
|
||||
}
|
||||
|
||||
echo json_encode($result);
|
||||
exit(0);
|
||||
}
|
||||
} elseif (isset($_POST["PRO_FILENAME"]) && file_exists(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"]) && pathinfo(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"], PATHINFO_EXTENSION) == "pmx") {
|
||||
switch ($_POST["IMPORT_OPTION"]) {
|
||||
case 1: $option = XmlImporter::IMPORT_OPTION_OVERWRITE; break;
|
||||
case 2: $option = XmlImporter::IMPORT_OPTION_DISABLE_AND_CREATE_NEW; break;
|
||||
case 3: $option = XmlImporter::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW; break;
|
||||
}
|
||||
ini_set("max_execution_time", 0);
|
||||
|
||||
if (isset($_FILES["PROCESS_FILENAME"]) &&
|
||||
pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION) == "pmx"
|
||||
) {
|
||||
$importer = new XmlImporter();
|
||||
$importer->setData("usr_uid", $_SESSION['USER_LOGGED']);
|
||||
$importer->setSourceFile(PATH_DOCUMENT . 'input' . PATH_SEP . $_POST["PRO_FILENAME"]);
|
||||
$importer->setData("usr_uid", $_SESSION["USER_LOGGED"]);
|
||||
$importer->setSaveDir(PATH_DOCUMENT . "input");
|
||||
$importer->setSourceFromGlobals("PROCESS_FILENAME");
|
||||
|
||||
try {
|
||||
$prjUid = $importer->import($option);
|
||||
$prjUid = $importer->import();
|
||||
|
||||
$result = array(
|
||||
"success" => true,
|
||||
@@ -84,16 +45,18 @@ if (isset($_FILES["PROCESS_FILENAME"])) {
|
||||
"sNewProUid" => $prjUid,
|
||||
"project_type" => "bpmn"
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
$result = array(
|
||||
"success" => true,
|
||||
"catchMessage" => $e->getMessage(),
|
||||
"ExistProcessInDatabase" => 1,
|
||||
"ExistGroupsInDatabase" => 0,
|
||||
"groupBeforeAccion" => "uploadFileNewProcess",
|
||||
"catchMessage" => (in_array($e->getCode(), array(XmlImporter::IMPORT_STAT_TARGET_ALREADY_EXISTS, XmlImporter::IMPORT_STAT_GROUP_ALREADY_EXISTS)))? "" : $e->getMessage(),
|
||||
"ExistProcessInDatabase" => ($e->getCode() == XmlImporter::IMPORT_STAT_TARGET_ALREADY_EXISTS)? 1 : 0,
|
||||
"ExistGroupsInDatabase" => ($e->getCode() == XmlImporter::IMPORT_STAT_GROUP_ALREADY_EXISTS)? 1 : 0,
|
||||
"sNewProUid" => "",
|
||||
"proFileName" => "",
|
||||
"project_type" => "bpmn"
|
||||
"project_type" => "bpmn",
|
||||
|
||||
"proFileName" => $_FILES["PROCESS_FILENAME"]["name"],
|
||||
"groupBeforeAccion" => "uploadFileNewProcess",
|
||||
"importOption" => 0
|
||||
);
|
||||
}
|
||||
|
||||
@@ -101,38 +64,73 @@ if (isset($_FILES["PROCESS_FILENAME"])) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
function reservedWordsSqlValidate ($data)
|
||||
{
|
||||
$arrayAux = array ();
|
||||
$reservedWordsSql = G::reservedWordsSql();
|
||||
if (isset($_POST["PRO_FILENAME"]) &&
|
||||
file_exists(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"]) &&
|
||||
pathinfo(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"], PATHINFO_EXTENSION) == "pmx"
|
||||
) {
|
||||
$option = XmlImporter::IMPORT_OPTION_CREATE_NEW;
|
||||
|
||||
foreach ($data->reportTables as $rptIndex => $rptValue) {
|
||||
if (in_array( strtoupper( $rptValue["REP_TAB_NAME"] ), $reservedWordsSql )) {
|
||||
$arrayAux[] = $rptValue["REP_TAB_NAME"];
|
||||
}
|
||||
switch ((isset($_POST["IMPORT_OPTION"]))? (int)($_POST["IMPORT_OPTION"]) : 0) {
|
||||
case 1:
|
||||
$option = XmlImporter::IMPORT_OPTION_OVERWRITE;
|
||||
break;
|
||||
case 2:
|
||||
$option = XmlImporter::IMPORT_OPTION_DISABLE_AND_CREATE_NEW;
|
||||
break;
|
||||
case 3:
|
||||
$option = XmlImporter::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW;
|
||||
break;
|
||||
}
|
||||
|
||||
if (count( $arrayAux ) > 0) {
|
||||
throw (new Exception( G::LoadTranslation( "ID_PMTABLE_INVALID_NAME", array (implode( ", ", $arrayAux )
|
||||
) ) ));
|
||||
$optionGroup = XmlImporter::GROUP_IMPORT_OPTION_CREATE_NEW;
|
||||
|
||||
switch ((isset($_POST["optionGroupExistInDatabase"]))? (int)($_POST["optionGroupExistInDatabase"]) : 0) {
|
||||
case 1:
|
||||
$optionGroup = XmlImporter::GROUP_IMPORT_OPTION_RENAME;
|
||||
break;
|
||||
case 2:
|
||||
$optionGroup = XmlImporter::GROUP_IMPORT_OPTION_MERGE_PREEXISTENT;
|
||||
break;
|
||||
}
|
||||
|
||||
$arrayAux = array ();
|
||||
$importer = new XmlImporter();
|
||||
$importer->setData("usr_uid", $_SESSION["USER_LOGGED"]);
|
||||
$importer->setSourceFile(PATH_DOCUMENT . "input" . PATH_SEP . $_POST["PRO_FILENAME"]);
|
||||
|
||||
foreach ($data->reportTablesVars as $rptIndex => $rptValue) {
|
||||
if (in_array( strtoupper( $rptValue["REP_VAR_NAME"] ), $reservedWordsSql )) {
|
||||
$arrayAux[] = $rptValue["REP_VAR_NAME"];
|
||||
}
|
||||
try {
|
||||
$prjUid = $importer->import($option, $optionGroup);
|
||||
|
||||
$result = array(
|
||||
"success" => true,
|
||||
"catchMessage" => "",
|
||||
"ExistProcessInDatabase" => 0,
|
||||
"ExistGroupsInDatabase" => 0,
|
||||
"sNewProUid" => $prjUid,
|
||||
"project_type" => "bpmn"
|
||||
);
|
||||
} catch (Exception $e) {
|
||||
$result = array(
|
||||
"success" => true,
|
||||
"catchMessage" => (in_array($e->getCode(), array(XmlImporter::IMPORT_STAT_TARGET_ALREADY_EXISTS, XmlImporter::IMPORT_STAT_GROUP_ALREADY_EXISTS)))? "" : $e->getMessage(),
|
||||
"ExistProcessInDatabase" => ($e->getCode() == XmlImporter::IMPORT_STAT_TARGET_ALREADY_EXISTS)? 1 : 0,
|
||||
"ExistGroupsInDatabase" => ($e->getCode() == XmlImporter::IMPORT_STAT_GROUP_ALREADY_EXISTS)? 1 : 0,
|
||||
"sNewProUid" => "",
|
||||
"project_type" => "bpmn",
|
||||
|
||||
"proFileName" => $_POST["PRO_FILENAME"],
|
||||
"groupBeforeAccion" => "uploadFileNewProcess",
|
||||
"importOption" => (isset($_POST["IMPORT_OPTION"]))? (int)($_POST["IMPORT_OPTION"]) : 0
|
||||
);
|
||||
}
|
||||
|
||||
if (count( $arrayAux ) > 0) {
|
||||
throw (new Exception( G::LoadTranslation( "ID_PMTABLE_INVALID_FIELD_NAME", array (implode( ", ", $arrayAux )
|
||||
) ) ));
|
||||
}
|
||||
echo G::json_encode($result);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
$action = isset( $_REQUEST['ajaxAction'] ) ? $_REQUEST['ajaxAction'] : null;
|
||||
|
||||
$importer = new XmlImporter();
|
||||
|
||||
$result = new stdClass();
|
||||
$result->success = true;
|
||||
$result->catchMessage = "";
|
||||
@@ -201,7 +199,7 @@ if ($action == "uploadFileNewProcess") {
|
||||
$oData = $oProcess->getProcessData( $path . $filename );
|
||||
}
|
||||
|
||||
reservedWordsSqlValidate( $oData );
|
||||
$importer->throwExceptionIfExistsReservedWordsSql($oData);
|
||||
|
||||
//!Upload file
|
||||
$Fields['PRO_FILENAME'] = $filename;
|
||||
@@ -223,12 +221,8 @@ if ($action == "uploadFileNewProcess") {
|
||||
if (! is_null( $optionGroupExistInDatabase )) {
|
||||
if ($optionGroupExistInDatabase == 1) {
|
||||
$oData->groupwfs = $oProcess->renameExistingGroups( $oData->groupwfs );
|
||||
} else if ($optionGroupExistInDatabase == 2) {
|
||||
$oBaseGroup = $oData->groupwfs;
|
||||
$oNewGroup = $oProcess->mergeExistingGroups( $oData->groupwfs );
|
||||
$oData->groupwfs = $oNewGroup;
|
||||
$oData->taskusers = $oProcess->mergeExistingUsers( $oBaseGroup, $oNewGroup, $oData->taskusers );
|
||||
$oData->objectPermissions = $oProcess->mergeExistingUsers( $oBaseGroup, $oNewGroup, $oData->objectPermissions );
|
||||
} elseif ($optionGroupExistInDatabase == 2) {
|
||||
$oData = $oProcess->groupwfsUpdateUidByDatabase($oData);
|
||||
}
|
||||
$result->ExistGroupsInDatabase = 0;
|
||||
} else {
|
||||
@@ -290,7 +284,7 @@ if ($action == "uploadFileNewProcessExist") {
|
||||
$oData = $oProcess->getProcessData( $path . $filename );
|
||||
}
|
||||
|
||||
reservedWordsSqlValidate( $oData );
|
||||
$importer->throwExceptionIfExistsReservedWordsSql($oData);
|
||||
|
||||
$Fields['PRO_FILENAME'] = $filename;
|
||||
$sProUid = $oData->process['PRO_UID'];
|
||||
@@ -301,11 +295,8 @@ if ($action == "uploadFileNewProcessExist") {
|
||||
if (! is_null( $optionGroupExistInDatabase )) {
|
||||
if ($optionGroupExistInDatabase == 1) {
|
||||
$oData->groupwfs = $oProcess->renameExistingGroups( $oData->groupwfs );
|
||||
} else if ($optionGroupExistInDatabase == 2) {
|
||||
$oBaseGroup = $oData->groupwfs;
|
||||
$oNewGroup = $oProcess->mergeExistingGroups( $oData->groupwfs );
|
||||
$oData->groupwfs = $oNewGroup;
|
||||
$oData->taskusers = $oProcess->mergeExistingUsers( $oBaseGroup, $oNewGroup, $oData->taskusers );
|
||||
} elseif ($optionGroupExistInDatabase == 2) {
|
||||
$oData = $oProcess->groupwfsUpdateUidByDatabase($oData);
|
||||
}
|
||||
$result->ExistGroupsInDatabase = 0;
|
||||
} else {
|
||||
@@ -359,7 +350,7 @@ if ($action == "uploadFileNewProcessExist") {
|
||||
}
|
||||
|
||||
//!data ouput
|
||||
$result->fileName = $filename;
|
||||
$result->proFileName = $filename;
|
||||
$result->importOption = $option;
|
||||
$result->sNewProUid = $sNewProUid;
|
||||
$result->success = true;
|
||||
|
||||
@@ -251,9 +251,7 @@ class Calendar
|
||||
$obj = \CalendarDefinitionPeer::retrieveByPK($calendarUid);
|
||||
|
||||
if (!(is_object($obj) && get_class($obj) == "CalendarDefinition")) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $calendarUid), "The calendar with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_CALENDAR_DOES_NOT_EXIST", array($fieldNameForException, $calendarUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -273,9 +271,7 @@ class Calendar
|
||||
{
|
||||
try {
|
||||
if ($this->existsName($calendarName, $calendarUidExclude)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $calendarName), "The calendar name with {0}: \"{1}\" already exists");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_CALENDAR_NAME_ALREADY_EXISTS", array($fieldNameForException, $calendarName)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -331,7 +327,7 @@ class Calendar
|
||||
if (isset($arrayData["CAL_WORK_HOUR"])) {
|
||||
foreach ($arrayData["CAL_WORK_HOUR"] as $value) {
|
||||
if ($value["DAY"] != 0 && !in_array($value["DAY"], $arrayData["CAL_WORK_DAYS"], true)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($this->arrayWorkHourFieldNameForException["day"], $this->arrayFieldNameForException["calendarWorkDays"]), "Value specified for \"{0}\" does not exist in \"{1}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_VALUE_SPECIFIED_DOES_NOT_EXIST", array($this->arrayWorkHourFieldNameForException["day"], $this->arrayFieldNameForException["calendarWorkDays"])));
|
||||
}
|
||||
|
||||
$arrayCalendarWorkHour[] = array(
|
||||
@@ -438,7 +434,7 @@ class Calendar
|
||||
|
||||
foreach ($arrayAux as $value) {
|
||||
if (isset($arrayData["CAL_WORK_HOUR"]) && $value["DAY"] != 0 && !in_array($value["DAY"], $calendarWorkDays, true)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($this->arrayWorkHourFieldNameForException["day"], $this->arrayFieldNameForException["calendarWorkDays"]), "Value specified for \"{0}\" does not exist in \"{1}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_VALUE_SPECIFIED_DOES_NOT_EXIST", array($this->arrayWorkHourFieldNameForException["day"], $this->arrayFieldNameForException["calendarWorkDays"])));
|
||||
}
|
||||
|
||||
$arrayCalendarWorkHour[] = array(
|
||||
|
||||
@@ -17,11 +17,9 @@ class CaseTracker
|
||||
$arrayDataIni = $arrayData;
|
||||
|
||||
//Verify data
|
||||
$process = new \Process();
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
if (!$process->exists($processUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" does not exist in table {1}")));
|
||||
}
|
||||
$process->throwExceptionIfNotExistsProcess($processUid, "prj_uid");
|
||||
|
||||
//Update
|
||||
$caseTracker = new \CaseTracker();
|
||||
@@ -64,11 +62,9 @@ class CaseTracker
|
||||
$arrayCaseTracker = array();
|
||||
|
||||
//Verify data
|
||||
$process = new \Process();
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
if (!$process->exists($processUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" does not exist in table {1}")));
|
||||
}
|
||||
$process->throwExceptionIfNotExistsProcess($processUid, "prj_uid");
|
||||
|
||||
//Get data
|
||||
$criteria = new \Criteria();
|
||||
@@ -118,11 +114,9 @@ class CaseTracker
|
||||
$arrayAvailableCaseTrackerObject = array();
|
||||
|
||||
//Verify data
|
||||
$process = new \Process();
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
if (!$process->exists($processUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" does not exist in table {1}")));
|
||||
}
|
||||
$process->throwExceptionIfNotExistsProcess($processUid, "prj_uid");
|
||||
|
||||
//Get Uids
|
||||
$arrayDynaFormUid = array();
|
||||
@@ -315,11 +309,9 @@ class CaseTracker
|
||||
$arrayCaseTrackerObject = array();
|
||||
|
||||
//Verify data
|
||||
$process = new \Process();
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
if (!$process->exists($processUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" does not exist in table {1}")));
|
||||
}
|
||||
$process->throwExceptionIfNotExistsProcess($processUid, "prj_uid");
|
||||
|
||||
$dynaform = new \Dynaform();
|
||||
$inputDocument = new \InputDocument();
|
||||
|
||||
@@ -67,30 +67,28 @@ class CaseTrackerObject
|
||||
unset($arrayData["CTO_UID"]);
|
||||
|
||||
//Verify data
|
||||
$process = new \Process();
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
if (!$process->exists($processUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
}
|
||||
$process->throwExceptionIfNotExistsProcess($processUid, "prj_uid");
|
||||
|
||||
if (!isset($arrayData["CTO_TYPE_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array(strtolower("CTO_TYPE_OBJ")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array(strtolower("CTO_TYPE_OBJ"))));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["CTO_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array(strtolower("CTO_UID_OBJ")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array(strtolower("CTO_UID_OBJ"))));
|
||||
}
|
||||
|
||||
$step = new \ProcessMaker\BusinessModel\Step();
|
||||
|
||||
$msg = $step->existsObjectUid($arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"]);
|
||||
$msg = $step->existsObjectUid($arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"], strtolower("CTO_UID_OBJ"));
|
||||
|
||||
if ($msg != "") {
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception($msg);
|
||||
}
|
||||
|
||||
if ($this->existsRecord($processUid, $arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid . ", " . $arrayData["CTO_TYPE_OBJ"] . ", " . $arrayData["CTO_UID_OBJ"], "CASE_TRACKER_OBJECT"), "The record \"{0}\", exists in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_EXISTS_IN_TABLE", array($processUid . ", " . $arrayData["CTO_TYPE_OBJ"] . ", " . $arrayData["CTO_UID_OBJ"], "CASE_TRACKER_OBJECT")));
|
||||
}
|
||||
|
||||
$ctoPosition = $arrayData["CTO_POSITION"];
|
||||
@@ -144,28 +142,28 @@ class CaseTrackerObject
|
||||
|
||||
//Verify data
|
||||
if (!$caseTrackerObject->caseTrackerObjectExists($caseTrackerObjectUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($caseTrackerObjectUid, "CASE_TRACKER_OBJECT"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_CASE_TRACKER_OBJECT_DOES_NOT_EXIST", array(strtolower("CTO_UID"), $caseTrackerObjectUid)));
|
||||
}
|
||||
|
||||
if (isset($arrayData["CTO_TYPE_OBJ"]) && !isset($arrayData["CTO_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array(strtolower("CTO_UID_OBJ")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array(strtolower("CTO_UID_OBJ"))));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["CTO_TYPE_OBJ"]) && isset($arrayData["CTO_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array(strtolower("CTO_TYPE_OBJ")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array(strtolower("CTO_TYPE_OBJ"))));
|
||||
}
|
||||
|
||||
if (isset($arrayData["CTO_TYPE_OBJ"]) && isset($arrayData["CTO_UID_OBJ"])) {
|
||||
$step = new \ProcessMaker\BusinessModel\Step();
|
||||
|
||||
$msg = $step->existsObjectUid($arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"]);
|
||||
$msg = $step->existsObjectUid($arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"], strtolower("CTO_UID_OBJ"));
|
||||
|
||||
if ($msg != "") {
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception($msg);
|
||||
}
|
||||
|
||||
if ($this->existsRecord($processUid, $arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"], 0, $caseTrackerObjectUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid . ", " . $arrayData["CTO_TYPE_OBJ"] . ", " . $arrayData["CTO_UID_OBJ"], "CASE_TRACKER_OBJECT"), "The record \"{0}\", exists in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_EXISTS_IN_TABLE", array($processUid . ", " . $arrayData["CTO_TYPE_OBJ"] . ", " . $arrayData["CTO_UID_OBJ"], "CASE_TRACKER_OBJECT")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +228,7 @@ class CaseTrackerObject
|
||||
|
||||
//Verify data
|
||||
if (!$caseTrackerObject->caseTrackerObjectExists($caseTrackerObjectUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($caseTrackerObjectUid, "CASE_TRACKER_OBJECT"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_CASE_TRACKER_OBJECT_DOES_NOT_EXIST", array(strtolower("CTO_UID"), $caseTrackerObjectUid)));
|
||||
}
|
||||
|
||||
//Delete
|
||||
@@ -256,7 +254,7 @@ class CaseTrackerObject
|
||||
$caseTrackerObject = new \CaseTrackerObject();
|
||||
|
||||
if (!$caseTrackerObject->caseTrackerObjectExists($caseTrackerObjectUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($caseTrackerObjectUid, "CASE_TRACKER_OBJECT"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_CASE_TRACKER_OBJECT_DOES_NOT_EXIST", array(strtolower("CTO_UID"), $caseTrackerObjectUid)));
|
||||
}
|
||||
|
||||
//Get data
|
||||
|
||||
@@ -282,9 +282,7 @@ class DynaForm
|
||||
$rsCriteria = \DynaformPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $dynaFormUid), "The DynaForm with {0}: {1}, does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_DYNAFORM_DOES_NOT_EXIST", array($fieldNameForException, $dynaFormUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -305,9 +303,7 @@ class DynaForm
|
||||
{
|
||||
try {
|
||||
if ($this->existsTitle($processUid, $dynaFormTitle, $dynaFormUidExclude)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $dynaFormTitle), "The DynaForm title with {0}: \"{1}\", already exists");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_DYNAFORM_TITLE_ALREADY_EXISTS", array($fieldNameForException, $dynaFormTitle)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -331,9 +327,7 @@ class DynaForm
|
||||
$arrayDynaFormData = $dynaForm->Load($dynaFormUid);
|
||||
|
||||
if ($arrayDynaFormData["DYN_TYPE"] != "grid") {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $dynaFormUid), "The DynaForm with {0}: {1}, is not grid");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_DYNAFORM_IS_NOT_GRID", array($fieldNameForException, $dynaFormUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -458,10 +452,11 @@ class DynaForm
|
||||
|
||||
$processUid = $arrayDynaFormData["PRO_UID"];
|
||||
|
||||
//Verify dependencies dynaforms
|
||||
$resultDependeds = $this->dynaFormDepends($dynaFormUid, $processUid);
|
||||
if ($resultDependeds != '') {
|
||||
throw (new \Exception($resultDependeds));
|
||||
//Verify dependences dynaforms
|
||||
$resultDepends = $this->dynaFormDepends($dynaFormUid, $processUid);
|
||||
|
||||
if ($resultDepends != "") {
|
||||
throw new \Exception($resultDepends);
|
||||
}
|
||||
|
||||
//Delete
|
||||
@@ -512,27 +507,27 @@ class DynaForm
|
||||
$process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, true);
|
||||
|
||||
if (!isset($arrayData["COPY_IMPORT"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("COPY_IMPORT")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName("COPY_IMPORT"))));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["COPY_IMPORT"]["PRJ_UID"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("COPY_IMPORT.PRJ_UID")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName("COPY_IMPORT.PRJ_UID"))));
|
||||
}
|
||||
|
||||
$arrayData["COPY_IMPORT"]["PRJ_UID"] = trim($arrayData["COPY_IMPORT"]["PRJ_UID"]);
|
||||
|
||||
if ($arrayData["COPY_IMPORT"]["PRJ_UID"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("COPY_IMPORT.PRJ_UID")), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->getFieldNameByFormatFieldName("COPY_IMPORT.PRJ_UID"))));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["COPY_IMPORT"]["DYN_UID"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("COPY_IMPORT.DYN_UID")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName("COPY_IMPORT.DYN_UID"))));
|
||||
}
|
||||
|
||||
$arrayData["COPY_IMPORT"]["DYN_UID"] = trim($arrayData["COPY_IMPORT"]["DYN_UID"]);
|
||||
|
||||
if ($arrayData["COPY_IMPORT"]["DYN_UID"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("COPY_IMPORT.DYN_UID")), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->getFieldNameByFormatFieldName("COPY_IMPORT.DYN_UID"))));
|
||||
}
|
||||
|
||||
$this->throwExceptionIfExistsTitle($processUid, $arrayData["DYN_TITLE"], $this->arrayFieldNameForException["dynaFormTitle"]);
|
||||
@@ -715,29 +710,29 @@ class DynaForm
|
||||
$process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, true);
|
||||
|
||||
if ($arrayData["DYN_TYPE"] == "grid") {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($this->arrayFieldNameForException["dynaFormType"], "xmlform"), "Invalid value for \"{0}\", it only accepts values: \"{1}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES", array($this->arrayFieldNameForException["dynaFormType"], "xmlform")));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["PMTABLE"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("PMTABLE")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName("PMTABLE"))));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["PMTABLE"]["TAB_UID"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("PMTABLE.TAB_UID")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName("PMTABLE.TAB_UID"))));
|
||||
}
|
||||
|
||||
$arrayData["PMTABLE"]["TAB_UID"] = trim($arrayData["PMTABLE"]["TAB_UID"]);
|
||||
|
||||
if ($arrayData["PMTABLE"]["TAB_UID"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("PMTABLE.TAB_UID")), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->getFieldNameByFormatFieldName("PMTABLE.TAB_UID"))));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["PMTABLE"]["FIELDS"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS"))));
|
||||
}
|
||||
|
||||
if (count($arrayData["PMTABLE"]["FIELDS"]) == 0) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS")), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS"))));
|
||||
}
|
||||
|
||||
$this->throwExceptionIfExistsTitle($processUid, $arrayData["DYN_TITLE"], $this->arrayFieldNameForException["dynaFormTitle"]);
|
||||
@@ -756,7 +751,7 @@ class DynaForm
|
||||
}
|
||||
|
||||
if ($flagValidFieldKey == 0) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS")), "The attribute {0}, has an element invalid (incorrect keys)")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ATTRIBUTE_HAS_INVALID_ELEMENT_KEY", array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS"))));
|
||||
}
|
||||
|
||||
//Is Primary Key
|
||||
@@ -777,7 +772,7 @@ class DynaForm
|
||||
}
|
||||
|
||||
if ($flagValidFieldPk == 0) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS.FLD_NAME"), $invalidFieldPk), "The field {0}: {1}, is not a primary key field of the PM Table")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PMTABLE_FIELD_IS_NOT_PRIMARY_KEY", array($this->getFieldNameByFormatFieldName("PMTABLE.FIELDS.FLD_NAME"), $invalidFieldPk)));
|
||||
}
|
||||
|
||||
//All Primary Keys
|
||||
@@ -793,7 +788,7 @@ class DynaForm
|
||||
}
|
||||
|
||||
if ($flagAllFieldPk == 0) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($missingFieldPk, $this->getFieldNameByFormatFieldName("PMTABLE.FIELDS")), "The primary key field {0} of the PM Table is missing in the attribute {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PMTABLE_PRIMARY_KEY_FIELD_IS_MISSING_IN_ATTRIBUTE", array($missingFieldPk, $this->getFieldNameByFormatFieldName("PMTABLE.FIELDS"))));
|
||||
}
|
||||
|
||||
//Total of Primary Keys
|
||||
@@ -801,7 +796,7 @@ class DynaForm
|
||||
$n2 = count($arrayFieldPkAux);
|
||||
|
||||
if ($n1 != $n2) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}", "{2}"), array($n1, $this->getFieldNameByFormatFieldName("PMTABLE.FIELDS"), $n2), "The total primary key fields of the PM Table is {0}, the attribute {1} has {2} primary keys")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PMTABLE_TOTAL_PRIMARY_KEY_FIELDS_IS_NOT_EQUAL_IN_ATTRIBUTE", array($n1, $this->getFieldNameByFormatFieldName("PMTABLE.FIELDS"), $n2)));
|
||||
}
|
||||
|
||||
//Set data
|
||||
@@ -889,7 +884,7 @@ class DynaForm
|
||||
//Return
|
||||
return $arrayDataAux;
|
||||
} else {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName($msgMethod)), "It is trying to create a DynaForm by \"{0}\", please send only one attribute for creation")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_DYNAFORM_IT_IS_TRYING_CREATE_BY_SEVERAL_METHODS", array($this->getFieldNameByFormatFieldName($msgMethod))));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
|
||||
@@ -143,9 +143,7 @@ class Group
|
||||
$group = new \Groupwf();
|
||||
|
||||
if (!$group->GroupwfExists($groupUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $groupUid), "The group with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_GROUP_DOES_NOT_EXIST", array($fieldNameForException, $groupUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -165,9 +163,7 @@ class Group
|
||||
{
|
||||
try {
|
||||
if ($this->existsTitle($groupTitle, $groupUidExclude)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $groupTitle), "The group title with {0}: \"{1}\" already exists");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_GROUP_TITLE_ALREADY_EXISTS", array($fieldNameForException, $groupTitle)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
|
||||
@@ -95,9 +95,7 @@ class User
|
||||
$obj = \GroupUserPeer::retrieveByPK($groupUid, $userUid);
|
||||
|
||||
if (!(is_object($obj) && get_class($obj) == "GroupUser")) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $userUid), "The user with {0}: {1} is not assigned to the group");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_GROUP_USER_IS_NOT_ASSIGNED", array($fieldNameForException, $userUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -119,9 +117,7 @@ class User
|
||||
$obj = \GroupUserPeer::retrieveByPK($groupUid, $userUid);
|
||||
|
||||
if (is_object($obj) && get_class($obj) == "GroupUser") {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $userUid), "The user with {0}: {1} is already assigned to the group");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_GROUP_USER_IS_ALREADY_ASSIGNED", array($fieldNameForException, $userUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
|
||||
@@ -161,9 +161,7 @@ class InputDocument
|
||||
$rsCriteria = \InputDocumentPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $inputDocumentUid), "The Input Document with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INPUT_DOCUMENT_DOES_NOT_EXIST", array($fieldNameForException, $inputDocumentUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -184,9 +182,7 @@ class InputDocument
|
||||
{
|
||||
try {
|
||||
if ($this->existsTitle($processUid, $inputDocumentTitle, $inputDocumentUidExclude)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $inputDocumentTitle), "The Input Document title with {0}: \"{1}\" already exists");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INPUT_DOCUMENT_TITLE_ALREADY_EXISTS", array($fieldNameForException, $inputDocumentTitle)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
|
||||
@@ -83,6 +83,7 @@ class OutputDocument
|
||||
'out_doc_title' => $aRow['OUT_DOC_TITLE'],
|
||||
'out_doc_description' => $aRow['OUT_DOC_DESCRIPTION'],
|
||||
'out_doc_filename' => $aRow['OUT_DOC_FILENAME'],
|
||||
'out_doc_template' => $aRow['OUT_DOC_TEMPLATE'],
|
||||
'out_doc_report_generator' => $aRow['OUT_DOC_REPORT_GENERATOR'],
|
||||
'out_doc_landscape' => $aRow['OUT_DOC_LANDSCAPE'],
|
||||
'out_doc_media' => $aRow['OUT_DOC_MEDIA'],
|
||||
@@ -190,6 +191,7 @@ class OutputDocument
|
||||
'out_doc_title' => $aRow['OUT_DOC_TITLE'],
|
||||
'out_doc_description' => $aRow['OUT_DOC_DESCRIPTION'],
|
||||
'out_doc_filename' => $aRow['OUT_DOC_FILENAME'],
|
||||
'out_doc_template' => $aRow['OUT_DOC_TEMPLATE'],
|
||||
'out_doc_report_generator' => $aRow['OUT_DOC_REPORT_GENERATOR'],
|
||||
'out_doc_landscape' => $aRow['OUT_DOC_LANDSCAPE'],
|
||||
'out_doc_media' => $aRow['OUT_DOC_MEDIA'],
|
||||
@@ -241,10 +243,7 @@ class OutputDocument
|
||||
$outputDocumentData = array_change_key_case($outputDocumentData, CASE_UPPER);
|
||||
$outputDocumentData['PRO_UID'] = $sProcessUID;
|
||||
//Verify data
|
||||
$process = new \Process();
|
||||
if (!$process->exists($sProcessUID)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($sProcessUID, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
}
|
||||
Validator::proUid($sProcessUID, '$pro_uid');
|
||||
if ($outputDocumentData["OUT_DOC_TITLE"]=="") {
|
||||
throw (new \Exception( 'Invalid value specified for out_doc_title, can not be null'));
|
||||
}
|
||||
@@ -329,6 +328,9 @@ class OutputDocument
|
||||
if (isset($outputDocumentData['OUT_DOC_FILENAME'])) {
|
||||
$oOutputDocument->setOutDocFilename($outputDocumentData['OUT_DOC_FILENAME']);
|
||||
}
|
||||
if (isset($outputDocumentData['OUT_DOC_TEMPLATE'])) {
|
||||
$oOutputDocument->setOutDocTemplate($outputDocumentData['OUT_DOC_TEMPLATE']);
|
||||
}
|
||||
$oOutputDocument->save();
|
||||
$oConnection->commit();
|
||||
} else {
|
||||
|
||||
@@ -176,7 +176,7 @@ class Process
|
||||
$fieldNameAux = (isset($arrayFieldNameForException[$arrayFieldDefinition[$fieldName]["fieldNameAux"]]))? $arrayFieldNameForException[$arrayFieldDefinition[$fieldName]["fieldNameAux"]] : "";
|
||||
|
||||
if ($arrayFieldDefinition[$fieldName]["required"] && !isset($arrayData[$fieldName])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameAux), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($fieldNameAux)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -201,12 +201,12 @@ class Process
|
||||
case 1:
|
||||
//empty
|
||||
if (!$arrayFieldDefinition[$fieldName]["empty"] && trim($fieldValue) . "" == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameAux), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($fieldNameAux)));
|
||||
}
|
||||
|
||||
//defaultValues
|
||||
if (count($arrayFieldDefinition[$fieldName]["defaultValues"]) > 0 && !in_array($fieldValue, $arrayFieldDefinition[$fieldName]["defaultValues"], true)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($fieldNameAux, implode("|", $arrayFieldDefinition[$fieldName]["defaultValues"])), "Invalid value for \"{0}\", it only accepts values: \"{1}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES", array($fieldNameAux, implode("|", $arrayFieldDefinition[$fieldName]["defaultValues"]))));
|
||||
}
|
||||
|
||||
//type
|
||||
@@ -220,17 +220,17 @@ class Process
|
||||
switch ($arrayFieldDefinition[$fieldName]["type"]) {
|
||||
case "date":
|
||||
if (!preg_match("/^" . $eregDate . "$/", $fieldValue)) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameAux), "Invalid value for \"{0}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE", array($fieldNameAux)));
|
||||
}
|
||||
break;
|
||||
case "hour":
|
||||
if (!preg_match("/^" . $eregHour . "$/", $fieldValue)) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameAux), "Invalid value for \"{0}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE", array($fieldNameAux)));
|
||||
}
|
||||
break;
|
||||
case "datetime":
|
||||
if (!preg_match("/^" . $eregDatetime . "$/", $fieldValue)) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameAux), "Invalid value for \"{0}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE", array($fieldNameAux)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -242,7 +242,7 @@ class Process
|
||||
//type
|
||||
if (!is_array($fieldValue)) {
|
||||
if ($fieldValue != "" && !preg_match("/^\s*array\s*\(.*\)\s*$/", $fieldValue)) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameAux), "Invalid value for \"{0}\", this value must be an array.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_THIS_MUST_BE_ARRAY", array($fieldNameAux)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,7 +259,7 @@ class Process
|
||||
}
|
||||
|
||||
if (count($arrayAux) == 0) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameAux), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($fieldNameAux)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,7 +277,7 @@ class Process
|
||||
|
||||
foreach ($arrayAux as $value) {
|
||||
if (!in_array($value, $arrayFieldDefinition[$fieldName]["defaultValues"], true)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($fieldNameAux, implode("|", $arrayFieldDefinition[$fieldName]["defaultValues"])), "Invalid value for \"{0}\", it only accepts values: \"{1}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES", array($fieldNameAux, implode("|", $arrayFieldDefinition[$fieldName]["defaultValues"]))));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -307,7 +307,7 @@ class Process
|
||||
$nameForException = (isset($arrayFieldNameForException[$key]))? $arrayFieldNameForException[$key] : "";
|
||||
|
||||
if (!is_null($value) && ($value . "" == "" || !preg_match("/^(?:\+|\-)?(?:0|[1-9]\d*)$/", $value . "") || (int)($value) < 0)) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($nameForException), "Invalid value for \"{0}\". Expecting positive integer value.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_EXPECTING_POSITIVE_INTEGER", array($nameForException)));
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
@@ -329,9 +329,7 @@ class Process
|
||||
$process = new \Process();
|
||||
|
||||
if (!$process->processExists($processUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $processUid), "The project with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PROJECT_DOES_NOT_EXIST", array($fieldNameForException, $processUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -352,9 +350,7 @@ class Process
|
||||
$user = new \Users();
|
||||
|
||||
if (!$user->userExists($userUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $userUid), "The user with {0}: {1}, does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_EXIST", array($fieldNameForException, $userUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -374,9 +370,7 @@ class Process
|
||||
{
|
||||
try {
|
||||
if ($this->existsTitle($processTitle, $processUidExclude)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $processTitle), "The project title with {0}: \"{1}\", already exists");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PROJECT_TITLE_ALREADY_EXISTS", array($fieldNameForException, $processTitle)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -397,9 +391,7 @@ class Process
|
||||
$obj = \ProcessCategoryPeer::retrieveByPK($processCategoryUid);
|
||||
|
||||
if (!(is_object($obj) && get_class($obj) == "ProcessCategory")) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $processCategoryUid), "The project category with {0}: {1}, does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PROJECT_CATEGORY_DOES_NOT_EXIST", array($fieldNameForException, $processCategoryUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -420,9 +412,7 @@ class Process
|
||||
$obj = \AdditionalTablesPeer::retrieveByPK($additionalTableUid);
|
||||
|
||||
if (!(is_object($obj) && get_class($obj) == "AdditionalTables")) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $additionalTableUid), "The PM Table with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PMTABLE_DOES_NOT_EXIST", array($fieldNameForException, $additionalTableUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -454,9 +444,7 @@ class Process
|
||||
$rsCriteria = \TaskPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $taskUid), "The activity with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array($fieldNameForException, $taskUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -488,9 +476,7 @@ class Process
|
||||
}
|
||||
|
||||
if ($flag == 0) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $fileName), "The routing screen template with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ROUTING_SCREEN_TEMPLATE_DOES_NOT_EXIST", array($fieldNameForException, $fileName)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -1649,7 +1635,8 @@ class Process
|
||||
if (is_file(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . ".xml")) {
|
||||
$dyn = new \dynaFormHandler(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . ".xml");
|
||||
|
||||
if ($dyn->getHeaderAttribute("type") !== "xmlform" && $dyn->getHeaderAttribute("type") !== "") { // skip it, if that is not a xmlform
|
||||
if ($dyn->getHeaderAttribute("type") !== "xmlform" && $dyn->getHeaderAttribute("type") !== "") {
|
||||
// skip it, if that is not a xmlform
|
||||
$oDataset->next();
|
||||
continue;
|
||||
}
|
||||
@@ -1701,7 +1688,8 @@ class Process
|
||||
if (is_file(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . ".xml")) {
|
||||
$dyn = new \dynaFormHandler(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . ".xml");
|
||||
|
||||
if ($dyn->getHeaderAttribute("type") === "xmlform") { // skip it, if that is not a xmlform
|
||||
if ($dyn->getHeaderAttribute("type") === "xmlform") {
|
||||
// skip it, if that is not a xmlform
|
||||
$oDataset->next();
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -108,26 +108,43 @@ class ProjectUser
|
||||
throw (new \Exception( 'This id for prj_uid: '. $sProcessUID .' does not correspond to a registered process'));
|
||||
}
|
||||
$aUsers = array();
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$usersIds = array();
|
||||
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->setDistinct();
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::USR_UID);
|
||||
$oCriteria->addJoin(\TaskPeer::TAS_UID, \TaskUserPeer::TAS_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
|
||||
$oCriteria->addGroupByColumn(\TaskUserPeer::USR_UID);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
if (!in_array($aRow['USR_UID'], $usersIds)) {
|
||||
$usersIds[] = $aRow['USR_UID'];
|
||||
}
|
||||
}
|
||||
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\GroupUserPeer::USR_UID);
|
||||
$oCriteria->addJoin(\TaskPeer::TAS_UID, \TaskUserPeer::TAS_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->addJoin(\TaskUserPeer::TAS_UID, \GroupUserPeer::GRP_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 2);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
while ($oDataset->next()) {
|
||||
$aRow = $oDataset->getRow();
|
||||
if (!in_array($aRow['USR_UID'], $usersIds)) {
|
||||
$usersIds[] = $aRow['USR_UID'];
|
||||
}
|
||||
}
|
||||
|
||||
foreach($usersIds as $value) {
|
||||
\G::LoadClass( 'case' );
|
||||
$oCase = new \Cases();
|
||||
$startTasks = $oCase->getStartCases( $aRow['USR_UID'] );
|
||||
$startTasks = $oCase->getStartCases( $value );
|
||||
foreach ($startTasks as $task) {
|
||||
if ((isset( $task['pro_uid'] )) && ($task['pro_uid'] == $sProcessUID) ) {
|
||||
$taskValue = explode( '(', $task['value'] );
|
||||
|
||||
@@ -118,12 +118,13 @@ class Step
|
||||
/**
|
||||
* Verify if exists the "Object UID" in the corresponding table
|
||||
*
|
||||
* @param string $type Type of Step (DYNAFORM, INPUT_DOCUMENT, OUTPUT_DOCUMENT)
|
||||
* @param string $objectUid Unique id of Object
|
||||
* @param string $type Type of Step (DYNAFORM, INPUT_DOCUMENT, OUTPUT_DOCUMENT)
|
||||
* @param string $objectUid Unique id of Object
|
||||
* @param string $fieldNameForException Field name for the exception
|
||||
*
|
||||
* return strin Return empty string if $objectUid exists in the corresponding table, return string with data if $objectUid doesn't exist
|
||||
*/
|
||||
public function existsObjectUid($type, $objectUid)
|
||||
public function existsObjectUid($type, $objectUid, $fieldNameForException)
|
||||
{
|
||||
try {
|
||||
$msg = "";
|
||||
@@ -133,21 +134,21 @@ class Step
|
||||
$dynaform = new \Dynaform();
|
||||
|
||||
if (!$dynaform->dynaformExists($objectUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($objectUid, "DYNAFORM"), "The UID \"{0}\" does not exist in table {1}");
|
||||
$msg = \G::LoadTranslation("ID_DYNAFORM_DOES_NOT_EXIST", array($fieldNameForException, $objectUid));
|
||||
}
|
||||
break;
|
||||
case "INPUT_DOCUMENT":
|
||||
$inputdoc = new \InputDocument();
|
||||
|
||||
if (!$inputdoc->InputExists($objectUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($objectUid, "INPUT_DOCUMENT"), "The UID \"{0}\" does not exist in table {1}");
|
||||
$msg = \G::LoadTranslation("ID_INPUT_DOCUMENT_DOES_NOT_EXIST", array($fieldNameForException, $objectUid));
|
||||
}
|
||||
break;
|
||||
case "OUTPUT_DOCUMENT":
|
||||
$outputdoc = new \OutputDocument();
|
||||
|
||||
if (!$outputdoc->OutputExists($objectUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($objectUid, "OUTPUT_DOCUMENT"), "The UID \"{0}\" does not exist in table {1}");
|
||||
$msg = \G::LoadTranslation("ID_OUTPUT_DOCUMENT_DOES_NOT_EXIST", array($fieldNameForException, $objectUid));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -171,7 +172,8 @@ class Step
|
||||
|
||||
if (!in_array($stepTypeObj, $arrayDefaultValues)) {
|
||||
$field = $this->arrayParamException["stepTypeObj"];
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($field, implode("|", $arrayDefaultValues)), "Invalid value for \"{0}\", it only accepts values: \"{1}\".")));
|
||||
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES", array($field, implode("|", $arrayDefaultValues))));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +191,7 @@ class Step
|
||||
if (!in_array($stepMode, $arrayDefaultValues)) {
|
||||
$field = $this->arrayParamException["stepMode"];
|
||||
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($field, implode("|", $arrayDefaultValues)), "Invalid value for \"{0}\", it only accepts values: \"{1}\".")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES", array($field, implode("|", $arrayDefaultValues))));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,9 +207,7 @@ class Step
|
||||
$step = new \Step();
|
||||
|
||||
if (!$step->StepExists($stepUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($this->arrayParamException["stepUid"], $stepUid), "The step with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_STEP_DOES_NOT_EXIST", array($this->arrayParamException["stepUid"], $stepUid)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,9 +223,7 @@ class Step
|
||||
$task = new \Task();
|
||||
|
||||
if (!$task->taskExists($taskUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($this->arrayParamException["taskUid"], $taskUid), "The activity with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array($this->arrayParamException["taskUid"], $taskUid)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,9 +239,7 @@ class Step
|
||||
$process = new \Process();
|
||||
|
||||
if (!$process->exists($processUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($this->arrayParamException["processUid"], $processUid), "The project with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_PROJECT_DOES_NOT_EXIST", array($this->arrayParamException["processUid"], $processUid)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -269,47 +265,47 @@ class Step
|
||||
$this->throwExceptionIfNotExistsProcess($processUid);
|
||||
|
||||
if (!isset($arrayData["STEP_TYPE_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepTypeObj"]), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->arrayParamException["stepTypeObj"])));
|
||||
}
|
||||
|
||||
$arrayData["STEP_TYPE_OBJ"] = trim($arrayData["STEP_TYPE_OBJ"]);
|
||||
|
||||
if ($arrayData["STEP_TYPE_OBJ"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepTypeObj"]), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->arrayParamException["stepTypeObj"])));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["STEP_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepUidObj"]), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->arrayParamException["stepUidObj"])));
|
||||
}
|
||||
|
||||
$arrayData["STEP_UID_OBJ"] = trim($arrayData["STEP_UID_OBJ"]);
|
||||
|
||||
if ($arrayData["STEP_UID_OBJ"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepUidObj"]), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->arrayParamException["stepUidObj"])));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["STEP_MODE"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepMode"]), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->arrayParamException["stepMode"])));
|
||||
}
|
||||
|
||||
$arrayData["STEP_MODE"] = trim($arrayData["STEP_MODE"]);
|
||||
|
||||
if ($arrayData["STEP_MODE"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepMode"]), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->arrayParamException["stepMode"])));
|
||||
}
|
||||
|
||||
$this->throwExceptionIfHaveInvalidValueInTypeObj($arrayData["STEP_TYPE_OBJ"]);
|
||||
|
||||
$this->throwExceptionIfHaveInvalidValueInMode($arrayData["STEP_MODE"]);
|
||||
|
||||
$msg = $this->existsObjectUid($arrayData["STEP_TYPE_OBJ"], $arrayData["STEP_UID_OBJ"]);
|
||||
$msg = $this->existsObjectUid($arrayData["STEP_TYPE_OBJ"], $arrayData["STEP_UID_OBJ"], $this->arrayParamException["stepUidObj"]);
|
||||
|
||||
if ($msg != "") {
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception($msg);
|
||||
}
|
||||
|
||||
if ($this->existsRecord($taskUid, $arrayData["STEP_TYPE_OBJ"], $arrayData["STEP_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($taskUid . ", " . $arrayData["STEP_TYPE_OBJ"] . ", " . $arrayData["STEP_UID_OBJ"], "STEP"), "The record \"{0}\", exists in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_EXISTS_IN_TABLE", array($taskUid . ", " . $arrayData["STEP_TYPE_OBJ"] . ", " . $arrayData["STEP_UID_OBJ"], "STEP")));
|
||||
}
|
||||
|
||||
//Create
|
||||
@@ -367,18 +363,18 @@ class Step
|
||||
|
||||
//Verify data
|
||||
if (isset($arrayData["STEP_TYPE_OBJ"]) && !isset($arrayData["STEP_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepUidObj"]), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->arrayParamException["stepUidObj"])));
|
||||
}
|
||||
|
||||
if (!isset($arrayData["STEP_TYPE_OBJ"]) && isset($arrayData["STEP_UID_OBJ"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepTypeObj"]), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->arrayParamException["stepTypeObj"])));
|
||||
}
|
||||
|
||||
if (isset($arrayData["STEP_TYPE_OBJ"])) {
|
||||
$arrayData["STEP_TYPE_OBJ"] = trim($arrayData["STEP_TYPE_OBJ"]);
|
||||
|
||||
if ($arrayData["STEP_TYPE_OBJ"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepTypeObj"]), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->arrayParamException["stepTypeObj"])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,7 +382,7 @@ class Step
|
||||
$arrayData["STEP_UID_OBJ"] = trim($arrayData["STEP_UID_OBJ"]);
|
||||
|
||||
if ($arrayData["STEP_UID_OBJ"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepUidObj"]), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->arrayParamException["stepUidObj"])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -394,7 +390,7 @@ class Step
|
||||
$arrayData["STEP_MODE"] = trim($arrayData["STEP_MODE"]);
|
||||
|
||||
if ($arrayData["STEP_MODE"] == "") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->arrayParamException["stepMode"]), "Invalid value for \"{0}\", it can not be empty.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($this->arrayParamException["stepMode"])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -407,14 +403,14 @@ class Step
|
||||
}
|
||||
|
||||
if (isset($arrayData["STEP_TYPE_OBJ"]) && isset($arrayData["STEP_UID_OBJ"])) {
|
||||
$msg = $this->existsObjectUid($arrayData["STEP_TYPE_OBJ"], $arrayData["STEP_UID_OBJ"]);
|
||||
$msg = $this->existsObjectUid($arrayData["STEP_TYPE_OBJ"], $arrayData["STEP_UID_OBJ"], $this->arrayParamException["stepUidObj"]);
|
||||
|
||||
if ($msg != "") {
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception($msg);
|
||||
}
|
||||
|
||||
if ($this->existsRecord($taskUid, $arrayData["STEP_TYPE_OBJ"], $arrayData["STEP_UID_OBJ"], 0, $stepUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($taskUid . ", " . $arrayData["STEP_TYPE_OBJ"] . ", " . $arrayData["STEP_UID_OBJ"], "STEP"), "The record \"{0}\", exists in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_EXISTS_IN_TABLE", array($taskUid . ", " . $arrayData["STEP_TYPE_OBJ"] . ", " . $arrayData["STEP_UID_OBJ"], "STEP")));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -95,24 +95,24 @@ class Trigger
|
||||
$step = new \Step();
|
||||
|
||||
if (!$step->StepExists($stepUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_STEP_DOES_NOT_EXIST", array("step_uid", $stepUid)));
|
||||
}
|
||||
}
|
||||
|
||||
$task = new \Task();
|
||||
|
||||
if (!$task->taskExists($taskUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($taskUid, "TASK"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array("act_uid", $taskUid)));
|
||||
}
|
||||
|
||||
$trigger = new \Triggers();
|
||||
|
||||
if (!$trigger->TriggerExists($triggerUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($triggerUid, "TRIGGERS"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_TRIGGER_DOES_NOT_EXIST", array("tri_uid", $triggerUid)));
|
||||
}
|
||||
|
||||
if ($this->existsRecord($stepUid, $type, $taskUid, $triggerUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", exists in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_EXISTS_IN_TABLE", array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER")));
|
||||
}
|
||||
|
||||
//Create
|
||||
@@ -175,14 +175,14 @@ class Trigger
|
||||
$step = new \Step();
|
||||
|
||||
if (!$step->StepExists($stepUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_STEP_DOES_NOT_EXIST", array("step_uid", $stepUid)));
|
||||
}
|
||||
}
|
||||
|
||||
$trigger = new \Triggers();
|
||||
|
||||
if (!$trigger->TriggerExists($triggerUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($triggerUid, "TRIGGERS"), "The UID \"{0}\" doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_TRIGGER_DOES_NOT_EXIST", array("tri_uid", $triggerUid)));
|
||||
}
|
||||
|
||||
//Update
|
||||
@@ -245,7 +245,7 @@ class Trigger
|
||||
|
||||
//Verify data
|
||||
if (!$this->existsRecord($stepUid, $type, $taskUid, $triggerUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_DOES_NOT_EXIST_IN_TABLE", array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER")));
|
||||
}
|
||||
|
||||
//Get position
|
||||
@@ -326,7 +326,7 @@ class Trigger
|
||||
|
||||
//Verify data
|
||||
if (!$this->existsRecord($stepUid, $type, $taskUid, $triggerUid)) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", doesn't exist in table {1}")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_DOES_NOT_EXIST_IN_TABLE", array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER")));
|
||||
}
|
||||
|
||||
//Get data
|
||||
@@ -372,7 +372,8 @@ class Trigger
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function moveStepTriggers($tasUid, $stepUid, $triUid, $type, $newPos) {
|
||||
public function moveStepTriggers($tasUid, $stepUid, $triUid, $type, $newPos)
|
||||
{
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step();
|
||||
$tempStep = $stepUid;
|
||||
$typeCompare = $type;
|
||||
|
||||
@@ -75,9 +75,7 @@ class Task
|
||||
$task = new \Task();
|
||||
|
||||
if (!$task->taskExists($taskUid)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($this->arrayParamException["taskUid"], $taskUid), "The activity with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array($this->arrayParamException["taskUid"], $taskUid)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -265,9 +265,7 @@ class Trigger
|
||||
$rsCriteria = \TriggersPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $triggerUid), "The trigger with {0}: {1}, does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_TRIGGER_DOES_NOT_EXIST", array($fieldNameForException, $triggerUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -288,9 +286,7 @@ class Trigger
|
||||
{
|
||||
try {
|
||||
if (!$this->verifyNameTrigger($processUid, $triggerTitle, $triggerUidExclude)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $triggerTitle), "The trigger title with {0}: \"{1}\" already exists");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_TRIGGER_TITLE_ALREADY_EXISTS", array($fieldNameForException, $triggerTitle)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
|
||||
@@ -111,9 +111,7 @@ class TriggerWizard
|
||||
$arrayLibrary = $this->library->getRegisteredClasses();
|
||||
|
||||
if (!isset($arrayLibrary[$this->libraryGetLibraryName($libraryName)])) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($libraryFieldNameForException, $libraryName), "The library with {0}: \"{1}\" does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_LIBRARY_DOES_NOT_EXIST", array($libraryFieldNameForException, $libraryName)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -138,9 +136,7 @@ class TriggerWizard
|
||||
$library = $this->library->getLibraryDefinition($this->libraryGetLibraryName($libraryName));
|
||||
|
||||
if (!isset($library->methods[$methodName])) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($methodFieldNameForException, $methodName), "The function with {0}: \"{1}\" does not exist in the library.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_LIBRARY_FUNCTION_DOES_NOT_EXIST", array($methodFieldNameForException, $methodName)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -177,26 +173,20 @@ class TriggerWizard
|
||||
$triggerParam = unserialize($arrayTriggerData["TRI_PARAM"]);
|
||||
|
||||
if ($arrayTriggerData["TRI_PARAM"] == "" || !isset($triggerParam["hash"])) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($triggerUidFieldNameForException, $triggerUid), "The trigger with {0}: {1}, has not been created with the wizard");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_TRIGGER_HAS_NOT_BEEN_CREATED_WITH_WIZARD", array($triggerUidFieldNameForException, $triggerUid)));
|
||||
}
|
||||
|
||||
$arrayTriggerData["TRI_PARAM"] = $triggerParam;
|
||||
|
||||
if (md5($arrayTriggerData["TRI_WEBBOT"]) != $arrayTriggerData["TRI_PARAM"]["hash"]) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($triggerUidFieldNameForException, $triggerUid), "The trigger with {0}: {1}, has been modified manually. It is invalid for the wizard");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_TRIGGER_HAS_BEEN_MODIFIED_MANUALLY_INVALID_FOR_WIZARD", array($triggerUidFieldNameForException, $triggerUid)));
|
||||
}
|
||||
|
||||
$triggerParamLibraryName = (preg_match("/^class\.?(.*)\.pmFunctions\.php$/", $arrayTriggerData["TRI_PARAM"]["params"]["LIBRARY_CLASS"], $arrayMatch))? ((isset($arrayMatch[1]) && $arrayMatch[1] != "")? $arrayMatch[1] : "pmFunctions") : $arrayTriggerData["TRI_PARAM"]["params"]["LIBRARY_CLASS"];
|
||||
$triggerParamMethodName = $arrayTriggerData["TRI_PARAM"]["params"]["PMFUNTION_NAME"];
|
||||
|
||||
if ($libraryName != $triggerParamLibraryName || $methodName != $triggerParamMethodName) {
|
||||
$msg = str_replace(array("{0}", "{1}", "{2}", "{3}"), array($libraryName, $methodName, $triggerUidFieldNameForException, $triggerUid), "The wizard with the library \"{0}\" and function \"{1}\", is invalid for the trigger with {2}: {3}");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_WIZARD_LIBRARY_AND_FUNCTION_IS_INVALID_FOR_TRIGGER", array($libraryName, $methodName, $triggerUidFieldNameForException, $triggerUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -231,22 +221,22 @@ class TriggerWizard
|
||||
|
||||
if ($nInputParam > 0 || $nOutputParam > 0) {
|
||||
if (!isset($arrayData["TRI_PARAMS"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameForException), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($fieldNameForException)));
|
||||
}
|
||||
|
||||
if (!is_array($arrayData["TRI_PARAMS"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($fieldNameForException), "Invalid value for \"{0}\", this value must be an array.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_THIS_MUST_BE_ARRAY", array($fieldNameForException)));
|
||||
}
|
||||
|
||||
$arrayData["TRI_PARAMS"] = array_change_key_case($arrayData["TRI_PARAMS"], CASE_UPPER);
|
||||
|
||||
if ($nInputParam > 0) {
|
||||
if (!isset($arrayData["TRI_PARAMS"]["INPUT"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName($fieldNameForException . ".INPUT")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName($fieldNameForException . ".INPUT"))));
|
||||
}
|
||||
|
||||
if (!is_array($arrayData["TRI_PARAMS"]["INPUT"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName($fieldNameForException . ".INPUT")), "Invalid value for \"{0}\", this value must be an array.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_THIS_MUST_BE_ARRAY", array($this->getFieldNameByFormatFieldName($fieldNameForException . ".INPUT"))));
|
||||
}
|
||||
|
||||
$arrayParamData["input"] = $arrayData["TRI_PARAMS"]["INPUT"];
|
||||
@@ -254,11 +244,11 @@ class TriggerWizard
|
||||
|
||||
if ($nOutputParam > 0) {
|
||||
if (!isset($arrayData["TRI_PARAMS"]["OUTPUT"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName($fieldNameForException . ".OUTPUT")), "Undefined value for \"{0}\", it is required.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->getFieldNameByFormatFieldName($fieldNameForException . ".OUTPUT"))));
|
||||
}
|
||||
|
||||
if (!is_array($arrayData["TRI_PARAMS"]["OUTPUT"])) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($this->getFieldNameByFormatFieldName($fieldNameForException . ".OUTPUT")), "Invalid value for \"{0}\", this value must be an array.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_THIS_MUST_BE_ARRAY", array($this->getFieldNameByFormatFieldName($fieldNameForException . ".OUTPUT"))));
|
||||
}
|
||||
|
||||
$arrayParamData["output"] = $arrayData["TRI_PARAMS"]["OUTPUT"];
|
||||
|
||||
@@ -344,9 +344,7 @@ class Validator
|
||||
{
|
||||
try {
|
||||
if (!is_array($data)) {
|
||||
$msg = str_replace(array("{0}"), array($dataNameForException), "Invalid value for \"{0}\", this value must be an array.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_THIS_MUST_BE_ARRAY", array($dataNameForException)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -365,9 +363,7 @@ class Validator
|
||||
{
|
||||
try {
|
||||
if (empty($data)) {
|
||||
$msg = str_replace(array("{0}"), array($dataNameForException), "Invalid value for \"{0}\", it can not be empty.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_CAN_NOT_BE_EMPTY", array($dataNameForException)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
|
||||
@@ -178,9 +178,7 @@ class WebEntry
|
||||
$webEntry = \WebEntryPeer::retrieveByPK($webEntryUid);
|
||||
|
||||
if (is_null($webEntry)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $webEntryUid), "The web entry with {0}: {1} does not exist.");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_WEB_ENTRY_DOES_NOT_EXIST", array($fieldNameForException, $webEntryUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -201,9 +199,7 @@ class WebEntry
|
||||
{
|
||||
try {
|
||||
if ($this->existsTitle($processUid, $webEntryTitle, $webEntryUidExclude)) {
|
||||
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $webEntryTitle), "The web entry title with {0}: \"{1}\" already exists");
|
||||
|
||||
throw (new \Exception($msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_WEB_ENTRY_TITLE_ALREADY_EXISTS", array($fieldNameForException, $webEntryTitle)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
@@ -262,11 +258,11 @@ class WebEntry
|
||||
|
||||
if (isset($arrayData["TAS_UID"])) {
|
||||
if ($arrayTaskData["TAS_START"] == "FALSE") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($arrayTaskData["TAS_TITLE"]), "The task \"{0}\" is not initial task")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_IS_NOT_INITIAL_ACTIVITY", array($arrayTaskData["TAS_TITLE"])));
|
||||
}
|
||||
|
||||
if ($arrayTaskData["TAS_ASSIGN_TYPE"] != "BALANCED") {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($arrayTaskData["TAS_TITLE"]), "Web Entry only works with tasks which have \"Cyclical Assignment\", the task \"{0}\" does not have a valid assignment type. Please change the Assignment Rules")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_WEB_ENTRY_ACTIVITY_DOES_NOT_HAVE_VALID_ASSIGNMENT_TYPE", array($arrayTaskData["TAS_TITLE"])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,7 +270,7 @@ class WebEntry
|
||||
$task = new \Tasks();
|
||||
|
||||
if ($task->assignUsertoTask($arrayData["TAS_UID"]) == 0) {
|
||||
throw (new \Exception(str_replace(array("{0}"), array($arrayTaskData["TAS_TITLE"]), "The task \"{0}\" does not have users")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_HAVE_USERS", array($arrayTaskData["TAS_TITLE"])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,7 +282,7 @@ class WebEntry
|
||||
$step = new \ProcessMaker\BusinessModel\Step();
|
||||
|
||||
if (!$step->existsRecord($arrayDataMain["TAS_UID"], "DYNAFORM", $arrayData["DYN_UID"])) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($arrayDynaFormData["DYN_TITLE"], $arrayTaskData["TAS_TITLE"]), "The DynaForm \"{0}\" isn't assigned to the task \"{1}\"")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_DYNAFORM_IS_NOT_ASSIGNED_TO_ACTIVITY", array($arrayDynaFormData["DYN_TITLE"], $arrayTaskData["TAS_TITLE"])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -299,7 +295,7 @@ class WebEntry
|
||||
$projectUser = new \ProcessMaker\BusinessModel\ProjectUser();
|
||||
|
||||
if (!$projectUser->userIsAssignedToTask($arrayData["USR_UID"], $arrayDataMain["TAS_UID"])) {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($arrayUserData["USR_USERNAME"], $arrayTaskData["TAS_TITLE"]), "The user \"{0}\" does not have the task \"{1}\" assigned")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_HAVE_ACTIVITY_ASSIGNED", array($arrayUserData["USR_USERNAME"], $arrayTaskData["TAS_TITLE"])));
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
@@ -605,7 +601,7 @@ class WebEntry
|
||||
$msg = $msg . (($msg != "")? "\n" : "") . $validationFailure->getMessage();
|
||||
}
|
||||
|
||||
throw (new \Exception("The registry cannot be created!.\n" . $msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . "\n" . $msg);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$cnn->rollback();
|
||||
@@ -690,7 +686,7 @@ class WebEntry
|
||||
$msg = $msg . (($msg != "")? "\n" : "") . $validationFailure->getMessage();
|
||||
}
|
||||
|
||||
throw (new \Exception("The registry cannot be created!.\n" . $msg));
|
||||
throw new \Exception(\G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . "\n" . $msg);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$cnn->rollback();
|
||||
|
||||
@@ -18,22 +18,58 @@ abstract class Importer
|
||||
const IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW = "project.import.keep_without_changing_and_create_new";
|
||||
const IMPORT_OPTION_CREATE_NEW = "project.import.create_new";
|
||||
|
||||
/**
|
||||
* Success, Project imported successfully.
|
||||
*/
|
||||
const IMPORT_STAT_SUCCESS = 100;
|
||||
/**
|
||||
* Error, Target Project already exists.
|
||||
*/
|
||||
const IMPORT_STAT_TARGET_ALREADY_EXISTS = 101;
|
||||
/**
|
||||
* Error, Invalid file type or the file have corrupt data.
|
||||
*/
|
||||
const IMPORT_STAT_INVALID_SOURCE_FILE = 102;
|
||||
const GROUP_IMPORT_OPTION_RENAME = "group.import.rename";
|
||||
const GROUP_IMPORT_OPTION_MERGE_PREEXISTENT = "group.import.merge.preexistent";
|
||||
const GROUP_IMPORT_OPTION_CREATE_NEW = "group.import.create_new";
|
||||
|
||||
const IMPORT_STAT_SUCCESS = 100; //Success, Project imported successfully.
|
||||
const IMPORT_STAT_TARGET_ALREADY_EXISTS = 101; //Error, Target Project already exists.
|
||||
const IMPORT_STAT_INVALID_SOURCE_FILE = 102; //Error, Invalid file type or the file have corrupt data.
|
||||
const IMPORT_STAT_GROUP_ALREADY_EXISTS = 105; //Error, Group already exists.
|
||||
|
||||
public abstract function load();
|
||||
|
||||
public function import($option = self::IMPORT_OPTION_CREATE_NEW)
|
||||
/**
|
||||
* Verify if exists reserved words SQL
|
||||
*
|
||||
* @param object $data Data
|
||||
*
|
||||
* return void Throw exception if exists reserved words SQL
|
||||
*/
|
||||
public function throwExceptionIfExistsReservedWordsSql($data)
|
||||
{
|
||||
$arrayReservedWordsSql = \G::reservedWordsSql();
|
||||
|
||||
$arrayAux = array();
|
||||
|
||||
foreach ($data->reportTables as $key => $value) {
|
||||
$record = $value;
|
||||
|
||||
if (in_array(strtoupper($record["REP_TAB_NAME"]), $arrayReservedWordsSql)) {
|
||||
$arrayAux[] = $record["REP_TAB_NAME"];
|
||||
}
|
||||
}
|
||||
|
||||
if (count($arrayAux) > 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_PMTABLE_INVALID_NAME", array(implode(", ", $arrayAux))));
|
||||
}
|
||||
|
||||
$arrayAux = array();
|
||||
|
||||
foreach ($data->reportTablesVars as $key => $value) {
|
||||
$record = $value;
|
||||
|
||||
if (in_array(strtoupper($record["REP_VAR_NAME"]), $arrayReservedWordsSql)) {
|
||||
$arrayAux[] = $record["REP_VAR_NAME"];
|
||||
}
|
||||
}
|
||||
|
||||
if (count($arrayAux) > 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_PMTABLE_INVALID_FIELD_NAME", array(implode(", ", $arrayAux))));
|
||||
}
|
||||
}
|
||||
|
||||
public function import($option = self::IMPORT_OPTION_CREATE_NEW, $optionGroup = self::GROUP_IMPORT_OPTION_CREATE_NEW)
|
||||
{
|
||||
$this->prepare();
|
||||
|
||||
@@ -42,11 +78,21 @@ abstract class Importer
|
||||
switch ($option) {
|
||||
case self::IMPORT_OPTION_CREATE_NEW:
|
||||
if ($this->targetExists()) {
|
||||
throw new \Exception(sprintf(
|
||||
"Project already exists, you need set an action to continue. " .
|
||||
"Available actions: [%s|%s|%s|%s].", self::IMPORT_OPTION_CREATE_NEW,
|
||||
self::IMPORT_OPTION_OVERWRITE, self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW, self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW
|
||||
), self::IMPORT_STAT_TARGET_ALREADY_EXISTS);
|
||||
throw new \Exception(
|
||||
\G::LoadTranslation(
|
||||
"ID_IMPORTER_PROJECT_ALREADY_EXISTS_SET_ACTION_TO_CONTINUE",
|
||||
array(implode(
|
||||
"|",
|
||||
array(
|
||||
self::IMPORT_OPTION_CREATE_NEW,
|
||||
self::IMPORT_OPTION_OVERWRITE,
|
||||
self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW,
|
||||
self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW
|
||||
)
|
||||
))
|
||||
),
|
||||
self::IMPORT_STAT_TARGET_ALREADY_EXISTS
|
||||
);
|
||||
}
|
||||
$generateUid = false;
|
||||
break;
|
||||
@@ -68,6 +114,41 @@ abstract class Importer
|
||||
break;
|
||||
}
|
||||
|
||||
$processes = new \Processes();
|
||||
|
||||
switch ($optionGroup) {
|
||||
case self::GROUP_IMPORT_OPTION_CREATE_NEW:
|
||||
$arrayAux = $processes->checkExistingGroups($this->importData["tables"]["workflow"]["groupwfs"]);
|
||||
|
||||
if (is_array($arrayAux) && count($arrayAux) > 0) {
|
||||
throw new \Exception(
|
||||
\G::LoadTranslation(
|
||||
"ID_IMPORTER_GROUP_ALREADY_EXISTS_SET_ACTION_TO_CONTINUE",
|
||||
array(implode(
|
||||
"|",
|
||||
array(
|
||||
self::GROUP_IMPORT_OPTION_CREATE_NEW,
|
||||
self::GROUP_IMPORT_OPTION_RENAME,
|
||||
self::GROUP_IMPORT_OPTION_MERGE_PREEXISTENT
|
||||
)
|
||||
))
|
||||
),
|
||||
self::IMPORT_STAT_GROUP_ALREADY_EXISTS
|
||||
);
|
||||
}
|
||||
break;
|
||||
case self::GROUP_IMPORT_OPTION_RENAME:
|
||||
$arrayAux = $processes->renameExistingGroups($this->importData["tables"]["workflow"]["groupwfs"]);
|
||||
|
||||
if (is_array($arrayAux) && count($arrayAux) > 0) {
|
||||
$this->importData["tables"]["workflow"]["groupwfs"] = $arrayAux;
|
||||
}
|
||||
break;
|
||||
case self::GROUP_IMPORT_OPTION_MERGE_PREEXISTENT:
|
||||
$this->importData["tables"]["workflow"] = (array)($processes->groupwfsUpdateUidByDatabase((object)($this->importData["tables"]["workflow"])));
|
||||
break;
|
||||
}
|
||||
|
||||
$this->importData["tables"]["bpmn"]["project"][0]["prj_name"] = $name;
|
||||
$this->importData["tables"]["bpmn"]["diagram"][0]["dia_name"] = $name;
|
||||
$this->importData["tables"]["bpmn"]["process"][0]["pro_name"] = $name;
|
||||
@@ -95,7 +176,7 @@ abstract class Importer
|
||||
{
|
||||
if ($this->validateSource() === false) {
|
||||
throw new \Exception(
|
||||
"Error, Invalid file type or the file have corrupt data",
|
||||
\G::LoadTranslation("ID_IMPORTER_ERROR_FILE_INVALID_TYPE_OR_CORRUPT_DATA"),
|
||||
self::IMPORT_STAT_INVALID_SOURCE_FILE
|
||||
);
|
||||
}
|
||||
@@ -122,12 +203,14 @@ abstract class Importer
|
||||
public function validateImportData()
|
||||
{
|
||||
if (! isset($this->importData["tables"]["bpmn"])) {
|
||||
throw new \Exception("BPMN Definition is missing.");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_BPMN_DEFINITION_IS_MISSING"));
|
||||
}
|
||||
if (! isset($this->importData["tables"]["bpmn"]["project"]) || count($this->importData["tables"]["bpmn"]["project"]) !== 1) {
|
||||
throw new \Exception("BPMN table: \"Project\", definition is missing or has multiple definition.");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_BPMN_PROJECT_TABLE_DEFINITION_IS_MISSING"));
|
||||
}
|
||||
|
||||
$this->throwExceptionIfExistsReservedWordsSql((object)($this->importData["tables"]["workflow"]));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -201,13 +284,13 @@ abstract class Importer
|
||||
public function setSourceFromGlobals($varName)
|
||||
{
|
||||
if (! array_key_exists($varName, $_FILES)) {
|
||||
throw new \Exception("Couldn't find specified source \"$varName\" in PHP Globals");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_COULD_NOT_FIND_SPECIFIED_SOURCE_IN_PHP_GLOBALS", array($varName)));
|
||||
}
|
||||
|
||||
$data = $_FILES[$varName];
|
||||
|
||||
if ($data["error"] != 0) {
|
||||
throw new \Exception("Error while uploading file. Error code: {$data["error"]}");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_ERROR_WHILE_UPLOADING_FILE", array($data["error"])));
|
||||
}
|
||||
|
||||
if (! is_dir($this->getSaveDir())) {
|
||||
@@ -386,17 +469,19 @@ abstract class Importer
|
||||
* Imports a Project sent through the POST method ($_FILES)
|
||||
*
|
||||
* @param array $arrayData Data
|
||||
* @param string $option Option ("CREATE", "OVERWRITE", "DISABLE", "KEEP")
|
||||
* @param string $option Option for Project ("CREATE", "OVERWRITE", "DISABLE", "KEEP")
|
||||
* @param string $optionGroup Option for Group ("CREATE", "RENAME", "MERGE")
|
||||
* @param array $arrayFieldName The field's names
|
||||
*
|
||||
* return array Returns the data sent and the unique id of Project
|
||||
*/
|
||||
public function importPostFile(array $arrayData, $option = "CREATE", array $arrayFieldName = array())
|
||||
public function importPostFile(array $arrayData, $option = "CREATE", $optionGroup = "CREATE", array $arrayFieldName = array())
|
||||
{
|
||||
try {
|
||||
//Set data
|
||||
$arrayFieldName["projectFile"] = (isset($arrayFieldName["projectFile"]))? $arrayFieldName["projectFile"] : "PROJECT_FILE";
|
||||
$arrayFieldName["option"] = (isset($arrayFieldName["option"]))? $arrayFieldName["option"] : "OPTION";
|
||||
$arrayFieldName["optionGroup"] = (isset($arrayFieldName["optionGroup"]))? $arrayFieldName["optionGroup"] : "OPTION_GROUP";
|
||||
|
||||
$arrayFieldDefinition = array(
|
||||
$arrayFieldName["projectFile"] => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "projectFile")
|
||||
@@ -418,6 +503,9 @@ abstract class Importer
|
||||
$optionCaseUpper = (strtoupper($option) == $option)? true : false;
|
||||
$option = strtoupper($option);
|
||||
|
||||
$optionGroupCaseUpper = (strtoupper($optionGroup) == $optionGroup)? true : false;
|
||||
$optionGroup = strtoupper($optionGroup);
|
||||
|
||||
//Verify data
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
$validator = new \ProcessMaker\BusinessModel\Validator();
|
||||
@@ -427,37 +515,56 @@ abstract class Importer
|
||||
$process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $arrayFieldDefinition, $arrayFieldNameForException, true);
|
||||
|
||||
$arrayOptionDefaultValues = array("CREATE", "OVERWRITE", "DISABLE", "KEEP");
|
||||
$arrayOptionGroupDefaultValues = array("CREATE", "RENAME", "MERGE");
|
||||
|
||||
if ($option . "" != "") {
|
||||
if (!in_array($option, $arrayOptionDefaultValues, true)) {
|
||||
$strdv = implode("|", $arrayOptionDefaultValues);
|
||||
$arrayAux = array(
|
||||
array($option, $arrayOptionDefaultValues, $arrayFieldNameForException["option"], $optionCaseUpper),
|
||||
array($optionGroup, $arrayOptionGroupDefaultValues, $arrayFieldNameForException["optionGroup"], $optionGroupCaseUpper)
|
||||
);
|
||||
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($arrayFieldNameForException["option"], ($optionCaseUpper)? $strdv : strtolower($strdv)), "Invalid value for \"{0}\", it only accepts values: \"{1}\".")));
|
||||
foreach ($arrayAux as $value) {
|
||||
$opt = $value[0];
|
||||
$arrayDefaultValues = $value[1];
|
||||
$fieldNameForException = $value[2];
|
||||
$caseUpper = $value[3];
|
||||
|
||||
if ($opt != "") {
|
||||
if (!in_array($opt, $arrayDefaultValues, true)) {
|
||||
$strdv = implode("|", $arrayDefaultValues);
|
||||
|
||||
throw new \Exception(
|
||||
\G::LoadTranslation(
|
||||
"ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES",
|
||||
array($fieldNameForException, ($caseUpper)? $strdv : strtolower($strdv))
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((isset($_FILES["filePmx"]) && pathinfo($_FILES["filePmx"]["name"], PATHINFO_EXTENSION) != "pmx") ||
|
||||
(isset($arrayData[$arrayFieldName["projectFile"]]) && pathinfo($arrayData[$arrayFieldName["projectFile"]], PATHINFO_EXTENSION) != "pmx")
|
||||
) {
|
||||
throw (new \Exception("The file extension not is \"pmx\""));
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_FILE_EXTENSION_IS_NOT_PMX"));
|
||||
}
|
||||
|
||||
//Set variables
|
||||
$opt = self::IMPORT_OPTION_CREATE_NEW; //CREATE
|
||||
$arrayAux = array(
|
||||
(($option != "")? "CREATE" : "") => self::IMPORT_OPTION_CREATE_NEW,
|
||||
"OVERWRITE" => self::IMPORT_OPTION_OVERWRITE,
|
||||
"DISABLE" => self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW,
|
||||
"KEEP" => self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW
|
||||
);
|
||||
|
||||
switch ($option) {
|
||||
case "OVERWRITE":
|
||||
$opt = self::IMPORT_OPTION_OVERWRITE;
|
||||
break;
|
||||
case "DISABLE":
|
||||
$opt = self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW;
|
||||
break;
|
||||
case "KEEP":
|
||||
$opt = self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW;
|
||||
break;
|
||||
}
|
||||
$option = $arrayAux[$option];
|
||||
|
||||
$option = $opt;
|
||||
$arrayAux = array(
|
||||
(($optionGroup != "")? "CREATE" : "") => self::GROUP_IMPORT_OPTION_CREATE_NEW,
|
||||
"RENAME" => self::GROUP_IMPORT_OPTION_RENAME,
|
||||
"MERGE" => self::GROUP_IMPORT_OPTION_MERGE_PREEXISTENT
|
||||
);
|
||||
|
||||
$optionGroup = $arrayAux[$optionGroup];
|
||||
|
||||
if (isset($_FILES["filePmx"])) {
|
||||
$this->setSourceFromGlobals("filePmx");
|
||||
@@ -467,19 +574,38 @@ abstract class Importer
|
||||
if (isset($arrayData[$arrayFieldName["projectFile"]]) && file_exists($filePmx)) {
|
||||
$this->setSourceFile($filePmx);
|
||||
} else {
|
||||
throw (new \Exception(str_replace(array("{0}", "{1}"), array($arrayFieldNameForException["projectFile"], $arrayData[$arrayFieldName["projectFile"]]), "The file with {0}: \"{1}\" does not exist.")));
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_FILE_DOES_NOT_EXIST", array($arrayFieldNameForException["projectFile"], $arrayData[$arrayFieldName["projectFile"]])));
|
||||
}
|
||||
}
|
||||
|
||||
//Import
|
||||
try {
|
||||
$projectUid = $this->import($option);
|
||||
$projectUid = $this->import($option, $optionGroup);
|
||||
|
||||
$arrayData = array_merge(array("PRJ_UID" => $projectUid), $arrayData);
|
||||
} catch (\Exception $e) {
|
||||
$msg = str_replace(array(self::IMPORT_OPTION_CREATE_NEW, self::IMPORT_OPTION_OVERWRITE, self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW, self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW), $arrayOptionDefaultValues, $e->getMessage());
|
||||
$strOpt = implode("|", $arrayOptionDefaultValues);
|
||||
$strOptg = implode("|", $arrayOptionGroupDefaultValues);
|
||||
|
||||
throw (new \Exception($msg));
|
||||
$strOpt = ($optionCaseUpper)? $strOpt : strtolower($strOpt);
|
||||
$strOptg = ($optionGroupCaseUpper)? $strOptg : strtolower($strOptg);
|
||||
|
||||
$msg = str_replace(
|
||||
array(
|
||||
self::IMPORT_OPTION_CREATE_NEW,
|
||||
self::IMPORT_OPTION_OVERWRITE,
|
||||
self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW,
|
||||
self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW,
|
||||
|
||||
self::GROUP_IMPORT_OPTION_CREATE_NEW,
|
||||
self::GROUP_IMPORT_OPTION_RENAME,
|
||||
self::GROUP_IMPORT_OPTION_MERGE_PREEXISTENT
|
||||
),
|
||||
array_merge(explode("|", $strOpt), explode("|", $strOptg)),
|
||||
$e->getMessage()
|
||||
);
|
||||
|
||||
throw new \Exception($msg);
|
||||
}
|
||||
|
||||
//Return
|
||||
|
||||
@@ -33,20 +33,20 @@ class XmlImporter extends Importer
|
||||
$this->version = $this->root->getAttribute("version");
|
||||
|
||||
if (empty($this->version)) {
|
||||
throw new \Exception("ProcessMaker Project version is missing on file source.");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_FILE_PROCESSMAKER_PROJECT_VERSION_IS_MISSING"));
|
||||
}
|
||||
|
||||
// read metadata section
|
||||
$metadataNode = $this->root->getElementsByTagName("metadata");
|
||||
|
||||
if ($metadataNode->length != 1) {
|
||||
throw new \Exception("Invalid Document format, metadata section is missing or has multiple definition.");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_FILE_INVALID_DOCUMENT_FORMAT_METADATA_IS_MISSING"));
|
||||
}
|
||||
|
||||
$metadataNodeList = $metadataNode->item(0)->getElementsByTagName("meta");
|
||||
|
||||
if ($metadataNodeList->length == 0) {
|
||||
throw new \Exception("Invalid Document format, metadata information is corrupt.");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_FILE_INVALID_DOCUMENT_FORMAT_METADATA_IS_CORRUPT"));
|
||||
}
|
||||
|
||||
|
||||
@@ -59,9 +59,9 @@ class XmlImporter extends Importer
|
||||
$definitions = $this->root->getElementsByTagName("definition");
|
||||
|
||||
if ($definitions->length == 0) {
|
||||
throw new \Exception("Definition section is missing.");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_FILE_DEFINITION_SECTION_IS_MISSING"));
|
||||
} elseif ($definitions->length < 2) {
|
||||
throw new \Exception("Definition section is incomplete.");
|
||||
throw new \Exception(\G::LoadTranslation("ID_IMPORTER_FILE_DEFINITION_SECTION_IS_INCOMPLETE"));
|
||||
}
|
||||
|
||||
$tables = array();
|
||||
@@ -89,7 +89,10 @@ class XmlImporter extends Importer
|
||||
$columns = array();
|
||||
|
||||
foreach ($recordsNode->childNodes as $columnNode) {
|
||||
if ($columnNode->nodeName == "#text") continue;
|
||||
if ($columnNode->nodeName == "#text") {
|
||||
continue;
|
||||
}
|
||||
|
||||
//$columns[strtoupper($columnNode->nodeName)] = self::getTextNode($columnNode);;
|
||||
$columnName = $defClass == "workflow" ? strtoupper($columnNode->nodeName) : $columnNode->nodeName;
|
||||
$columns[$columnName] = self::getTextNode($columnNode);
|
||||
@@ -132,7 +135,7 @@ class XmlImporter extends Importer
|
||||
{
|
||||
if ($node->nodeType == XML_ELEMENT_NODE) {
|
||||
return $node->textContent;
|
||||
} else if ($node->nodeType == XML_TEXT_NODE || $node->nodeType == XML_CDATA_SECTION_NODE) {
|
||||
} elseif ($node->nodeType == XML_TEXT_NODE || $node->nodeType == XML_CDATA_SECTION_NODE) {
|
||||
return (string) simplexml_import_dom($node->parentNode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -668,6 +668,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$diagram = isset($projectData["diagrams"]) && isset($projectData["diagrams"][0]) ? $projectData["diagrams"][0] : array();
|
||||
$result = array();
|
||||
|
||||
$projectData['prj_uid'] = $prjUid;
|
||||
$bwp = BpmnWorkflow::load($prjUid);
|
||||
$projectRecord = array_change_key_case($projectData, CASE_UPPER);
|
||||
$bwp->update($projectRecord);
|
||||
@@ -799,7 +800,6 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$bwp->removeGateway($gatewayData["GAT_UID"]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Diagram's Events Handling
|
||||
*/
|
||||
|
||||
@@ -129,7 +129,7 @@ class Workflow extends Handler
|
||||
{
|
||||
//return Project::getAll($start, $limit, $filter, $changeCaseTo);
|
||||
$process = new Process();
|
||||
$processes = $process->getAllProcesses( $start, $limit, "", "");
|
||||
$processes = $process->getAllProcesses($start, $limit);
|
||||
//$processes = $process->getAll();
|
||||
|
||||
if ($changeCaseTo != CASE_UPPER) {
|
||||
|
||||
@@ -63,6 +63,9 @@ class Project extends Api
|
||||
public function post($prj_name, $request_data)
|
||||
{
|
||||
try {
|
||||
if (!isset($request_data['prj_author'])) {
|
||||
$request_data['prj_author'] = $this->getUserId();
|
||||
}
|
||||
return Adapter\BpmnWorkflow::createFromStruct($request_data);
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
@@ -128,7 +131,7 @@ class Project extends Api
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPostImport(array $request_data, $option = null)
|
||||
public function doPostImport(array $request_data, $option = null, $option_group = null)
|
||||
{
|
||||
try {
|
||||
$importer = new \ProcessMaker\Importer\XmlImporter();
|
||||
@@ -136,7 +139,12 @@ class Project extends Api
|
||||
$importer->setSaveDir(PATH_DOCUMENT . "input");
|
||||
$importer->setData("usr_uid", $this->getUserId());
|
||||
|
||||
$arrayData = $importer->importPostFile($request_data, $option, array("projectFile" => "project_file", "option" => "option"));
|
||||
$arrayData = $importer->importPostFile(
|
||||
$request_data,
|
||||
$option,
|
||||
$option_group,
|
||||
array("projectFile" => "project_file", "option" => "option", "optionGroup" => "option_group")
|
||||
);
|
||||
|
||||
$response = $arrayData;
|
||||
|
||||
|
||||
@@ -12,20 +12,20 @@ use \Luracast\Restler\RestException;
|
||||
class Trigger extends Api
|
||||
{
|
||||
/**
|
||||
* @url GET /:projectUid/activity/:activityUid/step/:stepUid/trigger/:triggerUid/:type
|
||||
* @url GET /:prj_uid/activity/:act_uid/step/:step_uid/trigger/:tri_uid/:type
|
||||
*
|
||||
* @param string $triggerUid
|
||||
* @param string $stepUid
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $type {@from body}{@choice before,after}
|
||||
* @param string $tri_uid
|
||||
* @param string $step_uid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param string $type {@from body}{@choice before,after}
|
||||
*/
|
||||
public function doGetActivityStepTrigger($triggerUid, $stepUid, $activityUid, $projectUid, $type)
|
||||
public function doGetActivityStepTrigger($tri_uid, $step_uid, $act_uid, $prj_uid, $type)
|
||||
{
|
||||
try {
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$response = $stepTrigger->getTrigger($stepUid, strtoupper($type), $activityUid, $triggerUid);
|
||||
$response = $stepTrigger->getTrigger($step_uid, strtoupper($type), $act_uid, $tri_uid);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
@@ -34,65 +34,65 @@ class Trigger extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
* @url POST /:projectUid/activity/:activityUid/step/:stepUid/trigger
|
||||
* @url POST /:prj_uid/activity/:act_uid/step/:step_uid/trigger
|
||||
*
|
||||
* @param string $stepUid
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $step_uid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param StepTriggerPostStructure $request_data
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPostActivityStepTrigger($stepUid, $activityUid, $projectUid, StepTriggerPostStructure $request_data = null)
|
||||
public function doPostActivityStepTrigger($step_uid, $act_uid, $prj_uid, StepTriggerPostStructure $request_data = null)
|
||||
{
|
||||
try {
|
||||
$request_data = (array)($request_data);
|
||||
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$arrayData = $stepTrigger->create($stepUid, $request_data["st_type"], $activityUid, $request_data["tri_uid"], $request_data);
|
||||
$arrayData = $stepTrigger->create($step_uid, $request_data["st_type"], $act_uid, $request_data["tri_uid"], $request_data);
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url PUT /:projectUid/activity/:activityUid/step/:stepUid/trigger/:triggerUid
|
||||
* @url PUT /:prj_uid/activity/:act_uid/step/:step_uid/trigger/:tri_uid
|
||||
*
|
||||
* @param string $triggerUid
|
||||
* @param string $stepUid
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $tri_uid
|
||||
* @param string $step_uid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param StepTriggerPutStructure $request_data
|
||||
*/
|
||||
public function doPutActivityStepTrigger($triggerUid, $stepUid, $activityUid, $projectUid, StepTriggerPutStructure $request_data = null)
|
||||
public function doPutActivityStepTrigger($tri_uid, $step_uid, $act_uid, $prj_uid, StepTriggerPutStructure $request_data = null)
|
||||
{
|
||||
try {
|
||||
$request_data = (array)($request_data);
|
||||
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$arrayData = $stepTrigger->update($stepUid, $request_data["st_type"], $activityUid, $triggerUid, $request_data);
|
||||
$arrayData = $stepTrigger->update($step_uid, $request_data["st_type"], $act_uid, $tri_uid, $request_data);
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url DELETE /:projectUid/activity/:activityUid/step/:stepUid/trigger/:triggerUid/:type
|
||||
* @url DELETE /:prj_uid/activity/:act_uid/step/:step_uid/trigger/:tri_uid/:type
|
||||
*
|
||||
* @param string $triggerUid
|
||||
* @param string $stepUid
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $type {@from body}{@choice before,after}
|
||||
* @param string $tri_uid
|
||||
* @param string $step_uid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param string $type {@from body}{@choice before,after}
|
||||
*/
|
||||
public function doDeleteActivityStepTrigger($triggerUid, $stepUid, $activityUid, $projectUid, $type)
|
||||
public function doDeleteActivityStepTrigger($tri_uid, $step_uid, $act_uid, $prj_uid, $type)
|
||||
{
|
||||
try {
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$stepTrigger->delete($stepUid, strtoupper($type), $activityUid, $triggerUid);
|
||||
$stepTrigger->delete($step_uid, strtoupper($type), $act_uid, $tri_uid);
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
@@ -101,19 +101,19 @@ class Trigger extends Api
|
||||
//Step "Assign Task"
|
||||
|
||||
/**
|
||||
* @url GET /:projectUid/activity/:activityUid/step/trigger/:triggerUid/:type
|
||||
* @url GET /:prj_uid/activity/:act_uid/step/trigger/:tri_uid/:type
|
||||
*
|
||||
* @param string $triggerUid
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $type {@from body}{@choice before-assignment,before-routing,after-routing}
|
||||
* @param string $tri_uid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param string $type {@from body}{@choice before-assignment,before-routing,after-routing}
|
||||
*/
|
||||
public function doGetActivityStepAssignTaskTrigger($triggerUid, $activityUid, $projectUid, $type)
|
||||
public function doGetActivityStepAssignTaskTrigger($tri_uid, $act_uid, $prj_uid, $type)
|
||||
{
|
||||
try {
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$response = $stepTrigger->getTrigger("", strtoupper(str_replace("-", "_", $type)), $activityUid, $triggerUid);
|
||||
$response = $stepTrigger->getTrigger("", strtoupper(str_replace("-", "_", $type)), $act_uid, $tri_uid);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
@@ -122,62 +122,62 @@ class Trigger extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
* @url POST /:projectUid/activity/:activityUid/step/trigger
|
||||
* @url POST /:prj_uid/activity/:act_uid/step/trigger
|
||||
*
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param StepAssignTaskTriggerPostStructure $request_data
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPostActivityStepAssignTaskTrigger($activityUid, $projectUid, StepAssignTaskTriggerPostStructure $request_data = null)
|
||||
public function doPostActivityStepAssignTaskTrigger($act_uid, $prj_uid, StepAssignTaskTriggerPostStructure $request_data = null)
|
||||
{
|
||||
try {
|
||||
$request_data = (array)($request_data);
|
||||
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$arrayData = $stepTrigger->create("", $request_data["st_type"], $activityUid, $request_data["tri_uid"], $request_data);
|
||||
$arrayData = $stepTrigger->create("", $request_data["st_type"], $act_uid, $request_data["tri_uid"], $request_data);
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url PUT /:projectUid/activity/:activityUid/step/trigger/:triggerUid
|
||||
* @url PUT /:prj_uid/activity/:act_uid/step/trigger/:tri_uid
|
||||
*
|
||||
* @param string $triggerUid
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $tri_uid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param StepAssignTaskTriggerPutStructure $request_data
|
||||
*/
|
||||
public function doPutActivityStepAssignTaskTrigger($triggerUid, $activityUid, $projectUid, StepAssignTaskTriggerPutStructure $request_data = null)
|
||||
public function doPutActivityStepAssignTaskTrigger($tri_uid, $act_uid, $prj_uid, StepAssignTaskTriggerPutStructure $request_data = null)
|
||||
{
|
||||
try {
|
||||
$request_data = (array)($request_data);
|
||||
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$arrayData = $stepTrigger->update("", $request_data["st_type"], $activityUid, $triggerUid, $request_data);
|
||||
$arrayData = $stepTrigger->update("", $request_data["st_type"], $act_uid, $tri_uid, $request_data);
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url DELETE /:projectUid/activity/:activityUid/step/trigger/:triggerUid/:type
|
||||
* @url DELETE /:prj_uid/activity/:act_uid/step/trigger/:tri_uid/:type
|
||||
*
|
||||
* @param string $triggerUid
|
||||
* @param string $activityUid
|
||||
* @param string $projectUid
|
||||
* @param string $type {@from body}{@choice before-assignment,before-routing,after-routing}
|
||||
* @param string $tri_uid
|
||||
* @param string $act_uid
|
||||
* @param string $prj_uid
|
||||
* @param string $type {@from body}{@choice before-assignment,before-routing,after-routing}
|
||||
*/
|
||||
public function doDeleteActivityStepAssignTaskTrigger($triggerUid, $activityUid, $projectUid, $type)
|
||||
public function doDeleteActivityStepAssignTaskTrigger($tri_uid, $act_uid, $prj_uid, $type)
|
||||
{
|
||||
try {
|
||||
$stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger();
|
||||
|
||||
$stepTrigger->delete("", strtoupper(str_replace("-", "_", $type)), $activityUid, $triggerUid);
|
||||
$stepTrigger->delete("", strtoupper(str_replace("-", "_", $type)), $act_uid, $tri_uid);
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
|
||||
@@ -128,6 +128,11 @@ class OutputDocumentStructure
|
||||
*/
|
||||
public $out_doc_filename;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
*/
|
||||
public $out_doc_template;
|
||||
|
||||
/**
|
||||
* @var string {@from body} {@choice TCPDF,HTML2PDF}
|
||||
*/
|
||||
|
||||
@@ -256,7 +256,7 @@ class CalendarTest extends \PHPUnit_Framework_TestCase
|
||||
* @covers \ProcessMaker\BusinessModel\Calendar::create
|
||||
*
|
||||
* @expectedException Exception
|
||||
* @expectedExceptionMessage The calendar name with CAL_NAME: "PHPUnit Calendar0" already exists
|
||||
* @expectedExceptionMessage The calendar name with CAL_NAME: "PHPUnit Calendar0" already exists.
|
||||
*/
|
||||
public function testCreateExceptionExistsCalName()
|
||||
{
|
||||
@@ -371,7 +371,7 @@ class CalendarTest extends \PHPUnit_Framework_TestCase
|
||||
* @param array $arrayRecord Data of the calendars
|
||||
*
|
||||
* @expectedException Exception
|
||||
* @expectedExceptionMessage The calendar name with CAL_NAME: "PHPUnit Calendar1" already exists
|
||||
* @expectedExceptionMessage The calendar name with CAL_NAME: "PHPUnit Calendar1" already exists.
|
||||
*/
|
||||
public function testUpdateExceptionExistsCalName($arrayRecord)
|
||||
{
|
||||
|
||||
@@ -846,7 +846,12 @@ importProcessExistGroup = function()
|
||||
success : function(o, resp) {
|
||||
var resp_ = Ext.util.JSON.decode(resp.response.responseText);
|
||||
var sNewProUid = resp_.sNewProUid;
|
||||
window.location.href = "processes_Map?PRO_UID=" + sNewProUid;
|
||||
|
||||
if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") {
|
||||
window.location.href = "../designer?prj_uid=" + sNewProUid;
|
||||
} else {
|
||||
window.location.href = "processes_Map?PRO_UID=" + sNewProUid;
|
||||
}
|
||||
},
|
||||
failure: function(o, resp) {
|
||||
w.close();
|
||||
@@ -975,17 +980,16 @@ importProcessExistProcess = function()
|
||||
success: function(o, resp) {
|
||||
var resp_ = Ext.util.JSON.decode(resp.response.responseText);
|
||||
var sNewProUid = resp_.sNewProUid;
|
||||
var projectType = (typeof(resp_.project_type) != "undefined")? resp_.project_type : "classicProject";
|
||||
|
||||
if (resp_.ExistGroupsInDatabase == 0) {
|
||||
if (projectType == "classicProject") {
|
||||
window.location.href = "processes_Map?PRO_UID=" + sNewProUid;
|
||||
} else {
|
||||
if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") {
|
||||
window.location.href = "../designer?prj_uid=" + sNewProUid;
|
||||
} else {
|
||||
window.location.href = "processes_Map?PRO_UID=" + sNewProUid;
|
||||
}
|
||||
}
|
||||
else {
|
||||
importProcessGlobal.proFileName = resp_.fileName;
|
||||
importProcessGlobal.proFileName = resp_.proFileName;
|
||||
importProcessGlobal.groupBeforeAccion = resp_.groupBeforeAccion;
|
||||
importProcessGlobal.sNewProUid = resp_.sNewProUid;
|
||||
importProcessGlobal.importOption = resp_.importOption;
|
||||
@@ -1090,8 +1094,9 @@ importProcess = function()
|
||||
if (resp_.catchMessage == "") {
|
||||
if (resp_.ExistProcessInDatabase == "0") {
|
||||
if (resp_.ExistGroupsInDatabase == "0") {
|
||||
var sNewProUid = resp_.sNewProUid;
|
||||
if (resp_.project_type && resp_.project_type == "bpmn") {
|
||||
var sNewProUid = resp_.sNewProUid;
|
||||
|
||||
if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") {
|
||||
window.location.href = "../designer?prj_uid=" + sNewProUid;
|
||||
} else {
|
||||
window.location.href = "processes_Map?PRO_UID=" + sNewProUid;
|
||||
|
||||
Reference in New Issue
Block a user