‎18-09-2025 03:46 PM
Bonjour,
Version used: HOPEX Aquila 6.1 SP2 CU8 (17.1.2-cu.08+7036)
When we create a new library and attach a parent library to it, the "long" name is not refreshed.
For example, with "HOPEX Customizer" profile, if I create an application as follows:
- Home > side menu > Environment > "Standard Navigation"
- On the "Library" folder line, I click on "+" (tooltip "New > Library")
- I enter the name of my new library: "Library-1", for example, then I validate the window
- I open the application properties window, in the "Characteristics - Characteristics" tab, I link a parent library, "Parent-library-0", for example. Then I validate.
- Next, in the properties window for the new library, in the General > Administration tab, we can see that the parent library has not been included in the "long" name. We have:
Name: Library-1
Instead of having:
Name: Parent-library-0::Library-1
In some of our libraries, "long" names take into account any parent libraries, tracing back all parent libraries that may exist.
We have not found a way to refresh the long name of libraries that have an incomplete long name (i.e. not displaying any parent libraries).
Could you tell us how to refresh long library names?
What macro/method/procedure can be used to do this?
We need the full long names because we use them in our processes. The long names of libraries are also used to correctly define the long names of other objects that we use and that may be found in libraries with incorrect long names. These objects that are affected include, for example, applications, application services, packages, diagrams, etc.
Thank you very much in advance for your help!
Sincerely,
Jérôme Court
Solved! Go to Solution.
a week ago
This solution has been found to refresh long library names:
'oLib : Library object
mgRoot.Print "Before : " & oLib.MegaField
'Retrieving the parent library
Set collParLib = oLib.GetCollection("~c0BwgylnMnHB[Parent Library]")
If collParLib.Count > 0 Then
For Each oParLib in collParLib
'There is only one parent library
Exit For
Next
'Retrieve parent library _HexaIdAbs
strHexaIdAbs = oParLib.GetProp("~H20000000550[_HexaIdAbs]")
'Retrieve physical Generic Local name of library
strGenLocalName = oLib.GetProp("~g20000000f60[Generic Local name]","Physical")
'Test physical Generic Local name _HexaIdAbs
If Right(strGenLocalName,18) = "[0000000000000000]" Then
'Replace _HexaIdAb
oLib.GetProp("~g20000000f60[Generic Local name]","Physical") = mid(strGenLocalName,1,Len(strGenLocalName)-17) & strHexaIdAbs & "]"
Else
'_HexaIdAbs of Generic Local name different from 16 zeros
mgRoot.Print " _HexaIdAbs of physical Generic Local name not replaced : " & Right(strGenLocalName,18)
End If
Else
'There is no parent library: no processing
End If
mgRoot.Print "After : " & oLib.MegaField
‎25-09-2025 04:03 PM
To supplement my initial question, here are some screenshots to illustrate my point.
These first screenshots show the expected situation: the "long" name contains the parent libraries.
And these screenshots show what we get today: a "long" name that is the same as the short name.
 
Another addition:
We have the same problem with applications whose "long" names do not contain the holding libraries. But we have found a way to update their "long" names. All you need to do is process them with this type of VB Script:
iUpdateNb = 0
For iCounter = 0 to (iAppliNb-1)
Set oAppli = mgRoot.GetObjectFromId(arrApplis(iCounter))
If oAppli.Exists Then
If oAppli.Protection.Active = True Then
mgRoot.Print " Update impossible, object protected : " & oAppli.MegaField & " / Status : " & oAppli.Protection.Status
Else
mgRoot.Print " Application name before : " & oAppli.MegaField
strShortName = oAppli.GetProp("~Z20000000D60[Local name]")
oAppli.GetProp("~Z20000000D60[Local name]") = "Temporary name"
oAppli.GetProp("~Z20000000D60[Local name]") = strShortName
mgRoot.Print " after : " & oAppli.MegaField
iUpdateNb = iUpdateNb + 1
End If
Else
mgRoot.Print " Not found object : " & arrApplis(iCounter)
End If
Next
Unfortunately, this solution does not work for libraries.
I am therefore still looking for ideas on how to successfully update the "long" names of libraries.
If you have any, thank you in advance for your help!
Sincerely,