public override void update() { //New Document NT CswNbtMetaDataObjectClass ReceiptLotOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReceiptLotClass ); CswNbtMetaDataObjectClass CofADocOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.CofADocumentClass ); CswNbtMetaDataNodeType CofANT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "C of A Document" ) ?? _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( CofADocOC.ObjectClassId, "C of A Document", "Materials" ); _CswNbtSchemaModTrnsctn.createModuleNodeTypeJunction( CswEnumNbtModuleName.CofA, CofANT.NodeTypeId ); //Default Title CswNbtMetaDataNodeTypeProp TitleNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Title ); TitleNTP.DefaultValue.AsText.Text = "Certificate of Analysis"; TitleNTP.removeFromLayout( CswEnumNbtLayoutType.Add ); //Set Owner FK to ReceiptLot OC (This needs to be done explicitly for the NTP - see Case 26605) CswNbtMetaDataNodeTypeProp OwnerNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Owner ); OwnerNTP.PropName = "Receipt Lot"; OwnerNTP.SetFK( CswEnumNbtViewRelatedIdType.ObjectClassId.ToString(), ReceiptLotOC.ObjectClassId ); //Set Prop Filters (This needs to be done explicitly for the NTP - see Case 26605) CswNbtMetaDataNodeTypeProp FileTypeNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.FileType ); CswNbtMetaDataNodeTypeProp FileNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.File ); FileNTP.setFilter( FileTypeNTP, FileTypeNTP.getFieldTypeRule().SubFields.Default, CswEnumNbtFilterMode.Equals, CswNbtPropertySetDocument.CswEnumDocumentFileTypes.File ); CswNbtMetaDataNodeTypeProp LinkNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Link ); LinkNTP.setFilter( FileTypeNTP, FileTypeNTP.getFieldTypeRule().SubFields.Default, CswEnumNbtFilterMode.Equals, CswNbtPropertySetDocument.CswEnumDocumentFileTypes.Link ); //NT Permission CswNbtObjClassRole RoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Admin" ); if( null != RoleNode ) { _CswNbtSchemaModTrnsctn.Permit.set( NTPermissions, CofANT, RoleNode, true ); } } // update()
public override void update() { CswNbtMetaDataObjectClass MailReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MailReportClass ); foreach( CswNbtMetaDataNodeType MailReportNT in MailReportOC.getNodeTypes() ) { // remove 'Nodes to Report' from all layouts CswNbtMetaDataNodeTypeProp NodesToReportNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.NodesToReport ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.removePropFromAllLayouts( NodesToReportNTP ); // remove Run Status from Add layout CswNbtMetaDataNodeTypeProp RunStatusNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.RunStatus ); RunStatusNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); // set Target Type and Event to be conditional on Type = View CswNbtMetaDataNodeTypeProp TypeNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.Type ); CswNbtMetaDataNodeTypeProp TargetTypeNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.TargetType ); CswNbtMetaDataNodeTypeProp EventNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.Event ); TargetTypeNTP.setFilter( TypeNTP, TypeNTP.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassMailReport.TypeOptionView ); EventNTP.setFilter( TypeNTP, TypeNTP.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassMailReport.TypeOptionView ); // add help text to Report View CswNbtMetaDataNodeTypeProp ReportViewNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.ReportView ); ReportViewNTP.HelpText = "For 'Exists' events, a report is generated if the view returns any results that match the Target Type. For 'Edit' events, a report is only generated if one of the properties in the view was modified."; // set target type and event for existing mail reports foreach( CswNbtObjClassMailReport MailReportNode in MailReportNT.getNodes( false, true ) ) { if( CswNbtObjClassMailReport.TypeOptionView == MailReportNode.Type.Value && 0 == MailReportNode.TargetType.SelectedNodeTypeIds.Count ) { CswNbtView View = _CswNbtSchemaModTrnsctn.restoreView( MailReportNode.ReportView.ViewId ); if( View.Root.ChildRelationships.Count > 0 ) { CswNbtViewRelationship RootRel = View.Root.ChildRelationships[0]; if( RootRel.SecondType == NbtViewRelatedIdType.NodeTypeId ) { MailReportNode.TargetType.SelectedNodeTypeIds.Add( RootRel.SecondId.ToString() ); } else { CswNbtMetaDataObjectClass RootOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( RootRel.SecondId.ToString() ); if( null != RootOC.FirstNodeType ) { MailReportNode.TargetType.SelectedNodeTypeIds.Add( RootOC.FirstNodeType.NodeTypeId.ToString() ); } } } } if( MailReportNode.Event.Empty ) { MailReportNode.Event.Value = CswNbtObjClassMailReport.EventOption.Exists.ToString(); } MailReportNode.postChanges( false ); } // foreach( CswNbtObjClassMailReport MailReportNode in MailReportNT.getNodes( false, true ) ) } // foreach( CswNbtMetaDataNodeType MailReportNT in MailReportOC.getNodeTypes() ) }//Update()
/// <summary> /// Update logic /// </summary> public override void update() { CswNbtMetaDataNodeType materialDocumentNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Material Document" ); CswNbtMetaDataNodeTypeProp documentClassNTP = materialDocumentNT.getNodeTypeProp( "Document Class" ); if( null != materialDocumentNT && null != documentClassNTP ) { CswNbtMetaDataNodeTypeTab materialDocumentNTT = materialDocumentNT.getFirstNodeTypeTab(); if( null != materialDocumentNTT ) { CswNbtMetaDataNodeTypeProp issueDateNTP = _CswNbtSchemaModTrnsctn.MetaData.makeNewProp( materialDocumentNT, CswNbtMetaDataFieldType.NbtFieldType.DateTime, "Issue Date", materialDocumentNTT.TabId ); issueDateNTP.setFilter( documentClassNTP, documentClassNTP.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassDocument.DocumentClasses.MSDS ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add, materialDocumentNT.NodeTypeId, issueDateNTP.PropId, true, materialDocumentNTT.TabId ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, materialDocumentNT.NodeTypeId, issueDateNTP.PropId, true, materialDocumentNTT.TabId ); } } }
private void _setPermissionPropFilters( CswNbtMetaDataNodeType PermissionNT ) { CswNbtMetaDataNodeTypeProp ApplyToAllWorkUnitsNTP = PermissionNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetPermission.PropertyName.ApplyToAllWorkUnits ); CswNbtMetaDataNodeTypeProp WorkUnitNTP = PermissionNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetPermission.PropertyName.WorkUnit ); WorkUnitNTP.setFilter( ApplyToAllWorkUnitsNTP, ApplyToAllWorkUnitsNTP.getFieldTypeRule().SubFields.Default, CswEnumNbtFilterMode.Equals, CswEnumTristate.False ); CswNbtMetaDataNodeTypeProp ApplyToAllRolesNTP = PermissionNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetPermission.PropertyName.ApplyToAllRoles ); CswNbtMetaDataNodeTypeProp RoleNTP = PermissionNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetPermission.PropertyName.Role ); RoleNTP.setFilter( ApplyToAllRolesNTP, ApplyToAllRolesNTP.getFieldTypeRule().SubFields.Default, CswEnumNbtFilterMode.Equals, CswEnumTristate.False ); }
private void _filterToSDS( CswNbtMetaDataNodeType DocumentNT, String NodeTypePropName ) { CswNbtMetaDataNodeTypeProp DocumentNTP = DocumentNT.getNodeTypeProp( NodeTypePropName ); if( null != DocumentNTP ) { DocumentNTP.setFilter( DocumentClassNTP, DocumentClassNTP.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassDocument.DocumentClasses.SDS ); DocumentNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add, true, DocumentNT.getFirstNodeTypeTab().TabId ); } }
public override void update() { // Set MailReport.OutputFormat to be conditional on Type = Report CswNbtMetaDataObjectClass MailReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MailReportClass ); CswNbtMetaDataObjectClassProp TypeOCP = MailReportOC.getObjectClassProp( CswNbtObjClassMailReport.PropertyName.Type ); CswNbtMetaDataObjectClassProp OutputFormatOCP = MailReportOC.getObjectClassProp( CswNbtObjClassMailReport.PropertyName.OutputFormat ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( OutputFormatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.filterpropid, TypeOCP.PropId.ToString() ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( OutputFormatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.filter, CswNbtMetaDataObjectClassProp.makeFilter( TypeOCP.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassMailReport.TypeOptionReport ) ); // because of case 27922, need to apply this to nodetypes manually foreach( CswNbtMetaDataNodeType MailReportNT in MailReportOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp TypeNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.Type ); CswNbtMetaDataNodeTypeProp OutputFormatNTP = MailReportNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMailReport.PropertyName.OutputFormat ); OutputFormatNTP.setFilter( TypeNTP, TypeNTP.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassMailReport.TypeOptionReport ); // revert readonly foreach( CswNbtObjClassMailReport MailReportNode in MailReportNT.getNodes( false, true ) ) { MailReportNode.OutputFormat.setReadOnly( value: false, SaveToDb: true ); MailReportNode.postChanges( false ); } } // foreach( CswNbtMetaDataNodeType MailReportNT in MailReportOC.getNodeTypes() ) }//Update()
public override void update() { CswNbtMetaDataObjectClass RegulatoryListOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListClass ); if( null != RegulatoryListOC ) { foreach( CswNbtMetaDataNodeType CurrentRegulatoryListNT in RegulatoryListOC.getNodeTypes() ) { Int32 TabId = CurrentRegulatoryListNT.getFirstNodeTypeTab().TabId; // Name CswNbtMetaDataNodeTypeProp NameNTP = CurrentRegulatoryListNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryList.PropertyName.Name ); NameNTP.updateLayout( CswEnumNbtLayoutType.Add, true, DisplayRow: 1, DisplayColumn: 1 ); NameNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 1, DisplayColumn: 1 ); // List Mode CswNbtMetaDataNodeTypeProp ListModeNTP = CurrentRegulatoryListNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryList.PropertyName.ListMode ); ListModeNTP.updateLayout( CswEnumNbtLayoutType.Add, true, DisplayRow: 2, DisplayColumn: 1 ); ListModeNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 2, DisplayColumn: 1 ); // Add CAS Numbers CswNbtMetaDataNodeTypeProp AddCASNumbersNTP = CurrentRegulatoryListNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryList.PropertyName.AddCASNumbers ); AddCASNumbersNTP.updateLayout( CswEnumNbtLayoutType.Add, true, DisplayRow: 3, DisplayColumn: 1 ); AddCASNumbersNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId, DisplayRow: 3, DisplayColumn: 1 ); AddCASNumbersNTP.setFilter( FilterProp: ListModeNTP, SubField: ListModeNTP.getFieldTypeRule().SubFields.Default, FilterMode: CswEnumNbtFilterMode.Equals, FilterValue: CswNbtObjClassRegulatoryList.CswEnumRegulatoryListListModes.ManuallyManaged ); // Exclusive CswNbtMetaDataNodeTypeProp ExclusiveNTP = CurrentRegulatoryListNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryList.PropertyName.Exclusive ); ExclusiveNTP.removeFromAllLayouts(); }//foreach( CswNbtMetaDataNodeType CurrentRegulatoryListNT in RegulatoryListOC.getNodeTypes() ) }//if( null != RegulatoryListOC ) } // update()
public override void update() { CswNbtMetaDataObjectClass InvGrpOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.InventoryGroupClass); CswNbtMetaDataObjectClassProp LRDLOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp(InvGrpOC, new CswNbtWcfMetaDataModel.ObjectClassProp(InvGrpOC) { PropName = CswNbtObjClassInventoryGroup.PropertyName.LimitRequestDeliveryLocation, FieldType = CswEnumNbtFieldType.Logical, }); _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue(LRDLOCP, CswEnumTristate.False, CswEnumNbtSubFieldName.Checked); CswNbtMetaDataObjectClassProp ACAOCP = InvGrpOC.getObjectClassProp(CswNbtObjClassInventoryGroup.PropertyName.AutomaticCertificateApproval); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp(ACAOCP, CswEnumNbtObjectClassPropAttributes.isrequired, false); foreach (CswNbtMetaDataNodeType InvGrpNT in InvGrpOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp CentralNTP = InvGrpNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroup.PropertyName.Central); CswNbtMetaDataNodeTypeProp ACANTP = InvGrpNT.getNodeTypePropByObjectClassProp(CswNbtObjClassInventoryGroup.PropertyName.AutomaticCertificateApproval); ACANTP.DesignNode.Required.Checked = CswEnumTristate.False; ACANTP.DesignNode.postOnlyChanges(false, true); ACANTP.setFilter(CentralNTP, CswEnumNbtSubFieldName.Checked, CswEnumNbtFilterMode.Equals, CswEnumTristate.True); } }
/// <summary> /// Do the update /// </summary> public override void update() { CswNbtMetaDataObjectClass DocumentOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.DocumentClass ); CswNbtMetaDataObjectClassProp ArchivedDateOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( new CswNbtWcfMetaDataModel.ObjectClassProp( DocumentOc ) { PropName = CswNbtObjClassDocument.PropertyName.ArchiveDate, FieldType = CswNbtMetaDataFieldType.NbtFieldType.DateTime } ); CswNbtMetaDataObjectClassProp DocumentClassOcp = DocumentOc.getObjectClassProp( CswNbtObjClassDocument.PropertyName.DocumentClass ); CswNbtMetaDataObjectClassProp LanguageOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( new CswNbtWcfMetaDataModel.ObjectClassProp( DocumentOc ) { PropName = CswNbtObjClassDocument.PropertyName.Language, FieldType = CswNbtMetaDataFieldType.NbtFieldType.List, ListOptions = "en,fr,es,de", SetValOnAdd = false //This worked for Size on Request Item but does not seem to work when making the prop conditional on another prop of the same Object Class //IsFk = true, //FkType = NbtViewPropIdType.ObjectClassPropId.ToString(), //FkValue = DocumentClassOcp.PropId, //FilterPropId = DocumentClassOcp.PropId, //Filter = CswNbtMetaDataObjectClassProp.makeFilter( DocumentClassOcp.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassDocument.DocumentClasses.MSDS ) } ); CswNbtMetaDataObjectClassProp FormatOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( new CswNbtWcfMetaDataModel.ObjectClassProp( DocumentOc ) { PropName = CswNbtObjClassDocument.PropertyName.Format, FieldType = CswNbtMetaDataFieldType.NbtFieldType.List, ListOptions = CswNbtObjClassDocument.Formats.Options.ToString(), SetValOnAdd = false //IsFk = true, //FkType = NbtViewPropIdType.ObjectClassPropId.ToString(), //FkValue = DocumentClassOcp.PropId, //FilterPropId = DocumentClassOcp.PropId, //Filter = CswNbtMetaDataObjectClassProp.makeFilter( DocumentClassOcp.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassDocument.DocumentClasses.MSDS ) } ); foreach( CswNbtMetaDataNodeType DocumentNt in DocumentOc.getLatestVersionNodeTypes() ) { CswNbtMetaDataNodeTypeProp FormatNtp = DocumentNt.getNodeTypePropByObjectClassProp( FormatOcp.PropId ); CswNbtMetaDataNodeTypeProp LanguageNtp = DocumentNt.getNodeTypePropByObjectClassProp( LanguageOcp.PropId ); if( false == DocumentNt.NodeTypeName.Contains( "material" ) && false == DocumentNt.NodeTypeName.Contains( "Material" ) ) { FormatNtp.removeFromAllLayouts(); LanguageNtp.removeFromAllLayouts(); } CswNbtMetaDataNodeTypeProp DocumentClassNtp = DocumentNt.getNodeTypePropByObjectClassProp( DocumentClassOcp.PropId ); FormatNtp.setFilter( DocumentClassNtp, DocumentClassNtp.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassDocument.DocumentClasses.MSDS ); LanguageNtp.setFilter( DocumentClassNtp, DocumentClassNtp.getFieldTypeRule().SubFields.Default, CswNbtPropFilterSql.PropertyFilterMode.Equals, CswNbtObjClassDocument.DocumentClasses.MSDS ); } CswNbtMetaDataObjectClassProp LinkOcp = DocumentOc.getObjectClassProp( CswNbtObjClassDocument.PropertyName.Link ); CswNbtMetaDataObjectClassProp FileOcp = DocumentOc.getObjectClassProp( CswNbtObjClassDocument.PropertyName.File ); CswNbtMetaDataObjectClassProp FileTypeOcp = DocumentOc.getObjectClassProp( CswNbtObjClassDocument.PropertyName.FileType ); CswNbtMetaDataObjectClassProp ArchivedOcp = DocumentOc.getObjectClassProp( CswNbtObjClassDocument.PropertyName.Archived ); CswNbtMetaDataObjectClassProp AcquiredDateOcp = DocumentOc.getObjectClassProp( CswNbtObjClassDocument.PropertyName.AcquiredDate ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( LinkOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.setvalonadd, true ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( FileOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.setvalonadd, true ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( FileTypeOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.isrequired, true ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( AcquiredDateOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.servermanaged, true ); _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue( FileTypeOcp, FileTypeOcp.getFieldTypeRule().SubFields.Default.Name, CswNbtObjClassDocument.FileTypes.File ); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ArchivedOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.isrequired, true ); _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue( ArchivedOcp, ArchivedOcp.getFieldTypeRule().SubFields.Default.Name, Tristate.False ); }//Update()