Solved

Validation process flow requirems user input

  • 17 January 2022
  • 8 replies
  • 81 views

Userlevel 3
Badge +11

I’m getting a “Scheduled process flow requires user input” validation. 
I started the process flow with a task but I will schedule this flow.

So I deleted the task from the process flow, and there are only decisions and http connectors left.
But the validation still gives this message.

We’re on 2021.2 with SF. 

What can I do?

icon

Best answer by Mark Jongeling 18 January 2022, 13:40

View original

8 replies

Userlevel 7
Badge +23

Hi Edwin,

It might be that the Decision node is not recognized as a System flow action in the Validation; I vaguely recall a problem with that. Could you check in the Maintenance detail tab screen of Validation and search for validation: val_scheduled_process_flow_with_user_input . It should also list process_action_type 100. Underwater, that is a Decision node.

If that is not the problem, have you tried regenerating the project and thereafter rerun the validations? 

If still not solved, would you mind sharing a photo of the process actions of the given process flow and share the Validation code of validation "val_scheduled_process_flow_with_user_input ”?

Hope this helps and thanks!

Userlevel 3
Badge +11

Hi Mark,

 

See below the process flow. The task is in the process flow at the moment to be able to run it anyhow.

But if I delete the task, the validation about ‘user input is requred’ still remains.

 

 

 

 

And this is the detail of the validation message.

I nowhere see a process_action_type. However if open the debugger in the SF I’m getting this query.

EXEC ctx_validation
     @active_target_ref_id = null,
     @project_id = 'ERP',
     @project_vrs_id = '1.84',
     @validation_id = 'val_scheduled_process_flow_with_user_input',
     @validation_description = N'Scheduled process flow requires user input',
     @validation_grp_id = 'process_flows',
     @validation_type = 5,
     @default_enabled = 1,
     @order_no = 3620,
     @abs_order_no = 7,
     @type_of_object = 29,
     @severity = 0,
     @allow_approve = 0,
     @validation_code = N'insert into validation_msg 
(
    project_id, 
    project_vrs_id, 
    validation_id, 
    pk_col_1, 
    pk_col_2, 
    pk_col_3, 
    pk_col_4, 
    pk_col_5, 
    pk_col_6, 
    pk_col_7, 
    generated, 
    insert_user, 
    insert_date_time, 
    update_user, 
    update_date_time 
)
select
    @project_id,
    @project_vrs_id,
    @validation_id,
    @project_id as pk_col_1,
    @project_vrs_id as pk_col_2,
    p.process_flow_id as pk_col_3,
    null as pk_col_4,
    null as pk_col_5,
    null as pk_col_6,
    null as pk_col_7, 
    1,
    dbo.tsf_user(),
    sysdatetime(),
    dbo.tsf_user(),
    sysdatetime()
  from process_flow_schedule p
 where p.project_id = @project_id
   and p.project_vrs_id = @project_vrs_id
   and exists ( select 1
                from process_action pa
                where pa.project_id      = p.project_id
                  and pa.project_vrs_id  = p.project_vrs_id
                  and pa.process_flow_id = p.process_flow_id
                  and pa.process_action_type not in ( 98,   -- start
                                                      99,   -- stop
                                                      100,  -- decision
                                                      560,  -- oauth_login_connector
                                                      580,  -- appl_connector
                                                      590,  -- db_connector
                                                      600,  -- http_connector
                                                      610,  -- ftp_connector
                                                      620,  -- smtp_connector
                                                      630,  -- read_file_connector
                                                      640,  -- write_file_connector
                                                      650,  -- move_file_connector
                                                      660,  -- delete_file_connector
                                                      670,  -- create_folder_connector
                                                      680,  -- move_folder_connector
                                                      690,  -- delete_folder_connector
                                                      700,  -- conv_json_to_xml
                                                      710,  -- conv_xml_to_json
                                                      720,  -- copy_file_connector
                                                      730,  -- copy_folder_connector                                  
                                                      800,  -- Get AutoML training options
                                                      810,  -- Train AutoML regression model
                                                      820,  -- Train AutoML classification model
                                                      850)  -- Execute AutoML model
              )',
     @executed = 1,
     @verified = 1,
     @generated = 1,
     @insert_user = 'wooncentrum\edwins',
     @insert_date_time = '2022-01-17 15:53:34.899',
     @update_user = 'wooncentrum\edwins',
     @update_date_time = '2022-01-17 15:53:34.899',
     @generated_by_control_proc_id = null,
     @ref_validation_validation_msg_type = 0,
     @mark_validation_verified_type = 2

 

Based on this query I created the following query

use sf

go

declare @project_id varchar(20)= 'erp'

, @project_vrs_id varchar(20) = '1.84'

 

select

    p.project_id,

    p.project_vrs_id,

    --validation_id,

    p.project_id as pk_col_1,

    p.project_vrs_id as pk_col_2,

    p.process_flow_id as pk_col_3,

    pa.process_action_type

    ,pa.process_action_description

    ,pa.process_action_id

  from process_flow_schedule p

  join process_action pa on pa.project_id = p.project_id

  and pa.project_vrs_id = p.project_vrs_id

  and pa.process_flow_id = p.process_flow_id

where p.project_id = @project_id

   and p.project_vrs_id = @project_vrs_id

   and exists ( select 1

                from process_action pa

                where pa.project_id      = p.project_id

                  and pa.project_vrs_id  = p.project_vrs_id

                  and pa.process_flow_id = p.process_flow_id

                  and pa.process_action_type not in ( 98,   -- start

                                                      99,   -- stop

                                                      100,  -- decision

                                                      560,  -- oauth_login_connector

                                                      580,  -- appl_connector

                                                      590,  -- db_connector

                                                      600,  -- http_connector

                                                      610,  -- ftp_connector

                                                      620,  -- smtp_connector

                                                      630,  -- read_file_connector

                                                      640,  -- write_file_connector

                                                      650,  -- move_file_connector

                                                      660,  -- delete_file_connector

                                                      670,  -- create_folder_connector

                                                      680,  -- move_folder_connector

                                                      690,  -- delete_folder_connector

                                                      700,  -- conv_json_to_xml

                                                      710,  -- conv_xml_to_json

                                                      720,  -- copy_file_connector

                                                      730,  -- copy_folder_connector                                  

                                                      800,  -- Get AutoML training options

                                                      810,  -- Train AutoML regression model

                                                      820,  -- Train AutoML classification model

                                                      850)  -- Execute AutoML model

              )

The result of this is:

ERP    1.84    ERP    1.84    proc_exact_leveranciers_aanmaken    600    Maakt de bankrekening aan    bank_rekening_aanmaken
ERP    1.84    ERP    1.84    proc_exact_leveranciers_aanmaken    600    NULL    post_leveranciers
ERP    1.84    ERP    1.84    proc_exact_leveranciers_aanmaken    100    Haalt het acces token op    proc_exact_leverancier_get_var
ERP    1.84    ERP    1.84    proc_exact_leveranciers_aanmaken    98    NULL    start
ERP    1.84    ERP    1.84    proc_exact_leveranciers_aanmaken    99    NULL    stop
ERP    1.84    ERP    1.84    proc_exact_leveranciers_aanmaken    100    NULL    token_expiratie_verlopen
ERP    1.84    ERP    1.84    proc_exact_leveranciers_aanmaken    570    NULL    verstuur_leverancier_refresh_token

 

 

 


 

Userlevel 3
Badge +11

Mark, The 570 process action type is not allowed in a system flow…. that’s really annoying because Exact tokens do have an expire within 10 minutes.

So i included in my process flow a call to update the tokens if the expiration date/time is passed. That works great if I start the flow from a task. Why is it not allowed to refresh tokens in a system flow? 

Userlevel 7
Badge +23

Hi Edwin,

That is a problem in the Software Factory, the OAuth login connector cannot be used inside system flows as it may need user input but the OAuth Refresh token connector should, of course, be usable in system flows.

Would you mind creating a ticket for this? Then our Software Factory team can solve this thoroughly as this system flow action check is used at multiple places in the SF.

Userlevel 7
Badge +23

Thank you for the ticket Edwin, we have started creating a hotfix for this issue. Luckily only the validation itself has the problem; synchronization to IAM will still succeed as in that process the correct process action is listed.

After an internal check, it will be released. Sorry for the inconvenience but thanks for improving the Software Factory! 

Userlevel 3
Badge +11

Mark, this means that I can ignore this message and synchronize anyhow? The message should have no effect on the system flow in IAM?

 

Userlevel 7
Badge +23

Mark, this means that I can ignore this message and synchronize anyhow? The message should have no effect on the system flow in IAM?

 

That is correct, as far as I can see the system flow would be synced in whole to IAM; so with the OAuth refresh token connector. 

Userlevel 3
Badge +11

OK I’ll try..

 

Reply