02.05.2014 Views

CoreandServices.book - Ocean - Schlumberger

CoreandServices.book - Ocean - Schlumberger

CoreandServices.book - Ocean - Schlumberger

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Custom Worksteps<br />

You can assign the grid specified by the special “With 3D-Grid” command in the workflow<br />

to the argument’s value by using the custom <strong>Ocean</strong> attribute<br />

TakeValueOfWith3DGridAttribute.<br />

Optional in Workflow<br />

Normally, the Workflow editor requires that all arguments have a value assigned to them<br />

before running the workflow. You can tell the Workflow editor that your argument is<br />

optional.<br />

When you use the OptionalInWorkflowAttribute, the Workflow editor will not<br />

check if the argument has a value before running the workflow.<br />

Ignore in Workflow<br />

The final interoperability feature is to tell the Workflow editor to ignore your argument and<br />

pass it through to your custom dialog UI.<br />

The custom <strong>Ocean</strong> attribute IgnoreInWorkflowAttribute is useful if you have an<br />

argument type that does not appear in a Petrel tree, like a drop down selection box<br />

representing an enumeration or a verified date string. Using this attribute means you<br />

typically create a custom dialog UI to assign a value to the argument. If you use the<br />

default dialog UI, the ignored argument will always have its default value.<br />

Here is an example of marking an argument to be ignored in the Workflow editor:<br />

// argument to be ignored by Workflow editor<br />

[IgnoreInWorkflow]<br />

[Description(“Special type”, “custom enumerated well type”)]<br />

public MyNamespace.MyWellType SpecialWellType<br />

{<br />

internal get { return swell;}<br />

set { swell = value;}<br />

}<br />

...<br />

Advanced - Argument Package Details<br />

Creation of arguments using DescribedArgumentsByReflection is the preferred<br />

and extremely convenient approach to creating argument packages, but it is not required.<br />

So far, we have not looked at the convenience class in any detail; we will do that now to<br />

provide a basis for discussion of the argument package alternatives. These details are an<br />

advanced topic; a typical developer would just use the convenience class.<br />

<strong>Schlumberger</strong> Private<br />

Workflow 6-295

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!