====== rm34704 Geänderte PO nicht im Delta-EDI-Export an Lieferanten, wenn Änderung während Export ====== [[https://cust-projects.seeburger.de/redmine/issues/34704|rm34704 im Redmine]] ===== Reproducing ===== Go to: EDI Integration / Scheduler Schedule ID: 1079 -> Job ID: 502136 My POs : * ''cPONUM like 'rm34704%' '' * ''AND cSupplierCPId = 10006106'' * ''AND cCustomerCGId = 100011'' SELECT * FROM TAIREDISCHEDULER where cid=1079; SELECT * FROM TJOBSTATUS where cJobId=502136 order by cStart desc; SELECT * FROM TJOBS where cJobId=502136; Job class: ''com.seeburger.airsupply.edi.scheduler.job.SchedulerJob'' How it works: * The job fetches all ''cLineId'' and ''CREFHEADERID''s: SELECT TAIRPOSCHEDULE.CLINEID, TAIRPOSCHEDULE.CREFHEADERID FROM TAIRPOSCHEDULE INNER JOIN TAIRPOHEADER ON TAIRPOSCHEDULE.CREFHEADERID=TAIRPOHEADER.CHEADERID INNER JOIN TAIRPARTNERRELATION ON TAIRPOSCHEDULE.CPRELATIONID=TAIRPARTNERRELATION.CRELATIONID INNER JOIN TAIRORDERINGOFFICER ON TAIRPOSCHEDULE.CREFOFFICERID=TAIRORDERINGOFFICER.CORDERINGOFFICERID INNER JOIN TAIRMATERIAL ON TAIRPOSCHEDULE.CREFMATID=TAIRMATERIAL.CMATERIALID WHERE 1=1 AND cSupplierCPId = 10006106 AND (TAIRPOSCHEDULE.CEXPORTID IS NULL OR TAIRPOSCHEDULE.CEXPORTID=' $$NULL$$') AND (TAIRPOSCHEDULE.CEXPORTALLID IS NULL OR TAIRPOSCHEDULE.CEXPORTALLID=' $$NULL$$') AND cCustomerCGId = 100011 ORDER BY TAIRPOSCHEDULE.CREFHEADERID ASC * ... * The job sends the next "chunk" with the specific ExportId * ... Um die ExportId wieder zurückzusetzen, muss eine spezielle Nachricht vom Lieferanten kommen, wo die ExportId im Feld ''InternalMessageID'' steht. Siehe ''D:\development\testdata\purchaseorder\rm34704\Status-Notification.xml'' ==== Speak with Burkhard ==== * Any ideas about how it should be solved? * Is there some standard solutions? (E.g. ''ConcTManagerClient.setPessimisticLock()''?) * ''SASMessageManagerEJB.createMessageWithNewTransaction()'' * Is it a bigger topic? ==== Possible causes ==== The following causes are possible: * Lag between the export and status notification message * Missing status notification message ==== Misc ==== * Strange error message: ''GeneralFailureException: com.seeburger.smarti.dao.DAOSysException: Unable to retrieve a database connection: javax.resource.ResourceException: IJ000460: Error checking for a transaction (Code: 1583306705368)'' Useful SQLs: SELECT TAIRPOSCHEDULE.CLINEID, TAIRPOSCHEDULE.CREFHEADERID FROM TAIRPOSCHEDULE INNER JOIN TAIRPOHEADER ON TAIRPOSCHEDULE.CREFHEADERID=TAIRPOHEADER.CHEADERID INNER JOIN TAIRPARTNERRELATION ON TAIRPOSCHEDULE.CPRELATIONID=TAIRPARTNERRELATION.CRELATIONID INNER JOIN TAIRORDERINGOFFICER ON TAIRPOSCHEDULE.CREFOFFICERID=TAIRORDERINGOFFICER.CORDERINGOFFICERID INNER JOIN TAIRMATERIAL ON TAIRPOSCHEDULE.CREFMATID=TAIRMATERIAL.CMATERIALID WHERE 1=1 AND cSupplierCPId = 10006106 AND (TAIRPOSCHEDULE.CEXPORTID IS NULL OR TAIRPOSCHEDULE.CEXPORTID=' $$NULL$$') AND (TAIRPOSCHEDULE.CEXPORTALLID IS NULL OR TAIRPOSCHEDULE.CEXPORTALLID=' $$NULL$$') AND cCustomerCGId = 100011 AND (TAIRPOSCHEDULE.CEXPORTED = 0 OR (TAIRPOSCHEDULE.CEXPORTED IS NULL)) ORDER BY TAIRPOSCHEDULE.CREFHEADERID ASC; SELECT t.CEXPORTED, t.CEXPORTID, t.CEXPORTALLID, t.* FROM TAIRPOSCHEDULE t where T.CREFHEADERID = 546498; ===== NICHT VERGESSEN ===== * Reset LIMIT_EXPORT_POSCHEDULELINE to 32 again update tConfig set cValue=32 where cKey = 'LIMIT_EXPORT_POSCHEDULELINE';