Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
borderStylesolid
titleTmNamespace TmContent Macro
Example<Macro name="RetryQuery">
  <Argument>
    <MaxRetries>10</MaxRetries>
    <StatusFrom>Save,Update</StatusFrom>
  </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

...