ddaktionenexport.p 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. /*------------------------------------------------------------------------
  2. File : ddaktionenexport.p
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Fri Jul 30 16:23:21 CEST 2021
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. /* *************************** Definitions ************************** */
  11. USING OpenEdge.Core.Collections.IListIterator FROM PROPATH.
  12. USING OpenEdge.Core.Collections.List FROM PROPATH.
  13. USING src.ch.adprime.api.digitaldrink.DigitalDrinkHandler FROM PROPATH.
  14. USING src.ch.adprime.api.digitaldrink.beans.AktionsFilter FROM PROPATH.
  15. USING src.ch.adprime.api.digitaldrink.beans.Campaign FROM PROPATH.
  16. USING src.ch.adprime.api.digitaldrink.control.AktionenExportRequest FROM PROPATH.
  17. USING src.ch.adprime.api.digitaldrink.control.AktionenExportResponse FROM PROPATH.
  18. USING src.ch.adprime.api.digitaldrink.incl.BillingType FROM PROPATH.
  19. USING src.ch.adprime.api.digitaldrink.incl.CustomerGroup FROM PROPATH.
  20. USING src.ch.adprime.api.digitaldrink.incl.ConditionState FROM PROPATH.
  21. USING src.ch.adprime.api.digitaldrink.incl.Type FROM PROPATH.
  22. USING src.ch.adprime.api.digitaldrink.incl.AktionsUnit FROM PROPATH.
  23. { propertiesDD.i }
  24. DEFINE VARIABLE oDigitalDrinkHandler AS DigitalDrinkHandler NO-UNDO.
  25. DEFINE VARIABLE oAktionenExportRequest AS AktionenExportRequest NO-UNDO.
  26. DEFINE VARIABLE oAktionenExportResponse AS AktionenExportResponse NO-UNDO.
  27. DEFINE VARIABLE oFilter AS AktionsFilter NO-UNDO.
  28. DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO.
  29. DEFINE VARIABLE oCampaign AS Campaign NO-UNDO.
  30. DEFINE VARIABLE oCustomerGroup AS CustomerGroup NO-UNDO.
  31. DEFINE VARIABLE oParameters AS List NO-UNDO.
  32. DEFINE VARIABLE oCampaignList AS List NO-UNDO.
  33. DEFINE VARIABLE oCustomerList AS List NO-UNDO.
  34. DEFINE VARIABLE oIterator AS IListIterator NO-UNDO.
  35. DEFINE VARIABLE oCustIterator AS IListIterator NO-UNDO.
  36. DEFINE VARIABLE cStringEx AS CHARACTER NO-UNDO EXTENT.
  37. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  38. DEFINE VARIABLE clString AS LONGCHAR NO-UNDO.
  39. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  40. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  41. DEFINE TEMP-TABLE tCampaign
  42. FIELD cType AS CHARACTER
  43. FIELD cHerstGLN AS CHARACTER
  44. FIELD cTitle AS CHARACTER
  45. FIELD cBeschreibung AS CHARACTER
  46. FIELD cAktType AS CHARACTER
  47. FIELD dvonDatum AS DATE
  48. FIELD dbisDatum AS DATE
  49. FIELD nWert AS DECIMAL
  50. FIELD cStatus AS CHARACTER
  51. FIELD lVerkaufsAktion AS LOGICAL
  52. FIELD cAktionsUnit AS CHARACTER
  53. FIELD cBundleGTIN AS CHARACTER
  54. FIELD cBundleName AS CHARACTER
  55. FIELD cCustomers AS CHARACTER
  56. .
  57. DEFINE TEMP-TABLE tAktArtikel
  58. FIELD Artnr AS INTEGER
  59. FIELD Inhalt AS INTEGER
  60. FIELD Jahr AS INTEGER
  61. FIELD cType AS CHARACTER
  62. FIELD cHersteller AS CHARACTER
  63. FIELD cTitle AS CHARACTER
  64. FIELD cAktArt AS CHARACTER
  65. FIELD dvonDatum AS DATE
  66. FIELD dBisDatum AS DATE
  67. FIELD nWert AS DECIMAL
  68. FIELD cAktionsUnit AS CHARACTER
  69. FIELD cGebinde AS CHARACTER
  70. INDEX tAktArtikel-k1 IS PRIMARY
  71. Artnr
  72. Inhalt
  73. Jahr
  74. .
  75. /*DEFINE INPUT PARAMETER ipcGlnNr AS CHARACTER NO-UNDO.*/
  76. /* */
  77. DEFINE OUTPUT PARAMETER TABLE FOR tCampaign.
  78. /* ******************** Preprocessor Definitions ******************** */
  79. /* *************************** Main Block *************************** */
  80. oDigitalDrinkHandler = NEW DigitalDrinkHandler( /* Parameters aus properties */
  81. INPUT cURL_Export,
  82. INPUT cServerNameIndicator,
  83. INPUT cClientId,
  84. INPUT cPassword,
  85. INPUT cClientName,
  86. INPUT iGLN-Huber).
  87. oDigitalDrinkHandler:lDebug = lDebug.
  88. oFilter = NEW AktionsFilter().
  89. ASSIGN
  90. oFilter:eBillingType = BillingType:BT-EK
  91. oFilter:cmanufacturerGLN = '7611793000004' /* CoCa */
  92. oFilter:dtvalidFrom = DATE(01/01/2021)
  93. oFilter:dtvalidTo = DATE(12/31/2021)
  94. oFilter:eConditionState = ConditionState:Con_Released
  95. oFilter:dtLastRequirementDate = DATE(01/01/2021)
  96. .
  97. oAktionenExportRequest = NEW AktionenExportRequest().
  98. ASSIGN
  99. oAktionenExportRequest:cSenderName = cClientName
  100. oAktionenExportRequest:eType = TYPE:EXP003
  101. oAktionenExportRequest:oParameterFilters = oFilter
  102. oAktionenExportRequest:lDebug = TRUE.
  103. lRetVal = oDigitalDrinkHandler:getAktionenExport(oAktionenExportRequest, OUTPUT opErrorMessage, OUTPUT oAktionenExportResponse ).
  104. IF oAktionenExportResponse:iStateCount = 0 THEN RETURN.
  105. oCampaignList = oAktionenExportResponse:oCampaignList.
  106. oIterator = oCampaignList:ListIterator().
  107. EMPTY TEMP-TABLE tCampaign.
  108. DO WHILE oIterator:HasNext():
  109. oCampaign = CAST(oIterator:NEXT(), Campaign).
  110. CREATE tCampaign.
  111. ASSIGN
  112. tCampaign.cType = oCampaign:eType:ToString()
  113. tCampaign.cHerstGLN = oCampaign:cManufacturerGln
  114. tCampaign.cTitle = oCampaign:cTitle
  115. tCampaign.cBeschreibung = oCampaign:cDescription
  116. tCampaign.cAktType = oCampaign:eBillingType:ToString()
  117. tCampaign.dVonDatum = oCampaign:dtValidFrom
  118. tCampaign.dbisDatum = oCampaign:dtValidTo
  119. tCampaign.nWert = oCampaign:fValue
  120. tCampaign.cStatus = oCampaign:eConditionState:ToString()
  121. tCampaign.lVerkaufsAktion = oCampaign:lSalespromotion
  122. tCampaign.cAktionsUnit = oCampaign:eUnit:ToString()
  123. .
  124. EXTENT(cStringEx) = ?.
  125. cString = ''.
  126. IF oCampaign:oBundlesGtin:Count > 0 THEN
  127. DO:
  128. EXTENT(cStringEx) = oCampaign:oBundlesGtin:Count.
  129. cStringEx = oCampaign:oBundlesGtin:ToArray().
  130. DO ii = 1 TO oCampaign:oBundlesGtin:Count:
  131. tCampaign.cBundleGTIN = tCampaign.cBundleGTIN
  132. + (IF tCampaign.cBundleGTIN = '' THEN '' ELSE ',')
  133. + cStringEx[ii].
  134. END.
  135. END.
  136. EXTENT(cStringEx) = ?.
  137. cString = ''.
  138. IF oCampaign:oBundlesName:Count > 0 THEN
  139. DO:
  140. EXTENT(cStringEx) = oCampaign:oBundlesName:Count.
  141. cStringEx = oCampaign:oBundlesName:ToArray().
  142. DO ii = 1 TO oCampaign:oBundlesName:Count:
  143. tCampaign.cBundleName = tCampaign.cBundleName
  144. + (IF tCampaign.cBundleName = '' THEN '' ELSE ',')
  145. + cStringEx[ii].
  146. END.
  147. END.
  148. oCustomerList = oCampaign:oCustomerGroupList.
  149. oCustIterator = oCustomerList:ListIterator().
  150. DO WHILE oCustIterator:HasNext():
  151. oCustomerGroup = CAST(oCustIterator:Next(), CustomerGroup).
  152. tCampaign.cCustomers = tCampaign.cCustomers
  153. + (IF tCampaign.cCustomers = '' THEN '' ELSE ',')
  154. + oCustomerGroup:ToString().
  155. END.
  156. END.
  157. OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\Kampanien.csv' NO-MAP NO-CONVERT.
  158. FOR EACH tCampaign:
  159. EXPORT DELIMITER ';' tCampaign.
  160. END.
  161. OUTPUT CLOSE.