Skip to main content
Solved

Why are translations for my last few version not visible in table transl_nav?

  • December 16, 2022
  • 5 replies
  • 152 views

Johan van Eijsden
Captain
Forum|alt.badge.img+6

We were trying to create a synchronization script for the Application Model and we noticed that it is not creating lines with “exec sync_transl_nav ...” for language other than ‘NL’. Since we do have lines with “exec sync_transl_full ...” for all our languages that are defined in Software Factory, we expected this as well for the transl_nav.

 

We thought we have already fixed everything for the newly added language based on the ticket: 

but we still see problems for the Tree Menu and Toolbar
 

 

 

What can we do to fix it?

Best answer by Mark Jongeling

Hi Johan,

The difference can be explained as the Software Factory and IAM have different model definitions. For example, IAM makes use of a table called transl whilst the SF uses transl_object_transl (2023.1).

I'm not sure what the MOD database is or what it's use is. But it seems to me there have been alterations to database objects therefor limiting the result and causing issues. 

Again, I suggest creating a ticket for this. I feel that it would be necessary to rerun all scripts from the installation package (excluding 020_upgrade.sql). This will ensure that all objects are back to its original definition.

View original
Did this topic help you find an answer to your question?
This topic has been closed for comments

5 replies

Mark Jongeling
Administrator
Forum|alt.badge.img+23

Hi Johan,

Can you inspect the get_gui_transl_nav procedure in your IAM and SF database? Last time I check there was an exception built in to only allow NL translations to be returned.


Johan van Eijsden
Captain
Forum|alt.badge.img+6

Hi Mark,

 

Yes, Here it is and it seems correct:
 

ALTER procedure [dbo].[get_gui_transl_nav]
(
   @usr_id         usr_id         ,
   @gui_appl_id    id             ,
   @platform       platform       ,
   @appl_lang_id   appl_lang_id   
)
as
begin

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


    --control_proc_id:     sf_gui_proc_get_gui_procedures
    --template_id:         declare_local
    --prog_object_item_id: get_gui_transl_nav_declare_local
    --template_desc:       

    declare @local_usr_id         usr_id          = @usr_id
    declare @local_gui_appl_id    id              = @gui_appl_id
    declare @local_platform       platform        = @platform
    declare @local_appl_lang_id   appl_lang_id    = @appl_lang_id


    --control_proc_id:     sf_gui_proc_get_gui_procedures
    --template_id:         sf_proc_get_gui_procedures_select
    --prog_object_item_id: get_gui_transl_nav_select
    --template_desc:       Control procedure for generating all get gui procedures

    select
        t1.platform,
        t1.appl_lang_id,
        t1.type_of_object,
        t1.transl_object_id,
        t1.transl_form,
        t1.transl_grid,
        t1.transl,
        t1.transl_plural,
        t1.tooltip_text,
        t1.help_text
    from gui_transl_nav t1


    --control_proc_id:     sf_gui_proc_get_gui_procedures
    --template_id:         sf_proc_get_gui_procedures_where
    --prog_object_item_id: get_gui_transl_nav_where
    --template_desc:       Control procedure for generating all get gui procedures

    where
          (t1.usr_id = @local_usr_id)
      and (t1.gui_appl_id = @local_gui_appl_id)
      and (t1.platform = @local_platform)
      and (t1.appl_lang_id = @local_appl_lang_id)


    --control_proc_id:     sf_gui_proc_get_gui_procedures
    --template_id:         sf_proc_get_gui_procedures_order_by
    --prog_object_item_id: get_gui_transl_nav_order
    --template_desc:       Control procedure for generating all get gui procedures

    order by
       t1.project_id
      ,t1.project_vrs_id
      ,t1.platform
      ,t1.appl_lang_id
      ,t1.type_of_object
      ,t1.transl_object_id


end

 


Mark Jongeling
Administrator
Forum|alt.badge.img+23

The debugging of this will probably take some effort. Last thing I can think of that the gui_transl_nav view may be altered. Could you double check that one too?

If that also looks okay, then I suggest creating a ticket for this.


Johan van Eijsden
Captain
Forum|alt.badge.img+6

Hi, I checked the view in IAM and TSF and they both have same definition. But what I also see is that I have different definition for this view in MOD database. Let me share both below:

TSF and IAM:
 

/* Create view gui_transl_nav. */

create view [dbo].[gui_transl_nav]
(
   "usr_id",
   "project_id",
   "project_vrs_id",
   "gui_appl_id",
   "platform",
   "appl_lang_id",
   "type_of_object",
   "transl_object_id",
   "transl_form",
   "transl_grid",
   "transl",
   "transl_plural",
   "tooltip_text",
   "help_text"
)
as


    --control_proc_id:     sf_gui_view_get_gui_views
    --template_id:         without_rights
    --prog_object_item_id: body_gui_transl_nav
    --template_desc:       Get-gui view without role tables to check the rights

    select
       u.usr_id   
      ,v.project_id
      ,v.project_vrs_id                     
      ,v.gui_appl_id
      ,t2.platform
      ,t.appl_lang_id
      ,t.type_of_object
      ,t.transl_object_id
      ,t.transl_form
      ,t.transl_grid
      ,t.transl
      ,t.transl_plural
      ,t.tooltip_text
      ,case when t2.platform = 2 then null else t.help_text end
    from usr u cross join gui_appl v

    -- model table 
    join transl_nav t 
        on t.project_id         = v.project_id
       and t.project_vrs_id     = v.project_vrs_id
       and exists (select 1
                  from usr_role ur
                  where ur.project_id       = t.project_id
                  and ur.project_vrs_id     = t.project_vrs_id
                  and ur.gui_appl_id        = v.gui_appl_id
                  and ur.usr_id             = u.usr_id)


    --control_proc_id:     sf_gui_view_get_gui_views
    --template_id:         join_platform
    --prog_object_item_id: join_platform_gui_transl_nav
    --template_desc:       Join platform

    join platform t2
      on t2.project_id = t.project_id
     and t2.project_vrs_id = t.project_vrs_id
GO

MOD:
 

/* Create view gui_transl_nav. */

create view [dbo].[gui_transl_nav]
(
   "project_id",
   "project_vrs_id",
   "appl_lang_id",
   "type_of_object",
   "transl_object_id",
   "transl_form",
   "transl_grid",
   "transl",
   "transl_plural",
   "tooltip_text",
   "help_text"
)
as


    --control_proc_id:     sf_view_get_gui_views
    --template_id:         sf_view_get_gui_views_gui_transl_nav
    --prog_object_item_id: project_vrs_data
    --template_desc:       Control procedure die alle get_gui views maakt

    select
      t1.project_id, -- project_id,
      t1.project_vrs_id, -- project_vrs_id,
      t1.appl_lang_id, -- appl_lang_id,
      t1.type_of_object, -- type_of_object,
      t1.transl_object_id, -- transl_object_id,  
      t1.transl_form, -- transl_form,
      t1.transl_grid, -- transl_grid,
      t1.transl, -- transl,
      t1.transl_plural, -- transl_plural,
      t1.tooltip_text, -- tooltip_text,
      t1.help_text -- help_text
    from transl_object_transl t1


    --control_proc_id:     sf_view_get_gui_views
    --template_id:         sf_view_get_gui_views_gui_transl_nav_where
    --prog_object_item_id: project_vrs_data_where
    --template_desc:       Control procedure die alle get_gui views maakt

    where t1.type_of_object in ( 6,  -- module_grp
                                12,  -- list_bar
                                13,  -- gui_object
                                87, -- tile_grp
                                294) -- menu
      or t1.type_of_object = 0
        and (
              exists (
                select 1
                from list_bar_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.tab_id      = t1.transl_object_id)
              or exists (
                select 1
                from module_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.tab_id      = t1.transl_object_id)
              or exists (
                select 1
                from tile i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.tab_id      = t1.transl_object_id)
            )

      or t1.type_of_object = 8
        and (
              exists (
                select 1 
                from list_bar_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.process_id  = t1.transl_object_id)
              or exists (
                select 1
                from module_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.process_id  = t1.transl_object_id)
              or exists (
                select 1
                from tile i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.process_id      = t1.transl_object_id)
            )

      or t1.type_of_object = 10
        and (
              exists (
                select 1
                from list_bar_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.report_id   = t1.transl_object_id)
              or exists (
                select 1
                from module_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.report_id   = t1.transl_object_id)
              or exists (
                select 1
                from tile i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.report_id      = t1.transl_object_id)
            )

      or t1.type_of_object = 11
        and (
              exists (
                select 1
                from list_bar_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.task_id     = t1.transl_object_id)
              or exists (
                select 1
                from module_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.task_id     = t1.transl_object_id)
              or exists (
                select 1
                from tile i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.task_id      = t1.transl_object_id)
            )
      or t1.type_of_object = 281
        and (
              exists (
                select 1
                from list_bar_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.tab_variant_id      = t1.transl_object_id)
              or exists (
                select 1
                from module_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.tab_variant_id      = t1.transl_object_id)
              or exists (
                select 1
                from tile i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.tab_variant_id      = t1.transl_object_id)
            )

      or t1.type_of_object = 278
        and (
              exists (
                select 1
                from list_bar_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.report_variant_id   = t1.transl_object_id)
              or exists (
                select 1
                from module_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.report_variant_id   = t1.transl_object_id)
              or exists (
                select 1
                from tile i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.report_variant_id      = t1.transl_object_id)
            )

      or t1.type_of_object = 291
        and (
              exists (
                select 1
                from list_bar_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.task_variant_id     = t1.transl_object_id)
              or exists (
                select 1
                from module_item i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.task_variant_id     = t1.transl_object_id)
              or exists (
                select 1
                from tile i  
                where i.project_id      = t1.project_id
                  and i.project_vrs_id  = t1.project_vrs_id
                  and i.task_variant_id      = t1.transl_object_id)
            )


GO



I don’t know if it helps but another thing that I found is that when I run the below script in IAM or TSF database then I see no results but when I run it on MOD database then it gives me correct result:
 

select * from gui_transl_nav where project_vrs_id='7.0' and transl_object_id = 'projectbeheer'

 


Mark Jongeling
Administrator
Forum|alt.badge.img+23
  • Administrator
  • 3940 replies
  • Answer
  • December 27, 2022

Hi Johan,

The difference can be explained as the Software Factory and IAM have different model definitions. For example, IAM makes use of a table called transl whilst the SF uses transl_object_transl (2023.1).

I'm not sure what the MOD database is or what it's use is. But it seems to me there have been alterations to database objects therefor limiting the result and causing issues. 

Again, I suggest creating a ticket for this. I feel that it would be necessary to rerun all scripts from the installation package (excluding 020_upgrade.sql). This will ensure that all objects are back to its original definition.


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings