/*------------------------------------------------------------------------ File : ddaktionenexport.p Purpose : Syntax : Description : Author(s) : walter.riechsteiner Created : Fri Jul 30 16:23:21 CEST 2021 Notes : ----------------------------------------------------------------------*/ /* *************************** Definitions ************************** */ USING OpenEdge.Core.Collections.IListIterator FROM PROPATH. USING OpenEdge.Core.Collections.List FROM PROPATH. USING src.ch.adprime.api.digitaldrink.DigitalDrinkHandler FROM PROPATH. USING src.ch.adprime.api.digitaldrink.beans.AktionsFilter FROM PROPATH. USING src.ch.adprime.api.digitaldrink.beans.Campaign FROM PROPATH. USING src.ch.adprime.api.digitaldrink.control.AktionenExportRequest FROM PROPATH. USING src.ch.adprime.api.digitaldrink.control.AktionenExportResponse FROM PROPATH. USING src.ch.adprime.api.digitaldrink.incl.BillingType FROM PROPATH. USING src.ch.adprime.api.digitaldrink.incl.CustomerGroup FROM PROPATH. USING src.ch.adprime.api.digitaldrink.incl.ConditionState FROM PROPATH. USING src.ch.adprime.api.digitaldrink.incl.Type FROM PROPATH. USING src.ch.adprime.api.digitaldrink.incl.AktionsUnit FROM PROPATH. { propertiesDD.i } DEFINE VARIABLE oDigitalDrinkHandler AS DigitalDrinkHandler NO-UNDO. DEFINE VARIABLE oAktionenExportRequest AS AktionenExportRequest NO-UNDO. DEFINE VARIABLE oAktionenExportResponse AS AktionenExportResponse NO-UNDO. DEFINE VARIABLE oFilter AS AktionsFilter NO-UNDO. DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO. DEFINE VARIABLE oCampaign AS Campaign NO-UNDO. DEFINE VARIABLE oCustomerGroup AS CustomerGroup NO-UNDO. DEFINE VARIABLE oParameters AS List NO-UNDO. DEFINE VARIABLE oCampaignList AS List NO-UNDO. DEFINE VARIABLE oCustomerList AS List NO-UNDO. DEFINE VARIABLE oIterator AS IListIterator NO-UNDO. DEFINE VARIABLE oCustIterator AS IListIterator NO-UNDO. DEFINE VARIABLE cStringEx AS CHARACTER NO-UNDO EXTENT. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE clString AS LONGCHAR NO-UNDO. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE TEMP-TABLE tCampaign FIELD cType AS CHARACTER FIELD cHerstGLN AS CHARACTER FIELD cTitle AS CHARACTER FIELD cBeschreibung AS CHARACTER FIELD cAktType AS CHARACTER FIELD dvonDatum AS DATE FIELD dbisDatum AS DATE FIELD nWert AS DECIMAL FIELD cStatus AS CHARACTER FIELD lVerkaufsAktion AS LOGICAL FIELD cAktionsUnit AS CHARACTER FIELD cBundleGTIN AS CHARACTER FIELD cBundleName AS CHARACTER FIELD cCustomers AS CHARACTER . DEFINE TEMP-TABLE tAktArtikel FIELD Artnr AS INTEGER FIELD Inhalt AS INTEGER FIELD Jahr AS INTEGER FIELD cType AS CHARACTER FIELD cHersteller AS CHARACTER FIELD cTitle AS CHARACTER FIELD cAktArt AS CHARACTER FIELD dvonDatum AS DATE FIELD dBisDatum AS DATE FIELD nWert AS DECIMAL FIELD cAktionsUnit AS CHARACTER FIELD cGebinde AS CHARACTER INDEX tAktArtikel-k1 IS PRIMARY Artnr Inhalt Jahr . /*DEFINE INPUT PARAMETER ipcGlnNr AS CHARACTER NO-UNDO.*/ /* */ DEFINE OUTPUT PARAMETER TABLE FOR tCampaign. /* ******************** Preprocessor Definitions ******************** */ /* *************************** Main Block *************************** */ oDigitalDrinkHandler = NEW DigitalDrinkHandler( /* Parameters aus properties */ INPUT cURL_Export, INPUT cServerNameIndicator, INPUT cClientId, INPUT cPassword, INPUT cClientName, INPUT iGLN-Huber). oDigitalDrinkHandler:lDebug = lDebug. oFilter = NEW AktionsFilter(). ASSIGN oFilter:eBillingType = BillingType:BT-EK oFilter:cmanufacturerGLN = '7611793000004' /* CoCa */ oFilter:dtvalidFrom = DATE(01/01/2021) oFilter:dtvalidTo = DATE(12/31/2021) oFilter:eConditionState = ConditionState:Con_Released oFilter:dtLastRequirementDate = DATE(01/01/2021) . oAktionenExportRequest = NEW AktionenExportRequest(). ASSIGN oAktionenExportRequest:cSenderName = cClientName oAktionenExportRequest:eType = TYPE:EXP003 oAktionenExportRequest:oParameterFilters = oFilter oAktionenExportRequest:lDebug = TRUE. lRetVal = oDigitalDrinkHandler:getAktionenExport(oAktionenExportRequest, OUTPUT opErrorMessage, OUTPUT oAktionenExportResponse ). IF oAktionenExportResponse:iStateCount = 0 THEN RETURN. oCampaignList = oAktionenExportResponse:oCampaignList. oIterator = oCampaignList:ListIterator(). EMPTY TEMP-TABLE tCampaign. DO WHILE oIterator:HasNext(): oCampaign = CAST(oIterator:NEXT(), Campaign). CREATE tCampaign. ASSIGN tCampaign.cType = oCampaign:eType:ToString() tCampaign.cHerstGLN = oCampaign:cManufacturerGln tCampaign.cTitle = oCampaign:cTitle tCampaign.cBeschreibung = oCampaign:cDescription tCampaign.cAktType = oCampaign:eBillingType:ToString() tCampaign.dVonDatum = oCampaign:dtValidFrom tCampaign.dbisDatum = oCampaign:dtValidTo tCampaign.nWert = oCampaign:fValue tCampaign.cStatus = oCampaign:eConditionState:ToString() tCampaign.lVerkaufsAktion = oCampaign:lSalespromotion tCampaign.cAktionsUnit = oCampaign:eUnit:ToString() . EXTENT(cStringEx) = ?. cString = ''. IF oCampaign:oBundlesGtin:Count > 0 THEN DO: EXTENT(cStringEx) = oCampaign:oBundlesGtin:Count. cStringEx = oCampaign:oBundlesGtin:ToArray(). DO ii = 1 TO oCampaign:oBundlesGtin:Count: tCampaign.cBundleGTIN = tCampaign.cBundleGTIN + (IF tCampaign.cBundleGTIN = '' THEN '' ELSE ',') + cStringEx[ii]. END. END. EXTENT(cStringEx) = ?. cString = ''. IF oCampaign:oBundlesName:Count > 0 THEN DO: EXTENT(cStringEx) = oCampaign:oBundlesName:Count. cStringEx = oCampaign:oBundlesName:ToArray(). DO ii = 1 TO oCampaign:oBundlesName:Count: tCampaign.cBundleName = tCampaign.cBundleName + (IF tCampaign.cBundleName = '' THEN '' ELSE ',') + cStringEx[ii]. END. END. oCustomerList = oCampaign:oCustomerGroupList. oCustIterator = oCustomerList:ListIterator(). DO WHILE oCustIterator:HasNext(): oCustomerGroup = CAST(oCustIterator:Next(), CustomerGroup). tCampaign.cCustomers = tCampaign.cCustomers + (IF tCampaign.cCustomers = '' THEN '' ELSE ',') + oCustomerGroup:ToString(). END. END. OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\Kampanien.csv' NO-MAP NO-CONVERT. FOR EACH tCampaign: EXPORT DELIMITER ';' tCampaign. END. OUTPUT CLOSE.