midrange.com code scratchpad
Name:
Rick Chevalier
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
10/05/2011 07:03:47 pm
IP:
Logged
Description:
XML parser concatenation issue. Mainline code.
Code:
  1.       /Free
  2.  
  3.         // Register error condition handler
  4.         HdlrProcPtr = %PAddr(ErrorConditionHandler);
  5.         HdlrToken = %Addr(SystemDS);
  6.         CEEHDLR(HdlrProcPtr :HdlrToken :*OMIT);
  7.  
  8.         // Make sure constructor has been called
  9.         IS3905R_Constructor();
  10.  
  11.         // Read data queue entry
  12.         RcvDQEnt(DQName :DQLibrary :DQLength :DQDataDS :DQWait);
  13.  
  14.         // An entry containing "SHUTDOWN" will be placed onto the queue for
  15.         // each server.  This signals the receiver program to end.
  16.         DoW DQDataDS.Shutdown <> 'SHUTDOWN';
  17.  
  18.           // Retrieve UI entries for this group
  19.           UIRemoveCriteria = %EditC(DQDataDS.GroupingID :'X') + '001' +
  20.                              %EditC(DQDataDS.GroupingID :'X') +
  21.                              %EditC(DQDataDS.NbrOfImages :'X');
  22.  
  23.           RmvUsrIdxEnt(UINbrRemoved :UIRcvVarDS :UIRcvVarLen :UIOffsets
  24.                       :UILenOfOffsets :UIRetLibrary :UIName :UIFormat
  25.                       :UIMaxEntries :UIRemoveType :UIRemoveCriteria
  26.                       :UICriteriaLength :UICriteriaOffset :apiError);
  27.  
  28.           // Reset values
  29.           OKToIndex = *On;
  30.           WriteECEAuditRec = *Off;
  31.           Clear ImageHstUpdDS;
  32.           Clear RVIRecDS;
  33.           RVIRecDS.ABAICD = TargetDir;
  34.  
  35.           // Walk through returned list of images
  36.           For ImageCount = 1 to UINbrRemoved;
  37.             ImageHstUpdDs(ImageCount).SourceFile =
  38.                 UIRcvVarDS.UIEntry(ImageCount).ImageFile;
  39.  
  40.             // Validate account identifier
  41.             If ValidAccountID(MyAccountID
  42.                              :UIRcvVarDS.UIEntry(ImageCount).AccountType
  43.                              :UIRcvVarDS.UIEntry(ImageCount).AccountID);
  44.  
  45.               // Validate doc type
  46.               If ValidDocType(WriteECEAuditRec
  47.                              :UIRcvVarDS.UIEntry(ImageCount).DocType
  48.                              :UIRcvVarDS.UIEntry(ImageCount).NCPProductCode
  49.                              :UIRcvVarDS.UIEntry(ImageCount).LetterType1
  50.                              :UIRcvVarDS.UIEntry(ImageCount).LetterType2);
  51.  
  52.                 // Next RVI transaction number
  53.                 If ImageCount = 1;
  54.                   RVIRecDS.ABAACD = UIRcvVarDS.UIEntry(ImageCount).RVISysCode;
  55.                   RVIRecDS.ABAANB =
  56.                       Nxttrn#(UIRcvVarDS.UIEntry(ImageCount).RVISysCode);
  57.                 EndIf;
  58.  
  59.                 // Determine file type and set RVI field and suffix accordingly
  60.                 If %Scan('.PDF' :ImageHstUpdDS(1).ImageFile) > 0;
  61.                   RVIRecDS.ABABST = 'O';
  62.                   Suffix = '.PDF';
  63.                 Else;
  64.                   RVIRecDS.ABABST = 'B';
  65.                   Suffix =
  66.                       %EditC(UIRcvVarDS.UIEntry(ImageCount).ImageNumber :'X');
  67.                 EndIf;
  68.  
  69.                 // Move images
  70.                 If MovedToImageDir(ReturnedImage
  71.                                   :UIRcvVarDS.UIEntry(ImageCount).ImageFile
  72.                                   :UIRcvVarDS.UIEntry(ImageCount).ImageDir
  73.                                   :Suffix
  74.                                   :UIRcvVarDS.UIEntry(ImageCount).RVISysCode
  75.                                   :RVIRecDS.ABAANB);
  76.                   ImageHstUpdDS(ImageCount).ProcSts = 'P';
  77.                   ImageHstUpdDS(ImageCount).ImageFile = ReturnedImage;
  78.  
  79.                 Else;   // MovedToImageDir()
  80.                   ImageHstUpdDS(ImageCount).ProcSts = 'E';
  81.                   ImageHstUpdDS(ImageCount).ImageFile = *Blanks;
  82.                   OKToIndex = *Off;
  83.                 EndIf;  // MovedToImageDir()
  84.  
  85.               // Invalid doc type
  86.               Else;
  87.                 ImageHstUpdDS(ImageCount).ProcSts = 'E';
  88.                 OKToIndex = *Off;
  89.                 SndErrorEMail('IMG0004'
  90.                     :%EditC(UIRcvVarDS.UIEntry(ImageCount).DocType :'X') +
  91.                      UIRcvVarDS.UIEntry(ImageCount).ImageFile +
  92.                      UIRcvVarDS.UIEntry(ImageCount).ImageDir);
  93.               EndIf;    // ValidDocType()
  94.  
  95.             // Update image history with error code
  96.             Else;     // Valid account identifier
  97.               ImageHstUpdDS(ImageCount).ProcSts = 'E';
  98.               OKToIndex = *Off;
  99.               SndErrorEMail('IMG0003'
  100.                     :%EditC(UIRcvVarDS.UIEntry(ImageCount).AccountID :'X') +
  101.                      UIRcvVarDS.UIEntry(ImageCount).ImageFile +
  102.                      UIRcvVarDS.UIEntry(ImageCount).ImageDir);
  103.             EndIf;    // Valid account identifier
  104.  
  105.           EndFor;   // ImageCount = 1 to UINbrRemoved
  106.  
  107.           // If it is ok to index the image send MQ message and update RVI
  108.           If OKToIndex;
  109.  
  110.             // Use letter ID if this is an ECE image
  111.             If WriteECEAuditRec;
  112.               RVIRecDS.ABAGCD = UIRcvVarDS.UIEntry(1).LetterID;
  113.  
  114.               // Place ECE audit entry onto the queue
  115.               WriteECEAudit(UIRcvVarDS.UIEntry(1).LetterID);
  116.  
  117.             // Use batch number if not ECE
  118.             Else;
  119.               RVIRecDS.ABAGCD = BatchNbr;
  120.             EndIf;
  121.  
  122.             // Write RVABREP record
  123.             WriteIndexRec(RVIRecDS);
  124.           EndIf;
  125.  
  126.           // Update image history records
  127.           ImageHstUpdDS(ImageCount).RVISysID =
  128.               UIRcvVarDS.UIEntry(ImageCount).RVISysCode;
  129.           ImageHstUpdDS(ImageCount).RVITrnID = RVIRecDS.ABAANB;
  130.  
  131.           UpdateImageHst();
  132.  
  133.           // Retrieve next data queue entry
  134.           RcvDQEnt(DQName :DQLibrary :DQLength :DQDataDS :DQWait);
  135.         EndDo;   // <> SHUTDOWN
  136.  
  137.         *InLR = *On;
  138.  
  139.       /End-Free
© 2004-2019 by midrange.com generated in 0.007s valid xhtml & css