Table MD_ProgramOrApp

Card of table MD_ProgramOrApp

Name

MD_ProgramOrApp

Dimensional Type

<None>

Comment

Information on computer programs - software, that is, that can run on a desktop, laptop, or mobile device (in the latter case, the program is called an 'app' typically).

The query that retrieves this information, at least from K2, goes as follows:

SELECT
'KS'            AS MD_Program_SystemOfRecord
, programID            AS UNTRIMMED_CHAR_UniqueID
, programName         AS MD_Program_Name
, programVersion         AS MD_Program_Version
, programVariantName      AS MD_Program_VariantName
, programVariantVersion      AS MD_Program_VariantVersion
, programPublisher         AS MD_Program_Publisher
, KSTermPlatform.TermAbbreviation   AS MD_Program_Platform
FROM
KSPrograms
, KSTermPlatform
WHERE
programPlatform = KSTermPlatform.termID


Check constraint name of the table MD_ProgramOrApp

CKT_MD_PROGRAMORAPP


List of incoming references of the table MD_ProgramOrApp

Name

Child Table

Foreign Key Columns

Relationship_246

MF_KeyedComputerSoftwareUsage

MD_Program_SurrogateKey

Relationship_271

MF_KeyedComputerEvent

MD_Program_SurrogateKey


List of referencing views of the table MD_ProgramOrApp

Name

Code

VMD_ProgramOrApp

VMD_PROGRAMORAPP


List of diagrams containing the table MD_ProgramOrApp

Name

LabUsageDiagram


List of columns of the table MD_ProgramOrApp

Name

Comment

Domain

Data Type

Length

MD_Program_SurrogateKey

 

<None>

numeric

 

MD_Program_UniqueID

K2 unique BINARY(20) value converted to a GUID using the following code (C# in SSIS):

// Then convert the same byte array to a GUID and store it in the Unique ID field
MD5CryptoServiceProvider cProvider = new MD5CryptoServiceProvider();
byte[] hash = cProvider.ComputeHash(buf);
Guid myGuid = new Guid(hash);
Output0Buffer.UNTRIMMEDCHARUniqueID = myGuid.ToString();

DW_UniqueIdentifier36Char

varchar(36)

36

MD_Program_OriginalKey

A string-ified utf-8-encoded version of the original K2 unique key for a software product. Stringification code in C# (via SSIS script component) is as follows:

// Convert byte array (ODBC BINARY 20-byte field) to a string and store MD_Program_OriginalKey
byte[] buf = new byte[20];
odbcRead.GetBytes(1, 0, buf, 0, 20);
UTF8Encoding enc = new UTF8Encoding();
string str = enc.GetString(buf);
Output0Buffer.MDProgramOriginalKey = str;

<None>

nvarchar(128)

128

MD_Program_SystemOfRecord

Until we add data from another keyserver, the data here will all come from K2, and "K2" will be the only value present.

DW_CodeDescLong

varchar(64)

64

MD_Program_Name

Whatever mnemonic or name is assigned to a particular program being run. Might be the name of the license monitoring software itself.

DW_CommonName

nvarchar(64)

64

MD_Program_Version

Version of program being run (usually contains digits and periods, like 1.3), but may contain other characters.

DW_CodeDescLong

varchar(64)

64

MD_Program_VariantName

 

DW_CommonName

nvarchar(64)

64

MD_Program_VariantVersion

 

DW_CodeDescLong

varchar(64)

64

MD_Program_Publisher

Publisher of a given software package. Corresponds to the manufacturer in the case of hard assets.

DW_CommonName

nvarchar(64)

64

MD_Program_Platform

Corresponds to KStermPlatform table in K2, termAbbreviation field. KStermPlatform joins to programPlatform field in KSPrograms on termID = programPlatform. Typically designates the operating system (or in the case of Apple computers running OS/X and iDevices, we use 'Macintosh').

DW_CommonName

nvarchar(64)

64

MD_Program_AuditKey

 

DW_AuditKey

bigint

 

MD_Program_Timestamp

 

<None>

timestamp

 


List of indexes of the table MD_ProgramOrApp

Name

Unique

Cluster

Primary

Foreign Key

Alternate Key

Table

MD_PROGRAMORAPP_PK

TRUE

TRUE

TRUE

FALSE

FALSE

MD_ProgramOrApp

MD_PROGRAMORAPP_AK

TRUE

FALSE

FALSE

FALSE

TRUE

MD_ProgramOrApp


List of keys of the table MD_ProgramOrApp

Name

Identifier_1

AltKey