Local File &File;
Local string &FILE_NAME, &CHARSET, &COMPANY_NAME, &COMPANY_PADDED, &LINES_PADDED, &AMOUNT_PADDED;
Local number &LINES, &AMOUNT;
Local Record &HEADER_REC, &TRANSACTION_REC;
Local SQL &HEADER_SQL, &TRANSACTION_SQL;
Declare Function LPAD PeopleCode FUNCLIB_GPCN.PADDINGLEFT FieldFormula;
Declare Function RPAD PeopleCode FUNCLIB_GPCN.PADDINGRGHT FieldFormula;

&TRANSACTION_REC = CreateRecord(Record.GPCN_EFT1_TAO);

&FILE_NAME = "gpcn_bank.txt";
&CHARSET = "U";

&File = GetFile(&FILE_NAME, "W", &CHARSET);
If &File.IsOpen Then
   If &File.SetFileLayout(FileLayout.GPCN_EFT_CCBS) Then
     
      /* Write 1st Line of the Header Rows */
      &COMPANY_NAME = GPCN_EFT_AET.ACCOUNT_NAME;
      &COMPANY_PADDED = RPAD(&COMPANY_NAME, 31, "=");
      &File.WriteLine(&COMPANY_PADDED);
     
      /* Write 2nd Line of the Header Rows */
      &LINES = GPCN_EFT_AET.SEQUENCE_NBR_6;
      &LINES_PADDED = LPAD(String(&LINES), 6, "0");
      &File.WriteLine(&LINES_PADDED | "=========================");
     
      /* Write 3rd Line of the Header Rows */
      &AMOUNT = GPCN_EFT_AET.SEQ_NBR;
      &AMOUNT_PADDED = LPAD(String(&AMOUNT), 12, "0");
      &File.WriteLine(&AMOUNT_PADDED | "===================");
     
      /* Write 4th Line of the Header Rows */
      &File.WriteLine("================***************");
     
      /* Write Transaction Rows */
      &TRANSACTION_SQL = CreateSQL("%Selectall(:1) Where PROCESS_INSTANCE=:2", &TRANSACTION_REC, GPCN_EFT_AET.PROCESS_INSTANCE);
      While &TRANSACTION_SQL.Fetch(&TRANSACTION_REC)
         &File.WriteRecord(&TRANSACTION_REC);
      End-While;
     
   End-If;
Else
   GPCN_EFT_AET.ERROR_TYPE = "501"; /*Error Writing to File*/
End-If;
&File.Close();