Поделиться через


Метод SPContentType.UpdateWorkflowAssociationsOnChildren (Boolean, Boolean, Boolean, Boolean)

Передает изменения связи рабочего процесса этот тип контента для типов содержимого, которые являются производными от этого типа контента или экземпляры этого типа контента, примененных в списки или в оба. При необходимости отмечает затронуты операцией при изменении объектов. Также при необходимости отключает исключения, возникающие, так как дочерний запечатанным или только для чтения.

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Sub UpdateWorkflowAssociationsOnChildren ( _
    bGenerateFullChangeList As Boolean, _
    bPushdownDerivedCT As Boolean, _
    bPushdownListCTs As Boolean, _
    bThrowOnSealedOrReadOnly As Boolean _
)
'Применение
Dim instance As SPContentType
Dim bGenerateFullChangeList As Boolean
Dim bPushdownDerivedCT As Boolean
Dim bPushdownListCTs As Boolean
Dim bThrowOnSealedOrReadOnly As Boolean

instance.UpdateWorkflowAssociationsOnChildren(bGenerateFullChangeList, _
    bPushdownDerivedCT, bPushdownListCTs, _
    bThrowOnSealedOrReadOnly)
public void UpdateWorkflowAssociationsOnChildren(
    bool bGenerateFullChangeList,
    bool bPushdownDerivedCT,
    bool bPushdownListCTs,
    bool bThrowOnSealedOrReadOnly
)

Параметры

  • bGenerateFullChangeList
    Тип: System.Boolean

    true для выделения всех объектов SPContentType , охваченные этой операции изменения; не false .

  • bPushdownDerivedCT
    Тип: System.Boolean

    true для распространения изменений на типы контента, производные от данного типа содержимого; в противном случае — false.

  • bPushdownListCTs
    Тип: System.Boolean

    true для распространения изменений на типы контента списка на основе этого типа контента; в противном случае — false.

  • bThrowOnSealedOrReadOnly
    Тип: System.Boolean

    true исключение при обнаружении тип содержимого, который является запечатанным или только для чтения; в противном случае — false.

Исключения

Исключение Условие
SPContentTypeSealedException

Свойство Sealed является потомком данного типа контента имеет значение true.

SPContentTypeReadOnlyException

Свойство ReadOnly является потомком данного типа контента имеет значение true.

Замечания

Используйте этот метод при необходимости отправки изменений из родительского типа контента связей рабочих процессов до любого производного или список версий или оба типа содержимого. Если false передается в качестве аргумента для параметра bGenerateFullChangeList , SPContentType объектов, затронутых в этой операции не помечены как измененные и OnChanged события не вызываются. Передача false в качестве аргумента в параметр bThrowOnSealedOrReadOnly подавляет исключения, когда изменения не удается записать на дочерние, так как она помечена как запечатанный или только для чтения.

Примеры

Dim siteCollection As SPSite = New SPSite("https://localhost")
Dim site As SPWeb = siteCollection.OpenWeb()

Dim siteContentType As SPContentType = site.ContentTypes("Test Document")
Dim taskListTitle As String = "Tasks"
Dim historyListTitle As String = "Workflow History"
Dim workflowName As String = "Red-Yellow-Green"

' Get a template.
Dim workflowTemplate As SPWorkflowTemplate = Nothing
For Each template As SPWorkflowTemplate In site.WorkflowTemplates
    workflowTemplate = template
    ' We'll take a template everyone has.
    If workflowTemplate.Name = "Three-state" Then
        Exit For
    End If
Next template

' Create an association.
Dim workflowAssociation As SPWorkflowAssociation = _
          SPWorkflowAssociation.CreateSiteContentTypeAssociation(workflowTemplate, _
                                                                 workflowName, _
                                                                 taskListTitle, _
                                                                 historyListTitle)

' Add the association to the content type or update it if it already exists.
Console.Write("Workflow association {0} has been ", workflowAssociation.Name)
If siteContentType.WorkflowAssociations.GetAssociationByName(workflowAssociation.Name, site.Locale) Is Nothing Then
    siteContentType.AddWorkflowAssociation(workflowAssociation)
    Console.WriteLine("added")
Else
    siteContentType.UpdateWorkflowAssociation(workflowAssociation)
    Console.WriteLine("updated")
End If

' Propagate to children of this content type.
siteContentType.UpdateWorkflowAssociationsOnChildren(False, True, True, False) ' Suppress exceptions

' Clean up.
site.Dispose()
siteCollection.Dispose()
SPSite siteCollection = new SPSite("https://localhost");
SPWeb site = siteCollection.OpenWeb();

SPContentType siteContentType = site.ContentTypes["Test Document"];
string taskListTitle = "Tasks";
string historyListTitle = "Workflow History";
string workflowName = "Red-Yellow-Green";

// Get a template.
SPWorkflowTemplate workflowTemplate = null;
foreach (SPWorkflowTemplate template in site.WorkflowTemplates)
{
    workflowTemplate = template;

    // We'll take a template everyone has.
    if (workflowTemplate.Name == "Three-state") break;
}

// Create an association.
SPWorkflowAssociation workflowAssociation =
    SPWorkflowAssociation.CreateSiteContentTypeAssociation(workflowTemplate,
                                                           workflowName,
                                                           taskListTitle,
                                                           historyListTitle);

// Add the association to the content type or update it if it already exists.
Console.Write"Workflow association {0} has been ", workflowAssociation.Name);
if (siteContentType.WorkflowAssociations.GetAssociationByName(workflowAssociation.Name, site.Locale) == null)
{
    siteContentType.AddWorkflowAssociation(workflowAssociation);
    Console.WriteLine("added.");
}
else
{
    siteContentType.UpdateWorkflowAssociation(workflowAssociation);
    Console.WriteLine("updated.");
}

// Propagate to children of this content type.
siteContentType.UpdateWorkflowAssociationsOnChildren(false,  // Do not generate full change list
                                                     true,   // Push down to derived content types
                                                     true,   // Push down to list content types
                                                     false); // Do not throw an exception if sealed or readonly  

site.Dispose();
siteCollection.Dispose();

См. также

Справочные материалы

SPContentType класс

Элементы SPContentType

Перегрузка UpdateWorkflowAssociationsOnChildren

Пространство имен Microsoft.SharePoint

AddWorkflowAssociation

Другие ресурсы

Introduction to Workflows in Windows SharePoint Services

Workflow Stages