Function Generate_xmlReport();
Local XmlDoc &xmlDoc;
Local XmlNode &root_node, &sub_node, &text_node;
Local Rowset &rs, &rs1;
Local PSXP_XMLGEN:RowSetDS &oRS;
Local PSXP_RPTDEFNMANAGER:ReportDefn &oRptDefn;
Local PSXP_RPTDEFNMANAGER:DataSourceDefn &oDsDefn;
&xmlDoc = CreateXmlDoc("<?xml version='1.0' encoding='UTF-8'?><ROOT/>");
&root_node = &xmlDoc.DocumentElement.AddElement("DATA");
&sEMPLID = ABI_PER_SER_VW.EMPLID.Value;
&sub_node = &root_node.AddElement("EMPLID");
&text_node = &sub_node.AddText(ABI_PER_SER_VW.EMPLID.Value);
&sub_node = &root_node.AddElement("NAME");
&text_node = &sub_node.AddText(ABI_PER_SER_VW.NAME.Value);
&sub_node = &root_node.AddElement("DEPT");
&text_node = &sub_node.AddText(DEPT_TBL.DESCR.Value);
&sub_node = &root_node.AddElement("POSITION");
&text_node = &sub_node.AddText(POSITION_DATA.DESCR.Value);
&oRptDefn = create PSXP_RPTDEFNMANAGER:ReportDefn("TST_PRB01");
&oRptDefn.Get();
&oRptDefn.SetRuntimeDataXMLDoc(&xmlDoc);
/* process report */
&oRptDefn.ProcessReport("", "ZHS", %Date, "");
CommitWork();
&oRptDefn.DisplayOutput();
End-Function;
Local XmlDoc &xmlDoc;
Local XmlNode &root_node, &sub_node, &text_node;
Local Rowset &rs, &rs1;
Local PSXP_XMLGEN:RowSetDS &oRS;
Local PSXP_RPTDEFNMANAGER:ReportDefn &oRptDefn;
Local PSXP_RPTDEFNMANAGER:DataSourceDefn &oDsDefn;
&xmlDoc = CreateXmlDoc("<?xml version='1.0' encoding='UTF-8'?><ROOT/>");
&root_node = &xmlDoc.DocumentElement.AddElement("DATA");
&sEMPLID = ABI_PER_SER_VW.EMPLID.Value;
&sub_node = &root_node.AddElement("EMPLID");
&text_node = &sub_node.AddText(ABI_PER_SER_VW.EMPLID.Value);
&sub_node = &root_node.AddElement("NAME");
&text_node = &sub_node.AddText(ABI_PER_SER_VW.NAME.Value);
&sub_node = &root_node.AddElement("DEPT");
&text_node = &sub_node.AddText(DEPT_TBL.DESCR.Value);
&sub_node = &root_node.AddElement("POSITION");
&text_node = &sub_node.AddText(POSITION_DATA.DESCR.Value);
&oRptDefn = create PSXP_RPTDEFNMANAGER:ReportDefn("TST_PRB01");
&oRptDefn.Get();
&oRptDefn.SetRuntimeDataXMLDoc(&xmlDoc);
/* process report */
&oRptDefn.ProcessReport("", "ZHS", %Date, "");
CommitWork();
&oRptDefn.DisplayOutput();
End-Function;