Advanced Customization > Business Logic Customization > Windchill Workgroup Manager Customization > Custom Windchill Workgroup Manager Requests
  
Custom Windchill Workgroup Manager Requests
This is the object model of customWindchill Workgroup Manager requests.
A typical custom Windchill Workgroup Manager request, is inherited from IterationRequest, and has the following attributes:
ServiceDescriptor – a descriptor that helps locate a custom service to be invoked
RequestInstructionsData– a stringdict aka Map <String, String> to carry the intended instructions
Collection of IterationC11Instructions – a set of persistable objects on which operation is performed, and a stringdict for each.
There are two types of custom Windchill Workgroup Manager requests:
Custom request with workspace (WorkspaceC11nRequest). This could be used for custom workspace operation.
Custom request without workspace (C11nRequest). This could be used for custom common space operation.
If WorkspaceC11nRequest, workspace is an additional attribute.
A Custom Response (C11nMessage) is a typical stringdict aka Map <String, String> object that a client is supposed to interpret. Additionally there is set of IterationC11nResponse. If there is a WorkspaceC11nRequest, it would contain an updated workspace message (WorkspaceUpdateC11nMessage).
WorkspaceUpdate is processed through a Request Result Cache (RRC) property populator module, while a rich set of fixed message for FolderedIterations in C11nMessage is serialized back to the client.
C11nRequest
public interface C11nRequest
extends UwgmRequest, IterationRequest
{
public final static UwgmRequestType type = new
UwgmRequestType("uwgmsvc::C11nRequest");

public final static C11nRequest EMPTY = null;

// RequestInstructionData access methods
/**
* Get value of attribute RequestInstructionData
*/
public stringdict getRequestInstructionData ();
/**
* Assign value to attribute RequestInstructionData
*/
public void setRequestInstructionData (stringdict value);

// ServiceDescriptor access methods

/**
* Get value of attribute ServiceDescriptor
*/
public String getServiceDescriptor ();
/**
* Assign value to attribute ServiceDescriptor
*/
public void setServiceDescriptor (String value);

// IterationC11nInstruction access methods

/**
* Get value of attribute IterationC11nInstruction
*/
public IterationC11nInstruction.Iterator getIterationC11nInstruction ();

/**
* Size of collection IterationC11nInstruction
*/
public int sizeOfIterationC11nInstruction ();

/**
* Get content of collection IterationC11nInstruction as array
*/
public IterationC11nInstruction<] getIterationC11nInstructionArray ();

// BEGIN_CUSTOM_DEFS guid=49BA56C202A4 type=JAVA_INTERFACE_DEFS
// END_CUSTOM_DEFS guid=49BA56C202A4 type=JAVA_INTERFACE_DEFS
}
WorkspaceC11nRequest
Definition of interface com.ptc.windchill.uwgm.
soap.uwgmsvc.WorkspaceC11nRequest

Unified WGM Source Code Generation Utility
*/

//
// $$NONE
//

package com.ptc.windchill.uwgm.soap.uwgmsvc;

import com.ptc.windchill.uwgm.soap.bins11n.*;

import com.ptc.cipjava.*;
import com.ptc.windchill.uwgm.soap.uwgm.*;
import com.ptc.windchill.uwgm.soap.bins11n.*;

// BEGIN_CUSTOM_DEFS guid=49BA63010149 type=JAVA_INTERFACE_HEADER
// END_CUSTOM_DEFS guid=49BA63010149 type=JAVA_INTERFACE_HEADER

/**
*
*/
@UwgmBinRegisterable
public interface WorkspaceC11nRequest
extends UwgmRequest, C11nRequest, WithWorkspace
{
public final static UwgmRequestType type = new
UwgmRequestType("uwgmsvc::WorkspaceC11nRequest");

public final static WorkspaceC11nRequest EMPTY = null;

// BEGIN_CUSTOM_DEFS guid=49BA63010149 type=JAVA_INTERFACE_DEFS
// END_CUSTOM_DEFS guid=49BA63010149 type=JAVA_INTERFACE_DEFS
}
C11nMessage
public interface C11nMessage
extends UwgmMessage
{
public final static UwgmMessageType type = new
UwgmMessageType("uwgmsvc::C11nMessage");

public final static C11nMessage EMPTY = null;

// ResponseData access methods
/**
* Get value of attribute ResponseData
*/
public stringdict getResponseData ();

/**
* Assign value to attribute ResponseData
*/
public void setResponseData (stringdict value);

// IterationC11nResponse access methods
/**
* Get value of attribute IterationC11nResponse
*/
public IterationC11nResponse.Iterator getIterationC11nResponse ();

/**
* Size of collection IterationC11nResponse
*/
public int sizeOfIterationC11nResponse ();

/**
* Get content of collection IterationC11nResponse as array
*/
public IterationC11nResponse[] getIterationC11nResponseArray ();

// BEGIN_CUSTOM_DEFS guid=49BDE77E01EC type=JAVA_INTERFACE_DEFS
// END_CUSTOM_DEFS guid=49BDE77E01EC type=JAVA_INTERFACE_DEFS
}
WorkspaceUpdateC11nMessage
Definition of interface com.ptc.windchill.uwgm.soap.
uwgmsvc.WorkspaceUpdateC11nMessage

Unified WGM Source Code Generation Utility
*/

//
// $$NONE
//

package com.ptc.windchill.uwgm.soap.uwgmsvc;

import com.ptc.windchill.uwgm.soap.bins11n.*;

import com.ptc.cipjava.*;
import com.ptc.windchill.uwgm.soap.uwgm.*;
import com.ptc.windchill.uwgm.soap.bins11n.*;

// BEGIN_CUSTOM_DEFS guid=49BDE7C602D8 type=JAVA_INTERFACE_HEADER
// END_CUSTOM_DEFS guid=49BDE7C602D8 type=JAVA_INTERFACE_HEADER

/**
*
*/
@UwgmBinRegisterable
public interface WorkspaceUpdateC11nMessage
extends UwgmMessage, C11nMessage, WorkspaceUpdateMessage
{
public final static UwgmMessageType type = new
UwgmMessageType("uwgmsvc::WorkspaceUpdateC11nMessage");

public final static WorkspaceUpdateC11nMessage EMPTY = null;

// BEGIN_CUSTOM_DEFS guid=49BDE7C602D8 type=JAVA_INTERFACE_DEFS
// END_CUSTOM_DEFS guid=49BDE7C602D8 type=JAVA_INTERFACE_DEFS
}
Please note that creation of custom request (WorkspaceC11nRequest or C11nRequest) is part of client side customization. The Windchill server provides infrastructure to execute custom request. Client side customization also needs to process server response of the custom request. Interfaces shown above (C11nRequest, WorkspaceC11nRequest, C11nMessage and WorkspaceUpdateC11nMessage) are used in client side customization code to implement custom request on client side and process custom response.