Eszközkarbantartási adatsablon
Eszközkarbantartási adatsablon
- Javasolt adatmezők a gyűjtéshez
- Követendő fontos karbantartási tevékenységek
- Műszaki útmutató az SAP PM-adatok kinyeréséhez
Eszközkarbantartási attribútumok
| Név | Leírás | ||
|---|---|---|---|
| Esemény időbélyege EventTimestamp | A tevékenység pontos dátuma és időpontja. | ||
| Leírás Rögzíti az esemény pontos időpontját. Állapotváltozás esetén az adat a rendszerállapot frissítési idejéből, műveleteknél pedig a visszaigazolás időpontjából származik. A pontos időbélyegek szükségesek a ciklusidők és átfutási idők kiszámításához, valamint a folyamatlépések, például a tervezés és a végrehajtás közötti szűk keresztmetszetek feltárásához. Miért fontos? Az események helyes sorrendbe állításához és az időtartam-alapú KPI-k kiszámításához szükséges. Hol szerezhető be? JEST (UDATE/UTIME), AFRU (ISDD/ISDZ), MKPF (CPUDT/CPUTM) Példák 2023-10-15T08:30:00Z2023-10-15T14:45:12Z | |||
| Forrásrendszer SourceSystem | A rendszer, amelyből az adat származik. | ||
| Leírás Azonosítja az adott SAP-klienst vagy -példányt, például az „SAP_PM_PROD” rendszert. Több ERP-rendszer használatakor ez az attribútum segít megkülönböztetni az azonos azonosítójú, de eltérő jogi személyhez vagy rendszerkörnyezethez tartozó rekordokat. Miért fontos? Több rendszer használatakor biztosítja az adatok egyediségét és eredetének nyomon követhetőségét. Hol szerezhető be? Rendszerkonfiguráció / kinyerési napló Példák SAP_ECC_P01SAP_S4H_100 | |||
| Karbantartási munkamegrendelés MaintenanceWorkOrder | A karbantartási munkamegrendelés egyedi azonosítója. | ||
| Leírás A karbantartási munkamegrendelés az SAP Plant Maintenance központi bizonylata (AUFK tábla, AUFNR mező). Összekapcsolja a karbantartási igényt (értesítést) a végrehajtáshoz szükséges erőforrásokkal, anyagokkal és költségekkel. A process mining elemzésben ez a Case ID, amely lehetővé teszi a karbantartási feladat teljes életciklusának rekonstruálását a létrehozástól a műszaki és üzleti lezárásig. Miért fontos? Ez az egyedi kulcs kapcsolja össze az összes tevékenységet, költséget és időbélyeget, így megjeleníthető a folyamat menete. Hol szerezhető be? SAP AUFK tábla, AUFNR mező Példák 00004001234540012345000040098765 | |||
| Tevékenység neve Activity | A végrehajtott konkrét feladat vagy állapotváltozás. | ||
| Leírás A karbantartási folyamat egy lépését jelöli, például: „Karbantartási megrendelés létrehozva”, „Anyagkiadás könyvelve” vagy „Megrendelés művelete visszaigazolva”. Az adat állapotváltozás esetén jellemzően az állapotkezelési táblákból (JEST), visszaigazolás esetén a tranzakciós táblákból (AFRU), anyagmozgás esetén pedig az MKPF táblából származik. Ez az attribútum határozza meg a folyamattérkép csomópontjait. Miért fontos? Ez határozza meg, hogy mi történik a folyamatban, és alapul szolgál a folyamatmenet és a változatok feltárásához. Hol szerezhető be? A JEST (állapotok), az AFRU (visszaigazolások) és a QMEL (értesítések) táblából származik Példák Karbantartási megrendelés létrehozvaMegrendelés kiadvaMűszakilag befejezve | |||
| Utolsó adatfrissítés LastDataUpdate | A legutóbbi adatkinyerés időbélyege. | ||
| Leírás Jelzi, mikor frissült utoljára az adat a process mining adatmodelljében. Az elemzők így megítélhetik, mennyire aktuálisak az eredmények, és ellenőrizhetik az adatok frissességét a valós idejű hátralékot vagy az SLA-k teljesülését figyelő dashboardokon. Miért fontos? Az adatirányítás és a dashboardokba vetett bizalom szempontjából fontos. Hol szerezhető be? ETL-időbélyeg Példák 2023-11-01T12:00:00Z | |||
| Berendezésszám EquipmentNumber | A karbantartott fizikai eszköz egyedi azonosítója. | ||
| Leírás A berendezésszám (EQUNR) azonosítja az egyes gépeket és eszközöket. Az elemzők e mező szerint összesítve kiszámíthatják az eszközkarbantartási költségeket és az áteresztőképességet bemutató dashboard mutatóit, és azonosíthatják a gyakran, nagy költséggel javított problémás berendezéseket. Az adat a megbízhatóság-központú karbantartás elemzését is lehetővé teszi. Miért fontos? A folyamat teljesítményét konkrét fizikai eszközökhöz kapcsolja. Hol szerezhető be? SAP AUFK tábla, EQUNR mező Példák 10004567PUMP-001HVAC-202 | |||
| Értesítésszám NotificationNumber | Az a karbantartási értesítés, amely elindította ezt a megrendelést. | ||
| Leírás Az értesítésszám (QMNUM) összekapcsolja a munkamegrendelést az eredeti kéréssel (értesítéssel). Erre a kapcsolatra szükség van ahhoz, hogy a teljes átfutási idő a karbantartási igény beérkezésétől a befejezésig kiszámítható legyen. Enélkül az elemzésből kimarad a karbantartási életciklus kezdeti, hibaészlelési és bejelentési szakasza. Miért fontos? Összekapcsolja a végrehajtási szakaszt az igénylés vagy észlelés szakaszával. Hol szerezhető be? SAP AUFK tábla, QMNUM mező Példák 1000050010000501 | |||
| Fő munkaközpont MainWorkCenter | A megrendelés végrehajtásához kijelölt elsődleges munkaközpont vagy csapat. | ||
| Leírás A fő munkaközpont (VAPLZ) a fizikai munkát végző technikusok vagy gépek csoportját jelöli. A „Team” mezőhöz rendelve lehetővé teszi a végrehajtás hatékonyságának elemzését, például a javítás átlagos idejének csapatonkénti összehasonlítását. Segít elkülöníteni a belső munkaerőt a külső vállalkozóktól. Miért fontos? Lehetővé teszi a teljesítmény erőforrásonkénti elemzését. Hol szerezhető be? SAP AFKO tábla, VAPLZ mező (konfigurációtól függően AUFK-VAPLZ) Példák MECH_01ELEC_TEAMEXT_CONT | |||
| Karbantartási megrendelés típusa MaintenanceOrderType | A munkamegrendelés kategóriája, például megelőző vagy javító karbantartás. | ||
| Leírás Az SAP PM-ben a megrendeléstípus (AUART) jelzi a karbantartási munka jellegét. Gyakori típusok: PM01 (javító), PM02 (megelőző) és PM03 (felújítás). Ez az attribútum szükséges a sürgősségi munkamegrendelések hatásának figyeléséhez és a folyamatváltozatok elkülönítéséhez, mivel a megelőző karbantartás folyamata jelentősen eltér a hibaelhárítástól. Miért fontos? Alapvető az előre tervezett és a nem tervezett munkák elemzésének elkülönítéséhez. Hol szerezhető be? SAP AUFK tábla, AUART mező Példák PM01PM02PM03 | |||
| Karbantartási prioritás MaintenancePriority | A munkamegrendeléshez rendelt sürgősségi szint. | ||
| Leírás A karbantartási feladat prioritását (PRIOK) jelzi, például „1-Nagyon magas”, „2-Magas” vagy „3-Közepes”. Ez a mező szolgáltat adatot a sürgősségi munkamegrendelések arányát mérő KPI-hoz. A prioritás szerinti folyamat elemzésével megállapítható, hogy a magas prioritású megrendelések valóban gyorsabban haladnak-e a rendszeren keresztül, mint a szokásos munkák. Miért fontos? Az SLA-elemzés és a sürgősségi munkák azonosításának egyik fő szempontja. Hol szerezhető be? SAP AFKO tábla, PRIOK mező (vagy nézeten keresztül az AUFK tábla) Példák 1-Sürgősségi2-Magas3-Közepes4-Alacsony | |||
| Karbantartó üzem MaintenancePlant | A karbantartásért felelős logisztikai üzem. | ||
| Leírás Az üzem (WERKS) a logisztika elsődleges szervezeti egysége. A fizikai telephelyek szerint különíti el az adatokat. Ez az attribútum szükséges a különböző telephelyek teljesítményének összehasonlításához. A „BusinessUnit” mezőhöz rendelve lehetővé teszi a dashboardok szervezeti szintű szűrését. Miért fontos? A telephelyek összehasonlításának elsődleges szervezeti szűrője. Hol szerezhető be? SAP AUFK tábla, WERKS mező Példák 100020003000 | |||
| Létrehozó felhasználó CreatedByUser | A megrendelést létrehozó személy felhasználóneve. | ||
| Leírás Azonosítja a munkamegrendelést kezdeményező felhasználót (ERNAM). Az általános modellben ez a „Felhasználó” mezőnek felel meg. Segítségével elemezhető, hogy a létrehozás manuálisan vagy automatikusan történt-e, és ellenőrizhető a „Karbantartási megrendelés létrehozva” tevékenység. Miért fontos? Lehetővé teszi a felhasználói tevékenység elemzését és az ellenőrzést. Hol szerezhető be? SAP AUFK tábla, ERNAM mező Példák JSMITHBSERVICEDDAVIS | |||
| Műszaki hely FunctionalLocation | Az eszköz telepítési helye a hierarchiában. | ||
| Leírás A műszaki struktúra azon helyét jelöli (TPLNR), ahol a karbantartási feladatot végzik. A mozgatható berendezéssel szemben a műszaki hely állandó. Ez az attribútum lehetővé teszi a teljesítmény összehasonlítását az üzem különböző területei, például a kazánház és a csomagolósor között, és adatot szolgáltat a műszaki ellenőrzési ciklusidőket bemutató dashboardhoz. Miért fontos? Lehetővé teszi a karbantartási teljesítmény hely és hierarchia szerinti elemzését. Hol szerezhető be? SAP IFLOT tábla, TPLNR mező (vagy az AUFK-TPLNR mezőn keresztül) Példák PLANT1-BLD2-LN01US-TX-DAL-01 | |||
| Rendszerállapot SystemStatus | A megrendelés aktuális műszaki állapota, például REL vagy TECO. | ||
| Leírás A megrendeléshez jelenleg tartozó aktív rendszerállapotok (JEST) összefűzött listája. Gyakori értékek: CRTD (létrehozva), REL (kiadva), TECO (műszakilag befejezve) és CLSD (lezárva). Ezzel különíthetők el a nyitott és lezárt esetek a „Függő munkák és folyamatban lévő feladatok figyelése” dashboardon. Miért fontos? A megrendelés életciklusának aktuális szakaszát jelző fő adat. Hol szerezhető be? SAP STATUS_TEXT_EDIT funkciómodul vagy JEST tábla Példák REL CNFTECOCRTD MACM | |||
| Tervezett befejezési dátum TargetFinishDate | A karbantartási munka tervezett befejezési dátuma. | ||
| Leírás Ez a dátum, jellemzően az alap befejezési dátum (GLTRP), a munkamegrendelés határidejét jelöli. A rendszer a tényleges befejezés időpontjával összevetve számítja ki az „SLA-teljesítési arány” KPI-t. Ez alapján állapítható meg, hogy a munkamegrendelés határidőre vagy késve készült-e el. Miért fontos? Az összes határidőre történő teljesítési (OTD) számítás alapja. Hol szerezhető be? SAP AFKO tábla, GLTRP mező Példák 2023-12-012023-12-15 | |||
| Tervezőcsoport ResponsiblePlannerGroup | A megrendelés feldolgozásáért felelős tervezők csoportja. | ||
| Leírás A tervezőcsoport (INGRP) azonosítja a karbantartási munka tervezéséért felelős csapatot vagy részleget. A „Department” mezőhöz rendelve segít feltárni, mely tervezőcsapatok jelentenek szűk keresztmetszetet az előkészítési szakaszban. Ehhez adatot szolgáltat az erőforrás-kihasználtságot és ütemezést bemutató dashboardhoz. Miért fontos? Azonosítja a tervezési folyamatért felelős adminisztratív csapatot. Hol szerezhető be? SAP AUFK tábla, INGRP mező Példák M01ELEMEC | |||
| Sürgősségi munka IsEmergencyWork | Jelzi, hogy sürgősségi munkáról van-e szó. | ||
| Leírás A karbantartási prioritás alapján számított logikai attribútum. Ha a prioritás „1” (vagy a konfigurációban a sürgősséghez rendelt kód), az értéke igaz. Így a „Sürgősségi munkamegrendelések aránya” KPI egyszerűen szűrhető és számítható ki, bonyolult dashboard-logika nélkül. Miért fontos? Egyszerűbbé teszi a kritikus, hibaelhárító karbantartási esetek elemzését. Hol szerezhető be? A MaintenancePriority mezőből számítva Példák truefalse | |||
| Tényleges összköltség TotalActualCost | A munkamegrendelésre könyvelt tényleges összköltség. | ||
| Leírás A PMCO táblából származó, munkaerő-, anyag- és szolgáltatási költségek összege. Ez az attribútum az „Eszközkarbantartási költségek és átbocsátóképesség” dashboard adatait biztosítja, így a vezetők áttekinthetik a karbantartási tevékenységek pénzügyi hatását. Segítségével megállapítható, hogy az eszközök javítása vagy cseréje éri-e meg jobban. Miért fontos? Pénzügyi szemponttal egészíti ki a működési folyamatadatokat. Hol szerezhető be? SAP PMCO tábla (a 04-es értéktípus, vagyis a tényleges értékek összege) Példák 150.002500.500.00 | |||
| Tervezett munkaórák PlannedLaborHours | A megrendeléshez becsült munkaórák. | ||
| Leírás A megrendelés műveleteihez tervezett összes munka (ARBEI). Ezt a tényleges tevékenység időtartamával összevetve a „Tervezés és becslés pontossága” dashboardon értékelhető a karbantartási tervek pontossága. Miért fontos? A tervezési pontosság elemzésének alapmutatója. Hol szerezhető be? SAP AFKO tábla (a műveletek tervezett munkaidejének összege) Példák 4.08.512.0 | |||
| Utómunka IsRework | Jelzi, hogy a megrendeléshez kapcsolódott-e utómunka. | ||
| Leírás Számított logikai érték, amely jelzi, ha ismétlődött egy folyamatszakasz. Ilyen például, ha a „Karbantartási feladat végrehajtva” tevékenység többször is megtörtént, vagy az állapot „Műszakilag befejezve” értékről „Folyamatban” értékre váltott vissza. Ez támogatja a „Karbantartási utómunka aránya” KPI-t, és segít feltárni a minőségi problémákat. Miért fontos? Közvetlenül támogatja a minőségellenőrzés elemzését. Hol szerezhető be? A folyamatmenet alapján számítva Példák truefalse | |||
Eszközkarbantartási tevékenységek
| Tevékenység | Leírás | ||
|---|---|---|---|
| Anyagkiadás könyvelve | Rögzíti a pótalkatrészek vagy anyagok tényleges felhasználását a munkamegrendeléshez. Az esemény a megrendeléshez kapcsolódó anyagbizonylat-fejlécekből származik. | ||
| Miért fontos? Megerősíti, hogy az alkatrészek rendelkezésre állnak és kiadták őket. Közvetlenül befolyásolja az alkatrészre várakozási idő elemzését. Hol szerezhető be? MSEG/MKPF tábla, 261-es mozgásnem (kiadás megrendelésre). Rögzítés Az MIGO/MB1A tranzakció végrehajtásakor naplózva Eseménytípus explicit | |||
| Karbantartási megrendelés kiadva | Azt jelzi, hogy a tervezés befejeződött, és a megrendelés végrehajtásra kiadható. Az esemény a rendszerállapot-naplók REL állapotváltozásának figyelésével rögzíthető. | ||
| Miért fontos? Ez a mérföldkő választja el a tervezési szakaszt a végrehajtástól. A tervezési és becslési átfutási idő méréséhez is szükséges. Hol szerezhető be? JCDS tábla (állapotváltozási dokumentumok), I0002 állapot (REL). Rögzítés A JCDS-ben a REL állapot beállításakor naplózva Eseménytípus explicit | |||
| Karbantartási megrendelés létrehozva | A karbantartási munkamegrendelés létrehozását jelzi a rendszerben. Az esemény a megrendelés törzsadatainak létrehozási időbélyegéből származik. | ||
| Miért fontos? Ez az eset központi eseménye: a kéréstől a tervezés és végrehajtás felé történő átmenetet jelöli. Hol szerezhető be? AUFK tábla, ERDAT (dátum) és ERFZEIT (idő) mező. Rögzítés Az IW31 tranzakció végrehajtásakor naplózva Eseménytípus explicit | |||
| Megrendelés művelete visszaigazolva | Rögzíti, hogy a technikus ténylegesen mennyi időt töltött egy adott művelettel. Az eszközön végzett tényleges munkát mutatja. | ||
| Miért fontos? Ez az esemény a javítás átlagos idejének és a munkaerőköltségnek a kiszámításához használt elsődleges adatforrás. Hol szerezhető be? AFRU tábla (megrendelés-visszaigazolások). Rögzítés Az IW41 tranzakció végrehajtásakor naplózva Eseménytípus explicit | |||
| Műszaki befejezés beállítva | Azt jelzi, hogy a karbantartási munka fizikailag és műszakilag befejeződött. Az eseményt a TECO (műszakilag befejezett) állapot beállítása rögzíti. | ||
| Miért fontos? Ez a működési elemzés legfontosabb végpontja: jelzi, hogy az eszköz ismét üzemképes, a karbantartás pedig befejeződött. Hol szerezhető be? JCDS tábla, I0045 állapot (TECO). Rögzítés A JCDS-ben a TECO állapot beállításakor naplózva Eseménytípus explicit | |||
| Üzleti lezárás beállítva | A munkamegrendelés végleges adminisztratív lezárását jelzi, és megakadályozza a további költségkönyvelést. Az eseményt a CLSD (lezárt) állapot beállítása rögzíti. | ||
| Miért fontos? A megrendelés életciklusának végpontját jelöli, és alapul szolgál az adatok pontosságának, valamint a nyilvántartások megfelelésének ellenőrzéséhez. Hol szerezhető be? JCDS tábla, I0046 állapot (CLSD). Rögzítés A JCDS-ben a CLSD állapot beállításakor naplózva Eseménytípus explicit | |||
| Anyagkomponens hozzáadva | Rögzíti, amikor pótalkatrészt vagy anyagot adnak a munkamegrendelés komponenslistájához. Az esemény egy foglalási tétel létrehozásából származik. | ||
| Miért fontos? Jelzi a szükséges alkatrészek beszerzési folyamatának kezdetét, és adatot szolgáltat a pótalkatrész-beszerzés átfutási idejét bemutató dashboardhoz. Hol szerezhető be? RESB tábla, BDTER (igény dátuma) mező vagy létrehozási időbélyeg. Rögzítés A RESB táblához tartozó tétel hozzáadásakor naplózva Eseménytípus explicit | |||
| Beszerzési igény létrehozva | Jelzi, hogy létrejött egy külső beszerzésre vagy szolgáltatásra vonatkozó igény. Összekapcsolja a belső karbantartási megrendelést a külső ellátási lánccal. | ||
| Miért fontos? Nélkülözhetetlen a külső beszállítók vagy a készleten nem tartott anyagok beszerzése miatt fellépő késedelmek elemzéséhez. Hol szerezhető be? EBAN tábla, a kontírozáson keresztül kapcsolódik az AUFK-AUFNR mezőhöz. Rögzítés Az EBAN-rekord létrehozásakor naplózva Eseménytípus explicit | |||
| Karbantartási értesítés létrehozva | Rögzíti a karbantartási értesítés létrehozását, amely gyakran munkamegrendelést indít el. Az esemény a QMEL tábla létrehozási időbélyegéből származik, és összekapcsolja az eredeti kérést a végrehajtási megrendeléssel. | ||
| Miért fontos? Ez az esemény jelöli a teljes karbantartási folyamat kezdetét. Segítségével kiszámítható a hiba észlelése és a megrendelés létrehozása közötti reakcióidő. Hol szerezhető be? QMEL tábla, ERDAT (létrehozás dátuma) és MZEIT (idő) mező. A megrendeléshez a QMEL-AUFNR kapcsolja. Rögzítés A QMEL táblában szereplő rekord létrehozásakor naplózva Eseménytípus explicit | |||
| Karbantartási prioritás módosítva | Naplózza a munkamegrendelés prioritásának módosítását, például a sürgősségi szintre emelést. Az adat a megrendelés törzsadataihoz kapcsolódó módosítási dokumentumokból származik. | ||
| Miért fontos? A prioritásváltozások nyomon követése segít megmagyarázni a folyamat eltéréseit, és a sürgősségi munkamegrendelések hatásának figyelésével feltárja a reaktív prioritásemeléseket. Hol szerezhető be? CDPOS/CDHDR tábla, AUFTRAG objektumosztály, PRIOK mező. Rögzítés A módosítási dokumentumokban (CDPOS) naplózva Eseménytípus explicit | |||
| Megrendelés költségei elszámolva | Azt jelzi, hogy a megrendelésen összegyűjtött költségeket átvezették a kontrollingobjektumra, például a költséghelyre. Az esemény a kontrollingbizonylatból származik. | ||
| Miért fontos? Nyomon követi a pénzügyi lezárást, és adatot szolgáltat a pénzügyi elszámolás időtartamának KPI-jához. Hol szerezhető be? COBK tábla (CO-objektum: bizonylatfejléc), a megrendeléshez kapcsolva. Rögzítés A KO88 elszámolási tranzakció végrehajtásakor naplózva Eseménytípus explicit | |||
| Mérési érték rögzítve | Naplózza egy mérési bizonylat, például számlálóállás vagy állapotfelmérés rögzítését. Gyakran a műszaki ellenőrzés eseményeként szolgál. | ||
| Miért fontos? Nélkülözhetetlen az állapotalapú karbantartáshoz és a műszaki ellenőrzési ciklusidők nyomon követéséhez. Hol szerezhető be? IMRG tábla (mérési bizonylat), berendezéshez vagy műszaki helyhez kapcsolva. Rögzítés A mérési bizonylat létrehozásakor naplózva Eseménytípus explicit | |||
| Munkamegrendelés ütemezve | A műveletek adott kapacitáshoz vagy dátumhoz történő ütemezését jelzi. Az esemény a Dispatch állapot műveletekhez rendeléséből következtethető ki. | ||
| Miért fontos? Méri az erőforrások elosztásának hatékonyságát, és adatot szolgáltat az erőforrás-kihasználtságot és ütemezést bemutató dashboardhoz. Hol szerezhető be? JCDS tábla (állapotváltozási dokumentumok), műveletek (ObjType OV), I0009 állapot (DSPT). Rögzítés Hasonlítsa össze az állapotmező értékét a módosítás előtt és után Eseménytípus inferred | |||
| Műszaki befejezés visszavonva | Rögzíti a műszaki befejezés állapotának visszavonását, ami azt jelzi, hogy a megrendelést újranyitották. Ez ismételt munkát jelent a folyamatmodellben. | ||
| Miért fontos? A karbantartási ismételtmunka-arány KPI elsődleges mutatója, amely rávilágít a túl korai lezárásokra és a minőségi problémákra. Hol szerezhető be? JCDS tábla, az I0045 állapot (TECO) inaktívra vált. Rögzítés A TECO állapot kikapcsolásakor naplózva Eseménytípus explicit | |||
Adatkinyerési útmutatók
Lépések
Az adatforrás-kapcsolat azonosítása: Határozza meg, hogyan fér hozzá az SAP S/4HANA SQL-felületéhez. Ezt általában az SAP HANA Studio, az Eclipse ABAP Development Tools (ADT) eszközei vagy egy DBaaS-kapcsolati karakterlánc segítségével teheti meg, ha a HANA-adatbázis elérhető az elemzési réteg számára.
A CDS-nézetek elérhetőségének ellenőrzése: Győződjön meg arról, hogy az S/4HANA-rendszerben aktívak a szabványos Core Data Services (CDS) nézetek. Elsősorban az I_MaintenanceOrder, I_MaintenanceOrderOperation, I_MaintenanceNotification, I_MaintOrderConfirmation és I_MeasurementDocument nézetekre lesz szüksége. A teljes eseménytörténet rekonstruálásához a JCDS rendszerállapot-előzmény táblához és a módosítási dokumentumok tábláihoz (CDHDR/CDPOS) is hozzá kell férnie, mivel a szabványos CDS-nézetek gyakran csak az aktuális állapotot mutatják.
Az SQL-környezet előkészítése: Nyissa meg az SQL-szerkesztőt. Ellenőrizze, hogy a felhasználói fiókja rendelkezik-e SELECT jogosultsággal a fent felsorolt objektumok DDL SQL-nézeteihez, amelyek általában az SAPABAP1 vagy egy hasonló sémában találhatók.
A kinyerési lekérdezés futtatása: Másolja a megadott SQL-szkriptet a szerkesztőbe. Cserélje le a [Your Client Number] helyőrzőt a saját SAP-kliensazonosítójára, például 100-ra. Ha egy adott dátumtartományra szűr, módosítsa az EventTimestamp szűrőit a WHERE záradékokban.
Adatátalakítás: A lekérdezés elvégzi az átalakítások nagy részét, például az időbélyegek típuskonverzióját és az állapotkódok olvasható szöveggé alakítását. Ha a célrendszer megköveteli, exportáláskor az EventTimestamp oszlopot ISO 8601 formátumban adja meg (YYYY-MM-DDTHH:MM:SS).
Az eredmény exportálása: Futtassa a lekérdezést, majd exportálja az eredményt CSV- vagy Parquet-fájlba. A felhasználónevekben és leírásokban szereplő speciális karakterek megőrzéséhez UTF-8 kódolást állítson be.
Az oszlop-hozzárendelés ellenőrzése: Nyissa meg az export egy mintáját, és ellenőrizze, hogy a MaintenanceWorkOrder, Activity és EventTimestamp oszlopok teljesen ki vannak-e töltve. Nézze meg, hogy az Activity oszlop a követelményekben felsorolt konkrét értékeket tartalmazza-e, például Maintenance Order Created és Goods Issue Posted.
Feltöltés a ProcessMindba: Importálja az ellenőrzött fájlt a ProcessMindba. Rendelje az Activity oszlopot az Activity ID mezőhöz, a MaintenanceWorkOrder oszlopot a Case ID mezőhöz, az EventTimestamp oszlopot pedig a Timestamp mezőhöz.
Konfiguráció
- Kliensszűrő: Az SAP-rendszerek több klienssel működnek. A duplikált adatok és a kliensek közötti adatszivárgás elkerülése érdekében mindig szűrjön a
MANDTvagy aClientmezőre, például a '100' értékre. - Dátumtartomány: Javasoljuk, hogy a Maintenance Order
CreationDatemezőjére szűrve az utolsó 6–12 hónap adatait kérdezze le. AJCDS(állapot) vagy aCDPOS(módosítási dokumentumok) teljes előzményeinek dátumszűrő nélküli lekérdezése időtúllépést okozhat. - Nyelvi kulcs: A lekérdezés alapértelmezés szerint az angol ('E') nyelvet használja. Ha a szervezet más elsődleges nyelven tárolja a szöveges leírásokat, módosítsa a nyelvi szűrőt.
- Rendszer-hozzáférés: Hozzáférés szükséges az ABAP Core Data Services sémához vagy az alapul szolgáló HANA-táblákhoz. A JCDS és CDHDR nyers táblákhoz való hozzáférés elengedhetetlen az állapotok előzményeinek elemzéséhez, mivel a CDS-nézetek gyakran csak pillanatfelvételt tartalmaznak.
- Megrendeléstípusok: A lekérdezés minden megrendeléstípust kinyer. Ha csak bizonyos karbantartási eseteket szeretne elemezni, szűrjön a
MaintenanceOrderTypemezőre, például csak a PM01 és PM02 típusokra.
Példa-lekérdezés sql
/* Activity 1: Maintenance Notification Created */
SELECT
CAST(N.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(N.CreationDate, ' '), N.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
N.MaintenanceOrderType,
N.MaintenancePriority,
N.Equipment AS EquipmentNumber,
N.FunctionalLocation,
N.MaintenancePlant,
N.MaintenancePlannerGroup AS ResponsiblePlannerGroup,
N.MainWorkCenter,
N.MaintenanceNotification AS NotificationNumber,
CAST(NULL AS DATE) AS TargetFinishDate,
N.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceNotification N
JOIN I_MaintenanceOrder O ON N.MaintenanceOrder = O.MaintenanceOrder
WHERE N.MaintenanceOrder IS NOT NULL AND N.MaintenanceOrder <> ''
UNION ALL
/* Activity 2: Maintenance Order Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Created' AS Activity,
O.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrder O
UNION ALL
/* Activity 3: Maintenance Priority Changed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Priority Changed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(H.UDATE, ' '), H.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
H.USERNAME AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM CDHDR H
JOIN CDPOS P ON H.OBJECTCLAS = P.OBJECTCLAS AND H.OBJECTID = P.OBJECTID AND H.CHANGENR = P.CHANGENR
JOIN I_MaintenanceOrder O ON O.MaintenanceOrder = H.OBJECTID
WHERE H.OBJECTCLAS = 'ORDER'
AND P.TABNAME = 'AFKO'
AND P.FNAME = 'PRIOK'
UNION ALL
/* Activity 4: Maintenance Order Released */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Maintenance Order Released' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0002' /* REL Status */
AND J.INACT = ' '
UNION ALL
/* Activity 5: Material Component Added */
SELECT
CAST(C.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Material Component Added' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(C.CreationDate, ' '), COALESCE(C.CreationTime, '000000')), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
O.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintenanceOrderComponent C
JOIN I_MaintenanceOrder O ON C.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 6: Purchase Requisition Created */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Purchase Requisition Created' AS Activity,
PR.CreationDate AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
PR.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_PurchasingDocumentItem PR
JOIN I_MaintenanceOrder O ON PR.ServiceMaintenanceOrder = O.MaintenanceOrder
WHERE PR.PurchasingDocumentCategory = 'B' /* Requisition */
UNION ALL
/* Activity 7: Goods Issue Posted */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Goods Issue Posted' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(MD.CreationDate, ' '), MD.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
MD.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaterialDocumentItem MD
JOIN I_MaintenanceOrder O ON MD.MaintenanceOrder = O.MaintenanceOrder
WHERE MD.GoodsMovementType = '261'
UNION ALL
/* Activity 8: Work Order Scheduled (Operation Dispatched) */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Work Order Scheduled' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrderOperation OP ON J.OBJNR = OP.MaintenanceOrderOperationInternalID
JOIN I_MaintenanceOrder O ON OP.MaintenanceOrder = O.MaintenanceOrder
WHERE J.STAT = 'I0019' /* DSP Dispatched Status */
AND J.INACT = ' '
UNION ALL
/* Activity 9: Order Operation Confirmed */
SELECT
CAST(CNF.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Operation Confirmed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(CNF.CreationDate, ' '), CNF.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
CNF.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MaintOrderConfirmation CNF
JOIN I_MaintenanceOrder O ON CNF.MaintenanceOrder = O.MaintenanceOrder
WHERE CNF.IsReversed = ' '
UNION ALL
/* Activity 10: Measurement Reading Recorded */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Measurement Reading Recorded' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(M.CreationDate, ' '), M.CreationTime), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
M.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_MeasurementDocument M
JOIN I_MaintenanceOrder O ON M.MaintenanceOrder = O.MaintenanceOrder
UNION ALL
/* Activity 11: Technical Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = ' '
UNION ALL
/* Activity 12: Technical Completion Reversed */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Technical Completion Reversed' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0045' /* TECO Status */
AND J.INACT = 'X' /* Inactive indicates it was removed/reversed */
AND J.CHIND = 'U' /* Update indicator */
UNION ALL
/* Activity 13: Order Cost Settled */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Order Cost Settled' AS Activity,
JE.CreationDateTime AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
JE.CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM I_ActualPlanJrnlEntryItem JE
JOIN I_MaintenanceOrder O ON JE.OrderID = O.MaintenanceOrder
WHERE JE.BusinessTransactionType = 'KOAO' /* Settlement */
UNION ALL
/* Activity 14: Business Completion Set */
SELECT
CAST(O.MaintenanceOrder AS VARCHAR(20)) AS MaintenanceWorkOrder,
'Business Completion Set' AS Activity,
TO_TIMESTAMP(CONCAT(CONCAT(J.UDATE, ' '), J.UTIME), 'YYYYMMDD HH24MISS') AS EventTimestamp,
'SAP S/4HANA' AS SourceSystem,
CURRENT_TIMESTAMP AS LastDataUpdate,
O.MaintenanceOrderType,
O.MaintenancePriority,
O.Equipment AS EquipmentNumber,
O.FunctionalLocation,
O.MaintenancePlant,
O.ResponsiblePlannerGroup,
O.MainWorkCenter,
O.MaintenanceNotification AS NotificationNumber,
O.BasicEndDateTime AS TargetFinishDate,
J.USNAM AS CreatedByUser,
O.SystemStatusName AS SystemStatus
FROM JCDS J
JOIN I_MaintenanceOrder O ON J.OBJNR = CONCAT('OR', O.MaintenanceOrder)
WHERE J.STAT = 'I0046' /* CLSD Status */
AND J.INACT = ' ' Lépések
- Ellenőrizze, hogy közvetlen, olvasási hozzáférése van-e az AUFK, AFVC, JEST, QMEL, RESB, EBAN, MSEG, MKPF, AFRU és IMRG táblákhoz, valamint a megfelelő módosítási dokumentumok és kontrollingdokumentumok tábláihoz. Ellenőrizze az SAP-adatbázisban a pontos fizikai neveket és mező-hozzárendeléseket, mert a mezők elérhetősége és a replikált táblák szerkezete telepítésenként eltérhet.
- Állítsa be a kinyerési kapcsolatot, a hitelesítő adatokat, a kinyerés kezdő- és záródátumát, valamint a vállalatra vonatkozó szűrőket. Az első ellenőrzéshez használjon gördülő, három-hat hónapos időszakot, majd a teljesítmény és az adatok teljességének ellenőrzése után bővítse az időszakot.
- Az AUFK táblából nyerje ki a rendelésfejlécek attribútumait, az AFVC táblából a műveletek attribútumait, a JEST táblából pedig az állapotrekordokat. A rendeléshez kapcsolódó rekordokat az SAP-sémában használt rendelésszámmező alapján kapcsolja össze. Sok SAP-rendszerben a JEST csak az aktuális állapotot tartalmazza, ezért a korábbi állapotok időbélyegeihez állapotelőzmény-forrásra vagy módosításidokumentum-forrásra van szükség. Ha a JEST nem őrzi meg az állapotváltozások előzményeit, állítsa be a [Your status history table] táblát és annak időbélyegmezőit.
- A QMEL táblából nyerje ki az értesítések létrehozását, a RESB táblából az alkatrészek létrehozását, az EBAN táblából a beszerzési igények létrehozását, az MSEG és MKPF táblákból az anyagkiadási adatokat, az AFRU táblából a visszaigazolásokat, az IMRG táblából a mérési adatokat, a [Your controlling document table] táblából pedig a kontrollingelszámolási rekordokat. A prioritásváltozásokat a [Your order change document table] és a [Your change document item table] táblákból nyerje ki. Ezekre a forrásokra azért van szükség, mert az AUFK, AFVC és JEST önmagukban nem tartalmazzák mind a 14 kért tevékenységet.
- Alakítsa át az összes forrás időbélyegét egységes időzónára és egyetlen időbélyeg-adattípusra. Az SAP dátum- és időmezőit, illetve az adatbázis időbélyegmezőit alakítsa EventTimestamp értékké. Őrizze meg a rendszerben elérhető időbélyeg-pontosságot. A beállított kinyerési időablakot az EventTimestamp mezőre alkalmazza, ne csak a rendelés létrehozásának dátumára.
- Minden forrásbeli előforduláshoz hozzon létre egy eseménysort. Ne hagyatkozzon arra, hogy a ProcessMind következteti ki az eseményeket. Adja meg a lekérdezésben meghatározott pontos Activity értéket, töltse ki a MaintenanceWorkOrder, EventTimestamp, SourceSystem és LastDataUpdate mezőket, valamint az elérhető, ajánlott attribútumokat. A duplikátumok vizsgálatához szükség esetén őrizze meg a forrásazonosítókat.
- Csak a stabil forráskulcsok alapján azonosítható, teljesen azonos forráseseményeket szűrje ki. Ne vonjon össze különböző időpontokban történt állapotváltozásokat, visszaigazolásokat, anyagmozgásokat, mérési adatokat vagy elszámolási dokumentumokat. Ha több forrásrekord ugyanazt az üzleti eseményt jelöli, dokumentálja a kiválasztott források elsőbbségi sorrendjét a kinyerési specifikációban.
- Ellenőrizze, hogy mind a 14 tevékenység külön sorban szerepel-e, minden sor tartalmaz-e esetazonosítót és időbélyeget, és az időbélyegek a kért kinyerési időszakra esnek-e. Hasonlítsa össze a rekordszámokat az SAP-jelentések vagy a forrástáblák azonos szűrőkkel kapott rekordszámaival.
- Exportálja az eredményt UTF-8 kódolású CSV-fájlba vagy a ProcessMind által támogatott más eseménynapló-formátumba. Minden eseményhez egy sort használjon, a kötelező oszlopokat a pontosan beállított nevekkel vegye fel, és ahol lehetséges, őrizze meg az ISO 8601 időbélyegeket. Ezután töltse fel a fájlt, vagy állítsa be az adatbázis-kapcsolatot a ProcessMindban. A MaintenanceWorkOrder mezőt állítsa be esetazonosítóként, az Activity mezőt tevékenységoszlopként, az EventTimestamp mezőt pedig időbélyegoszlopként.
Konfiguráció
- Forrástáblák és hozzárendelések: Az AUFK a rendelésfejléc adatait, az AFVC a műveletek adatait, a JEST pedig a rendszerállapotok adatait tartalmazza. Mind a 14 tevékenység előállításához a QMEL, RESB, EBAN, MSEG, MKPF, AFRU és IMRG táblákra, valamint a módosításidokumentum- és kontrollingdokumentum-forrásokra is szükség van. A futtatás előtt ellenőrizze a pontos mezőneveket az SAP-adatbázisban.
- Kötelező kimeneti oszlopok: Minden eseménysornak tartalmaznia kell a MaintenanceWorkOrder, Activity, EventTimestamp, SourceSystem és LastDataUpdate mezőt.
- Ajánlott kimeneti oszlopok: Ha rendelkezésre állnak, töltse ki a MaintenanceOrderType, MaintenancePriority, EquipmentNumber, FunctionalLocation, MaintenancePlant, ResponsiblePlannerGroup, MainWorkCenter, NotificationNumber, TargetFinishDate, CreatedByUser és SystemStatus mezőket.
- Dátumtartomány: Kezdje három-hat hónappal. A növekményes futtatások közötti duplikált események elkerüléséhez a kezdő határt vegye bele, a záró határt pedig hagyja ki. Korábbi adatok visszatöltésekor a kinyerést hónapokra vagy az adatbázis által támogatott más időszakokra bontsa.
- Szűrők: A jelentés hatókörének megfelelően állítsa be a [Company Code filter], [Order Type filter], [Maintenance Plant filter], [Notification Type filter] és [Document Type filter] szűrőket. Ne alkalmazzon olyan szűrőt, amely kizárja az értesítés, művelet, alkatrész, beszerzési igény, visszaigazolás, mérési adat vagy elszámolási dokumentum nélküli rendeléseket.
- Állapotelőzmények: A JEST általában az állapot-hozzárendeléseket tartalmazza, de a korábbi állapotváltozásokhoz szükség lehet a [Your status history table] táblára vagy módosítási dokumentumokra. Állítsa be azt a forrást, amely tartalmazza az állapotváltozás időbélyegét és az állapotátmenetek előzményeit.
- Prioritáselőzmények: A prioritásváltozások kinyeréséhez szükség van a [Your order change document table] és a [Your change document item table] táblákra, a megfelelő objektumazonosítóval, mezőnévvel, régi és új értékkel, valamint a módosítás időbélyegével.
- Forrásrendszer értéke: Cserélje le a [Your SAP system identifier] helyőrzőt a szervezetében használt, állandó forrásrendszernévre.
- Utolsó adatfrissítés: Cserélje le a [Your extraction timestamp] helyőrzőt a kinyerési futtatás kezdetekor vagy végén létrehozott időbélyegre, és ugyanazt az értéket használja a futtatás összes sorában.
- Teljesítmény: Ha lehetséges, indexelje vagy particionálja az összekapcsoláshoz és szűréshez használt oszlopokat. Szűkítse a kinyerési időablakot, csak a szükséges oszlopokat válassza ki, a hosszabb időszakokat dolgozza fel kötegekben, és ha a sémák közötti közvetlen összekapcsolás lassú, tárolja köztes forráskivonatokban az adatokat.
- Előfeltételek: Adatbázis-kapcsolat, olvasási jogosultság az összes beállított forrástáblához, hozzáférés a karbantartási, anyaggazdálkodási, kontrolling- és mérési adatokhoz, valamint jóváhagyás a működési adatok kinyerésére. Ellenőrizze az adatbázis-platformra vonatkozó replikációs vagy licencelési korlátozásokat.
Példa-lekérdezés sql
WITH
params AS (
SELECT
CAST('[Start date and time]' AS TIMESTAMP) AS start_ts,
CAST('[End date and time]' AS TIMESTAMP) AS end_ts,
CAST('[Your SAP system identifier]' AS VARCHAR(100)) AS source_system,
CAST('[Your extraction timestamp]' AS TIMESTAMP) AS last_data_update
),
order_base AS (
SELECT
a.[Order number field] AS MaintenanceWorkOrder,
a.[Order type field] AS MaintenanceOrderType,
a.[Priority field] AS MaintenancePriority,
a.[Equipment field] AS EquipmentNumber,
a.[Functional location field] AS FunctionalLocation,
a.[Maintenance plant field] AS MaintenancePlant,
a.[Planner group field] AS ResponsiblePlannerGroup,
a.[Main work center field] AS MainWorkCenter,
a.[Notification number field] AS NotificationNumber,
a.[Target finish date field] AS TargetFinishDate,
a.[Created by field] AS CreatedByUser,
a.[System status field] AS SystemStatus,
a.[Creation date field] AS OrderCreationDate,
a.[Creation time field] AS OrderCreationTime
FROM AUFK a
WHERE a.[Order number field] IS NOT NULL
AND a.[Company code field] = '[Your company code filter]'
),
base_events AS (
SELECT
o.MaintenanceWorkOrder,
'Maintenance Notification Created' AS Activity,
CAST(q.[Notification creation timestamp field] AS TIMESTAMP) AS EventTimestamp,
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN QMEL q ON q.[Notification number field] = o.NotificationNumber
CROSS JOIN params p
WHERE q.[Notification creation timestamp field] >= p.start_ts
AND q.[Notification creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Created',
CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o CROSS JOIN params p
WHERE CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) >= p.start_ts
AND CAST(o.OrderCreationDate || ' ' || o.OrderCreationTime AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Priority Changed',
CAST(c.[Change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, c.[New priority value field], o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your order change document table] h ON h.[Order object identifier field] = o.MaintenanceWorkOrder
JOIN [Your change document item table] c ON c.[Change document number field] = h.[Change document number field]
CROSS JOIN params p
WHERE c.[Changed field name field] = '[Your priority field name]'
AND CAST(c.[Change timestamp field] AS TIMESTAMP) >= p.start_ts
AND CAST(c.[Change timestamp field] AS TIMESTAMP) < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Maintenance Order Released',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'REL'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'REL'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Material Component Added',
CAST(r.[Reservation creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN RESB r ON r.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE r.[Reservation line creation timestamp field] >= p.start_ts
AND r.[Reservation line creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Purchase Requisition Created',
CAST(e.[Purchase requisition creation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN EBAN e ON e.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE e.[Purchase requisition creation timestamp field] >= p.start_ts
AND e.[Purchase requisition creation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Goods Issue Posted',
CAST(m.[Material document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN MSEG m ON m.[Order number field] = o.MaintenanceWorkOrder
JOIN MKPF k ON k.[Material document number field] = m.[Material document number field]
AND k.[Material document year field] = m.[Material document year field]
CROSS JOIN params p
WHERE m.[Movement type field] IN ('201', '261')
AND k.[Material document timestamp field] >= p.start_ts
AND k.[Material document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Work Order Scheduled',
CAST(v.[Dispatch status timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFVC v ON v.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE v.[Dispatch status field] = '[Your dispatch status value]'
AND v.[Dispatch status timestamp field] >= p.start_ts
AND v.[Dispatch status timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Operation Confirmed',
CAST(f.[Confirmation timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN AFRU f ON f.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE f.[Confirmation timestamp field] >= p.start_ts
AND f.[Confirmation timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Measurement Reading Recorded',
CAST(i.[Measurement document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN IMRG i ON i.[Equipment field] = o.EquipmentNumber
CROSS JOIN params p
WHERE i.[Measurement document timestamp field] >= p.start_ts
AND i.[Measurement document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'TECO'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Technical Completion Reversed',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, s.[Resulting system status field]
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Previous status code field] = 'TECO'
AND s.[Status code field] <> 'TECO'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Order Cost Settled',
CAST(c.[Controlling document timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, o.SystemStatus
FROM order_base o
JOIN [Your controlling document table] c ON c.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE c.[Controlling document timestamp field] >= p.start_ts
AND c.[Controlling document timestamp field] < p.end_ts
UNION ALL
SELECT o.MaintenanceWorkOrder, 'Business Completion Set',
CAST(s.[Status change timestamp field] AS TIMESTAMP),
o.MaintenanceOrderType, o.MaintenancePriority, o.EquipmentNumber,
o.FunctionalLocation, o.MaintenancePlant, o.ResponsiblePlannerGroup,
o.MainWorkCenter, o.NotificationNumber, o.TargetFinishDate,
o.CreatedByUser, 'CLSD'
FROM order_base o
JOIN [Your status history table] s ON s.[Order number field] = o.MaintenanceWorkOrder
CROSS JOIN params p
WHERE s.[Status code field] = 'CLSD'
AND s.[Status change timestamp field] >= p.start_ts
AND s.[Status change timestamp field] < p.end_ts
)
SELECT
e.MaintenanceWorkOrder,
e.Activity,
e.EventTimestamp,
p.source_system AS SourceSystem,
p.last_data_update AS LastDataUpdate,
e.MaintenanceOrderType,
e.MaintenancePriority,
e.EquipmentNumber,
e.FunctionalLocation,
e.MaintenancePlant,
e.ResponsiblePlannerGroup,
e.MainWorkCenter,
e.NotificationNumber,
e.TargetFinishDate,
e.CreatedByUser,
e.SystemStatus
FROM base_events e
CROSS JOIN params p
WHERE e.MaintenanceWorkOrder IS NOT NULL
AND e.EventTimestamp IS NOT NULL
AND e.EventTimestamp >= p.start_ts
AND e.EventTimestamp < p.end_ts
ORDER BY e.MaintenanceWorkOrder, e.EventTimestamp, e.Activity; Készen áll a kezdésre?
Ezekkel az anyagokkal elkezdheti feltérképezni a karbantartási munkafolyamatokat, és azonosíthatja a költségcsökkentési lehetőségeket. Keretrendszerünk segít kialakítani a megfelelő adatszerkezetet, hogy átláthatóbbá váljon a működés.
Szüntesse meg az SAP eszközkarbantartási folyamatainak szűk keresztmetszeteit
Már most 30 százalékkal csökkentheti a karbantartási ciklus idejét
Nincs szükség bankkártyára. Beállítás 5 perc alatt.