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.
Hi Mark,
Yes, Here it is and it seems correct:
ALTER procedure edbo].]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
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.
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 wdbo].]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'
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.