Solved

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

  • 16 December 2022
  • 5 replies
  • 144 views

Userlevel 2
Badge +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?

icon

Best answer by Mark Jongeling 27 December 2022, 09:35

View original

This topic has been closed for comments

5 replies

Userlevel 7
Badge +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.

Userlevel 2
Badge +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

 

Userlevel 7
Badge +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.

Userlevel 2
Badge +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'

 

Userlevel 7
Badge +23

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.