====== 12.10.2017 Mittwoch ====== ===== rm#21018 !AIRS_PRD: DA remains in Status "Partially received", although all connected PO´s Status "Received" ===== https://cust-projects.seeburger.de/redmine/issues/21018 ==== TODO ==== * **+** Commit ===== rm#20874 CONCESSION - System error (S/N exceeding 4.000 characters) ===== https://cust-projects.seeburger.de/redmine/issues/20874 * **+** SQL erstellen * ''SUM(Quantity) OVER (PARTITION BY AccountID ORDER BY ID)'' würde wahrscheinlich tun ([[https://brainfizzle.wordpress.com/2014/09/15/oracle-listagg-ora-01489-result-of-string-concatenation-is-too-long/|Link]]) SELECT CNCRHEADERID, CSNOPOSNR, cSERIALNO, SUM( LENGTH(cSERIALNO) + 1 ) OVER ( partition by CNCRHEADERID ORDER BY CSNOPOSNR ASC ) cTotalLen FROM TAIRNCR_SERIALNO Mein jetziges SQL: SELECT tAirPartnerRelation.*, tAirOrderingOfficer.*, TAIRMATERIAL.*, TAIRNCRHEADER.*, serial.* FROM TAIRNCRHEADER INNER JOIN tAirPartnerRelation ON TAIRNCRHEADER.CREFRELATIONID = tAirPartnerRelation.CRELATIONID INNER JOIN tAirOrderingOfficer ON TAIRNCRHEADER.CREFOFFICERID = tAirOrderingOfficer.CORDERINGOFFICERID INNER JOIN TAIRMATERIAL ON TAIRNCRHEADER.CREFMATID = TAIRMATERIAL.CMATERIALID LEFT JOIN (SELECT CNCRHEADERID serialHeaderId, CSERIALNO CSERIALNUM FROM (SELECT CNCRHEADERID, CASE WHEN CNT <= 100 THEN cSERIALNO ELSE (CASE WHEN CSERIALNO IS NOT NULL THEN CSERIALNO||'...' ELSE CSERIALNO END) END cSerialNo FROM (SELECT COUNT(*) as cnt, CNCRHEADERID, LISTAGG(CASE WHEN ROWNUM <= 100 THEN CSERIALNO END, ';') within group (order by CSNOPOSNR) AS CSERIALNO FROM TAIRNCR_SERIALNO group by CNCRHEADERID))) serial on TAIRNCRHEADER.CNCRHEADERID=serial.serialHeaderId WHERE 1 = 1 AND ROWNUM <= 5000 AND (cCustomerPortalGroup IN (1)) AND (cSupplierCPId IN (-1000002,10006106,10006107)) AND cSupplierCGId = 100027 AND CISUNREGSUPPLIER = 0 AND CNCRHEADERID = 1604 Problem ist, dass die folgende Abfrage für RowNums > 100 falsche Werte liefert: SELECT COUNT(*) as cnt, CNCRHEADERID, LISTAGG(CASE WHEN ROWNUM <= 100 THEN CSERIALNO END, ';') within group (order by CSNOPOSNR) AS CSERIALNO FROM TAIRNCR_SERIALNO group by CNCRHEADERID === Lösung === SELECT CNCRHEADERID, MAX (cTotalLen) AS cTotalLenMax, CASE WHEN MAX(cTotalLen) > 4000 THEN listAgg(cSERIALNO,',') within group (order by CSNOPOSNR)||'...' ELSE listAgg(cSERIALNO,',') within group (order by CSNOPOSNR) END as cSerialNoAgg FROM ( select cNCRHEADERID, cSNOPOSNR, CASE WHEN cTotalLen > 3997 THEN SUBSTR(cSERIALNO, 1, LENGTH(cSerialNo) - (cTotalLen - 3997)) ELSE cSerialNo END AS cSerialNo, cTotalLen from ( SELECT CNCRHEADERID, CSNOPOSNR, cSERIALNO, SUM( LENGTH(cSERIALNO) + 1 ) OVER ( partition by CNCRHEADERID ORDER BY CSNOPOSNR ASC ) cTotalLen FROM TAIRNCR_SERIALNO ) ) group by cNCRHEADERID === Notes === * Folgende Fälle speziell prüfen: * KEINE serielle Nummern * 1 serielle Nummer * Mehrere serielle Nummern, deren Gesamtlänge über 3997 Zeichen liegt * Mehrere serielle Nummern, deren Gesamtlänge unter 3997 Zeichen liegt ===== rm#22382 CR 22025: Concession - Integration of "Spot-It" application (Airbus Proof of Concept) ===== https://cust-projects.seeburger.de/redmine/issues/22382 * **-** Implementieren * **-** Meinen Stash anwenden * **-** Testen * **-** Commiten * **-** Harazim im Redmine antworten ===== rm#21582 EDI Scheduler does not remove cascade ID in parallel scenarios ===== https://cust-projects.seeburger.de/redmine/issues/21582 Das Ticket steht momentan auf "ON HOLD" (inoffiziell). Ich konnte es leider nicht nachvollziehen, der Burkhard hat aber keine Zeit, um mit mir das noch ein Mal durchzuspielen. **Upd.**: Er hat es alleine versucht und es hat auch nicht geklappt. Notizen siehe [[http://vwiki.wialon-consulting.de/doku.php?id=09.10.2017_montag#rm_21582_edi_scheduler_does_not_remove_cascade_id_in_parallel_scenarios|09.10.2017]]. ===== Abend ===== ---- ==== Steuervoranmeldung ==== * **-** Rechnungen abschicken ==== DiBa Konto prüfen ==== * **-** Gucken wie die Überweisung möglich ist ==== Wiatrack ==== * **-** Log von gestern und heute anschauen (sind Lücken vorhanden?) ==== Bauer Gear Motor ==== * **-** mit der eigenen App versuchen sich mit dem Board zu verbinden und Tastendrücke abzufangen