This is a known issue (DE37616) with CA PPM object based portlets where you add a multi-select lookup attribute . Please see the steps to reproduce the scenario below:
1. Create a Portlet based on Project Object. You can any some columns in the List Layout, this doesn't matter.
2. Go to List Filter Section : Layout and add field 'Department' (attribute 'department_code')
3. Change Lookup type to 'Multiple-select'
4. Filter Default .. click on the binocular. Select many departments (more than around 120). Click on Add.
5. Click on Save.
Expected Results:
You should be able to save filter default of the Department Attribute with as many departments as you need
Actual Results:
You can not save filter default of the Department Attribute with as many departments as you need. You get Error: System Error. Contact System Administrator.
The error in the application log looks similar to this:
ERROR 2017-11-09 13:09:14,642 [http-nio-80-exec-26] niku.xql2 (clarity:admin:54222770__BC3116C5-8788-4318-8B9A-D43C4186C744:odf.updateUserObjectFilterField) Internal Processing exception
com.niku.union.persistence.PersistenceException:
SQL error code: 1461
Error message: [CA Clarity][Oracle JDBC Driver][Oracle]ORA-01461: can bind a LONG value only for insert into a LONG column
Executed:
update odf_view_attributes
set widget_type = decode(?,0,widget_type,?),
extended_widget_type = ?,
label_pk_id = decode(?,0,label_pk_id,?),
view_id = decode(?,0,view_id,?),
label = decode(?,0,label,?),
display_order = decode(?,0,display_order,?),
width = decode(?,0,width,?),
section_id = decode(?,0,section_id,?),
hidden = decode(?,0,hidden,?),
is_virtual = decode(?,0,is_virtual,?),
is_fixed_widget = decode(?,2,is_fixed_widget,?),
col = decode(?,0,col,?),
image = ?, tip = ?, instruction = ?, instruction_pos = ?,
num_rows = ?, num_cols = ?, is_editable = ?, show_value = ?,
is_required = decode(?,0,is_required,?),
is_presence_required = decode(?,2,is_presence_required,?),
enter_once = decode(?,0,enter_once,?),
is_multi_valued = decode(?,0,is_multi_valued,?),
min_value = ?, max_value = ?, default_value = ?,
xpath_expression = ?,
last_updated_date = ?, last_updated_by = ?
where id = ? or id in ( select ova.id
from odf_view_attributes ova, odf_view_attributes ova2,
odf_views ov, odf_views ov2, odf_subviews osv
where ova2.id = ?
and ova.attribute_code = ova2.attribute_code
and ov.id = ova.view_id
and ov2.id = ova2.view_id
and ova2.view_id = osv.child_view_id
and ov2.view_type = ov.view_type
and ov2.object_code = ov.object_code
and osv.parent_view_id in (
select rsv1.parent_view_id
from odf_views rv, odf_subviews rsv1
where rv.id = ov.id
and rv.id = rsv1.child_view_id
union
select rsv2.parent_view_id
from odf_views rv, odf_subviews rsv1,
odf_subviews rsv2
where rv.id = ov.id
and rv.id = rsv1.child_view_id
and rsv1.parent_view_id = rsv2.child_view_id)
)
Caused by: java.sql.SQLException: [CA Clarity][Oracle JDBC Driver][Oracle]ORA-01461: can bind a LONG value only for insert into a LONG column
Workaround: Don't select many departments in the filter default.