Monday, 7 May 2012

XML FILE CREATION and uploading to FTP Using Peoplecode

   Local XmlDoc &inXMLDoc;
   Local XmlNode &rootNode, &childNode1, &childNode2, &textNode2;
   Local string &xmlStr;
   Local File &xmlFile;
   Local number &i;
 
   &XML_FILE_PATH = GetEnv("PS_SERVDIR") | "\LOGS\";
   SQLExec("SELECT B.LM_CS_LONG_NM FROM PS_LM_ACT A, PS_LM_CI_TBL B WHERE B.LM_CI_ID = A.LM_CI_ID AND A.LM_ACT_ID=:1 AND B.EFFDT =(SELECT MAX(B_ED.EFFDT) FROM PS_LM_CI_TBL B_ED WHERE B.LM_CI_ID = B_ED.LM_CI_ID AND B_ED.EFFDT <= GETDATE())", &Acivity_ID, &LM_CS_LONG_NM);
   &FILE_NAME = &LM_CS_LONG_NM | "_" | %Date | ".XML";
   &xmlFile = GetFile(&XML_FILE_PATH | &FILE_NAME, "W", "", %FilePath_Absolute);
  
   &inXMLDoc = CreateXmlDoc("");
   &rootNode = &inXMLDoc.CreateDocumentElement("Start");
  
  
   rem   SQLExec("SELECT B.LM_CS_LONG_NM FROM PS_LM_ACT A, PS_LM_CI_TBL B WHERE B.LM_CI_ID = A.LM_CI_ID AND A.LM_ACT_ID=:1 AND B.EFFDT =(SELECT MAX(B_ED.EFFDT) FROM PS_LM_CI_TBL B_ED WHERE B.LM_CI_ID = B_ED.LM_CI_ID AND B_ED.EFFDT <= GETDATE())", &Acivity_ID, &LM_CS_LONG_NM);
   Local Record &rec = CreateRecord(Record.PCS_GE_GDC_VW);
   Local SQL &sql = CreateSQL("SELECT  * FROM PS_TEST_REC  where LM_CS_LONG_NM=:1", &LM_CS_LONG_NM);
  
   While &sql.Fetch(&rec)
      &childNode1 = &rootNode.AddElement(&rec.Name);
      For &i = 1 To &rec.FieldCount
         &childNode2 = &childNode1.AddElement(&rec.GetField(&i).Name);
         &textNode2 = &childNode2.AddText(&rec.GetField(&i).Value);
      End-For;
   End-While;
  
   &xmlStr = &inXMLDoc.GenFormattedXmlString();
  
   &xmlFile.WriteLine(&xmlStr);
  
   /* Pushing xml file into FTP path from the local server path */
  
   &xmlFile.Close();
   &FTP_URL = "ftp Path”
   &FILE_PATH_NAME = &FTP_URL;
   &FILE_NAME_FTP = &LM_CS_LONG_NM | "_" | %Date | ".XML";
   &PutAttachment = PutAttachment(&FILE_PATH_NAME, &FILE_NAME_FTP, &XML_FILE_PATH | &FILE_NAME);



No comments:

Post a Comment