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
Next revision
Previous revision
rm34704 [2020/03/03 15:25] – [Reproducing] 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>