Friday, September 9, 2016

Printing ESS Self Service Check for a date range
 
 
 
Input parameter:
  1. Emplid
  2. To Date
  3. From Date
 
Code Snippet (You may need to change file path to download and write file)
 
import PSXP_RPTDEFNMANAGER:*;
 
Local date &PYMT_DT;
Local string &URL, &FILEURL_ID, &BURSTRPT_ID, &BURST_TEMPLATE_ID, &DIR_SYSFL_NM, &DIR_LCLFL_NM, &sSysINFileName, &sSysOUTFileName, &LanguageCd;
Local XmlDoc &inXMLDoc, &outXMLDoc;
Local boolean &retcode_parse, &retcode_output_xmlfile;
Local XmlNode &childNode;
Local PSXP_RPTDEFNMANAGER:ReportDefn &oRptDefn;
Local PSXP_RPTDEFNMANAGER:Utility &oUtil;
Local number &retcode_downld_fl, &OutDestFormat;
Local SQL &emp_pychck_sql;
 
&sSysINFileName = "/interfaces/" | %DbName | "/inbound/PR/EE_PYCHK.XML";
&sSysOUTFileName = "/interfaces/" | %DbName | "/inbound/PR/EE_" | BH_EE_CHKPRNT.EMPLID | "_PYCHK.XML";
 
/*SQL to Fetch XML file based on date*/
&emp_pychck_sql = CreateSQL("select %dateout(PYMT_DT), URL, PY_PSLP_FILEURLID, PY_SSP_BURSTRPT_ID, BURST_TEMPLATE_ID, PY_PSLP_SOURCEFILE, ATTACHSYSFILENAME from %table(:1) where EMPLID = :2 and  PYMT_DT between %datein(:3) and %datein(:4) and PY_SS_PSLP_STATUS = :5 ", Record.PY_SS_PSLP_GDE, BH_EE_CHKPRNT.EMPLID.Value, BH_EE_CHKPRNT.DATE_TO.Value, BH_EE_CHKPRNT.DATE_FROM.Value, "ORIG");
 
/*Get input XML obj*/
&inXMLDoc = CreateXmlDoc("");
 
/*Get output XML obj*/
&outXMLDoc = CreateXmlDoc("");
 
While &emp_pychck_sql.Fetch(&PYMT_DT, &URL, &FILEURL_ID, &BURSTRPT_ID, &BURST_TEMPLATE_ID, &DIR_SYSFL_NM, &DIR_LCLFL_NM)
  
   /*Download the file on server*/
   &retcode_downld_fl = GetAttachment(&URL, &DIR_LCLFL_NM, &sSysINFileName);
   /*File download success*/
   If &retcode_downld_fl = %Attachment_Success Then
     
      /*Parse XML Doc*/
      &retcode_parse = &inXMLDoc.ParseXmlFromURL(&sSysINFileName);
     
      /*Dcoument parsed success*/
      If &retcode_parse Then
         /*Find node from input XML obj*/
         &childNode = &inXMLDoc.DocumentElement.FindNode("/US_ADVICE/G_EMP_DATA");
        
         /*copy node from input XML obj to output XML obj*/
         &outXMLDoc.DocumentElement.CopyNode(&childNode);
        
         /*Dcoument parsed failed*/
      Else
         Error MsgGet(235, 3, "Unable to generate XML file from data source");
      End-If
      /*File download failed*/
   Else
      Error MsgGet(235, 5, "Error downloading file from database");
   End-If;
  
End-While;
 
/*Create ouput xml file*/
&retcode_output_xmlfile = &outXMLDoc.GenXmlFile(&sSysOUTFileName);
 
/*Output file created*/
If &retcode_output_xmlfile Then
  
   /*Create PDF Report*/
  
   /* start logging */
   WriteToLog(%ApplicationLogFence_Level1, "*** XMLP View Self Service Paycheck: " | String(%Datetime) | " ***");
   WriteToLog(%ApplicationLogFence_Level1, "XML File      = " | &retcode_output_xmlfile);
  
   &BURSTRPT_ID = "SSPOFADV";
  
   /* get the report defn object */
   &oRptDefn = create PSXP_RPTDEFNMANAGER:ReportDefn(&BURSTRPT_ID);
   &oRptDefn.Get();
  
   /* &oRptDefn.OutDestination = &xmlDir; */
   &oRptDefn.SetRuntimeDataXMLFile(&sSysOUTFileName);
  
   &LanguageCd = %Language_User;
   &OutDestFormat = 2;
  
   &oRptDefn.ProcessReport(&BURST_TEMPLATE_ID, &LanguageCd, %Date, &oRptDefn.GetOutDestFormatString(&OutDestFormat));
   /* &sFileExt = GetFileExtension(&sOutputFormat); */
   CommitWork();
  
   /* display the output */
   &oRptDefn.DisplayOutput();
  
   /*Output file not created*/
Else
   Error MsgGet(41, 5, "Error on output file.");
End-If;
 
/*Close SQL object*/
&emp_pychck_sql.Close();


No comments :

Post a Comment