IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Developing business processes > Building BPEL processes > Defining BPEL process logic > Adding an activity to a BPEL process > Work with basic activities > Use assign

Assigning from and to xs:any

Business object definitions can have XSD wildcards that can be mapped using the assign activity.

Such wildcards can represent a placeholder for any of the following:

Assigning from and to such wildcards has a number of specialities. This works very well for "type" based wildcards (anyType, anySimpleType, anyComplexType). For xs:any, there are a few things to consider, as discussed in the following sections.


Assigning from any (using the assign activity)

Once you select an xs:any element, a window will appear that asks you for a name. Since xs:any is a wildcard, it typically represents a concrete element.

For example, in the business object definition, an xs:any is modeled, but at run time there is a concrete "order" element at the position of the any. Therefore, in the window, insert the name of the concrete element that will be there at run time (for example, "order").

In cases you do not know the name, you might also access the element using the syntax *[n], where "n" stands for the position of the element within the business object at run time.

Using the *[n] must be done very carefully, since the position might vary if, for example, there are arrays of dynamic size before the element.


Assigning to any (using the assign activity)

You might wonder why there is no xs:any shown in the assign on the "to" side. The reason is: xs:any on the to-side of assign is currently not supported. As a workaround, use a Java™ Snippet to achieve this.

Finally, an overview table that shows the rules:

Input type Output type Supported?
any any No
  anyAttribute No
  anyType Yes - assign input to output
  anySimpleType Yes - assign input to output
  Concrete complex type Yes - assign input to output
  Concrete simple type Yes - assign input to output
anyAttribute any No
  anyAttribute No
  anyType No
  anySimpleType No
  Concrete complex type No
  Concrete simple type No
anyType anyType Yes - assign input to output
  any No
  anyAttribute No
  anySimpleType Yes - assign input to output
  Concrete complex type Yes - assign input to output
  Concrete simple type Yes - assign input to output
AnySimpleType AnySimpleType Yes - assign input to output
  any No
  anyAttribute No
  anyType Yes - assign input to output
  Concrete complex type No
  Concrete simple types Yes - assign input to output
Concrete simple type any No
  anyAttribute No
  anyType Yes - assign input to output
  anySimpleType Yes - assign input to output
Concrete complex type any No
  anyAttribute No
  anyType Yes - assign input to output
  anySimpleType No

Use assign