User Tools

Site Tools


rm34704

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
rm34704 [2020/03/16 16:41] – [Possible cause] kalaschnikowrm34704 [2020/03/16 16:44] (current) – [Misc] kalaschnikow
Line 1: Line 1:
 +====== 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''
 +
 +<code sql>
 +
 +SELECT * FROM TAIREDISCHEDULER where cid=1079;
 +
 +SELECT * FROM TJOBSTATUS where cJobId=502136 order by cStart desc;
 +
 +SELECT * FROM TJOBS where cJobId=502136;
 +</code>
 +
 +Job class: ''com.seeburger.airsupply.edi.scheduler.job.SchedulerJob''
 +
 +How it works:
 +  * The job fetches all ''cLineId'' and ''CREFHEADERID''s:
 +<code sql>
 +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
 +</code>
 +  * ...
 +  * 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:
 +<code sql>
 +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;
 +</code>
 +===== NICHT VERGESSEN =====
 +
 +  * Reset LIMIT_EXPORT_POSCHEDULELINE to 32 again
 +<code sql>
 +update tConfig set cValue=32 where cKey = 'LIMIT_EXPORT_POSCHEDULELINE';
 +</code>