Skip to main content
Question

SU3 - Sanity Build Error - invalid identifier when adding custom columns to existing table and views

  • March 10, 2026
  • 0 replies
  • 16 views

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_UTILJT_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_UTILJT_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!