====== Synchronizácia M7 <-> Omega ====== ===== Dôležité odkazy ===== | Vývojová verzia Omegy | http://vudpapdev.systemomega.com/ | | Skript pre sync Omegy | http://vudpapdev.systemomega.com/p/vudpapForeignSync | ===== Prehľad synchronizovaných tabuliek ===== ==== courses ==== Zoznam kurzov, pôvodne sa hovorilo aj o témach alebo o výučbových programoch. Záznamy vytvára M7. \\ Omega do tejto tabuľky vypĺňa stĺpec ``license_types_list``, v ktorom sa nachádza zoznam čiarkou oddelených [[#license_types|typov hlavných licencii]] (certifikátov). To znamená, že v tomto zozname sa **nenachádzajú** čiastkové certifikáty, potrebné k dosiahnutiu tohoto kurzu. ---- ==== course_types ==== Záznamy vytvára výhradne M7. ---- ==== courses_resources ==== V tejto tabuľke sa nachádza zoznam všetkých ľudí, ktorí na základe získaných certifikátov spĺňajú všetky požiadavky nastavené v daných [[#courses|kurzoch]]. Záznamy vytvára výhradne Omega. * ``omega_resource_uuid`` - uuid zdroja. * ``omega_resource_id`` - omega resource id. * ``m7_account_id`` - ID [[#accounts|účtu]] v M7. * ``omega_course_id`` - ID kurzu (projektu) v Omege. * ``m7_course_id`` - ID [[#courses|kurzu]] v M7. * ``install_date`` - dátum, kedy bol získaný potrebný certifikát pre kurz (v prípade, že bolo viac hlavných certifikátov). * ``omega_event_id`` - ID termínu v Omege ((dohľadateľné v c_events)), na ktorom bol získaný hlavný certifikát. Odkazuje na [[#c_events|c_events]]. ---- ==== c_events ==== Tabuľka hlavných termínov pre [[#courses|kurzy]]. Záznamy vytvára výhradne Omega. * ``event_type`` - Typ termínu môže byť ''plan'' ako plánovaný termín alebo ''real'' ako skutočne vykonaný termín. * ``omega_event_id`` - ID termínu v Omege. * ``omega_event_link_id`` - Odkaz na plánovaný/skutočne vykonaný termín v Omege. * ``label`` - Názov termínu. * ``date_start`` - Čas začiatku termínu. * ``date_end`` - Čas konca termínu. * ``m7_course_id`` - ID [[#courses|kurzu]] v M7. * ``omega_location_id`` - ID lokácie v Omege. * ``location_title`` - Názov lokácie v Omege. * ``location_type_title`` - Typ lokácie, textovo (hotel, obec, reštaurácia, ...). * ``location_address`` - Adresa lokácie v Omege. * ``location_address_street`` - Ulica lokácie. * ``location_address_city`` - Mesto lokácie. * ``m7_location_id`` - ID [[#locations|lokácie]] v M7. * ``m7_organization_id`` - ID [[#organisations|organizácie]] v M7. To iba v prípade, že je termín naplánovaný do organizácie. * ``omega_project_id`` - ID školenia (projektu) v Omege. * ``m7_t1_location_id`` .. ``m7_t5_location_id`` - ID lokácie v M7 podľa typu v ceste. \\ Napr. ak sa školenie koná v obci Borinka, potom: * ``m7_t1_location_id`` bude NULL (štát - nezaradené), * ``m7_t2_location_id`` bude 1 (Bratislavský kraj), * ``m7_t3_location_id`` bude 14 (okres Malacky) a * ``m7_t4_location_id`` bude 118 (obec Borinka). * ``order_ready`` - Je objednávka kompletne pripravená? (toto sa zatiaľ nepoužíva a asi sa ani nebude) * ``mts_ready`` - Je MTZ kompletne potvrdené? (toto sa zatiaľ nepoužíva a asi sa ani nebude) * ``public`` - Verejný termín. * ``program_xml`` - Program termínu ako XML formát. ---- ==== c_events_resources ==== Tabuľka termínov zdrojov. Záznamy vytvára výhradne Omega. * ``event_type`` - To isté ako pri [[#c_events|c_events]]. * ``omega_event_id`` - ID termínu v Omege. * ``omega_parent_event_id`` - ID nadradeného termínu v Omege. * ``date_start``, ``date_end`` - To isté ako pri [[#c_events|c_events]]. * ``omega_resource_id`` - ID zdroja v Omege. * ``m7_account_id`` - ID [[#accounts|účtu]] v M7. * ``project_role`` - rola zdroja na tomto projekte. * Ak bude obsahovať ''VUD_ADV'', tak sa jedná o lektora na termíne. * Ak bude obsahovať ''VUD_ORG'', tak sa jedná o organizátora školenia na termíne. ---- ==== license_types ==== Zoznam typov licencii (certifikátov). Záznamy vytvára výhradne Omega. \\ Dôležitý je stĺpec ``code``, na ktorý sa bude odkazovať aj v iných tabuľkách. Stĺpce ``tests_list`` a ``tests_m7_id`` sa už nepoužívajú. ---- ==== licenses_installed ==== Úplný zoznam nadobudnutých licencii (certifikátov). Záznamy vytvára výhradne Omega. * ``omega_resource_uuid`` - uuid zdroja. * ``omega_resource_id`` - ID zdroja v Omege. * ``m7_account_id`` - ID [[#accounts|účtu]] v M7. * ``license_type_code`` - [[#license_types|kód typu]] nadobudnutej licencie. * ``install_date`` - dátum nadobudnutia. * ``omega_event_id`` - ID [[#c_events|termínu]] v Omege, na ktorom bola táto licencia získaná. ---- ==== organisation_types ==== Tabuľku plní výhradne M7. ---- ===== Požiadavky na M7 ===== * Identifikačné stĺpce by mali mať prefix podľa systému, napr. ak bude ``m7_id``, tak ``parent_id`` by sa malo volať ``m7_parent_id``. * Ak bude nejaký záznam odkazovať na záznam do inej tabuľky, napr. ``_organisations.m7_location_id``, tak je nutné, aby bol do synchronizačnej databázy vkladať príkazom ''**add**'' vložený najskôr príslušný záznam z tabuľky ``_locations``. \\ Obecne by sa mal zvoliť správny postup vkladania záznamov, napr. najkôr vložiť číselníky a až potom záznamy, ktoré tieto číselníky používajú. * Všetky tabuľky, ktoré by odkazovali na iný záznam v tej istej tabuľke, tak treba do synchronizačnej databázy vkladať príkazom ''**add**'' v takom poradí, aby nenastala situácia, že sa bude vkladať záznam, ktorého ``parent_id`` nebolo už predtým vložené. Týka sa to napr. tabuliek ``_locations`` , ``_organisations`` a pod. \\ Inak povedané, najskôr treba vložiť hlavné vetvy a až potom záznamy týchto vetiev. ===== Omega, poznámky ku KV ===== **Lokácie** budú ukladané do objektu (najlepšie adresára alebo štúdia), ktorý ma nastavené **[KV]** ''kp48.locations_root=1''. Každá nová lokácia bude mať nastavené: * **[KV]** ''kp48.structure=location'' * **[KV]** ''kp48.m7_id=**{ID}**'', kde ''{ID}'' je skutočné ''id'' z M7. * **[KV]** ''kp48.m7_type_id=**{ID}**'', kde ''{ID}'' je skutočné ''m7_type_id'' z M7. * Typ lokácie bude z ``st2_cfg_location_type.unique_idf``, \\ kde ''``st2_cfg_location_type.unique_idf``="kp48-{m7_type_id}"'' Pod každou lokáciou vznikne pohľad **Organizácie**, ktorý bude mať nastavené: * **[KV]** ''kp48.structure=location_view_organisations'' **Organizácie** budú ukladané do objektu (najlepšie adresára alebo štúdia), ktorý ma nastavené **[KV]** ''kp48.organisations_root=1''. Každá nová organizácia bude mať nastavené: * **[KV]** ''kp48.structure=organisation'' * **[KV]** ''kp48.m7_id=**{ID}**'', kde ''{ID}'' je skutočné ''id'' z M7. * **[KV]** ''kp48.m7_type_id=**{ID}**'', kde ''{ID}'' je skutočné ''m7_type_id'' z M7. * Organizácia bude mať nastavenú lokáciu, ak takáto lokácia existuje. Bude sa vyhľadávať pomocou ``m7_location_id``. * Organizácia sa zaradí do pohľadu **Organizácie** pod lokáciu, kam patrí.