IRISLIB database
ISC Class Reference

This class is used internally by InterSystems. More...

Inheritance diagram for ISC:
Collaboration diagram for ISC:

Public Member Functions

_.Library.Status AddToSourceControl (_.Library.String InternalName, _.Library.String Description)
 Called to add this item to source control.
 
_.Library.Status AfterUserAction (_.Library.Integer Type, _.Library.String Name, _.Library.String InternalName, _.Library.Integer Answer, _.Library.String Msg, _.Library.Boolean Reload)
 This is called after the <method>UserAction</method> and after any template is run or dialog is displayed. More...
 
 BaselineCSPDir (_.Library.String dir, _.Library.String appDir, _.Library.String app, _.Library.Boolean ToReadOnly, _.Library.Boolean useEnsembleExclusionlist)
 Export the contents of a CSP directory.
 
_.Library.String BaselineExportEnsembleExclude ()
 Earlier versions of Ensemble physically copied files into newly created csp applications; these need to be enumerated so they can be skipped by BaselineExport()
 
_.Library.Status BaselineExportItem (_.Library.String InternalName, _.Library.Boolean ToReadOnly, _.Library.Boolean CheckOut, _.Library.Boolean includeMapped)
 Exports a specific item. More...
 
_.Library.Status CheckIn (_.Library.String InternalName, _.Library.String Description)
 Check this routine/class/csp file into source control.
 
_.Library.Status CheckOut (_.Library.String InternalName, _.Library.String Description, _.Library.Boolean Load)
 Check this routine/class/csp file out of source control. More...
 
_.Library.Status Compile (_.Library.String InternalName)
 Compiles InternalName if it still exists. More...
 
_.Library.String ExternalName (_.Library.String InternalName)
 Convert the internal name, e.g. More...
 
_.Library.Status GetLatest (_.Library.String InternalName)
 Get the latest version of this file from source control.
 
_.Library.Status GetStatus (_.Library.String InternalName, _.Library.Boolean IsInSourceControl, _.Library.Boolean Editable, _.Library.Boolean IsCheckedOut, _.Library.String UserCheckedOut)
 Return information about this entity. More...
 
_.Library.Boolean IsInSourceControl (_.Library.String InternalName)
 Returns true if this item is in source control and false otherwise.
 
_.Library.Status Login (_.Library.String Name, _.Library.String Password)
 Display connection information in the Output display.
 
_.Library.Status OnAfterCompile (_.Library.String InternalName)
 Called after the compile of the item is done.
 
_.Library.Status OnAfterSave (_.Library.String InternalName, _.Library.RegisteredObject Object)
 This is called after the item has been saved to the database. More...
 
_.Library.Status OnAfterStorage (_.Library.String InternalName, _.Library.String Location)
 Called if compilation of the class has modified the storage (or another part of the class) More...
 
_.Library.Status OnBeforeSave (_.Library.String InternalName, _.Library.String Location, _.Library.RegisteredObject Object)
 Called before the item is saved to the database. More...
 
 OnBeforeTimestamp (_.Library.String InternalName)
 Called before Studio checks for the timestamp of an item.
 
_.Library.Status OnMenuItem (_.Library.String MenuName, _.Library.String InternalName, _.Library.String SelectedText, _.Library.Boolean Enabled, _.Library.String DisplayName)
 This is called for every menu item returned to Studio to allow the menu to be enabled/disabled without. More...
 
_.Library.Status RemoveFromSourceControl (_.Library.String InternalName, _.Library.String Description)
 Called to delete this item from source control.
 
_.Library.Status UndoCheckout (_.Library.String InternalName)
 Undo the checkout of this item.
 
_.Library.Status UserAction (_.Library.Integer Type, _.Library.String Name, _.Library.String InternalName, _.Library.String SelectedText, _.Library.String Action, _.Library.String Target, _.Library.String Msg, _.Library.Boolean Reload)
 This is called when the user performs an action that may need to interact with. More...
 
- Public Member Functions inherited from Base
_.Library.Status CheckOut (_.Library.String InternalName, _.Library.String Description)
 Check this routine/class/csp file out of source control.
 
_.Library.Status OnPortalCreate (_.ZEN.proxyObject pUserData)
 Callback invoked when the portal-based Source Control hooks instantiate the source control class. More...
 
- Public Member Functions inherited from Base
_.Library.Boolean IsReadOnly (_.Library.String InternalName)
 Return true if this item should be marked as read only. More...
 
_.Library.Integer ItemIconState (_.Library.String InternalName)
 Used to allow Studio to display different icons in open dialog or project window etc. More...
 
_.Library.Status Logout ()
 Perform any logout step here.
 
_.Library.Status OnAfterClassCompile (_.Library.String List, _.Library.Integer Level, _.Library.String qstruct, _.Library.Status Status)
 Called in the class compiler after we have compiled all the classes before we exit. More...
 
_.Library.Status OnAfterDelete (_.Library.String InternalName)
 Called after an item is deleted.
 
_.Library.Status OnAfterLoad (_.Library.String InternalName, _.Library.RegisteredObject Object)
 This is called after the item is loaded but before it is sent to Studio. More...
 
_.Library.Status OnBeforeClassCompile (_.Library.String List, _.Library.Integer Level, _.Library.String qstruct)
 Called in the class compiler after we have resolved the list of classes to be compiled but. More...
 
_.Library.Status OnBeforeCompile (_.Library.String InternalName, _.Library.String qstruct)
 Called before the compile of the item is done. More...
 
_.Library.Status OnBeforeDelete (_.Library.String InternalName)
 Called before an item is deleted. More...
 
_.Library.Status OnBeforeLoad (_.Library.String InternalName)
 This is called before the actual load of data to give the chance. More...
 
- Public Member Functions inherited from RegisteredObject
_.Library.Status OnAddToSaveSet (_.Library.Integer depth, _.Library.Integer insert, _.Library.Integer callcount)
 This callback method is invoked when the current object is added to the SaveSet,. More...
 
_.Library.Status OnConstructClone (_.Library.RegisteredObject object, _.Library.Boolean deep, _.Library.String cloned)
 This callback method is invoked by the <METHOD>ConstructClone</METHOD> method to. More...
 
_.Library.Status OnNew ()
 This callback method is invoked by the <METHOD>New</METHOD> method to. More...
 
_.Library.Status OnValidateObject ()
 This callback method is invoked by the <METHOD>ValidateObject</METHOD> method to. More...
 

Static Public Member Functions

_.Library.Status AddClassesToSourceControl (_.Library.String classes)
 Add the specified classes to source control.
 
_.Library.Status AddItemsToSourceControl (items)
 Add the specified items to source control.
 
_.Library.Status AddPackagesToSourceControl (_.Library.String packages)
 Add the specified package(s) to source control.
 
_.Library.String BackupName (_.Library.String InternalName)
 Return filename of backup file of this item. More...
 
_.Library.Status BaselineExport (_.Library.Boolean classesOnly, interactive, targetDirectory, _.Library.Boolean changeToReadonly, _.Library.Boolean includeMapped)
 This method exports all Classes, Routines, Include files, CSP Application files, and Projects files from a namespace into a file structure that can then be added to Source Control. More...
 
_.Library.Boolean ClearPerforceTicket ()
 Clears out a stored Perforce ticket which may be stored for the current user.
 
_.Library.Status DSCheckpointExport (_.Library.Boolean ListOnly, _.Library.Boolean AddNew, _.Library.Boolean ExportAll, _.Library.Boolean Interactive)
 The initial implementation of DS II did not include source control hooks in the UI, so it is necessary. More...
 
_.Library.Boolean DefaultCredentialsDefined ()
 Method returns true if there are default perforce credentials defined, and false otherwise. More...
 
_.Library.Status DirectoryInventory (_.Library.String TopDir, Files, _.Library.String CurrentDir)
 Utility Method to walk directory tree and find all files; returned array is keyed by the file minus the top directory and has a value of the full file.
 
_.Library.Status Disconnect (_.Library.Integer Level)
 Disconnect from Perforce depot. More...
 
_.Library.Status DisconnectItem (_.Library.String InternalName)
 Disconnect this document from source control.
 
_.Library.Integer Disconnected ()
 Returns value that shows whether or not this instance is "Disconnected" from Perforce. More...
 
_.Library.Status DisconnectedReconcile (_.Library.String SourceDir, _.Library.String TargetDir, _.Library.String IgnoreExtension, _.Library.String CCR, _.Library.Boolean Initialize)
 
_.Library.Status ExportDefaults (_.Library.String productionName, filename)
 Export System Default Settings and Add to Source Control or Check Out.
 
_.Library.String ExtName (_.Library.String InternalName)
 Return filename of this item.
 
_.Library.Status GeneratePerforceTicket (_.Library.String p4pass, _.Library.String p4ticket)
 This method will accept a Perforce password and will attempt to generate a Perforce ticket tied to this server for use within the hooks. More...
 
_.Library.Boolean GetCredentials (_.Library.String p4user, _.Library.String p4passwd, _.Library.String p4workspace, _.Library.String p4dir, _.Library.String p4port)
 Accessor method for accessing Perforce Credentials for current $USERNAME; returns false if no credentials were available. More...
 
_.Library.Boolean GetSharedWorkspace (_.Library.String p4workspace, _.Library.String p4directory)
 Accessor method to get the Perforce Shared Workspace if it is defined; if it is not defined, the method returns false. More...
 
_.Library.Numeric InstanceVersion ()
 Returns the Major.Minor version for this instance, so it can be used in comparison code which makes sure certain features are used in appropriate versions.
 
_.Library.String InternalNameFromExtName (ExtName, IgnorePercent, IgnoreNonexistent)
 Takes a filename within the local Perforce workspace and returns a best guess as to the InternalName. More...
 
_.Library.Boolean IsExcluded (_.Library.String InternalName)
 Returns 1 if InternalName is excluded from source control.
 
_.Library.String IsGenerated (_.Library.String InternalName)
 Return 1 if you wish this item to appear as if it is 'generated' when opened in Studio,. More...
 
 IsMapped (_.Library.String name, _.Library.String sourcedb)
 Return true if this item is mapped from a database other than the default routine database. More...
 
_.Library.Boolean IsSharedDevInstance ()
 Indicates whether or not this instance is configured to accomodate multiple concurrent developers
More...
 
_.Library.Boolean IsTrakCare ()
 Returns true if this namespace is a TrakCare namespace (note - this will also catch a HealthShare VIEWERLIB, but we shouldn't be changing any data in there anyway)
 
_.Library.String JobUpdateSources ()
 Job off a background job to update the sources information. More...
 
_.Library.Status Lock (_.Library.Boolean Admin)
 Lock the source control hooks for this instance. More...
 
_.Library.String Locked ()
 Returns value that shows whether or not this instance is "Locked". More...
 
_.Library.String Name (_.Library.String InternalName)
 Return the name of this item without the prefix to be added by ExtName.
 
_.Library.Status P4Cmd (_.Library.String cmd, _.Library.String output)
 ** DEPRECATED - Use the more secure <method>SecureP4Cmd</method>. More...
 
_.Library.Boolean ReadOnly (filename)
 Readonly method which will show files marked for User Readonly as readonly even if process is running as root.
 
_.Library.Status Reconnect ()
 Reconnect to the Perforce depot and mark all edited as edited.
 
_.Library.Status ReconnectItem (_.Library.String InternalName)
 Reconnect this document from source control.
 
_.Library.Status RunCmd (_.Library.String cmd, _.Library.String output, _.Library.Boolean display, _.Library.Boolean stream)
 ** DEPRECATED - Use more secure <method>SecureRunCmd</method> instead More...
 
_.Library.Status SecureP4Cmd (args, _.Library.String output)
 Passed a 'p4' by reference list of arguments in args, it runs 'p4' with '-ztag' and returns the parsed output.
 
_.Library.Status SecureRunCmd (_.Library.String cmd, args, _.Library.String output, _.Library.Boolean display, _.Library.Boolean stream, _.Library.String input)
 Run a command and report any error message, return output with. More...
 
_.Library.Boolean SetCredentials (_.Library.String p4user, _.Library.String p4passwd, _.Library.String p4workspace, _.Library.String p4dir, _.Library.String p4port)
 Accessor method for setting Perforce Credentials, returns false if credentials could not be set. More...
 
_.Library.Status SetFileReadOnly (_.Library.String pFile)
 Wrapper around File:SetReadOnly to return a Status.
 
_.Library.Status SetFileWriteable (_.Library.String pFile)
 Wrapper around File:SetWriteable to return a Status.
 
_.Library.Boolean SetSharedWorkspace (_.Library.String p4workspace, _.Library.String p4directory, _.Library.String namespace)
 Accessor method for setting Perforce Shared Workspace; returns false if credentials could not be set. More...
 
_.Library.Boolean StorePerforceTicket (_.Library.String ticket)
 Stores a Perforce ticket for future use by the current user.
 
_.Library.Status Unlock ()
 Unlock the source control hooks for this instance.
 
_.Library.Status UpdateSources ()
 Update the ^Sources information with the file dates after a build.
 
_.Library.Status ValidatePerforceTicket (_.Library.String timeRemaining)
 Validate a ticket and return the amount of time remaining for that ticket. More...
 
- Static Public Member Functions inherited from Base
 GetPortalPageOptions (_.Library.String pPageURL, _.Library.String pOptions)
 API to give developers control over the HTML environment. More...
 
- Static Public Member Functions inherited from Base
_.Library.Status OnAfterAllClassCompile (_.Library.String List, _.Library.Integer Level, _.Library.String qstruct, _.Library.Status Status)
 Called in the activated source control class after we have compiled all the classes but before we exit. More...
 
_.Library.Status OnBeforeAllClassCompile (_.Library.String List, _.Library.Integer Level, _.Library.String qstruct)
 Called in the activated source control class before starting a compile after we have resolved the list of classes. More...
 

Static Public Attributes

 SrcVer = None
 This class is used internally by InterSystems. More...
 
 Version = None
 Revision number of this class when compiled as part of the //custom_ccrs/_common/config/... More...
 
- Static Public Attributes inherited from Base
 Flags = None
 Used to control which dialogs appear in Studio. More...
 
- Static Public Attributes inherited from RegisteredObject
 CAPTION = None
 Optional name used by the Form Wizard for a class when generating forms. More...
 
 JAVATYPE = None
 The Java type to be used when exported.
 
 PROPERTYVALIDATION = None
 This parameter controls the default validation behavior for the object. More...
 

Additional Inherited Members

- Public Attributes inherited from Base
 IconStatus
 Can be set to determine if we wish to report the source control status of the document in the project window. More...
 
 MainJob
 $Job number of the main Studio process or blank if this is the main Studio connection. More...
 
 Modified
 If the root node is set to 1 then calls to the source control hooks will keep track if the. More...
 
 StudioVersion
 Version of Studio that is connecting to this server. More...
 
 Username
 The username of this source control user. More...
 

Detailed Description

This class is used internally by InterSystems.

You should not make direct use of it within your applications. There is no guarantee made about either the behavior or future operation of this class.

Member Function Documentation

◆ AfterUserAction()

_.Library.Status AfterUserAction ( _.Library.Integer  Type,
_.Library.String  Name,
_.Library.String  InternalName,
_.Library.Integer  Answer,
_.Library.String  Msg,
_.Library.Boolean  Reload 
)

This is called after the <method>UserAction</method> and after any template is run or dialog is displayed.

For a list of input arguments see <method>UserAction</method>. In the case of the dialog the button pushed by the user is passed in Answer:

  • 0 - No
  • 1 - Yes
  • 2 - Cancel

For the dialog that contains a textbox field the text of this field is passed in 'Msg' argument. In the case of a template if the template was closed from the 'x' button then Answer=2 to indicate the user attempted to cancel the operation. Otherwise if the template closed normally by getting to the end Answer=1. For the cases where Studio did not perform any interaction this method is not called. The default implementation is to call the standard source control tags . If the Reload argument is set to true by this method then the current document will be reloaded in Studio.

Reimplemented from Base.

◆ BackupName()

_.Library.String BackupName ( _.Library.String  InternalName)
static

Return filename of backup file of this item.

At the time of <method>CheckOut</method>, a local backup of the item in its existing state is written to the file system with a .bak extension. This file will be used on Disconnected systems to restore to the previous state when <method>UndoCheckout</method> is called. It can also be used for diffs from the original file state.

◆ BaselineExport()

_.Library.Status BaselineExport ( _.Library.Boolean  classesOnly,
  interactive,
  targetDirectory,
_.Library.Boolean  changeToReadonly,
_.Library.Boolean  includeMapped 
)
static

This method exports all Classes, Routines, Include files, CSP Application files, and Projects files from a namespace into a file structure that can then be added to Source Control.

This should be run from the terminal, and the user will be prompted as to whether they want to export to the current ^Sources location or an alternate location (alternate is recommended).

The method will then iterate through all Classes, Routines, Include files, CSP Application files and Projects and will export them to ^Sources based on the mappings in the ^Sources global.

NOTE - this does not export "Generated" classes.

Passing classesOnly as '1' will export only the baseline of the classes. This is useful for exporting all updated XML after changing to a new class compiler version.

Pass interactive as 0 in order to call this programmatically.

Pass targetDirectory to specify the directory for export (NOTE - this cannot equal ^Sources for TrakCare exports).

Pass boolean changeToReadOnly to control whether the files should be changed to read-only after export (defaults to true).

Pass boolean includeMapped to control whether items mapped from other databases should be included in the export (defaults to true). The default value for this argument will be the inverse of the source hooks LockMapped setting for this namespace (so if nothing is set, then Mapped will be included by default).

◆ BaselineExportItem()

_.Library.Status BaselineExportItem ( _.Library.String  InternalName,
_.Library.Boolean  ToReadOnly,
_.Library.Boolean  CheckOut,
_.Library.Boolean  includeMapped 
)

Exports a specific item.


If ToReadOnly is true, then the files will be manually changed to ReadOnly afterwards (for use when exporting from LIVE and leaving items uneditable afterwards).
If CheckOut is true, then the Source Control CheckOut/AddToSourceControl logic is used.
If includeMapped is true, then items mapped from other DBs will be exported, otherwise they will be skipped.
The default value for this argument will be the inverse of the source hooks LockMapped setting for this namespace (so if nothing is set, then Mapped will be included by default).

◆ CheckOut()

_.Library.Status CheckOut ( _.Library.String  InternalName,
_.Library.String  Description,
_.Library.Boolean  Load 
)

Check this routine/class/csp file out of source control.


Following successful checkout, the copy of the file on disk is loaded into the Namespace, unless Load is false.

◆ Compile()

_.Library.Status Compile ( _.Library.String  InternalName)

Compiles InternalName if it still exists.

Will skip up-to-date files.

◆ DSCheckpointExport()

_.Library.Status DSCheckpointExport ( _.Library.Boolean  ListOnly,
_.Library.Boolean  AddNew,
_.Library.Boolean  ExportAll,
_.Library.Boolean  Interactive 
)
static

The initial implementation of DS II did not include source control hooks in the UI, so it is necessary.

to do check-out / export DSII classes and Folder Items just prior to submitting the changes to Perforce.
DSCheckpointExport() will check for the last time that DSCheckpointExport() was run, and will check out and export all changes DS II items since that timestamp. This should work for both Connected and Disconnected instances. If ListOnly is true, then a list will be displayed but nothing will actually be checked out.
If AddNew is true, then all items which are not yet on disk in the local workspace will be marked for 'add' and exported, otherwise, only those already on disk will be exported.
If ExportAll is true, then the timestamp from the previous export will be ignored and all DeepSee work that is in Source Control will be checked out.
If Interactive is true, then the user will be prompted for their Perforce password if it is a Connected instance.

◆ DefaultCredentialsDefined()

_.Library.Boolean DefaultCredentialsDefined ( )
static

Method returns true if there are default perforce credentials defined, and false otherwise.

NOTE - if there is no credentials data stored at all, the the assumption is made that this is a single-user system that relies on environment variables for Perforce access, and 'true' will be returned so that the user will not be prompted for credentials or told that none are defined. Credentials must be stored entirely in environment variables, or entirely in the DB for a given instance.

◆ Disconnect()

_.Library.Status Disconnect ( _.Library.Integer  Level)
static

Disconnect from Perforce depot.

Values for 'Level' parameter are:

  • 1: Instance is Disconnected but could connect at a future time (default)
  • 2: Instance is Permanently Disconnected (no plans of ever connecting to Perforce)

◆ Disconnected()

_.Library.Integer Disconnected ( )
static

Returns value that shows whether or not this instance is "Disconnected" from Perforce.

Return values are:

  • 0: Instance is Connected
  • 1: Instance is Disconnected but could connect at a future time
  • 2: Instance is Permanently Disconnected (no plans of ever connecting to Perforce)

◆ DisconnectedReconcile()

_.Library.Status DisconnectedReconcile ( _.Library.String  SourceDir,
_.Library.String  TargetDir,
_.Library.String  IgnoreExtension,
_.Library.String  CCR,
_.Library.Boolean  Initialize 
)
static

Takes a Source directory and reconciles it with a Target directory which is under source control:

  • Files in Source which do not exist in Target will be copied into the Target and AddToSourceControl() will be called
  • Files in Source which exist as Writeable in Target will be skipped
  • Files in Source which exist as ReadWrite in Target will call Checkout() and then copied from Source to Target
  • After all processing, files in Target which are Readonly will call RemoveFromSourceControl()

This will only run if the Namespace is in Permanently Disconnected Mode; for Connected clients, use the p4 reconcile feature in p4V

If <variable>IgnoreExtension</variable> is set then anything with that extension is excluded from reconciliation (e.g. .bak files left over from former local check-outs which didn't get cleaned up for some reason)

If the <variable>CCR</variable> is set then that value is set in the CCR column of the Studio.SourceControl.Change table for this uncommitted change

◆ ExternalName()

_.Library.String ExternalName ( _.Library.String  InternalName)

Convert the internal name, e.g.

TEST.MAC, to an external name that is used to export

the routine/class/csp item. This is often a filename to write the file out to.

Reimplemented from Base.

◆ GeneratePerforceTicket()

_.Library.Status GeneratePerforceTicket ( _.Library.String  p4pass,
_.Library.String  p4ticket 
)
static

This method will accept a Perforce password and will attempt to generate a Perforce ticket tied to this server for use within the hooks.


In the process it will validate a ticket which may already be set, and if it is valid it will keep that ticket.

◆ GetCredentials()

_.Library.Boolean GetCredentials ( _.Library.String  p4user,
_.Library.String  p4passwd,
_.Library.String  p4workspace,
_.Library.String  p4dir,
_.Library.String  p4port 
)
static

Accessor method for accessing Perforce Credentials for current $USERNAME; returns false if no credentials were available.

  • If there is a user-specific set of credentials defined for the current $USERNAME, these credentials will be returned
  • If a SharedWorkspace has been defined but there are no credentials for the current $USERSAME, then $USERNAME is returned as p4user assuming it's not a shipped username
  • If a SharedWorkspace has been defined, then it will be returned in the p4workspace parameter; otherwise the workspace for the credential set will be returned
  • If credentials exist for this specific $USERNAME, then p4passwd is returned from the the current studio process (the password stored in credentials is ignored)
  • If there is no data at all in ^SYS("SourceControl","Credentials"), then the method returns 'true', assuming the Environment variables are used to store the credentials

◆ GetSharedWorkspace()

_.Library.Boolean GetSharedWorkspace ( _.Library.String  p4workspace,
_.Library.String  p4directory 
)
static

Accessor method to get the Perforce Shared Workspace if it is defined; if it is not defined, the method returns false.

If this method returns false, then the assumption should be made that this is a single-developer instance (not shared by multiple developers).

The method will check for the existence of a namespace-specific workspace, and will use that if it exists. If a namespace specific workspace is not defined, then it will look for an instance-wide Shared Workspace.

This also allows a user to retrieve the stored alternate workspace directory root (-d flag in P4)

◆ GetStatus()

_.Library.Status GetStatus ( _.Library.String  InternalName,
_.Library.Boolean  IsInSourceControl,
_.Library.Boolean  Editable,
_.Library.Boolean  IsCheckedOut,
_.Library.String  UserCheckedOut 
)

Return information about this entity.

This method checks the current status of the item, seeing whether or not it is in source control (based on an exported copy of the item on disk), and if it is in source control, whether it is currently checked out (based on whether the file is Readonly or not).

If the file is checked out, this method will check to find the value of $USERNAME for whomever performed <method>CheckOut</method>. If the current $USERNAME does not match, then the user will not be permitted to edit the file as it has been checked out by another user.

Reimplemented from Base.

◆ InternalNameFromExtName()

_.Library.String InternalNameFromExtName (   ExtName,
  IgnorePercent,
  IgnoreNonexistent 
)
static

Takes a filename within the local Perforce workspace and returns a best guess as to the InternalName.

If the file exists then the method will attempt to open it to find the item name. If it does not exist (or if it can't open it) then it will try to determine the item name based on the location in directory tree and the structure of the mappings in ^Sources.

If no item in the database can be found to map to the external filename, then if it is a CCR enabled namespace it will return the path translated into the /itemsetsourcelink(_*) import/export format.

Unless IgnorePercent argument is set to 0, any %-items will return "".

Unless IgnoreNonexistent argument is set to 0, if the item isn't found in the database, then "" will be returned.

Known Limitations (if the physical file doesn't exist):

  • Due to this historical act of stripping '' from the beginning of package names, if there exists both a %-item and a non-%-item which map to the same location, then "" will be returned as the result is indeterminate without having access to the source file.
  • The method currently will not find matches for multi-tier mappings in ^Sources (e.g. ^Sources("HL7","*")="schema/hl7/", other than multi-tier mappings under /CSP/

◆ IsGenerated()

_.Library.String IsGenerated ( _.Library.String  Name)
static

Return 1 if you wish this item to appear as if it is 'generated' when opened in Studio,.

return 0 to force this item not to appear as 'generated' and return "" to use normal processing.

Reimplemented from Base.

◆ IsMapped()

IsMapped ( _.Library.String  name,
_.Library.String  sourcedb 
)
static

Return true if this item is mapped from a database other than the default routine database.

Also return the source database in sourcedb.

NOTE: This is available as RoutineMgr::IsMapped() in 2013.1 and later; it is included in this class to support the source hooks working on earlier versions.

◆ IsSharedDevInstance()

_.Library.Boolean IsSharedDevInstance ( )
static

Indicates whether or not this instance is configured to accomodate multiple concurrent developers

It is considered a Shared development instance if one of the following is true:

  • This is a Connected instance and there is a Shared Workspace defined for this instance or namespace
  • This is a Permanently Disconnected Namespace (Permantently Disconnected means it is outside the InterSystems network and we always assume Shared)

◆ JobUpdateSources()

_.Library.String JobUpdateSources ( )
static

Job off a background job to update the sources information.

It returns -1 if it could not start the job or the $job number if successful.

◆ Lock()

_.Library.Status Lock ( _.Library.Boolean  Admin)
static

Lock the source control hooks for this instance.

The default setting will be "Locked". Passing a '1' for the Admin parameter will set the instance to AdminLocked.

See <method>Locked</method> for more details.

◆ Locked()

_.Library.String Locked ( )
static

Returns value that shows whether or not this instance is "Locked".

Return values are:

  • "": Instance has never been Locked or Unlocked (default)
  • 0: Instance is Unlocked
  • 1: Instance is Locked
  • 2: Instance is AdminLocked

When the instance is Locked or AdminLocked, no changes can be made via Studio. It is possible to change from Locked to NotLocked via different UIs. When an instance is AdminLocked it should only be possible to unlock it via the <method>Unlock</method> method.

◆ OnAfterSave()

_.Library.Status OnAfterSave ( _.Library.String  InternalName,
_.Library.RegisteredObject  Object 
)

This is called after the item has been saved to the database.

It may be passed a reference to the object representing the item just saved. It can be use to export this documement to an external form for example.

Reimplemented from Base.

◆ OnAfterStorage()

_.Library.Status OnAfterStorage ( _.Library.String  InternalName,
_.Library.String  Location 
)

Called if compilation of the class has modified the storage (or another part of the class)

so we need to write out the new version and if the file is not already checked out we need to check it out automatically.

Reimplemented from Base.

◆ OnBeforeSave()

_.Library.Status OnBeforeSave ( _.Library.String  InternalName,
_.Library.String  Location,
_.Library.RegisteredObject  Object 
)

Called before the item is saved to the database.

It is passed

a reference to the current temporary storage of this item so that it can be modified before the save completes. If you quit with an error value then it will abort the save.

Reimplemented from Base.

◆ OnMenuItem()

_.Library.Status OnMenuItem ( _.Library.String  MenuName,
_.Library.String  InternalName,
_.Library.String  SelectedText,
_.Library.Boolean  Enabled,
_.Library.String  DisplayName 
)

This is called for every menu item returned to Studio to allow the menu to be enabled/disabled without.

having to write a custom query for <query>MenuItems</query>. The DisplayName of this menu is also passed by reference and this may be modified to change the appearance of this menu item. The MenuName is the main menu name then the submenu name separated by a ','. If Enabled is set to -1 then it will remove this menu item from the list totally, 0 will gray the menu item out, and the default 1 will display the menu item as normal.

Reimplemented from Base.

◆ P4Cmd()

_.Library.Status P4Cmd ( _.Library.String  cmd,
_.Library.String  output 
)
static

** DEPRECATED - Use the more secure <method>SecureP4Cmd</method>.

Passed a 'p4' command, it runs it with '-ztag' and returns the parsed output

◆ RunCmd()

_.Library.Status RunCmd ( _.Library.String  cmd,
_.Library.String  output,
_.Library.Boolean  display,
_.Library.Boolean  stream 
)
static

** DEPRECATED - Use more secure <method>SecureRunCmd</method> instead

Run a shell command and report any error message, return output with lines as subscripts of the array if stream is false (the default) but if stream is true then we will return the output as a stream to be read by the caller.

◆ SecureRunCmd()

_.Library.Status SecureRunCmd ( _.Library.String  cmd,
  args,
_.Library.String  output,
_.Library.Boolean  display,
_.Library.Boolean  stream,
_.Library.String  input 
)
static

Run a command and report any error message, return output with.

lines as subscripts of the array if stream is false (the default) but if stream is true then we will return the output as a stream to be read by the caller. Passed the executable name in cmd and the list of arguments as an integer subscripted local array passed in by reference in args.

◆ SetCredentials()

_.Library.Boolean SetCredentials ( _.Library.String  p4user,
_.Library.String  p4passwd,
_.Library.String  p4workspace,
_.Library.String  p4dir,
_.Library.String  p4port 
)
static

Accessor method for setting Perforce Credentials, returns false if credentials could not be set.

  • If p4user is passed as a string, then it (along with the other arguments) will be the default for this instance
  • If p4user is of the form $LB(cacheUser, p4user), then p4user only be used when $USERNAME=cacheUser, and all other arguments will be ignored.
    The workspace details should be set via SetSharedWorkspace(), and the user will be prompted for the p4passwd value at runtime
  • If p4user is "" , then the default credentials will be cleared
  • If p4user is of the form $LB(cacheUser,""), then the perforce username for cacheUser will be cleared

◆ SetSharedWorkspace()

_.Library.Boolean SetSharedWorkspace ( _.Library.String  p4workspace,
_.Library.String  p4directory,
_.Library.String  namespace 
)
static

Accessor method for setting Perforce Shared Workspace; returns false if credentials could not be set.

If the namespace argument is not passed, then the values will be set for the entire instance.
If it is passed, then the workspace and alternate workspaace directory root will be used just for that specified workspace.

This also allows a user to set the alternate workspace directory root (-d flag in P4).

Important Note: Passing p4workspace as "" will clear out all of the shared worspace settings, and will merge them into ^SYS("SourceControl","PriorSharedWorkspace") for future reference.

◆ UserAction()

_.Library.Status UserAction ( _.Library.Integer  Type,
_.Library.String  Name,
_.Library.String  InternalName,
_.Library.String  SelectedText,
_.Library.String  Action,
_.Library.String  Target,
_.Library.String  Msg,
_.Library.Boolean  Reload 
)

This is called when the user performs an action that may need to interact with.

the server, such as selecting a menu or adding a new document. This encompases what the deprecated Flags parameter did and allows additional flexibility.

The Type argument values are:

  • 0 : Server defined menu item selected
  • 1 : Other Studio action

When a menu item is selected the Name argument is the name of this menu item in the format '<MainMenu>,<SubMenu>'. For other Studio actions the Name argument is one of:

  • 0 : User has tried to change a document that is locked in source control
  • 1 : User has created a new document
  • 2 : User has deleted a document
  • 3 : User has opened a document
  • 4 : User has closed a document
  • 5 : User has connected to a new namespace
  • 6 : User has selected to import comma delimetered list of documents
  • 7 : User has saved a new document for the first time

The InternalName argument is the name of the document about which this action occurs. If there is any selected text in the document which has focus this is sent in the SelectedText argument. The Action argument is set by this method to tell Studio what to do. Possible return values for this are:

  • 0 : Do nothing, note that this method can still perform some action such as check an item out of source control, but Studio will not ask for user input.
  • 1 : Display the default Studio dialog with a yes/no/cancel button. The text for this dialog is provided in the 'Target' return argument.
  • 2 - Run a CSP page/Template. The Target is the full url to the CSP page/Template, as usual the page will be passed the current document name, any selected text, the project name, the namespace.
  • 3 - Run an EXE on the client. The Target is the name of an executable file on the client machine. It is the responsibility of the customer to ensure this EXE is installed in a suitable location.
  • 4 - Insert the text in Target in the current document at the current selection point.
  • 5 - Studio will open the documents listed in Target. If there are multiple documents to open they will be separated with commas. If the document name is 'test.mac:label+10' it will open the document 'test.mac' and goto 'label+10'.
  • 6 - Display an alert dialog in Studio with the text from the Target variable.
  • 7 - Display a dialog with a textbox and Yes/No/Cancel buttons. The text for this dialog is provided by the 'Target' return argument. The initial text for the textbox is provided by the 'Msg' return argument.

If the Reload argument is set to true then the current document will be reloaded in Studio. This is useful if you change the document to change its attribute so Studio will pick up these changes.

Reimplemented from Base.

◆ ValidatePerforceTicket()

_.Library.Status ValidatePerforceTicket ( _.Library.String  timeRemaining)
static

Validate a ticket and return the amount of time remaining for that ticket.

If the ticket is not valid it will clear it from the credential store since it is of no use.

Member Data Documentation

◆ SrcVer

SrcVer = None
static

This class is used internally by InterSystems.

You should not make direct use of it within your applications. There is no guarantee made about either the behavior or future operation of this class.

This Parameter should be updated when synced from Perforce

◆ Version

Version = None
static

Revision number of this class when compiled as part of the //custom_ccrs/_common/config/...

branch.

This version will not be updated (by design) when the class is integrated to other branches. This allows the user to tell what version of the Studio client tools are in use.