Export Large Properties Overview



Increasingly the Plex community have used Source Control tools such as WinMerge, Concurrent Versions System, MKS Source, Subversion, Microsoft Visual SourceSafe to supplement CA Plex existing change management procedures, secondly your application models saved in text format provides a useful resource to conduct impact analysis or search functionality.

Some interesting forum threads discussing such issues:
Keep and archive of your action diagrams
Comparing two levels

Currently you can export the action diagrams for a model as text files (and the whole model as an xml export file). Why not export ALL large properties as text files which can also be recognised in an import feature to create a list of text file objects back in your local model.


If you have particularly large models this option may prove more effective than using Search Large Properties for certain object types.

The client application allows you to select which object type you want to export, in which Library(s) the objects are to belong and lastly various options to dictate where the export files are to be saved. The result is a snap shot of a model(s) large properties for a particular version/level.


Add-In Setting

Instructions

Launch application from Plex Add-In tool bar. If you are unable to see the Add-In toolbar from View, Toolbars… menu option choose Show toolbar.


Alert Message “Application Models Dialog”
This message is to alert the developer to the current application models found in their template plex.in file (found in CA Plex installation directory).


System Section: [Options]
System Key: GMFileX


which will make up the list of libraries shown in the combo box.



If you don’t see all your models that you want termed as application models you need to copy GMFile settings from your user plex.ini file to your template plex.ini file found in the CA Plex installation directory.


It is important to have a complete list because not only does this define which models are application models but also the logic is anything else must be a shipped library

Export Criteria Entry


  1. Object Type multi select list box: Choose the object type you want to export. Listed are all the object types currently supporting a large property that can be retrieved by model api methods.
  2. Library editable combo: Select one of the following options or enter a library name remembering it is case sensitive: 
    • Host Model – Only objects belonging to the current local model will be included in the export
    • Application Model(s) - Only objects belonging to any of the application models (See Alert Message “Application Models Dialog”) will be exported
    • Shipped Libraries - Only objects belonging to any of the NON application models (See Alert Message “Application Models Dialog”) will be exported
    • All Libraries – No library restriction
  1. FullPath edit box: Enter the directory you want the text files saved to under the application created folder name of “ExportLargeProperty”. Defaults to the application directory. The recommendation is to export locally before copying the results to a shared drive for best performance. 
  2. Last Modified Date edit box: Allows you to set a cut of date for objects that have been modified on or after the date (See GetObjLastChangedDate Method)
  3. Export ony Local Mods check box: Allows you to export only the Large Property Local modifications. Defaulted to No (See GetFullLPText Method) and checked See GetLPText Method
  4. Create Obj. Type Folder? Check box: Allows you to save the export files under a object type folder. 
  5. Super Size Me check box:By default EnumNamedObjects Method is used to create a container of objects which have the same object type but it became clear the method supplied was not fit for purpose and when interrogating large models the API would fail such as the object browser fails when filtering on Values. Check this option to use a slower process that uses a work around breaking the EnumNamedObjects query into 40 separate queries.
  6. FolderStructure radio buttons: Allows you to save the export files under a Library name folder for which the object belongs
  7. Press OK button or Enter button to start the export 
The suggestion is you take an initial export (snapshot) of the ‘static’ shipped library objects from whence you will only need to export your shipped models between library upgrades.


Results

You will notice the file names have an unusual format:

  • Source codeÐ ACTIVEçµµµImage_.Scripts.Image_LoadImage.TXT 
  • MessageÐ FIELDSçCheckFieldFailed.TXT 
  • FunctionÐ VALIDATEçMeta.TXT 

In order to import the files back into CA Plex as a list, the files must be unique and record which object the large property belongs to in which library. CA Plex allows object names to contain characters that are prohibited in windows file names so the following source code is used to substitute the characters with a reserved character. Apologies to CA Plex sites that legitimately use these reserved characters in the object names but it will cause the import to fail.




So for example WSYBASE\AttributeString.onload="Init();" is created as a file called ValueÐ WSYBASEçAttributeString.onload=ðInit();ð.TXT

Performance

“Good things come to those who wait” is an English phrase propounding the virtue of patience OR a pint of Guinness which ever you prefer

Exporting can take hours if you choose to export many object types but this process need not be done every day...a fortnightly dump, once a month, export for each new release. At least you can run an export in the back ground or at the end of the day, You could argue with your boss that you were working after hours also :)

Silly jokes aside performance is not great but the results are.

Earlier versions of the model api did lead to gpfs which would have been very frustrating had a process been running for two days for it then to fail but version3.0 of the model api has greater error handling and reduced memory leaks etc

Performance Matrix

Export Object Type  LP Exported Average Response Time
Message 9,851 36secs
Message 8,179 33 secs
Message 9,015 35 secs
Source Code 4,355 22 secs
Source Code 1,001 19 secs
Source Code 1,442 22 secs
Function (No Websydian)25,0522hrs 3 mins