Hi everyone,
I'm working on a customization in the WRKTSK component where I need to add custom columns to an existing table (JT_TASK_TRANSACTION_RTB) and extend several views to include these new fields. The deployment via IFS Developer Studio works perfectly, but when generating the SU3 package through the Lifecycle Portal, the Sanity Build fails with the following error:
ORA-00904: "JD_WORK_START": invalid identifier
Problem Description
I've added 8 custom columns to the JtTaskTransaction entity and created the corresponding .cdb file for the table changes. I also created a .views file to override JT_TASK_TRANSACTION_EXT and several other views that depend on it.
The error occurs when the .apv file tries to create views like JT_TASK_TRANSACTION_UTIL, JT_TRANS_BUNDLE_ALL_WO_UIV, and JT_TASK_TRANSACTION_SRV_UIV. These views reference ext.jd_work_start (and other custom columns) from JT_TASK_TRANSACTION_EXT, but the column doesn't exist at the time of view creation.
Important observation: According to the deployment log, JT_TASK_TRANSACTION_EXT is being executed before the other views. However, it seems the underlying table columns are not yet available when the views are being created.
Files Created
Entity File (JtTaskTransaction-Cust.entity):
entityname JtTaskTransaction;
component WRKTSK;
layer Cust;
attributes {
public JdWorkStart TIMESTAMP A-IU- {
LabelText "Work Start";
}
public JdWorkFinish TIMESTAMP A-IU- {
LabelText "Work Finish";
}
public JdObservation TEXT(4000) A-IU- {
LabelText "Observation";
}
public JdPerformedActionId TEXT(3)/UPPERCASE A-IU- {
LabelText "Performed Action";
}
public JdErrType TEXT(3)/UPPERCASE A-IU- {
LabelText "Fault Type";
}
public JdErrClass TEXT(3)/UPPERCASE A-IU- {
LabelText "Class Id";
}
public JdErrCause TEXT(3)/UPPERCASE A-IU- {
LabelText "Cause";
}
public JdActivityClassId TEXT(3)/UPPERCASE A-IU- {
LabelText "Activity Class";
}
}
associations {
reference JdPerformedActionIdRef MaintenancePerfAction(JdPerformedActionId);
reference JdErrTypeRef WorkOrderTypeCode(JdErrType);
reference JdErrClassRef WorkOrderClassCode(JdErrClass);
reference JdErrCauseRef MaintenanceCauseCode(JdErrCause);
reference JdActivityClassRef JdActivityClass(JdActivityClassId);
}
Views File (JtTaskTransaction-Cust.views) - Abbreviated:
layer Cust;
-------------------- PRIVATE VIEW DEFINITIONS -------------------------------
@Override
VIEW JT_TASK_TRANSACTION_EXT IS
SELECT
jtt.jd_work_start jd_work_start,
jtt.jd_work_finish jd_work_finish,
jtt.jd_observation jd_observation,
jtt.jd_performed_action_id jd_performed_action_id,
jtt.jd_err_type jd_err_type,
jtt.jd_err_class jd_err_class,
jtt.jd_err_cause jd_err_cause,
jtt.jd_activity_class_id jd_activity_class_id;
@Override
VIEW JT_TASK_TRANSACTION_UTIL IS
-- (attribute properties omitted for brevity)
SELECT
ext.jd_work_start jd_work_start,
ext.jd_work_finish jd_work_finish,
ext.jd_observation jd_observation,
ext.jd_performed_action_id jd_performed_action_id,
ext.jd_err_type jd_err_type,
ext.jd_err_class jd_err_class,
ext.jd_err_cause jd_err_cause,
ext.jd_activity_class_id jd_activity_class_id;
-- Similar @Override for JT_TASK_TRANSACTION_SRV_UIV and JT_TRANS_BUNDLE_ALL_WO_UIV
Generated APV Analysis
Looking at the generated .apv file, I can confirm that JT_TASK_TRANSACTION_EXT is created first and includes the custom columns:
stmt_ := stmt_ || ' jtt.jd_work_start jd_work_start,'||eol_;
-- ... other custom columns
However, subsequent views that reference ext.jd_work_start from JT_TASK_TRANSACTION_EXT fail because the columns don't exist in the underlying table at that point.
Error Log (Sanity Build)
!!!Error deploying file wrktsk/JtTaskTransaction.apv at 10-MAR-26 14:17:57
!!!Error occurred while executing Plsql Block
ORA-00904: "JD_WORK_START": invalid identifier
ORA-06512: at line 262
This error occurs for multiple views: JT_TASK_TRANSACTION_UTIL, JT_TRANS_BUNDLE_ALL_WO_UIV, and JT_TASK_TRANSACTION_SRV_UIV.
Any guidance on the correct way to handle this scenario would be greatly appreciated.
Thank you!