Error activating system screens on Oracle

Hi,

After an upgrade from 7.5 to 8.3R01 several of the system screens where not activated, f.i. the 'View Ticket' screen. This obviously means functionality in CS is missing. FYI: upgrade.exe did give errors during the upgrade. 

When now trying to activate the screen you get an error, the logged error is added below, but in short it is an Oracle message ORA-01461. A long value is inserted in a CLOB filed and Oracle does not like this.

Workaround here was exporting to MS SQL, activating the screens and scripts and importing back to Oracle. This worked but the question is: will it again give problems in future new screens, scripts and in upgrades?

Anyone seen this before?

SuperOffice 8.3R01 on Oracle 12c, Standard Edition Release 12.1.0.2.0 - 64bit with corresponding ODBC driver.

Thanks,

Rob Jansen 



[04256] [SU ] [blogic.exe ] 2018-11-17 19:08:39.555 [1.994] [1.993]: Blogic8.3.0000.0: DbODBC::FatalException (Query: insert into screen_definition (screen_definition.name,screen_definition.id_string,screen_definition.hierarchy_id,screen_definition.screen_key,screen_definition.layout_model,screen_definition.load_script_body,screen_definition.load_post_cgi_script_body,screen_definition.load_final_script_body,screen_definition.creation_script,scr­een_definition.warn_on_navigate,screen_definition.description,id) values (?,?,?,?,?,?,?,?,?,?,?,39). Error:[Oracle][ODBC][Ora]ORA-01461: en LONG-verdi kan bare bindes for innsetting i en LONG-kolonne
('Quick edit ticket', 'ej_newQuickTicket', '2', '5WOqxkr9kMn8gfmO', '0', '#setLanguageLevel 2;

User activeUser = getActiveUser();

setPageTitle(getLanguageVariable("titleNew"));

if (getVariable("isPosted") == "0")
{
//Read all user settings
FHBitSet userFlags;
userFlags.set(activeUser.getValue("flags"));

Bool useLastCategory = userFlags.getBitNo(1);

//Get html elements we need to use
HtmlElement customer = getHtmlElement("customer");
HtmlElement owner = getHtmlElement("owner");
HtmlElement category = getHtmlElement("category");

// Set the correct owner for the request
if (activeUser.getValue("defaultUser") == "1") // Automatic
owner.setValue("-1");
else if (activeUser.getValue("defaultUser") == "2") // Unassigned
owner.setValue("1");
else // Own
owner.setValue(activeUser.getValue("id"));


// Set the right default category
if (useLastCategory)
getHtmlElement("category").setValue(activeUser.getValue("lastCategory"));
else
getHtmlElement("category").setValue(activeUser.getValue("defaultCategory"));


// Check to see if we have a customer id supplied in the URL and in that case, make him/her the contact person
Integer custId = getCgiVariable("custId").toInteger();

// Check if phone number is included in URL
String phoneNo = getCgiVariable("phoneNo").keepChars("+01234567989");

// try to get customer from externally or from agent if not in ticket
if (custId <= 0)
{
Customer customer;
if (getCgiVariable("extKey") != "")
{
custId = customer.findExternallyFromKey(getCgiVariable("extTable").toInteger(), getCgiVariable("extKey"));
}
else if (getCgiVariable("dbiKey") != "")
{
custId = customer.findFromAgentAndKey(getCgiVariable("dbiAgentId").toInteger(), getCgiVariable("dbiKey"));
}
}


if (custId <= 0 && phoneNo.getLength() > 0)
{
SearchEngine q;
q.addField("person.person_id");
q.addCriteria("person.retired", "equals", "0", "and", 0);
q.addCriteria("person.searchPhone/formattedNumber", "equals", phoneNo, "and", 0);
q.select();

if (!q.eof())
custId = q.getField(0).toInteger();

}

if (custId > 0)
{
customer.setValue(custId.toString());
}
}', '', '', '#setLanguageLevel 2;', '1', null)) in :-1






 

 

RE: Error activating system screens on Oracle

Hi Rob, just curious - did you upgrade directly from 7.5 to 8.3, or did you go from 7.5 -> 8.0 -> 8.3?

Av: Simen Mostuen Iversen 19. nov 2018

RE: Error activating system screens on Oracle

Hi,

 

7.5 -> 8.0 -> 8.1 -> 8.3.

 

Regards,

 

Rob

Av: Rob Jansen 19. nov 2018