airs-639_po_attachments_non-collab-change_alert_handling
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| airs-639_po_attachments_non-collab-change_alert_handling [2018/08/02 10:51] – [Methoden] kalaschnikow | airs-639_po_attachments_non-collab-change_alert_handling [2018/08/15 15:06] (current) – [Bekannte Probleme] kalaschnikow | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== AIRS-639 PO attachments Non-Collab-Change alert handling ====== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | ===== TODO ===== | ||
| + | * **-** [[https:// | ||
| + | * **+** Reuse for history | ||
| + | * **-** Reuse for alert writing | ||
| + | * **+** [[https:// | ||
| + | * **-** [[https:// | ||
| + | * **+** [[https:// | ||
| + | |||
| + | * **-** [[https:// | ||
| + | * **-** [[https:// | ||
| + | ===== Allgemein ===== | ||
| + | Die ursprüngliche Idee war den '' | ||
| + | Line Parameter in der Klasse oft verwendet werden. D.h. man kann nicht auf Schedule Line irgendwie verzichten. Was uns betrifft, so haben wir zwei Fälle. In einem Fall sind die Attachments auf dem Level einer Schedule Line. Da passt es und wir können sehr wohl POScheduleLine wiederverwenden. Aber in dem anderen Fall sind die Attachments auf der Header-Ebene. D.h. wir können gar keine dazu passende Schedule Line haben. Deshalb muss die Idee transformiert werden. Dazu gibt es folgende Ideen: | ||
| + | - Da bei den Attachments auf der Schedule Line Ebene die Klasse '' | ||
| + | - Man erstellt eine neue sehr einfache Helper-Klasse, | ||
| + | |||
| + | Ich habe die Variante 1 gewählt: es wird POChangeVerifier verwendet, und das Model der '' | ||
| + | |||
| + | ===== Einen Satz in die History schreiben ===== | ||
| + | |||
| + | Beim Import der Attachments soll auf jeder Ebene ein Satz in die History geschrieben werden. Und zwar auf folgende Weise. Wenn die Datei auf der Headerebene ist, kommt ins Feld " | ||
| + | |||
| + | So wurde es mit Stefan Schwarzfischer besprochen. | ||
| + | |||
| + | ===== Einen Satz in die Alert-Tabelle schreiben ===== | ||
| + | |||
| + | Die Methode '' | ||
| + | <code java> | ||
| + | if(enforceVisibilityForAdd || !bAddOperation) { | ||
| + | //do not track nonCollabChanges if in status NOP, CCOR, CANREQ (CR075) | ||
| + | // BUT(!) | ||
| + | // disable CR075 if disablePONCCExceptionForNOPandCCORandCANREQ is true (CR164) | ||
| + | |||
| + | if(isTrackingRequired(curConfig, | ||
| + | addNonCollabTracking(getUserContext(true), | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | So wurde es mit Stefan Schwarzfischer am 08.08.2018 besprochen. Er wollte es aber noch mit Kollegen besprechen, und mir dann Bescheid sagen, ob das in Ordnung ist.\\ | ||
| + | **Upd. 09.08.2018**: | ||
| + | |||
| + | ===== Notizen zu POChangeVerifier ===== | ||
| + | ==== Methoden ==== | ||
| + | * getTrackFieldsConfig() | ||
| + | * fetches configs from DB (using customer CPId from '' | ||
| + | * verify(String | ||
| + | * 2 methods, which compares old and new values and initiates a change if they are different | ||
| + | * createInitialTopic() | ||
| + | * createChangeTopic(...) | ||
| + | * finish(...) | ||
| + | * reportNonCollabTracking() | ||
| + | * finishCommentOnNonCollabChanges() | ||
| + | * Spezialfunktion für NonCollab Changes auf dem Comment-Feld | ||
| + | * verifyChangeByFieldType() | ||
| + | * compares new and old values | ||
| + | * getOSPTracking() / addOSPTracking() | ||
| + | * createOSPMinorChangeTopic(...) | ||
| + | * createOSPMajorChangeTopic(...) | ||
| + | * logCollabChange(...) | ||
| + | * addOSPNewLineTopic(...) | ||
| + | |||
| + | ==== SQL ==== | ||
| + | History anschauen (cObjectReference ändern!): | ||
| + | <code sql> | ||
| + | SELECT | ||
| + | tAirChangeLog.*, | ||
| + | FROM tAirChangeLog, | ||
| + | WHERE tAirChangeLog.cRelationId_CL=tAirPartnerRelation.cRelationId | ||
| + | AND tAirChangeLog.cMaterialId_CL=tAirMaterial.cMaterialId | ||
| + | AND tAirChangeLog.cOrderingOfficerId_CL=tAirOrderingOfficer.cOrderingOfficerId | ||
| + | AND ROWNUM <= 5000 | ||
| + | --AND (cCustomerPortalGroup IN (1)) | ||
| + | --AND ( | ||
| + | --AND( | ||
| + | --AND CISUNREGSUPPLIER = 0 | ||
| + | --AND cInternalUseOnly = 0 | ||
| + | --AND (CPENDINGENTRY IS NULL OR CPENDINGENTRY=0) | ||
| + | -- AND cProcessId = 2 | ||
| + | AND cObjectReference = 545639 | ||
| + | --AND cSubObjectReference = 5003843 | ||
| + | AND cActionTime> | ||
| + | AND cActionTime< | ||
| + | ORDER BY cActionTime DESC,cField ASC | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Bekannte Probleme ===== | ||
| + | * Momentan ist es so implementiert, | ||
