# # # # save_log_fields_util.cfv # # # process_new_log_fields() # update_log_field_names_in_database_fields() # # # include "templates.util.base_util"; # # # # process_new_log_fields() # # # subroutine(process_new_log_fields( node new_log_fields), ( delete_node("v.existing_node_names_with_new_node_names"); v.existing_node_names_with_new_node_names = ""; node item; string ori_label; string ori_node_name; string new_node_name; foreach item new_log_fields ( bool is_new = @item{"is_new"}; if (!is_new) then ( # # Resolve language variable # ori_label = @item{"ori_label"}; if ((ori_label ne "") and (get_expanded_label(ori_label) eq @item{"label"})) then ( # The label didn't change, so we use the ori_label set_subnode_value(item, "label", ori_label); ); # # Handle node name # ori_node_name = @item{"ori_node_name"}; new_node_name = node_name(item); if ((ori_node_name ne "") and (ori_node_name ne new_node_name)) then ( "v.existing_node_names_with_new_node_names." . ori_node_name = new_node_name; ); ); # # Delete helper nodes # delete_node(item{"is_new"}); delete_node(item{"ori_node_name"}); delete_node(item{"ori_label"}); ); # # Return existing_node_names_with_new_node_names # "v.existing_node_names_with_new_node_names"; )); # # # # update_log_field_names_in_database_fields() # # # subroutine(update_log_field_names_in_database_fields( node database_fields, node existing_node_names_with_new_node_names), ( node item; string log_field_name; string new_log_field_name; foreach item database_fields ( if ((@item{"derivation_method"} eq "log_field") and item?{"log_field"}) then ( log_field_name = @item{"log_field"}; if (existing_node_names_with_new_node_names?{log_field_name}) then ( # The node name changed. new_log_field_name = @existing_node_names_with_new_node_names{log_field_name}; set_subnode_value(item, "log_field", new_log_field_name); ); ); ); ));