Skip to content

Instantly share code, notes, and snippets.

@vinodronold
Last active November 16, 2021 05:30
Show Gist options
  • Save vinodronold/2814462cf963495ee48b8a624581e3a4 to your computer and use it in GitHub Desktop.
Save vinodronold/2814462cf963495ee48b8a624581e3a4 to your computer and use it in GitHub Desktop.
import PACKAGE:Utils:StringHashtable;
class Header
method Header();
method init();
method insert();
method createFile();
property string fileName get;
property string fullFilePathName get;
property number rowCount get;
/*** File Columns - START ***/
property string InvoiceID get set;
property string BusinessUnit get set;
property string Source get set;
property string InvoiceNumber get set;
property string InvoiceAmount get set;
property string InvoiceDate get set;
/*** File Columns - END ***/
private
instance string &_sFileName;
instance AD_CLOUD_FBDI:Utils:Utils &_oUtils;
instance AD_CLOUD_FBDI:Utils:StringHashtable &_oHeader;
instance array of AD_CLOUD_FBDI:Utils:StringHashtable &_arrHeader;
end-class;
method Header
&_sFileName = %This.fileName | "." | DateTimeToLocalizedString(%Datetime, "yyyyMMddHHmmss");
&_oHeader = create AD_CLOUD_FBDI:Utils:StringHashtable();
&_arrHeader = CreateArrayRept(&_oHeader, 0);
%This.init();
end-method;
method insert
&_arrHeader.Push(&_oHeader);
%This.init();
end-method;
method createFile
Local number &nCnt;
Local File &fileInvoiceHeader;
MessageBox(0, "", 0, 0, "START - Creating Header File - %1", %Datetime);
&fileInvoiceHeader = GetFile(%This.fullFilePathName, "w", %FilePath_Absolute);
MessageBox(0, "", 0, 0, "fullFilePathName - %1", %This.fullFilePathName);
For &nCnt = 1 To &_arrHeader.Len
&fileInvoiceHeader.WriteLine(&_arrHeader [&nCnt].GetValues().Join(",", "", ""));
End-For;
&fileInvoiceHeader.Close();
MessageBox(0, "", 0, 0, "END - Creating Header File - %1", %Datetime);
CommitWork();
end-method;
method init
/** INIT COLUMN ORDER **/
&_oHeader = create AD_CLOUD_FBDI:Utils:StringHashtable();
&_oHeader.Put("InvoiceID", "");
&_oHeader.Put("BusinessUnit", "");
&_oHeader.Put("Source", "");
&_oHeader.Put("InvoiceNumber", "");
&_oHeader.Put("InvoiceAmount", "");
&_oHeader.Put("InvoiceDate", "");
end-method;
get fileName
/+ Returns String +/
Return "Interface.csv";
end-get;
get fullFilePathName
/+ Returns String +/
Return &_oUtils.filePath | "/" | &_sFileName;
end-get;
get rowCount
/+ Returns Number +/
Return &_arrHeader.Len;
end-get;
/** Get / Set Column Values **/
set InvoiceID
/+ &NewValue as String +/
&_oHeader.Put("InvoiceID", &_oUtils.getQualifiedValue(&NewValue));
end-set;
get BusinessUnit
/+ Returns String +/
Return &_oHeader.Get("BusinessUnit");
end-get;
set BusinessUnit
/+ &NewValue as String +/
&_oHeader.Put("BusinessUnit", &_oUtils.getQualifiedValue(&NewValue));
end-set;
get Source
/+ Returns String +/
Return &_oHeader.Get("Source");
end-get;
set Source
/+ &NewValue as String +/
&_oHeader.Put("Source", &_oUtils.getQualifiedValue(&NewValue));
end-set;
get InvoiceNumber
/+ Returns String +/
Return &_oHeader.Get("InvoiceNumber");
end-get;
set InvoiceNumber
/+ &NewValue as String +/
&_oHeader.Put("InvoiceNumber", &_oUtils.getQualifiedValue(&NewValue));
end-set;
get InvoiceAmount
/+ Returns String +/
Return &_oHeader.Get("InvoiceAmount");
end-get;
set InvoiceAmount
/+ &NewValue as String +/
&_oHeader.Put("InvoiceAmount", &_oUtils.getQualifiedValue(&NewValue));
end-set;
get InvoiceDate
/+ Returns String +/
Return &_oHeader.Get("InvoiceDate");
end-get;
set InvoiceDate
/+ &NewValue as String +/
&_oHeader.Put("InvoiceDate", &_oUtils.getQualifiedValue(&NewValue));
end-set;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment