| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonArray FROM PROPATH.
- USING Progress.Json.ObjectModel.ObjectModelParser FROM PROPATH.
- DEFINE INPUT PARAMETER iplcJson AS LONGCHAR NO-UNDO.
- DEFINE OUTPUT PARAMETER opcMessage AS CHARACTER NO-UNDO.
- DEFINE OUTPUT PARAMETER oplRetVal AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cField AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cValue AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iStufe AS INTEGER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
- DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
- DEFINE VARIABLE cNames AS CHARACTER EXTENT 100.
- DEFINE VARIABLE cFullName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iZeile AS INTEGER NO-UNDO.
- DEFINE VARIABLE lArray AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lArrayBeginn AS LOGICAL NO-UNDO.
- DEFINE VARIABLE iArrayStufe AS INTEGER NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE nKredTot AS DECIMAL NO-UNDO.
- DEFINE BUFFER bDebst FOR Debst.
- DEFINE BUFFER bAufko FOR Aufko.
- DEFINE TEMP-TABLE tTables
- FIELD iStufe AS INTEGER
- FIELD cFileName AS CHARACTER
- FIELD cFieldName AS CHARACTER
- FIELD cValue AS CHARACTER
- .
- DEFINE TEMP-TABLE tAufko LIKE Aufko.
- DEFINE TEMP-TABLE tAUfze LIKE Aufze.
- DEFINE VARIABLE htAufko AS HANDLE NO-UNDO.
- DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
- htAufko = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
- htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
-
- { propertiesYBM.i }
- { funktionen.i }
- cString = iplcJson.
- RUN writeLogfile.r ( ENTRY(1, THIS-PROCEDURE:NAME, '.'), cLogFileName, (SUBSTITUTE('&1&2', CHR(10), cString))).
- ASSIGN
- iArrayStufe = 0
- lArray = FALSE
- lArrayBeginn = FALSE.
-
- DO ii = 1 TO NUM-ENTRIES(cString, CHR(10)):
- cZeile = TRIM(ENTRY(ii, cString, CHR(10) )).
-
- IF cZeile = ']' OR
- cZeile = '],' THEN
- DO:
- lArray = FALSE.
- iArrayStufe = 0.
- IF iStufe > 0 THEN iStufe = iStufe - 1.
- IF iStufe > 1 THEN cFileName = cNames[iStufe].
- NEXT.
- END.
- IF cZeile = CHR(125) OR
- cZeile = '},' THEN
- DO:
- IF lArray AND
- iStufe = iArrayStufe THEN NEXT.
- IF iStufe > 0 THEN iStufe = iStufe - 1.
- IF iStufe > 1 THEN cFileName = cNames[iStufe].
- NEXT.
- END.
-
- iPos = INDEX(cZeile, ':').
- IF iPos = 0 THEN NEXT.
-
- cValue = TRIM(SUBSTRING(cZeile, iPos + 1)).
- IF SUBSTRING(cValue, LENGTH(cValue),01) = ',' THEN cValue = SUBSTRING(cValue,01,LENGTH(cValue) - 1).
- cField = TRIM(REPLACE(ENTRY(1, cZeile, ':'), '"', '')).
- IF cValue = '[' THEN
- DO:
- lArray = TRUE.
- lArrayBeginn = TRUE.
- iStufe = iStufe + 1.
- iArrayStufe = iStufe.
- cFileName = cField.
- cNames[iStufe] = cFileName.
- NEXT.
- END.
- IF cValue = '' OR
- cValue = CHR(123) THEN
- DO:
- IF lArrayBeginn THEN
- DO:
- /* iTitel = iTitel + 1.*/
- lArrayBeginn = FALSE.
- NEXT.
- END.
-
- iStufe = iStufe + 1.
- cFileName = cField.
- cNames[iStufe] = cFileName.
- NEXT.
- END.
-
- IF cFileName = '' THEN
- DO:
- iStufe = iStufe + 1.
- cFileName = 'Auftrag'.
- cNames[iStufe] = cFileName.
- /* iTitel = iTitel + 1.*/
- END.
- lArrayBeginn = FALSE.
- cFullName = ''.
- DO ix = 1 TO iStufe:
- cFullName = cFullName
- + (IF cFullName = '' THEN '' ELSE ':')
- + cNames[ix].
- END.
-
- iZeile = iZeile + 1.
- CREATE tTables.
- ASSIGN
- tTables.iStufe = iZeile
- tTables.cFileName = cFullName
- tTables.cFieldName = cField
- tTables.cValue = cValue.
- END.
- opcMessage = ''.
- oplRetVal = TRUE.
- OUTPUT TO 'C:\LogFiles\YourBarMate\tTables.csv' NO-MAP NO-CONVERT.
- FOR EACH tTables BY tTables.iStufe BY tTables.cFileName BY tTables.cFieldName:
- EXPORT DELIMITER ';' tTables.
- END.
- OUTPUT CLOSE.
- opcMessage = ''.
- oplRetVal = FALSE.
- cString = SUBSTITUTE('&1&4&2&4&3', cYBMBenutzer, cYBMPassword, cYBMFirma, CHR(01)).
- RUN ANMELDUNG ( cString ) NO-ERROR.
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
-
- FIND FIRST tTables
- WHERE tTables.cFileName = 'Auftrag'
- AND tTables.cField = 'type' NO-ERROR.
- IF NOT AVAILABLE tTables OR
- tTables.cValue <> 'request-delivery' THEN
- DO:
- opcMessage = 'Request-Type "request-delivery" fehlt '.
- LEAVE.
- END.
-
- FIND FIRST tTables
- WHERE tTables.cFileName = 'Auftrag:data:customer'
- AND tTables.cField = 'id' NO-ERROR.
- IF NOT AVAILABLE tTables THEN
- DO:
- opcMessage = 'Kundennummer fehlt '.
- LEAVE.
- END.
-
- iKnr = INTEGER(tTables.cValue) NO-ERROR.
- FIND FIRST Debst NO-LOCK
- WHERE Debst.Firma = cYBMFirma
- AND Debst.Knr = iKnr NO-ERROR.
- IF NOT AVAILABLE Debst THEN
- DO:
- opcMessage = SUBSTITUTE('Kundennummer &1 nicht geefunden', iKnr).
- LEAVE.
- END.
-
- CREATE tAufko.
- ASSIGN
- tAufko.Firma = Debst.Firma
- tAufko.Aufnr = -1
- tAufko.Knr = iKnr
- tAufko.Abhol = FALSE
- tAufko.Lager = 0
- .
- htAufko = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
- DYNAMIC-FUNCTION('fillAufko':U, 0, INPUT-OUTPUT htAufko ).
- FIND FIRST tAufko.
-
- tAufko.Aufnr = 0.
- FIND bDebst NO-LOCK
- WHERE bDebst.Firma = Debst.Firma
- AND bDebst.Knr = tAufko.Fak_Knr NO-ERROR.
- IF bDebst.Kred_Lim > 0 THEN
- DO:
- nKredTot = bDebst.Saldo.
- FOR EACH bAufko NO-LOCK
- WHERE bAufko.Firma = Firma
- AND bAufko.Fak_Knr = bDebst.Knr:
- nKredTot = nKredTot + bAufko.Auf_Tot.
- END.
- IF nKredTot >= bDebst.Kred_Lim THEN
- DO:
- opcMessage = SUBSTITUTE('Kreditlimite von &1 ist mit &2 überschritten', bDebst.Kred_Lim, nKredTot).
- LEAVE.
- END.
- END.
- RUN NUMMER_LOESEN ( 1, OUTPUT tAufko.Aufnr ) NO-ERROR.
-
- REPEAT TRANSACTION ON ERROR UNDO, RETRY:
- CREATE bAufko.
- BUFFER-COPY tAufko TO bAufko.
- RELEASE bAufko.
-
- LEAVE.
- END.
- LEAVE.
- END.
- /*
- DO ii = 1 TO 100 ON ERROR UNDO, NEXT:
- IF cNames[ii] = '' THEN LEAVE.
- MESSAGE cNames[ii] VALID-HANDLE(htTempTable[ii])
- VIEW-AS ALERT-BOX.
- htTable = htTempTable[ii].
- htTable:WRITE-XML('FILE', SUBSTITUTE('C:\LogFiles\ERP\&1.xml', cNames[ii]),
- TRUE, /* Formatted */
- "UTF-8", /* encoding */
- ?, /* schema-location */
- ?, /* write-xml-schema */
- ?, /* min-xmlschema */
- ?, /* write-before-image */
- TRUE). /* ommit-initial-values */
-
- END.
- */
- /*
- MESSAGE cString
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- cNames = oJsonObject:GetNames().
- DO ii = 1 TO EXTENT(cNames):
- cFeld = oJsonObject:GetJsonText(cNames[ii]).
- MESSAGE cNames[ii] '/' cFeld
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
- END.
- oJsonObject:WRITE(cString, TRUE).
- MESSAGE cString
- VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
-
- */
|