Skip to main content

Hi experts, 

 

Update 11 installation has partly failed with below _deploy errors.

 

Framework: CINT  :Error : Method, added or modified before this refresh, ignored as package name is longer than the allowed limit in the IFS Dictionary. Maximum allowed is 30 characters.

Framework:    Lu Name=CReceiveQuotationActionUtil,

Framework:    Package Name=C_RECEIVE_QUOTATION_ACTION_UTIL_API,

Framework:    Method Name=Init

 

 

-----   ERROR!!!   ------                     

Framework:    The following database objects are longer than the allowed length (30 chars).

Framework:    Included are also objects detected as added or modified before this refresh.

Framework:    This can cause the Dictionary cache refresh to fail.

Framework:    Correct the following and refresh dictionary again.

 

 

This C_RECEIVE_QUOTATION_ACTION_UTIL_API package name contains more than 30 characters.

Could you please let me know whether is it possible to ignore this as generic error or how to extend this IFS Dictionary package name limit?

Thanks in advance.

/Kalana

Kalana,

For clarification, are you saying this package has been working fine with all previous updates (of Apps 10, I assume), but now the most recent update is telling you a package name is too long? Unless IFS actually made the limit smaller, shouldn’t this warning have displayed during all prior updates as well?

I am just trying to get a feel for what is different about Update 11 before we decide to start deploying it…

 

Thanks,

JoeK


Hi Kalana,

 

Seems like you have created a custom package. But this restriction was there in Apps10 since sometime back, not a newly introduced restriction. When you try to create a new LU from DevStudio tool you get the same warming “The entity name should not be more than 26 characters long when converted to db casing”. since the package adds _API at the end this restricts at 26 at development time.

 

Don't think it’s possible to extend this limit. 

 

BR

Harshini


Hi Kalana,

As Harshini also Mentioned it is not possible to Extend this limit for the IFS Dictionary.
By Ignoring this you’ll not get any IFS Dictionary related/consumed functionality support for this package. That is not good.
Best thing to do here is, use DbPackageName Code gen Property and use a shorter name for the generated Package Name.

/Madusanka


@madusankadasanayake, ​@hamalk, ​@sutekh137 

Is this length still enforced in IFSCloud (23r2+)?

We have a large older .utility (written by IFS consultants years ago) that was created outside of LAA. We want to bring it into alignment with best practices.
This deploys fine in oracle (through SQL Developer) but when trying to implement the utility through developer studio we are getting the warning:
`This function name is longer than the allowed maximum of the allowed 30 characters`

Oracle: “Oracle Database prior to version 12.2 limit identifier names, such as table names, column names, and primary key names, to 30 characters. Oracle Database 12.2 and higher have a default limit of 128 characters.”

Is this limitation still enforced or is just a remanent in developer studio that could be updated?


HI ​@PhillBronson 

 

Yes the validation is still exist in the Developer studio as it’s still a limitation in IFS Dictionary sys.

@Navinth Bakmeedeniya , ​@chanaka-shanil Can you please confirm this ?

 

/Harshini


@PhillBronson 

It is correct that the Oracle identifier name length has been extended from 30 to 128 from Oracle 12.2 version. We have IFS Dictionary (a central cache of Oracle objects related to business application where its storage objects starting mostly with dictionary_sys%) that has been built supporting 30-character identifiers, which is yet to be updated supporting the new extension of length in Oracle identifiers. That is why we have these validations present in tools such as IFS Developer Studio.

As of now, this is applicable for latest IFS Cloud release as well, (i.e. 25R1)

cc - ​@hamalk ​@madusankadasanayake ​@Kalana Rathnayake 


@hamalk , ​@Navinth Bakmeedeniya thank you for the clarification. One final question:
 

Because the .utility was created and compiled through Oracle SQL Developer, does this not get included in the IFS Dictionary? 


@hamalk , ​@Navinth Bakmeedeniya I answered my own question by looking at the data in the tables `Dictionary_Sys_Package_TAB` and `Dictionary_Sys_Method_TAB`. The non-LAA utility and its methods are included in the dictionary. However, the methods that break the naming length dictionary requirement are not present (no surprise).

What are the underlying repercussions of having missing methods in the dictionary? Obviously, I want to follow best practices, and a naming change is imminent. This question is to provide further context to my team. Thank you