Versions Compared

Key

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

...

Note
titleNote!

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.

Archiving Example

Info
titleExample - Archiving

This example shows the APL code used in an Analysis agent connected to a forwarding agent expecting input of type MultiForwardingUDRs. In this example, the data is being buffered in the consume block. This makes it possible to route a complete batch to multiple files from the drain block. Note that the execution context needs available memory to buffer the whole file.

Code Block
languagetext
themeEclipse
import ultra.FNT;

bytearray data;

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;
}

beginBatch {
    data = baCreate(0);
}

consume {
    data = baAppend(data, input);
}

drain {
    //Send MultiForwardingUDRs to the forwarding agent
    udrRoute(createMultiForwardingUDR("dir1", "file1", data));
    udrRoute(createMultiForwardingUDR("dir2", "file2", data));
}


Local Archiving Example

Info
titleExample - Local Archiving

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

Code Block
languagetext
themeEclipse
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.

...