====== 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';