/*------------------------------------------------------------------------ File : ybmProducts.p Purpose : Syntax : Description : Author(s) : walter.riechsteiner Created : Tue Apr 06 15:28:25 CEST 2021 Notes : ----------------------------------------------------------------------*/ USING OpenEdge.Core.Collections.IListIterator FROM PROPATH. USING OpenEdge.Core.Collections.List FROM PROPATH. USING src.ch.adprime.api.yourbarmate.YourBarMateHandler FROM PROPATH. USING src.ch.adprime.api.yourbarmate.beans.Bundle FROM PROPATH. USING src.ch.adprime.api.yourbarmate.beans.Product FROM PROPATH. USING src.ch.adprime.api.yourbarmate.beans.Vessel FROM PROPATH. /*USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH. */ /* *************************** Definitions ************************** */ DEFINE VARIABLE oYourBarMateHandler AS YourBarMateHandler NO-UNDO. DEFINE VARIABLE oProduct AS Product NO-UNDO. DEFINE VARIABLE oVessel AS Vessel NO-UNDO. DEFINE VARIABLE oBundle AS Bundle NO-UNDO. DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO. DEFINE VARIABLE oProductList AS List NO-UNDO. DEFINE VARIABLE oProductListIterator AS IListIterator NO-UNDO. DEFINE VARIABLE oVesselListIterator AS IListIterator NO-UNDO. DEFINE VARIABLE oBundleListIterator AS IListIterator NO-UNDO. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO. DEFINE VARIABLE cStringEx AS CHARACTER NO-UNDO EXTENT. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE cPage AS CHARACTER NO-UNDO. DEFINE VARIABLE cLogFile AS CHARACTER NO-UNDO. DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO. DEFINE VARIABLE cTestLive AS CHARACTER NO-UNDO. DEFINE VARIABLE cAnmeldung AS CHARACTER NO-UNDO. DEFINE VARIABLE cParameter AS CHARACTER NO-UNDO. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO. DEFINE VARIABLE lLoeschen AS LOGICAL NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE lTotal AS LOGICAL NO-UNDO. { propertiesYBM.i } { ttArtst.i } { funktionen.i } DEFINE OUTPUT PARAMETER TABLE FOR ttArtst. /* ******************** Preprocessor Definitions ******************** */ /* *************************** Main Block *************************** */ cAnmeldung = SUBSTITUTE ('&1&4&2&4&3', 'SYSTEM', 'SYSTEM', '1000', CHR(01) ). RUN ANMELDUNG ( cAnmeldung ) NO-ERROR. cParameter = SESSION:PARAMETER. cParameter = REPLACE(cParameter, ',', ';'). /*cParameter = ''. */ /*lLoeschen = FALSE.*/ IF cParameter = '' OR cParameter = ? THEN cParameter = '1000;TEST'. DO ii = 1 TO NUM-ENTRIES(cParameter, ';'): CASE ii. WHEN 1 THEN cFirma = ENTRY(ii, cParameter, ';'). WHEN 2 THEN cTestLive = ENTRY(ii, cParameter, ';'). WHEN 3 THEN lLoeschen = (IF ENTRY(ii, cParameter, ';') BEGINS 'n' THEN FALSE ELSE TRUE ). WHEN 4 THEN iArtnr = INTEGER(ENTRY(ii, cParameter, ';')). WHEN 5 THEN lTotal = (IF ENTRY(ii, cParameter, ';') BEGINS 'T' THEN TRUE ELSE FALSE ). /* Alle Artikel */ END CASE. END. /*lLoeschen = TRUE.*/ CASE cTestLive: WHEN 'LIVE' THEN DO: oYourBarMateHandler = NEW YourBarMateHandler(). oYourBarMateHandler:cURL = cURI_Products. oYourBarMateHandler:cApiKey = cApiName. oYourBarMateHandler:cApiKeyValue = cApiKey. oYourBarMateHandler:cServerNameIndicator = cServerNameIndicator. oYourBarMateHandler:lDebug = FALSE. lTest = FALSE. END. WHEN 'TEST' THEN DO: oYourBarMateHandler = NEW YourBarMateHandler(). oYourBarMateHandler:cURL = cURI_ProductsDev. oYourBarMateHandler:cApiKey = cApiName. oYourBarMateHandler:cApiKeyValue = cApiKeyDev. oYourBarMateHandler:cServerNameIndicator = cServerNameIndicatorDev. oYourBarMateHandler:lDebug = TRUE. lTest = TRUE. END. END CASE. cProgramm = ENTRY(1, THIS-PROCEDURE:NAME, '.'). IF R-INDEX(cProgramm, '\') > 0 OR R-INDEX(cProgramm, '/') > 0 THEN DO: cProgramm = REPLACE(cProgramm, '\', '/'). ii = R-INDEX(cProgramm, '/') + 1. cProgramm = TRIM(SUBSTRING(cProgramm,ii)). END. cLogFile = DYNAMIC-FUNCTION ('getLogFilePfad':U) + cProgramm + '_' + cTestLive + '.log'. RUN writeLogFile.p ( cProgramm, cLogFile, 'Programm gestartet' ). cPage = ''. DO WHILE TRUE: lRetVal = oYourBarMateHandler:getProductList(INPUT-OUTPUT cPage, OUTPUT opErrorMessage, OUTPUT oProductList ) NO-ERROR. oProduct = NEW Product(). oVessel = NEW Vessel (). /* oBundle = NEW Bundle ().*/ oProductListIterator = oProductList:ListIterator() NO-ERROR. DO WHILE oProductListIterator:HasNext(): oProduct = CAST(oProductListIterator:Next(), Product). oVessel = CAST(oProduct:oVessel, Vessel). /* oBundleListIterator = oProduct:oBundleList:ListIterator().*/ CREATE ttArtst. ASSIGN ttArtst.cProdId = oProduct:cId ttArtst.cCategorie = oProduct:cCategory ttArtst.eStatus = oProduct:eStatus:ToString() ttArtst.cName = oProduct:cName ttArtst.iSize = oVessel:iSize ttArtst.eUnit = oVessel:eUnit:ToString() ttArtst.iPrice = oProduct:iPrice ttArtst.iMinOrderCount = oProduct:iMinOrderCount ttArtst.lYBM = TRUE ttArtst.lGeMIS = FALSE . END. /* IF VALID-OBJECT (oBundle) THEN DELETE OBJECT oBundle .*/ IF VALID-OBJECT (oVessel) THEN DELETE OBJECT oVessel . IF VALID-OBJECT (oProduct) THEN DELETE OBJECT oProduct. IF cPage = '' THEN LEAVE. END. /*OUTPUT TO 'C:\Entwicklung\TEMP\OE122WRK\ttArtst.csv' NO-MAP NO-CONVERT.*/ /*FOR EACH ttArtst: */ /* EXPORT DELIMITER ';' ttArtst. */ /*END. */ /*OUTPUT CLOSE. */