/*------------------------------------------------------------------------ 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.Category FROM PROPATH. /*USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH. */ /* *************************** Definitions ************************** */ DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO INIT '1000'. DEFINE VARIABLE cTestLive AS CHARACTER NO-UNDO. DEFINE VARIABLE cParameter AS CHARACTER NO-UNDO. DEFINE VARIABLE cLogFile AS CHARACTER NO-UNDO. DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO. DEFINE VARIABLE cAnmeldung AS CHARACTER NO-UNDO. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO. DEFINE VARIABLE oYourBarMateHandler AS YourBarMateHandler NO-UNDO. DEFINE VARIABLE oCategory AS Category NO-UNDO. DEFINE VARIABLE oCategories AS List NO-UNDO. DEFINE VARIABLE opErrorMessage AS CHARACTER NO-UNDO. DEFINE VARIABLE oBundleListIterator AS IListIterator NO-UNDO. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE cId AS CHARACTER NO-UNDO. { propertiesYBM.i } DEFINE TEMP-TABLE tWarenGrp LIKE WarenGrp. { super/funktionen.i } /* ******************** Preprocessor Definitions ******************** */ /* ************************ Function Prototypes ********************** */ FUNCTION loeschenWarengruppe RETURNS CHARACTER (ipiWgr AS INTEGER) FORWARD. /* *************************** Main Block *************************** */ /* ************************ Function Implementations ***************** */ FUNCTION loeschenWarengruppe RETURNS CHARACTER ( ipiWgr AS INTEGER ): /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO. lRetVal = oYourBarMateHandler:deleteCategory(INPUT ipiWgr, OUTPUT cMessage) NO-ERROR. MESSAGE lRetVal SKIP cMessage VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. END FUNCTION. cAnmeldung = SUBSTITUTE ('&1&4&2&4&3', 'SYSTEM', 'SYSTEM', '1000', CHR(01) ). /* Benutzer, Passwort, Firma */ RUN ANMELDUNG ( cAnmeldung ) NO-ERROR. cParameter = SESSION:PARAMETER. cParameter = REPLACE(cParameter, ',', ';'). 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, ';'). END CASE. END. cInstallation = DYNAMIC-FUNCTION ('getInstallation':U). 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, SUBSTITUTE('Start KategorienUpdate &1', cTestLive) ). CASE cTestLive: WHEN 'LIVE' THEN DO: oYourBarMateHandler = NEW YourBarMateHandler(). oYourBarMateHandler:cURL = cURI_Categories. oYourBarMateHandler:cApiKey = cApiName. oYourBarMateHandler:cApiKeyValue = cApiKey. oYourBarMateHandler:cServerNameIndicator = cServerNameIndicator. oYourBarMateHandler:lDebug = FALSE. END. WHEN 'TEST' THEN DO: oYourBarMateHandler = NEW YourBarMateHandler(). oYourBarMateHandler:cURL = cURI_CategoriesDev. oYourBarMateHandler:cApiKey = cApiName. oYourBarMateHandler:cApiKeyValue = cApiKeyDev. oYourBarMateHandler:cServerNameIndicator = cServerNameIndicatorDev. oYourBarMateHandler:lDebug = TRUE. END. END CASE. /* ---------------------------------------------------------- */ /* Warengruppen / Kategorien senden */ /* ---------------------------------------------------------- */ oCategories = NEW List(). ii = 0. FOR EACH WarenGrp NO-LOCK WHERE WarenGrp.Firma = cFirma AND (WarenGrp.lShopB2B = TRUE OR WarenGrp.lShopB2C = TRUE) : oCategory = NEW Category (). oCategory:cId = STRING(WarenGrp.Wgr,'999'). oCategory:cName = WarenGrp.Bez1. lRetVal = oCategories:Add(oCategory). ii = ii + 1. END. lRetVal = oYourBarMateHandler:putCategories (INPUT oCategories, OUTPUT opErrorMessage ). RUN writeLogFile.p ( cProgramm, cLogFile, SUBSTITUTE('&1 Kategorien übertragen mit RetVal = &2 und ErrorMessage = "&3"', ii, lRetVal, opErrorMessage) ).