Hi,
Is there a way to retrieve ParmanentVault into a custom Application used External Object connection ?
Final need is to retrieve ColumnType from MFDataType from readed configuration i.e.
public override List<ColumnDefinition> GetAvailableColumns()
{
// TODO: Return the column definitions that are supported for the current configuration.
List<ColumnDefinition> colDefs = new List<ColumnDefinition>();
foreach (ColumnMapping colMap in Config.ColumnMapping)
{
ColumnDefinition colDef = new ColumnDefinition()
{
Ordinal = colMap.Ordinal,
Name = colMap.SourceColumnName,
Type = GetColumnTypeFromPropertyDefID(colMap.PropertyDef)
};
colDefs.Add(colDef);
}
return colDefs;
}
/// <summary>
/// Get ColumnType from propertyDef ID
/// </summary>
/// <param name="propertyDefID">PropertyDef ID in vault</param>
/// <returns>ColumnType</returns>
public static ColumnType GetColumnTypeFromPropertyDefID(int propertyDefID)
{
PropertyDefAdmin propDefAdmin = PermanentVault.PropertyDefOperations.GetPropertyDefAdmin(propertyDefID);
return TypeMappingByMFDataType[propDefAdmin.PropertyDef.DataType];
}
/// <summary>
/// Map of M-Files types to ColumnType
/// </summary>
public static readonly Dictionary<MFDataType, ColumnType> TypeMappingByMFDataType = new Dictionary<MFDataType, ColumnType>()
{
{ MFDataType.MFDatatypeMultiLineText, ColumnType.DBTYPE_WSTR },
{ MFDataType.MFDatatypeText, ColumnType.DBTYPE_WSTR },
{ MFDataType.MFDatatypeInteger, ColumnType.DBTYPE_I4 },
{ MFDataType.MFDatatypeInteger64, ColumnType.DBTYPE_I8 },
{ MFDataType.MFDatatypeBoolean, ColumnType.DBTYPE_BOOL },
{ MFDataType.MFDatatypeFloating, ColumnType.DBTYPE_DECIMAL },
{ MFDataType.MFDatatypeDate, ColumnType.DBTYPE_DBDATE } ,
{ MFDataType.MFDatatypeTime, ColumnType.DBTYPE_DBDATE },
{ MFDataType.MFDatatypeTimestamp, ColumnType.DBTYPE_DBDATE },
{ MFDataType.MFDatatypeLookup, ColumnType.DBTYPE_I4 },
};
Thanks
regards
Fabien
