Example <Macro name="RetryQuery"> <Argument> <MaxRetries>10</MaxRetries> <StatusFrom>Save,Update</StatusFrom>...xml content </Argument> <Result> <NewLocalData> <MaxRetries>[:$Macro.Argument.MaxRetries:]</MaxRetries> <StatusFrom>[:$Macro.Argument.StatusFrom:]</StatusFrom> <RetryScript> <JavaScript> <Response> <Include>$Response.Message.Value</Include> </Response> <Retry> <Include>$Macro.Argument</Include> <Include>$LocalData.RetryScript</Include> </Retry> var result = null; var max_retries = [:$LocalData.MaxRetries:]; if(--max_retries [:ge:] 0) { sffContext.setLocalData("MaxRetries", max_retries); var check = Str.static.listSplitChar("[:$LocalData.StatusFrom:]", ", ", Str.static.SPL_TRIM); for each (var path in check) { var key = Str.static.listSplitChar(path, ".", Str.static.SPL_TRIM); key.add("Status"); for each (var status in Response.iterValues(key)) { sffLog.info("RetryQuery(%s): Checking %s=%s", [~~max_retries, key, status]); if(typeof status == "string" [:and:] status.startsWith("Failure")) { result = Retry; break; } } } } result; </JavaScript> </RetryScript> </NewLocalData> <Include>$Macro.Argument</Include> <Include>NewLocalData.RetryScript</Include> </Result> </Macro>
Referenced by:
Namespace, TQL model content, Macro
TmContent.TmNamespace: nested namespace
|