12.10.2017_donnerstag
Table of Contents
12.10.2017 Mittwoch
rm#21018 !AIRS_PRD: DA remains in Status "Partially received", although all connected PO´s Status "Received"
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 (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 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
12.10.2017_donnerstag.txt · Last modified: by 127.0.0.1
