Skip to main content

In previous releases you could modify the type of process step (always, successful, not successful) by double click the arrow in the process flow and change the type. This is not possible anymore (2025.1). I could not find something related to this in the release docs. Is this a known issue or is there a reason for?

Hey Andre, this was a bug which was fixed in the 2025.2 release:

 


Great! Is there also a fix available? 


Yyou can reallow editing by changing the Layout procedure of the process_step table. This Alter statement works for the 2025.1 SF version:

alter procedure [dbo].[lay_process_step]
(
@layout_mode tinyint, -- 0 = add, 1 = update, 2 = navigate
@import_mode tinyint, -- 0 = regular, 1 = import row, 2 = export, 3 = import

@add_button_type tinyint output, -- 0 = enabled, 1 = disabled, 2 = hidden.
@update_button_type tinyint output,
@delete_button_type tinyint output,

@model_id "model_id",
@branch_id "branch_id",
@process_flow_id "process_flow_id",
@process_step_id "process_step_id",
@last_process_action_id "process_action_id",
@last_process_action_successful "process_action_successful",
@order_no "order_no",
@abs_order_no "abs_order_no",
@next_process_action_id "process_action_id",
@process_order_input "no_yes",
@process_order_output "no_yes",
@alias_process_step_id "alias_process_step_id",
@process_step_description "process_step_description",
@insert_user "tsf_user",
@insert_date_time "date_time",
@update_user "tsf_user",
@update_date_time "date_time",
@generated_by_control_proc_id "control_proc_id",

@model_id_type tinyint output, -- 0 = editable, 1 = read only, 2 = hidden inside form, 3 = hidden outside form.
@branch_id_type tinyint output,
@process_flow_id_type tinyint output,
@process_step_id_type tinyint output,
@last_process_action_id_type tinyint output,
@last_process_action_successful_type tinyint output,
@order_no_type tinyint output,
@abs_order_no_type tinyint output,
@next_process_action_id_type tinyint output,
@process_order_input_type tinyint output,
@process_order_output_type tinyint output,
@alias_process_step_id_type tinyint output,
@process_step_description_type tinyint output,
@insert_user_type tinyint output,
@insert_date_time_type tinyint output,
@update_user_type tinyint output,
@update_date_time_type tinyint output,
@generated_by_control_proc_id_type tinyint output,

@model_id_mand tinyint output, -- 0 = optional, 1 = mandatory.
@branch_id_mand tinyint output,
@process_flow_id_mand tinyint output,
@process_step_id_mand tinyint output,
@last_process_action_id_mand tinyint output,
@last_process_action_successful_mand tinyint output,
@order_no_mand tinyint output,
@abs_order_no_mand tinyint output,
@next_process_action_id_mand tinyint output,
@process_order_input_mand tinyint output,
@process_order_output_mand tinyint output,
@alias_process_step_id_mand tinyint output,
@process_step_description_mand tinyint output,
@insert_user_mand tinyint output,
@insert_date_time_mand tinyint output,
@update_user_mand tinyint output,
@update_date_time_mand tinyint output,
@generated_by_control_proc_id_mand tinyint output
)

as
begin

-- Do not count affected rows for performance
SET NOCOUNT ON;

--control_proc_id: layout_hide_alias
--template_id: layout_hide_alias
--prog_object_item_id: hide_alias_process_step_alias_process_step_id
--template_description: Hide alias fields when the RDBMS type is SQL Server

-- Hide alias fields when the RDBMS type is SQL Server
if exists (select 1
from model
where model_id = @model_id
and rdbms_type = 0) -- SQL Server
and @alias_process_step_id is null
begin
set @alias_process_step_id_type = 3
end

--control_proc_id: layout_process_step_always
--template_id: layout_process_step_always
--prog_object_item_id: layout_process_step_always
--template_description: Ensure a process step last-success cannot be modifed when the previous process action was a start or decision node

-- The success type may not be changed for steps following start- and decision nodes
if exists (
select 1
from process_action p
where p.model_id = @model_id
and p.branch_id = @branch_id
and p.process_flow_id = @process_flow_id
and p.process_action_id = @last_process_action_id
and p.process_action_type in (98, 100))
begin
set @last_process_action_successful_type = 1
end

--control_proc_id: layout_generated_read_only
--template_id: layout_generated_by_control_proc_id_read_only_parent
--prog_object_item_id: layout_generated_by_control_proc_id_read_only_parent
--template_description: Generated records will become read-only

if @generated_by_control_proc_id is not null
begin
set @update_button_type = 1
set @delete_button_type = 1
end

--control_proc_id: layout_generated_read_only
--template_id: layout_generated_read_only_child
--prog_object_item_id: layout_generated_read_only_child_ref_process_flow_process_step
--template_description: Children of generated records will become read-only

if exists(select 1
from process_flow
-- Check if the parent is generated
where (generated = 1
or generated_by_control_proc_id is not null
)
and model_id = @model_id
and branch_id = @branch_id
and process_flow_id = @process_flow_id
)
begin
set @update_button_type = 1
set @delete_button_type = 1
set @add_button_type = 1
end

end
go

 


@Mark Jongeling  I need the layout of the task (lay_modify_process_step). 


Good point, here is the one for the modify task:

alter procedure [dbo].[lay_modify_process_step]
(
@layout_mode tinyint, -- 0 = add, 1 = update, 2 = navigate
@import_mode tinyint, -- 0 = regular, 1 = import row, 2 = export, 3 = import

@confirm_button_type tinyint output, -- 0 = enabled, 1 = disabled, 2 = hidden.
@cancel_button_type tinyint output,

@model_id "model_id",
@branch_id "branch_id",
@process_flow_id "process_flow_id",
@process_step_id "process_step_id",
@process_step_description "process_step_description",
@last_process_action_id "process_action_id",
@next_process_action_id "process_action_id",
@last_process_action_successful "process_action_successful",
@order_no "order_no",
@abs_order_no "abs_order_no",

@model_id_type tinyint output, -- 0 = editable, 1 = read only, 2 = hidden inside form, 3 = hidden outside form.
@branch_id_type tinyint output,
@process_flow_id_type tinyint output,
@process_step_id_type tinyint output,
@process_step_description_type tinyint output,
@last_process_action_id_type tinyint output,
@next_process_action_id_type tinyint output,
@last_process_action_successful_type tinyint output,
@order_no_type tinyint output,
@abs_order_no_type tinyint output,

@model_id_mand tinyint output, -- 0 = optional, 1 = mandatory.
@branch_id_mand tinyint output,
@process_flow_id_mand tinyint output,
@process_step_id_mand tinyint output,
@process_step_description_mand tinyint output,
@last_process_action_id_mand tinyint output,
@next_process_action_id_mand tinyint output,
@last_process_action_successful_mand tinyint output,
@order_no_mand tinyint output,
@abs_order_no_mand tinyint output
)

as
begin

-- Do not count affected rows for performance
SET NOCOUNT ON;

--control_proc_id: layout_process_step_always
--template_id: layout_process_step_always
--prog_object_item_id: layout_process_step_always
--template_description: Ensure a process step last-success cannot be modifed when the previous process action was a start or decision node

-- The success type may not be changed for steps following start- and decision nodes
if exists (
select 1
from process_action p
where p.model_id = @model_id
and p.branch_id = @branch_id
and p.process_flow_id = @process_flow_id
and p.process_action_id = @last_process_action_id
and p.process_action_type in (98, 100))
begin
set @last_process_action_successful_type = 1
end

end
GO

 


Thanks! 


Reply