User Tools

Site Tools


12.10.2017_donnerstag

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