Anda di halaman 1dari 7

Outbound:

The above app engine takes values from PS_SG_MR_BALANCE and writes the output
file.

2) INBOUND FILE

Initial Program look:


1)Do Select section: Selecting the file to process
2)To read the file and insert into table:

/* Loan Feedback Interface by Satya Siliveri from CapGemini 08/31/2005 */

Local File &LOANINPUT;


Local Record &SGLOAN;
Component any &filename, &atchfilename;

&datetimetday = %Datetime;
&SGLOAN = CreateRecord(Record.SG_FI_LOANS);

&filename = LTrim(RTrim(SG_LN_IN_AET.FILENAME));
&atchfilename = LTrim(RTrim(SG_LN_IN_AET.ATTACHUSERFILE));

If FileExists(&filename, %FilePath_Absolute) Then


&LOANINPUT = GetFile(&filename, "R", %FilePath_Absolute);
Else
MessageBox(16, "debug", 0, 0, "File Not Exists : " | &filename);
Exit;
End-If;
While &LOANINPUT.ReadLine(&SOMESTRING)

&RECID = Substring(&SOMESTRING, 52, 1);

If &RECID = "1" Then

/* To Insert into Record SG_FI_LOANS when Employee has only one row identified
by Record Identifier '1' */
If &RECID = &RECOLD Then

&SGLOAN.EMPLID.Value = &EMPLIDLN1;
&SGLOAN.EMPL_RCD.Value = &EMPLRCD1;
&SGLOAN.SG_PLAN_FI.Value = &PLANNBR;
&SGLOAN.SG_LOANID_FI.Value = &SGLNID;
&SGLOAN.EFFDT.Value = &EFFDTLN;
&SGLOAN.SG_SSN_FMT.Value = &SSNLN1;
&SGLOAN.SG_STSLOAN_FI.Value = &STATUSLN;
&SGLOAN.SG_EMPNO_FI.Value = &SGEMPNOLN;
&SGLOAN.START_DATE.Value = &EFFDTLN;
&SGLOAN.SG_AMT_REPAY.Value = &SGRPAYAMTLN;
&SGLOAN.SG_AMT_PRINC.Value = 0;
&SGLOAN.SG_AMT_INTEREST.Value = 0;
&SGLOAN.SG_PAYFREQ_FI.Value = "";
&SGLOAN.SG_CREATE_TS.Value = &datetimetday;
&SGLOAN.Insert();

End-If;

&RECOLD = &RECID;

&PLANNBR = Substring(&SOMESTRING, 1, 5);


&SSNLN1 = Substring(&SOMESTRING, 6, 11);
SQLExec("SELECT EMPLID,EMPL_RCD FROM PS_SG_FI_PARTIC WHERE
SG_SSN_FMT = :1", &SSNLN1, &EMPLIDLN1, &EMPLRCD1);
&SGLNID = Substring(&SOMESTRING, 40, 12);
&SGEMPNOLN = Substring(&SOMESTRING, 53, 12);
&STATUSLN = Substring(&SOMESTRING, 65, 1);
&EFFDTLN = Substring(&SOMESTRING, 66, 8);
&SGRPAYAMTLN = Substring(&SOMESTRING, 74, 7);
&SGRPAYAMTLN = Substring(&SGRPAYAMTLN, 1, 5) | "." |
Substring(&SGRPAYAMTLN, 6, 2);

Else

If &RECID = "2" Then


&RECBOTH = "Y";
&RECOLD = &RECID;
&SSNLN2 = Substring(&SOMESTRING, 6, 11);
If &SSNLN2 = &SSNLN1 Then
&SGPRINAMT = Substring(&SOMESTRING, 65, 8);
&SGPRINAMT = Substring(&SGPRINAMT, 1, 6) | "." |
Substring(&SGPRINAMT, 7, 2);
&SGINTAMT = Substring(&SOMESTRING, 73, 7);
&SGINTAMT = Substring(&SGINTAMT, 1, 5) | "." | Substring(&SGINTAMT,
6, 2);
&SGLNPAYFREQ = Substring(&SOMESTRING, 80, 1);

End-If;

End-If;

If &RECBOTH = "Y" Then


/* To Insert into Record SG_FI_LOANS when Employee has two rows identified
by Record
Identifiers '1' and '2' */

&SGLOAN.EMPLID.Value = &EMPLIDLN1;
&SGLOAN.EMPL_RCD.Value = &EMPLRCD1;
&SGLOAN.SG_PLAN_FI.Value = &PLANNBR;
&SGLOAN.SG_LOANID_FI.Value = &SGLNID;
&SGLOAN.EFFDT.Value = &EFFDTLN;
&SGLOAN.SG_SSN_FMT.Value = &SSNLN1;
&SGLOAN.SG_STSLOAN_FI.Value = &STATUSLN;
&SGLOAN.SG_EMPNO_FI.Value = &SGEMPNOLN;
&SGLOAN.START_DATE.Value = &EFFDTLN;
&SGLOAN.SG_AMT_REPAY.Value = &SGRPAYAMTLN;
&SGLOAN.SG_AMT_PRINC.Value = &SGPRINAMT;
&SGLOAN.SG_AMT_INTEREST.Value = &SGINTAMT;
&SGLOAN.SG_PAYFREQ_FI.Value = &SGLNPAYFREQ;
&SGLOAN.SG_CREATE_TS.Value = &datetimetday;
&SGLOAN.Insert();
&RECBOTH = "N";

End-If;
End-If;

End-While;

Anda mungkin juga menyukai