Skip to Content

Requirement: you are generating a flat file and want a footer let’s say “total number of row count: [row_count]” to be added in the flat file.

Solution:

Create a job  Job_add_footer:

1.JPG

Step 1 Script_File_Property:

             Set the file path and file name for the file to be created.

Step 2 Dataflow DF_FLAT_FILE:

2.JPG

           Will create your flat file in the appropriate folder without footer.

           After this dataflow your flat file is generated but without footer.

           Our main logic for footer starts from Script_Row_Count.

Step 3 Script_Row_Count:

             The main aim of this script is count the number of records present in the flat file generated.

             Since my folder is in the Unix server. So here are the following code. You have to change your code according to the

              server containing the folder where file has been created.

Logic:

first define a variable which will hold the full file path and file name of the file created:

$G_PathAndFileName = $G_FilePath||’/’||$G_FileName;

Make sure to enclose it in double quotes(“ ”)

$G_PathAndFileName = ‘”‘||'[$G_PathAndFileName]’||'”‘;

Then we have to call the exec() function which will count the number of records including the header. Along with row count, it will also return the full file path and file name separated by space.

$G_File_Line_Count = exec(‘wc’,’-l [$G_PathAndFileName]’,2);

Then we need to extract the row count from the full $G_File_Line_Count string.

$G_File_Line_Count = word_ext( $G_File_Line_Count,1,’ ‘);

The output will be in  varchar. So we need to cast it to integer. And since it also contains the header so subtract -1.

$G_Record_Count = cast($G_File_Line_Count,’int’)-1;

Now we have got our record count.

Step 4 Create one flat file structure and name it as FF_FOOTER.

  • –   Give same file path and file name as you have given for file in which you want the footer to be added.
  • –   Skip row header should be ‘Yes’.
  • –   Column delimiter should be ‘SPACE’.
  • –   Add two field FOOTER_NAME VARCHAR(100)and FOOTER_VALUE VARCHAR(100).
  • –    Save and close it.

Step 5: Dataflow DF_ADD_FOOTER

             Build the dataflow DF_ADD_FOOTER as follows:

4.JPG

Row_Generation transform

           Since we have to generate only one row as footer.

5.JPG

Query transform:

6.JPG

    Mapping:

     Footer_Name = ‘Total number of records: ‘

     Footer_value = $G_Record_Count

     Note: now open the flat file FF_FOOTER property from workspace and select Delete File as ‘No’.

     7.JPG

Now save the job and execute it.

You will find the footer has been added in your flat file.

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply