Versions Compared

Key

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

Warning

...

Warning!

MultiForwarding is not fully supported for ADLS2 File Forwarding as of version 8.1.5.0

When the agent is set to use MultiForwardingUDR input, it accepts input of the UDR type MultiForwardingUDR declared in the package FNT. The declaration follows:

Code Block
theme
languagetextEclipse
internal MultiForwardingUDR
{ // Entire file content 
 byte[] content; // Target filename and directory 
 FNTUDR fntSpecification; 
};

...

A UDR of the type MultiForwardingUDR which has a target filename that is not identical to its precedent is saved in a new output file.

...

Note!

After a target filename that is not identical to its precedent is saved, you cannot use the first filename again. For example: Saving filename B after saving filename A, prevents you from using A again. Instead, you should first save all the A filenames, then all the B filenames, and so forth.

Non-existing directories will be created if the  Create Non-Existing Directories  check box under the Filename Template tab the Filename Template tab is checked. If not checked, a runtime error will occur if a previously unknown directory exists in the FNTUDR of an incoming MultiForwardingUDR. Every configuration option referring to bytearray input is ignored when MultiForwardingUDRs are expected.

Info
title

Example - APL code to send MultiForwardingUDRs

This example shows the APL code used in an Analysis agent connected to a forwarding agent expecting input of type MultiForwardingUDRs.

Code Block
languagetextthemeEclipse
import ultra.FNT;

MultiForwardingUDR createMultiForwardingUDR
(string dir, string file, bytearray fileContent){

    //Create the FNTUDR
    FNTUDR fntudr = udrCreate(FNTUDR);
    fntAddString(fntudr, dir);
    fntAddDirDelimiter(fntudr);//Add a directory
    fntAddString(fntudr, file);//Add a file

    MultiForwardingUDR multiForwardingUDR =
    udrCreate(MultiForwardingUDR);
    multiForwardingUDR.fntSpecification = fntudr;
    multiForwardingUDR.content = fileContent;

    return multiForwardingUDR;
}

consume {

    bytearray file1Content;
    strToBA (file1Content, "file nr 1 content");

    bytearray file2Content;
    strToBA (file2Content, "file nr 2 content");

    //Send MultiForwardingUDRs to the forwarding agent
    udrRoute(createMultiForwardingUDR
    ("dir1", "file1", file1Content));
    udrRoute(createMultiForwardingUDR
    ("dir2", "file2", file2Content));
}

The Analysis agent mentioned previous in the example will send two MultiForwardingUDRs to the forwarding agent. Two files with different contents will be placed in two separate sub folders in the root directory. The  Create Non-Existing Directories check box under the Filename Template tab in the configuration of the forwarding agent must be checked if the directories do not previously exist.

...