ybmgetProductList.p 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /*------------------------------------------------------------------------
  2. File : ybmProducts.p
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Tue Apr 06 15:28:25 CEST 2021
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. USING OpenEdge.Core.Collections.IListIterator FROM PROPATH.
  11. USING OpenEdge.Core.Collections.List FROM PROPATH.
  12. USING src.ch.adprime.api.yourbarmate.YourBarMateHandler FROM PROPATH.
  13. USING src.ch.adprime.api.yourbarmate.beans.Bundle FROM PROPATH.
  14. USING src.ch.adprime.api.yourbarmate.beans.Product FROM PROPATH.
  15. USING src.ch.adprime.api.yourbarmate.beans.Vessel FROM PROPATH.
  16. /*USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH. */
  17. /* *************************** Definitions ************************** */
  18. DEFINE VARIABLE oYourBarMateHandler AS YourBarMateHandler NO-UNDO.
  19. DEFINE VARIABLE oProduct AS Product NO-UNDO.
  20. DEFINE VARIABLE oVessel AS Vessel NO-UNDO.
  21. DEFINE VARIABLE oBundle AS Bundle NO-UNDO.
  22. DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO.
  23. DEFINE VARIABLE oProductList AS List NO-UNDO.
  24. DEFINE VARIABLE oProductListIterator AS IListIterator NO-UNDO.
  25. DEFINE VARIABLE oVesselListIterator AS IListIterator NO-UNDO.
  26. DEFINE VARIABLE oBundleListIterator AS IListIterator NO-UNDO.
  27. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  28. DEFINE VARIABLE cStringEx AS CHARACTER NO-UNDO EXTENT.
  29. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  30. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  31. DEFINE VARIABLE cPage AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE cLogFile AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO.
  34. DEFINE VARIABLE cTestLive AS CHARACTER NO-UNDO.
  35. DEFINE VARIABLE cAnmeldung AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE cParameter AS CHARACTER NO-UNDO.
  37. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
  38. DEFINE VARIABLE lLoeschen AS LOGICAL NO-UNDO.
  39. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  40. DEFINE VARIABLE lTotal AS LOGICAL NO-UNDO.
  41. { propertiesYBM.i }
  42. { ttArtst.i }
  43. { funktionen.i }
  44. DEFINE OUTPUT PARAMETER TABLE FOR ttArtst.
  45. /* ******************** Preprocessor Definitions ******************** */
  46. /* *************************** Main Block *************************** */
  47. cAnmeldung = SUBSTITUTE ('&1&4&2&4&3', 'SYSTEM', 'SYSTEM', '1000', CHR(01) ).
  48. RUN ANMELDUNG ( cAnmeldung ) NO-ERROR.
  49. cParameter = SESSION:PARAMETER.
  50. cParameter = REPLACE(cParameter, ',', ';').
  51. /*cParameter = ''. */
  52. /*lLoeschen = FALSE.*/
  53. IF cParameter = '' OR
  54. cParameter = ? THEN cParameter = '1000;TEST'.
  55. DO ii = 1 TO NUM-ENTRIES(cParameter, ';'):
  56. CASE ii.
  57. WHEN 1 THEN
  58. cFirma = ENTRY(ii, cParameter, ';').
  59. WHEN 2 THEN
  60. cTestLive = ENTRY(ii, cParameter, ';').
  61. WHEN 3 THEN
  62. lLoeschen = (IF ENTRY(ii, cParameter, ';') BEGINS 'n' THEN FALSE ELSE TRUE ).
  63. WHEN 4 THEN
  64. iArtnr = INTEGER(ENTRY(ii, cParameter, ';')).
  65. WHEN 5 THEN
  66. lTotal = (IF ENTRY(ii, cParameter, ';') BEGINS 'T' THEN TRUE ELSE FALSE ). /* Alle Artikel */
  67. END CASE.
  68. END.
  69. /*lLoeschen = TRUE.*/
  70. CASE cTestLive:
  71. WHEN 'LIVE' THEN
  72. DO:
  73. oYourBarMateHandler = NEW YourBarMateHandler().
  74. oYourBarMateHandler:cURL = cURI_Products.
  75. oYourBarMateHandler:cApiKey = cApiName.
  76. oYourBarMateHandler:cApiKeyValue = cApiKey.
  77. oYourBarMateHandler:cServerNameIndicator = cServerNameIndicator.
  78. oYourBarMateHandler:lDebug = FALSE.
  79. lTest = FALSE.
  80. END.
  81. WHEN 'TEST' THEN
  82. DO:
  83. oYourBarMateHandler = NEW YourBarMateHandler().
  84. oYourBarMateHandler:cURL = cURI_ProductsDev.
  85. oYourBarMateHandler:cApiKey = cApiName.
  86. oYourBarMateHandler:cApiKeyValue = cApiKeyDev.
  87. oYourBarMateHandler:cServerNameIndicator = cServerNameIndicatorDev.
  88. oYourBarMateHandler:lDebug = TRUE.
  89. lTest = TRUE.
  90. END.
  91. END CASE.
  92. cProgramm = ENTRY(1, THIS-PROCEDURE:NAME, '.').
  93. IF R-INDEX(cProgramm, '\') > 0 OR
  94. R-INDEX(cProgramm, '/') > 0 THEN
  95. DO:
  96. cProgramm = REPLACE(cProgramm, '\', '/').
  97. ii = R-INDEX(cProgramm, '/') + 1.
  98. cProgramm = TRIM(SUBSTRING(cProgramm,ii)).
  99. END.
  100. cLogFile = DYNAMIC-FUNCTION ('getLogFilePfad':U) + cProgramm + '_' + cTestLive + '.log'.
  101. RUN writeLogFile.p ( cProgramm, cLogFile, 'Programm gestartet' ).
  102. cPage = ''.
  103. DO WHILE TRUE:
  104. lRetVal = oYourBarMateHandler:getProductList(INPUT-OUTPUT cPage, OUTPUT opErrorMessage, OUTPUT oProductList ) NO-ERROR.
  105. oProduct = NEW Product().
  106. oVessel = NEW Vessel ().
  107. /* oBundle = NEW Bundle ().*/
  108. oProductListIterator = oProductList:ListIterator() NO-ERROR.
  109. DO WHILE oProductListIterator:HasNext():
  110. oProduct = CAST(oProductListIterator:Next(), Product).
  111. oVessel = CAST(oProduct:oVessel, Vessel).
  112. /* oBundleListIterator = oProduct:oBundleList:ListIterator().*/
  113. CREATE ttArtst.
  114. ASSIGN
  115. ttArtst.cProdId = oProduct:cId
  116. ttArtst.cCategorie = oProduct:cCategory
  117. ttArtst.eStatus = oProduct:eStatus:ToString()
  118. ttArtst.cName = oProduct:cName
  119. ttArtst.iSize = oVessel:iSize
  120. ttArtst.eUnit = oVessel:eUnit:ToString()
  121. ttArtst.iPrice = oProduct:iPrice
  122. ttArtst.iMinOrderCount = oProduct:iMinOrderCount
  123. ttArtst.lYBM = TRUE
  124. ttArtst.lGeMIS = FALSE
  125. .
  126. END.
  127. /* IF VALID-OBJECT (oBundle) THEN DELETE OBJECT oBundle .*/
  128. IF VALID-OBJECT (oVessel) THEN DELETE OBJECT oVessel .
  129. IF VALID-OBJECT (oProduct) THEN DELETE OBJECT oProduct.
  130. IF cPage = '' THEN LEAVE.
  131. END.
  132. /*OUTPUT TO 'C:\Entwicklung\TEMP\OE122WRK\ttArtst.csv' NO-MAP NO-CONVERT.*/
  133. /*FOR EACH ttArtst: */
  134. /* EXPORT DELIMITER ';' ttArtst. */
  135. /*END. */
  136. /*OUTPUT CLOSE. */