def myVar = 'some_value'
context.logInfo("This is a log statement. My variable is: $myVar")
def asset = context.asset
context.setMioObjectVariable("myAsset", asset)
def assetLink = context.getMioObjectVariable("myAsset")
def myVar = 'some_value'
context.setStringVariable("myVar", myVar)
def myStringVar = context.getStringVariable("myVar")
def now = new Date()
context.setDateVariable('myDateVar', now)
def myDateVar = context.getDateVariable('myDateVar')
Note that Context::getMioObjectVariable()
method returns an object of type ObjectLink
. If you want to exchange this
for a “real” object (e.g. an asset), you can use the appropriate service to do so:
def asset = context.asset
context.setMioObjectVariable("myAsset", asset)
def assetLink = context.getMioObjectVariable("myAsset")
def assetService = services.assetService
def storedAsset = assetService.getAsset(assetLink.id)
// Get asset from context
def asset = context.asset
// Store another asset
context.setAsset(1234)
// Remove asset from
contextcontext.removeAsset()
def asset = context.asset
def assetService = services.assetService
def metadata = assetService.getAssetMetadata(asset)
def directorField = metadata.getField('director')
if (directorField.hasValue()) {
def director = directorField.value as String
context.logInfo("The director is: $director")
}
def asset = context.asset
def assetService = services.assetService
def metadata = assetService.getAssetMetadata(asset.id)
def directorField = metadata.getField('director')
directorField.setValue('Michael Bay')
assetService.setAssetMetadata(asset.id, directorField)
Note: You must call setAssetMetadata()
after updating your fields.
def asset = context.asset
def metadataStructure = [
'myField1': 'value 1',
'myField2': 'value 2',
'myComplexField': [
'subField1': 'value 1',
'subField2': 'value 2'
]
]
def metadataJson = groovy.json.JsonOutput.toJson(metadataStructure)
def assetService = services.assetService
def metadata = assetService.getAssetMetadata(asset)
metadata.fromJson(metadataJson)
assetService.setAssetMetadata(asset, metadata)
def assetService = services.assetService
// Build query
def assetStatus = 'FINISHED'
String metadata = "status:$assetStatus"
def query = new AssetAPIQuery(
metadataDefinitionId: 1234,
metadata: [metadata]
)
// Run query
def finishedAssets = assetService.getAssets(query)
if (finishedAssets.totalCount > 0) {
// Print all asset names
finishedAssets.assets.each { asset ->
context.logInfo("Found finished asset: $asset.name")
}
}