Defining Functions for Custom Transfer

The IronPython script customtransfer.py defines the functions that provide update instructions for the producing task group and for the consuming task to obtain the output data from the upstream producer.

def consumer_update(task):
    container = task.InternalObject
    #obtain input data
    upstreamData = container.GetInputDataByType(InputType="MyData")
    fileRef = None
    upstreamDataCount = upstreamData.Count
    if upstreamDataCount > 0:
        fileRef = upstreamData[0]  
        AssociateFileWithContainer(fileRef, container)
        ExtAPI.Log.WriteMessage("Recieved file "+fileRef.Location+" from producer.")
    #if no new data...nothing to process from upstream sources.
def producer_update(task):
    container = task.InternalObject
    extensionDir = ExtAPI.ExtensionManager.CurrentExtension.InstallDir
    filePath = System.IO.Path.Combine(extensionDir, "Sample_Materials.xml")
    fileRef = None
    isRegistered = IsFileRegistered(FilePath=filePath)
    if isRegistered == True:
        fileRef = GetRegisteredFile(filePath)
    else:
        fileRef = RegisterFile(FilePath=filePath)
        AssociateFileWithContainer(fileRef, container)
    outputRefs = container.GetOutputData()
    outputSet = outputRefs["MyData"]
    myData = outputSet[0]
    myData.TransferFile = fileRef