Šablona dat pro proces Record to Report: uzávěrka období a odsouhlasení
Šablona dat pro proces Record to Report: uzávěrka období a odsouhlasení
- Doporučené atributy ke sběru
- Důležité činnosti, které je třeba sledovat při analýze procesu
- Podrobný návod k extrakci dat
Atributy procesu Record to Report: uzávěrka období a odsouhlasení
| Název | Popis | ||
|---|---|---|---|
| Finanční období FinancialPeriod | Jedinečný identifikátor cyklu finančního výkaznictví, například '2023-12' pro prosinec 2023. Slouží jako případ procesu uzávěrky období. | ||
| Popis Finanční období je hlavním identifikátorem případu, který sdružuje všechny činnosti související s uzavřením účetních knih za konkrétní časové období, obvykle kalendářní měsíc nebo fiskální období. Každé finanční období představuje jeden úplný průběh uzávěrkového procesu. Při analýze process mining tento atribut umožňuje sledovat celý průběh uzávěrky od zahájení až po závěrečné výkaznictví. Slouží k porovnání délky cyklů v různých obdobích, odhalení obvyklých cest procesem a analýze rozdílů mezi měsíčními, čtvrtletními a ročními uzávěrkami. Pokud každé období považujete za samostatný případ, můžete měřit výkonnost v čase a odhalovat systémová úzká místa. Proč je to důležité Jde o nezbytný identifikátor případu, který vymezuje analýzu. Umožňuje porovnávat průběh uzávěrky v čase a odhalovat trendy i opakující se problémy. Kde data získat Odvozuje se spojením polí fiskální rok (GJAHR) a účetní období (MONAT) z hlaviček finančních dokladů, obvykle z tabulek, jako je BKPF. Příklady 2023-122024-032024-Q1 | |||
| Aktivita ActivityName | Název konkrétního obchodního kroku nebo úkolu v procesu uzávěrky období, například 'Zaúčtován opravný účetní zápis' nebo 'Období uzavřeno pro účtování'. | ||
| Popis Tento atribut představuje jednu událost nebo úkol v procesu uzávěrky období a odsouhlasení od začátku do konce. Činnosti tvoří základ procesní mapy a ukazují pořadí provedené práce. Často se odvozují z kombinace transakčních kódů, typů dokladů nebo změn stavu v SAP S/4HANA. Analýza činností je základem process mining. Pomáhá vizualizovat průběh procesu, odhalit odchylky od standardního postupu, najít úzká místa, kde činnosti trvají příliš dlouho, a porozumět četnosti i pořadí úkolů. Je důležitá pro dashboardy, jako jsou Analýza variant uzávěrky období a Aktuální stav uzávěrky období. Proč je to důležité Určuje jednotlivé kroky procesu a tvoří základ procesní mapy. Umožňuje analyzovat průběh procesu, odchylky a úzká místa. Kde data získat Odvozuje se z různých zdrojů, například z transakčních kódů (TCODE), typů dokladů (BLART) nebo polí stavu v tabulkách souvisejících s úlohami finanční uzávěrky, například v SAP Financial Closing Cockpit. Příklady Období otevřeno pro účtováníZahájeno odsouhlasení účtuVygenerovány finanční výkazyZahájeno mezifiremní odsouhlasení | |||
| Čas zahájení EventTime | Časové razítko označující, kdy konkrétní činnost začala nebo byla zaznamenána v systému. | ||
| Popis Čas události zachycuje přesné datum a čas, kdy k činnosti došlo. U finančních účtování jde často o čas vytvoření (CPUTM) nebo datum účtování (BUDAT) dokladu. U změn stavu nebo úloh jde o časové razítko zaznamenané změny. Tento atribut je nezbytný pro chronologické řazení činností a tvoří základ veškeré časové analýzy. Slouží k výpočtu délky cyklů mezi činnostmi, trvání konkrétních úkolů i celkové doby procesu od začátku do konce. Přímo podporuje KPI, jako je průměrná délka cyklu uzávěrky období a průměrná doba schválení odsouhlasení. Proč je to důležité Toto povinné časové razítko umožňuje řadit události chronologicky a slouží jako základ výpočtů délky trvání a výkonnosti. Kde data získat Zdrojovými údaji jsou časová pole, například datum vytvoření (CPUDT) a čas vytvoření (CPUTM) v tabulkách, jako je BKPF, nebo pole data změny v různých tabulkách stavů, například CDHDR a CDPOS. Příklady 2023-12-28T09:15:30Z2024-01-02T14:00:12Z2024-01-05T11:21:00Z | |||
| Čas dokončení EndTime | Časové razítko označující, kdy byla činnost dokončena. | ||
| Popis Čas dokončení označuje konec úkolu. U některých okamžitých událostí zaznamenaných v systému může být stejný jako čas zahájení. U činností s měřitelnou délkou označuje čas jejich dokončení. Spolu s časem zahájení je tento atribut nezbytný pro výpočet hodnoty Proč je to důležité Umožňuje vypočítat dobu trvání činností (Processing Time), což je důležité pro odhalování úzkých míst ve výkonnosti a analýzu efektivity. Kde data získat Stejně jako čas zahájení lze i tento údaj získat z různých časových polí. U některých činností může být stejný jako čas zahájení. Jinde může jít o samostatné datum dokončení nebo změny v aplikačních tabulkách či protokolech změn (CDHDR, CDPOS). Příklady 2023-12-28T09:16:10Z2024-01-02T17:30:00Z2024-01-05T11:21:00Z | |||
| Cílové datum dokončení TargetCompletionDate | Plánované datum nebo termín dokončení důležité činnosti, například sestavení účetní závěrky. | ||
| Popis Cílové datum dokončení označuje interní nebo externí termín konkrétního milníku v procesu uzávěrky období. Jde o datum, do kterého má být úkol hotový. Tento atribut je nezbytný pro měření dodržování harmonogramu a plnění termínů. Vychází z něj dashboard „Dodržování termínů výkaznictví“ a KPI „Včasné dokončení účetní závěrky“, které porovnávají cílové datum s hodnotou Proč je to důležité Umožňuje porovnat skutečný výkon s termíny a měřit i zlepšovat včasné dokončení důležitých činností při uzávěrce. Kde data získat Tyto údaje se často nacházejí v systému pro správu úkolů nebo plánování, například v SAP Financial Closing cockpit, kde jsou seznamy úkolů uzávěrky definovány s plánovanými daty dokončení. Příklady 2024-01-05T23:59:59Z2024-04-04T23:59:59Z2024-07-05T23:59:59Z | |||
| Číslo dokladu DocumentNumber | Jedinečný identifikátor finančního dokladu, například účetního zápisu. | ||
| Popis SAP přiřazuje každému finančnímu zaúčtování jedinečné číslo dokladu. Slouží jako hlavní reference pro sledování a audit jednotlivých transakcí, které tvoří činnosti v procesu uzávěrky. Číslo dokladu samo o sobě není ID případu, ale propojuje proces s původním systémem. Analytici díky němu mohou z pohledu process mining přejít k podrobnostem konkrétní transakce v SAP S/4HANA a hledat příčinu problému. Hodí se zejména při prověřování konkrétních opravných účetních zápisů nebo zaúčtování odsouhlasení. Proč je to důležité Odkazuje přímo na příslušnou transakci v SAP. Z modelu procesu tak můžete snadno přejít k podrobnostem a ověřit záznam při auditu. Kde data získat Nachází se v hlavičkové tabulce finančních dokladů BKPF (pole BELNR) a v tabulkách položek, například BSEG nebo ACDOCA. Příklady 100000045190000001300000023 | |||
| Číslo účtu hlavní knihy GlAccountNumber | Identifikátor konkrétního účtu v hlavní knize. | ||
| Popis Číslo účtu hlavní knihy (GL) označuje jednotlivé účty používané k evidenci finančních transakcí, například hotovosti, závazků nebo výnosů. Mnoho činností při uzávěrce období, například odsouhlasení a opravné zápisy, se přímo vztahuje ke konkrétním účtům hlavní knihy. Tento atribut je nezbytný pro podrobnou analýzu finančních procesů. Dashboard „Analýza opravných účetních zápisů“ jej používá k zobrazení počtu oprav podle účtu a pomáhá tak odhalit problematická místa. KPI „Průměrná doba odsouhlasení účtu hlavní knihy“ jej využívá k určení zpoždění souvisejících s konkrétními účty. Proč je to důležité Propojuje činnosti v procesu s konkrétními finančními účty. Umožňuje podrobně analyzovat odsouhlasení a účetní zápisy a hledat příčiny problémů. Kde data získat Nachází se v tabulkách položek finančních dokladů, především v BSEG (pole HKONT) nebo v univerzální účetní tabulce ACDOCA v S/4HANA. Příklady 113100004000000073000000 | |||
| Kód společnosti CompanyCode | Jedinečný identifikátor právního subjektu nebo společnosti v organizaci SAP. | ||
| Popis Company Code představuje samostatnou účetní jednotku v rámci podniku, pro kterou lze vést úplnou a nezávislou účetní evidenci. Veškeré činnosti spojené s uzávěrkou období probíhají na úrovni Company Code. Jde o základní organizační dimenzi pro finanční analýzu. process mining umožňuje porovnat proces uzávěrky období v různých právních entitách. Dashboard „Analýza variant uzávěrky období“ používá Company Code k odhalení nesrovnalostí a sjednocení postupů při uzávěrce. Proč je to důležité Poskytuje důležitý organizační kontext. Díky němu můžete porovnávat procesy v různých právních entitách, odhalovat odchylky a sdílet osvědčené postupy. Kde data získat Nachází se téměř ve všech finančních tabulkách SAP, zejména v hlavičkové tabulce BKPF (pole BUKRS). Příklady 10001710US01DE01 | |||
| Odpovědný uživatel ResponsibleUser | ID uživatele, který činnost provedl nebo odpovídá za daný úkol. | ||
| Popis Tento atribut určuje zaměstnance, který provedl konkrétní úkol, například zaúčtoval účetní zápis nebo schválil odsouhlasení. Obvykle se zaznamenává jako ID uživatele v systémových protokolech a hlavičkách dokladů. Analýza procesu podle uživatelů je důležitá pro pochopení rozložení pracovní zátěže, individuální výkonnosti a potřeb školení. Dashboard Efektivita přidělování zdrojů tento atribut přímo využívá k zobrazení doby zpracování činností podle uživatele. Pomáhá také hledat příležitosti k automatizaci tím, že odhalí vysoce opakované úkoly prováděné mnoha uživateli. Proč je to důležité Propojuje činnosti procesu s lidmi, kteří je provedli. Umožňuje analyzovat pracovní zátěž, optimalizovat zdroje a řídit výkonnost. Kde data získat Obvykle se nachází v hlavičkových tabulkách dokladů, například BKPF (pole USNAM, uživatelské jméno), nebo v tabulkách dokumentů změn, například CDHDR (pole USERNAME). Příklady ABROWNCSMITHDJOHNSON | |||
| Stav odsouhlasení ReconciliationStatus | Stav činnosti odsouhlasení účtu, například „Otevřeno“, „Probíhá“ nebo „Schváleno“. | ||
| Popis Tento atribut sleduje stav odsouhlasení konkrétního účtu nebo úkolu. Ukazuje, zda odsouhlasení bylo zahájeno, odesláno ke kontrole, schváleno nebo zamítnuto. Změny stavu jsou důležitými událostmi v procesu. Atribut je základem dashboardu „Analýza přepracování odsouhlasení“. Analýzou posloupnosti stavů lze zjistit, zda po stavu „Schváleno“ následovaly další úpravy, což může znamenat přepracování. Podporuje také KPI „Míra odsouhlasení napoprvé“, protože ukazuje, která odsouhlasení byla schválena bez předchozího zamítnutí nebo opětovného otevření. Proč je to důležité Sleduje průběh a výsledek úkolů odsouhlasení. Umožňuje odhalit přepracování, měřit míru schválení a analyzovat úzká místa. Kde data získat Tyto údaje se obvykle ukládají v tabulkách nástroje pro odsouhlasení, který používáte, například SAP Financial Closing cockpit nebo SAP Account Substantiation and Automation od BlackLine. Příklady NezahájenoProbíhá přípravaSchválenoZamítnuto | |||
| Bylo dokončeno včas IsOnTime | Logická hodnota je pravdivá, pokud byl milník dokončen v cílovém termínu nebo před ním. | ||
| Popis Tento atribut vyjadřuje dodržení harmonogramu jednoduchým výsledkem. Vypočítá se porovnáním hodnot Jde o základní výpočet KPI „Včasné dokončení účetní závěrky“. Porovnání dat převádí na jasný stav „včas“ nebo „po termínu“, který lze snadno zobrazit v dashboardech a reportech. Pomáhá měřit účinnost opatření zaměřených na zrychlení uzávěrky. Proč je to důležité Zjednodušuje analýzu dodržování termínů na jasný výsledek, úspěch nebo nesplnění. Včasné plnění tak můžete snadno sledovat a vykazovat. Kde data získat Vypočítané pole: Příklady truefalse | |||
| Částka dokladu DocumentAmount | Celková hodnota finančního zaúčtování v měně dokladu. | ||
| Popis Tento atribut udává peněžní hodnotu finančního dokladu. U oprav při uzávěrce období může jít například o částku časového rozlišení nebo opravného zaúčtování. Analýza částky pomáhá posoudit významnost transakcí. Analytici mohou přednostně prověřit opravné zápisy s vysokou hodnotou, které mohou představovat větší finanční riziko. Mapu procesu lze filtrovat podle zadaného limitu a zaměřit se tak na nejvýznamnější činnosti. Proč je to důležité Doplňuje analýzu o finanční rozměr a umožňuje řadit problémy podle jejich peněžního dopadu a významnosti. Kde data získat Tuto hodnotu je obvykle třeba agregovat z tabulek položek, například BSEG nebo ACDOCA (pole WRBTR, částka v měně dokladu). Příklady 15000.00250.75-500.00 | |||
| Doba trvání uzávěrky období PeriodCloseCycleTime | Celková doba od první do poslední činnosti ve finančním období. | ||
| Popis Tato metrika udává dobu trvání celého procesu uzávěrky období pro jeden případ (finanční období). Vypočítá se jako rozdíl mezi časovým razítkem poslední a první činnosti v daném období. Jde o hlavní ukazatel výkonnosti, který přímo podporuje dashboard „Přehled doby trvání uzávěrky období“ a KPI „Průměrná doba trvání uzávěrky období“. Poskytuje celkový přehled o efektivitě a rychlosti uzávěrky a umožňuje porovnávat výsledky v čase i mezi různými Company Code. Proč je to důležité Jde o hlavní KPI pro celkovou dobu trvání procesu. Umožňuje sledovat, jak se jeho efektivita v čase zlepšuje. Kde data získat Vypočítává se na úrovni případu: pro každé Příklady P5D10H30MP7D2HP6D | |||
| Jde o přepracování odsouhlasení IsReconciliationRework | Logická hodnota je pravdivá, pokud po činnosti odsouhlasení následuje zamítnutí nebo další úpravy. | ||
| Popis Tento vypočítaný atribut odhaluje případy přepracování v dílčím procesu odsouhlasení. Označí činnosti nebo případy, kdy bylo odsouhlasení zamítnuto, po odeslání znovu otevřeno nebo kdy byly po jeho dokončení zaúčtovány opravné zápisy ke stejnému účtu hlavní knihy. Příznak slouží pro dashboard „Analýza přepracování odsouhlasení“ a KPI „Míra přepracování odsouhlasení“. Převádí složité posloupnosti činností na jednoduchý měřitelný údaj o rozsahu přepracování a pomáhá týmům zlepšit kvalitu napoprvé. Proč je to důležité Přímo měří přepracování, jednu z příčin neefektivity procesu. Umožňuje cíleně analyzovat a zlepšovat kvalitu odsouhlasení. Kde data získat Vypočítává se podle posloupnosti činností. Příznak se například nastaví na pravdivý, pokud po činnosti „Odsouhlasení schváleno“ následuje „Opravný účetní zápis zaúčtován“ pro stejný účet hlavní knihy ve stejném období. Příklady truefalse | |||
| Je automatizovaná IsAutomated | Logická hodnota určující, zda činnost provedl systémový uživatel nebo automatizovaný proces. | ||
| Popis Tento příznak rozlišuje úkoly provedené ručně uživatelem od úkolů, které systém vykonal automaticky, například plánované dávkové úlohy pro ocenění měny nebo automatické párování. Obvykle se odvozuje z ID Atribut pomáhá zjistit míru automatizace procesu uzávěrky. Odhaluje příležitosti k další automatizaci tím, že upozorňuje na ruční úkoly s vysokým objemem. Při analýze příčin problémů také ukazuje, zda úzká místa vznikají v ručních, nebo automatizovaných krocích. Proč je to důležité Rozlišuje činnosti prováděné lidmi a systémem. Pomáhá hledat příležitosti k automatizaci a analyzovat efektivitu obou typů činností. Kde data získat Jde o odvozený atribut, který se obvykle určuje podle pravidla aplikovaného na pole „ResponsibleUser“ (například kontrolou ID systémových nebo dávkových uživatelů, jako je „BATCHUSER“) nebo podle transakčního kódu. Příklady truefalse | |||
| Měna dokladu DocumentCurrency | Kód měny částek ve finančním dokladu. | ||
| Popis Tento atribut určuje měnu, ve které byla transakce zaúčtována, například USD, EUR nebo JPY. Poskytuje nezbytný kontext pro atribut V mezinárodních organizacích může být důležitá analýza podle měny. Zajišťuje správnou interpretaci peněžních hodnot a je nutná pro jejich převod na jednotnou vykazovací měnu při souhrnné analýze. Bez tohoto kontextu nelze hodnoty Proč je to důležité Poskytuje potřebný kontext pro interpretaci peněžních částek, zejména v prostředí s více měnami. Kde data získat Nachází se v hlavičkové tabulce finančních dokladů BKPF (pole WAERS). Příklady USDEURJPY | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko označující, kdy byla data naposledy aktualizována nebo extrahována ze zdrojového systému. | ||
| Popis Tento atribut zaznamenává datum a čas poslední extrakce dat. Poskytuje kontext k aktuálnosti dat analyzovaných v nástroji process mining. Slouží především ke správě dat a informování uživatelů. Uživatelé dashboardu vidí, jak aktuální analýza je. To je důležité zejména u dashboardů pro sledování téměř v reálném čase, jako je 'Aktuální stav uzávěrky období'. Uživatelé tak poznají, zda pracují s dnešními, včerejšími nebo týden starými daty. Proč je to důležité Informuje uživatele o aktuálnosti dat, aby věděli, jak čerstvé jsou poznatky o procesu. Kde data získat Jde o metadata, která nástroj pro extrakci dat nebo ETL při spuštění vytvoří a připojí k datové sadě. Příklady 2024-06-10T08:00:00Z2024-06-09T08:00:00Z | |||
| Skutečné datum dokončení ActualCompletionDate | Skutečné datum dokončení důležité činnosti nebo celé uzávěrky období. | ||
| Popis Tento atribut zachycuje skutečné datum dokončení důležitého milníku. Jde o časové razítko konečného schválení účetní závěrky nebo uzavření období pro zaúčtování. Doplňuje Proč je to důležité Udává skutečné načasování milníků. Díky tomu lze porovnat výkon s plánovanými termíny a analyzovat zpoždění. Kde data získat Přebírá se z hodnoty EventTime poslední činnosti v posloupnosti, například „Účetní závěrka schválena“ nebo „Období uzavřeno pro zaúčtování“. Příklady 2024-01-06T10:00:00Z2024-04-05T17:00:00Z2024-07-04T11:00:00Z | |||
| Transakční kód TransactionCode | Transakční kód SAP (T-code) použitý ke spuštění činnosti. | ||
| Popis Transakční kód je zkratka, která v SAP spouští konkrétní funkci nebo program. Například FB01 slouží k zaúčtování dokladu a FAGLB03 k zobrazení zůstatků účtů hlavní knihy. T-code často jasně ukazuje, jaká činnost proběhla. Tento atribut pomáhá definovat činnosti v modelu procesu. Spolehlivě rozlišuje ruční a automatizované činnosti a ukazuje, jak byl úkol v systému proveden. Analýza T-code může odhalit nestandardní nebo neefektivní postupy. Proč je to důležité Ukazuje z technického pohledu, jak byla činnost provedena v systému. Pomáhá rozlišit ruční a automatizované kroky a odhalit nestandardní postupy. Kde data získat Nachází se v hlavičkové tabulce finančních dokladů BKPF (pole TCODE) nebo v protokolech změn dokladů. Příklady FB01FAGL_FCVF.13 | |||
| Typ účetního zápisu JournalEntryType | Typ zaúčtovaného finančního dokladu, který rozlišuje běžné zápisy, časové rozlišení a opravy. | ||
| Popis Typ účetního zápisu, v terminologii SAP typ dokladu, je kód, který klasifikuje účetní doklady. Určuje, na jaké typy účtů lze doklad zaúčtovat, a rozlišuje různé obchodní transakce, například fakturu dodavatele (KR), zápis do hlavní knihy (SA) nebo platbu zákazníka (DZ). Při uzávěrce období tento atribut pomáhá vyčlenit konkrétní typy činností. Analytici se díky němu mohou zaměřit například na opravné účetní zápisy a využít dashboard „Analýza opravných účetních zápisů“ a KPI „Počet opravných účetních zápisů“. Atribut pomáhá také při výpočtu „Podílu ručních zaúčtování“. Proč je to důležité Třídí finanční transakce podle typu zaúčtování. Analýzu tak můžete zaměřit například na ruční opravy, které mají vliv na hladký průběh uzávěrky období. Kde data získat Jde o standardní pole v hlavičkové tabulce finančních dokladů BKPF (pole BLART). Příklady SAKRAB | |||
| Zdrojový systém SourceSystemId | Identifikátor konkrétní instance nebo klienta SAP S/4HANA, ze kterého byla data extrahována. | ||
| Popis Tento atribut určuje zdrojový systém dat. V prostředích s více instancemi SAP, například pro různé regiony nebo obchodní jednotky, je toto pole důležité pro rozlišení zdrojů dat. Používá se především pro správu dat, audit a zajištění jejich integrity. Při analýze může sloužit jako filtr pro porovnání procesů z různých zdrojových systémů, pokud jsou spojeny do jednoho modelu process mining. Proč je to důležité Poskytuje důležité informace o původu a kontextu dat. Díky tomu je jasné, odkud data pocházejí, zejména v prostředí s více systémy. Kde data získat Jde obvykle o metadata přidaná při extrakci dat, často převzatá z ID systému SAP (SY-SYSID) nebo klienta (SY-MANDT). Příklady S4H_PROD_100S4H_QAS_200ECC_LEGACY_001 | |||
Činnosti procesu Record to Report: uzávěrka období a odsouhlasení
| Aktivita | Popis | ||
|---|---|---|---|
| Období otevřeno pro účtování | Tímto začíná finanční období. Otevřou se účetní období pro zaznamenávání transakcí. Jde o výslovnou změnu konfigurace zaznamenanou v systému, kterou provádí správce financí v SAP. Umožní účtovat zápisy za nové období. | ||
| Proč je to důležité Tato činnost je hlavní počáteční událostí procesu uzávěrky období. Umožňuje přesně měřit celkovou délku cyklu a jasně určit začátek analýzy procesu. Kde data získat Událost se zaznamenává v dokumentech změn (tabulky CDHDR a CDPOS), které evidují úpravy tabulky T001B pro řízení účetních období. Změny se obvykle provádějí pomocí transakce OB52. Zachycení Vyfiltrujte protokoly změn tabulky T001B podle příslušného fiskálního roku a období. Typ události explicit | |||
| Období uzavřeno pro účtování | Jde o poslední činnost cyklu, při které se účetní období formálně uzavře a zamezí se dalším transakcím. Tím se zajistí integrita dat ve finálních finančních výkazech. | ||
| Proč je to důležité Tato činnost představuje jednoznačný konec procesu. Je nezbytná pro výpočet celkové délky uzávěrkového cyklu a analýzu trendů v dokončování procesu. Kde data získat Stejně jako při otevření období se událost zaznamenává v dokumentech změn (tabulky CDHDR a CDPOS), které evidují aktualizace tabulky T001B pro řízení účetních období provedené transakcí OB52. Zachycení Vyfiltrujte protokoly změn tabulky T001B a zjistěte, kdy bylo uzavřeno příslušné fiskální období. Typ události explicit | |||
| Schváleno odsouhlasení účtu | Tato činnost označuje konečné schválení odsouhlasení účtu hlavní knihy. Potvrzuje, že zůstatek byl ověřen a případné problémy vyřešeny. Událost se odvozuje od změny stavu na 'Schváleno' v nástroji pro odsouhlasení. | ||
| Proč je to důležité Tento milník označuje dokončení důležité kontrolní činnosti. Sledování doby schválení pomáhá odhalit úzká místa při kontrole a měřit opakované přepracování i úspěšnost na první pokus. Kde data získat Událost se zaznamenává v systému pro správu odsouhlasení, například SAP Account Substantiation and Automation, sledováním časového razítka konečného schválení. Zachycení Zjistěte časové razítko, kdy se stav odsouhlasení změní na konečný stav 'Schváleno'. Typ události inferred | |||
| Vygenerovány finanční výkazy | Tato činnost označuje vytvoření oficiálních finančních výkazů, například rozvahy a výkazu zisku a ztráty. Jde o završení účetních a konsolidačních procesů na konci období. | ||
| Proč je to důležité Jde o významný milník cyklu Record to Report. Jeho načasování je zásadní pro dodržení termínů výkaznictví a včasné poskytnutí informací zainteresovaným stranám. Kde data získat Nejlépe se událost zaznamenává v nástroji pro správu finanční uzávěrky, například SAP Financial Closing Cockpit, kde je vedena jako konkrétní úloha. Jinak ji lze odvodit z protokolů generování sestav nebo časových razítek vytvoření souborů. Zachycení V nástroji pro uzávěrku sledujte stav dokončení úlohy 'Generate Financial Statements' nebo analyzujte protokoly spuštění sestav. Typ události inferred | |||
| Zahájeno mezifiremní odsouhlasení | Tato činnost označuje začátek párování a odsouhlasování transakcí mezi různými kódy společností v rámci jedné skupiny. Obvykle se zahajuje spuštěním úlohy odsouhlasení nebo vytvořením nového případu odsouhlasení v nástroji SAP ICMR. | ||
| Proč je to důležité Mezifiremní odsouhlasení bývá složité a časově náročné. Analýza jeho délky a průběhu je důležitá pro zjednodušení skupinové uzávěrky a zajištění přesnosti konsolidovaných výkazů. Kde data získat Událost se odvozuje od změn stavu v modulu SAP Intercompany Matching and Reconciliation (ICMR) nebo od vytvoření prvních dokladů pro odsouhlasení daného období. Zachycení V nástroji ICMR sledujte datum vytvoření nebo časové razítko změny stavu jednotek odsouhlasení pro dané období. Typ události inferred | |||
| Zahájeno odsouhlasení účtu | Označuje začátek ručního nebo částečně automatizovaného ověřování zůstatků účtů hlavní knihy. Událost se odvozuje od změny stavu odsouhlasení z 'Nové' na 'Probíhá' nebo od zaznamenání první činnosti zpracovatele. | ||
| Proč je to důležité Tento milník pomáhá určit délku a náročnost ověřování zůstatků rozvahy. Ukáže, které účty nebo oddělení začínají s odsouhlasováním pozdě. Kde data získat Událost se obvykle zaznamenává ve specializovaném nástroji pro odsouhlasení, například SAP Account Substantiation and Automation od BlackLine, nebo v jiném systému třetí strany. Odvozuje se z časových razítek změn stavu. Zachycení U daného odsouhlasení účtu hlavní knihy sledujte časové razítko první změny stavu z 'Nezahájeno'. Typ události inferred | |||
| Zaúčtován opravný účetní zápis | Označuje opravný účetní zápis provedený po prvním odsouhlasení, obvykle kvůli odstranění nesrovnalostí zjištěných při kontrole. Jde o konkrétní transakci zaúčtovanou do hlavní knihy. | ||
| Proč je to důležité Časté opravné zápisy ukazují na nízkou kvalitu předcházejících procesů nebo prvního odsouhlasení. Jejich analýza pomáhá odhalit příčiny chyb a omezit opakované přepracování. Kde data získat Zaznamenávají se jako konkrétní doklady v tabulkách ACDOCA a BKPF. Lze je rozpoznat podle konkrétních typů dokladů, pozdního data účtování v uzávěrkovém cyklu nebo konkrétního textového popisu. Zachycení V tabulce BKPF vyfiltrujte účetní zápisy podle kombinace typu dokladu a data účtování ve vztahu k činnostem odsouhlasení. Typ události explicit | |||
| Přenos dat z pomocných knih dokončen | Označuje dokončení dávkových úloh, které přenášejí souhrnná data z pomocných knih, například z pohledávek, závazků a evidence majetku, do hlavní knihy. Před zahájením uzávěrkových postupů tak budou v hlavní knize zachyceny všechny související provozní transakce. | ||
| Proč je to důležité Zpoždění při uzávěrce pomocných knih může výrazně brzdit celý proces. Sledování této činnosti pomáhá odhalit neefektivitu při sběru a integraci dat ze zdrojových systémů. Kde data získat Událost se odvozuje od úspěšného dokončení konkrétních dávkových úloh pro vypořádání účtů a přenos dat. Protokoly úloh jsou v tabulkách TBTCO a TBTCP. Zachycení V přehledu úloh SAP (transakce SM37) sledujte časová razítka dokončení příslušných dávkových úloh. Typ události explicit | |||
| Přepočet cizích měn | Jde o standardní postup na konci měsíce, při kterém se otevřené položky a zůstatky v cizích měnách přepočítávají podle směnných kurzů platných ke konci období. Spuštěný program zaúčtuje výsledné kurzové rozdíly. | ||
| Proč je to důležité Tento postup pomáhá zajistit shodu s účetními standardy a přesný obraz finanční situace. Sledováním činnosti ověříte, zda se přepočet všech měn provádí včas. Kde data získat Událost se zaznamenává v protokolech spuštění programu pro přepočet cizích měn, například FAGL_FCV. Podrobnosti o úlohách jsou uloženy v tabulkách TBTCO a TBTCP. Zachycení V protokolech spuštění sledujte úlohy související s transakcí FAGL_FCV nebo jejím podkladovým programem. Typ události explicit | |||
| Připravena předvaha | Označuje vytvoření a uložení předvahy ke kontrole. Jde o důležitý kontrolní bod před sestavením konečných finančních výkazů. Zaznamenání této události často závisí na tom, zda se výstup sestavy ukládá. | ||
| Proč je to důležité Příprava předvahy je důležitou kontrolou kvality. Analýza jejího načasování pomáhá posoudit připravenost na závěrečné výkaznictví a odhalit zpoždění v předcházejících činnostech. Kde data získat Tato událost často není zaznamenána přímo. Lze ji odvodit ze spuštění konkrétní transakce pro výkaznictví, pokud jsou varianty uloženy s uživatelem a časovým razítkem, nebo pokud se proces spravuje v nástroji, jako je SAP Financial Closing Cockpit. Zachycení Je nutné analyzovat systém a zjistit, zda existuje spolehlivý způsob zaznamenávání, například protokoly spuštění sestav nebo seznamy úloh v nástroji Closing Cockpit. Typ události inferred | |||
| Provedeny konsolidační úlohy | Označuje provedení konsolidačních činností v SAP Group Reporting, například přepočet měn, reklasifikaci a eliminaci mezifiremních zisků. Tyto úlohy se obvykle spravují a zaznamenávají v monitoru konsolidace. | ||
| Proč je to důležité Pro organizace s více právními subjekty je konsolidace důležitou součástí uzávěrky. Sledování těchto úloh pomáhá zjednodušit skupinovou uzávěrku a zajistit včasné sestavení konsolidovaných výkazů. Kde data získat Událost se zaznamenává v protokolech stavů v Data Monitor nebo Consolidation Monitor v SAP S/4HANA for Group Reporting. Každá úloha obvykle obsahuje uživatele, časové razítko a stav. Zachycení Extrahujte protokoly provedení úloh z podkladových tabulek monitoru konsolidace Group Reporting. Typ události explicit | |||
| Schváleny finanční výkazy | Označuje konečné schválení finančních výkazů oprávněným vedením před jejich zveřejněním. Často jde o proces mimo systém, ale lze jej zaznamenat, pokud existuje formální digitální schvalovací krok. | ||
| Proč je to důležité Jde o závěrečnou kontrolu kvality a shody. Sledování jejího načasování je důležité pro posouzení dodržování termínů výkaznictví a celkové efektivity kontroly vedením. Kde data získat Událost lze zaznamenat, pokud pro schválení výkazů existuje workflow nebo pole stavu, například v SAP Financial Closing Cockpit nebo v systému pro správu dokumentů. Zachycení Určete datové pole a časové razítko, které označují konečné schválení souboru finančních výkazů. Typ události inferred | |||
| Spuštěno automatické párování | Označuje spuštění automatických programů pro párování v SAP, například párování GR/IR (příjem zboží/příjem faktury). Tyto úlohy párují a vyrovnávají otevřené položky na konkrétních účtech hlavní knihy, čímž omezují ruční práci při odsouhlasování. | ||
| Proč je to důležité Tato činnost ukazuje míru automatizace procesu odsouhlasení. Chyby nebo výjimky při těchto úlohách mohou vést k výraznému nárůstu ruční práce a zpožděním. Kde data získat Událost se zaznamenává v protokolech konkrétních dávkových úloh, například F.13 nebo F.13E pro automatické párování. Podrobnosti o spuštění obsahují tabulky protokolů úloh TBTCO a TBTCP. Zachycení V protokolech úloh SAP sledujte čas zahájení a dokončení úloh souvisejících s transakcemi, jako je F.13. Typ události explicit | |||
| Zaúčtována časová rozlišení a rezervy | Tato událost zachycuje vytvoření ručních účetních zápisů pro časové rozlišení, odložené položky a další rezervy potřebné pro přesné finanční výkaznictví na akruálním principu. Jde o konkrétní transakce zaúčtované do hlavní knihy. | ||
| Proč je to důležité Sledování těchto zaúčtování pomáhá analyzovat objem a načasování ručních oprav. Vysoký počet může ukazovat na příležitosti k automatizaci nebo zlepšení předcházejících procesů. Kde data získat Zaznamenávají se jako konkrétní účetní zápisy v tabulce univerzálního deníku ACDOCA a v hlavičkové tabulce BKPF. Lze je rozpoznat podle konkrétních typů dokladů nastavených pro časové rozlišení. Zachycení V tabulce BKPF vyfiltrujte doklady podle typu dokladu (například 'SA' nebo vlastních typů) a data účtování v daném období. Typ události explicit | |||
Návody k extrakci
Kroky
- Najděte a ověřte CDS pohledy: Přihlaste se do systému SAP S/4HANA pomocí SAP HANA Studio nebo Eclipse s ADT. V nástrojích ABAP Development Tools vyhledejte standardní CDS pohledy uvedené v dotazu a ověřte, že existují, například I_JournalEntryItem, I_BatchJob a I_ConsolidationTaskLog. U procesů, jako je odsouhlasení účtů, možná budete muset vytvořit vlastní CDS pohledy, například Z_I_ACCOUNTRECONCILIATION, abyste zachytili změny stavů.
- Zpřístupněte CDS pohledy přes OData: V backendu SAP vytvořte nový projekt pomocí transakce
SEGW(Gateway Service Builder). Klikněte pravým tlačítkem na složku Data Model a vyberte „Reference -> Data Source“. Přidejte požadované CDS pohledy. Vygenerujte běhové objekty a vytvořte službu OData, která tyto pohledy zpřístupní externím systémům. - Aktivujte službu OData: Na rozbočovači SAP Gateway přejděte do transakce
/IWFND/MAINT_SERVICE. Klikněte na „Add Service“, vyhledejte službu vygenerovanou v předchozím kroku a přidejte ji. Služba se tím aktivuje a bude dostupná pro dotazy. - Navažte datové připojení: Ve zvoleném nástroji pro extrakci dat, například Pythonu, Power BI nebo specializované platformě ETL, navažte připojení k nově vytvořené službě OData. Budete potřebovat adresu URL služby a příslušné přihlašovací údaje s oprávněním k přístupu k CDS pohledům.
- Upravte a spusťte dotaz: Zkopírujte dodaný SQL dotaz. Upravte zástupné hodnoty pro časové období, kódy společností a případné vlastní CDS pohledy nebo názvy dávkových úloh tak, aby odpovídaly vašemu prostředí SAP. Spusťte dotaz vůči koncovému bodu služby OData. OData používá jinou syntaxi (
$filter,$select), takže možná budete muset logiku dotazu UNION ALL převést na několik samostatných volání API, jedno pro každou aktivitu. - Sloučte data o aktivitách: OData obvykle nepodporuje složité dotazy UNION ALL v jediném volání. Proto odešlete samostatný požadavek pro každý blok aktivit v dotazu. Výsledky všech požadavků sloučte do jedné datové sady nebo tabulky v klientském nástroji.
- Transformujte a vyčistěte data: Zkontrolujte sloučená data. Ověřte, že sloupce
EventTimeaEndTimepoužívají jednotný formát časového razítka. Zkontrolujte, žeFinancialPeriodmá správný formát „YYYY-MM“. Podle potřeby ošetřete hodnoty NULL ve sloupcích, jako jsouResponsibleUserneboDocumentNumber. - Exportujte záznam událostí: Exportujte výslednou sloučenou datovou sadu do souboru CSV. Ověřte, že názvy sloupců odpovídají požadovaným atributům:
FinancialPeriod,ActivityName,EventTime,EndTime,ResponsibleUseratd. Soubor je nyní připravený k nahrání do ProcessMind.
Konfigurace
- CDS pohledy: Dotaz využívá kombinaci standardních a vlastních CDS pohledů. Nezbytné jsou standardní pohledy, například
I_JournalEntryItempro účetní zápisy aI_BatchJobpro automatizovaná spuštění. K zachycení stavů interních procesů, které standardní pohledy nepokrývají, jsou často potřeba vlastní pohledy, napříkladZ_I_ACCOUNTRECONCILIATION. - Časové období: Určete konkrétní období extrakce, abyste měli objem dat pod kontrolou. Dotaz obsahuje zástupné hodnoty
[Start Date]a[End Date]. Pro smysluplnou analýzu by měly obvykle pokrývat 3 až 6 celých finančních období. - Důležité filtry: Filtry jsou důležité pro výkon i relevanci výsledků. Vždy filtrujte podle
CompanyCode. Mezi další důležité filtry patříLedger, například „0L“ pro hlavní účetní knihu,FiscalYeara konkrétní hodnotyDocumentType, které rozlišují běžná zaúčtování, časové rozlišení a opravy. - Předpoklady: Uživatel provádějící extrakci potřebuje v SAP oprávnění k přístupu k uvedeným CDS pohledům a ke spouštění služeb OData, například autorizační objekty
S_SERVICEaS_RFC. Služby SAP Gateway musí být nastavené a aktivované. - Výkon: Dotazování pohledu
I_JournalEntryItemmůže výrazně zatížit systém. Vždy použijte výběrové filtry, zejména pro data, kódy společností a účetní knihy. Zvažte spuštění extrakce mimo špičku nebo průběžné načítání přírůstků.
Ukázkový dotaz sql
SELECT
CONCAT(CAST(PostingDate AS DATE FORMAT 'YYYY'), '-', CAST(PostingDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Opened For Posting' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- This is a proxy; this activity is a configuration change often found in change logs (CDHDR/CDPOS for table T001B)
WHERE PostingPeriodVariant = '[Your Variant]' AND FiscalYear = '[Your Fiscal Year]' AND FromPostingPeriod = 1 AND AuthorizationGroup IS NOT NULL -- Logic to detect the opening event
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod, -- Infer period from Job Name if patterned, otherwise use job start date
'Subledger Data Transfer Completed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Subledger Job Prefix]%' AND JobStatus = 'F' -- 'F' for Finished
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(CreationDate AS DATE FORMAT 'YYYY'), '-', CAST(CreationDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Intercompany Reconciliation Started' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
CreatedByUser AS ResponsibleUser,
LeadingCompanyCode AS CompanyCode,
NULL AS GlAccountNumber,
ReconciliationCase AS DocumentNumber,
ReconciliationCaseStatus AS ReconciliationStatus,
NULL AS TargetCompletionDate,
NULL AS ProcessingTime
FROM I_ICRcnCase -- Part of SAP S/4HANA for group reporting
WHERE CreationDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Accrual Doc Type 1]', '[Accrual Doc Type 2]') -- e.g., 'SA', 'AC'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Automated Clearing Run Executed' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'SAPF124%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Foreign Currency Valuation Run' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE 'FAGL_FCV%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on like SAP Account Substantiation and Automation.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Started' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
NULL AS EndTime,
ChangedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'In Progress' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'IN_PROGRESS' AND OldStatus = 'NEW'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Adjusting Journal Entry Posted' AS ActivityName,
CAST(CreationDateTime AS TIMESTAMP) AS EventTime,
CAST(CreationDateTime AS TIMESTAMP) AS EndTime,
CreatedByUser AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
AccountingDocument AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_JournalEntryItem
WHERE DocumentType IN ('[Adjustment Doc Type 1]', '[Adjustment Doc Type 2]') -- e.g., 'AJ'
AND PostingDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- This activity often requires a custom view on a custom table or an add-on product.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Account Reconciliation Approved' AS ActivityName,
CAST(ChangedAt AS TIMESTAMP) AS EventTime,
CAST(ChangedAt AS TIMESTAMP) AS EndTime,
ApprovedBy AS ResponsibleUser,
CompanyCode,
GLAccountNumber,
ReconciliationID AS DocumentNumber,
'Approved' AS ReconciliationStatus,
PlannedCompletionDate AS TargetCompletionDate,
NULL AS ProcessingTime
FROM Z_I_ACCOUNTRECONCILIATION -- Placeholder for your custom reconciliation status view
WHERE Status = 'APPROVED'
AND ChangeDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(FiscalYear, '-', LPAD(FiscalPeriod, 2, '0')) AS FinancialPeriod,
'Consolidation Tasks Executed' AS ActivityName,
CAST(TaskExecutionUTCTimestamp AS TIMESTAMP) AS EventTime,
CAST(TaskCompletionUTCTimestamp AS TIMESTAMP) AS EndTime,
ExecutedByUser AS ResponsibleUser,
ConsolidationUnitCompanyCode AS CompanyCode, -- Assuming mapping exists
NULL AS GlAccountNumber,
DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(TaskExecutionUTCTimestamp AS TIMESTAMP), CAST(TaskCompletionUTCTimestamp AS TIMESTAMP)) AS ProcessingTime
FROM I_ConsolidationTaskLog
WHERE ConsolidationTaskStatus = 'S' -- Successful
AND TaskExecutionUTCDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Trial Balance Prepared' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Trial Balance Job Prefix]%' AND JobStatus = 'F' -- Example: FAGL_TRIAL_BALANCE_RUN
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(SUBSTRING(JobName, STRPOS(JobName, '_') + 1, 4), '-', SUBSTRING(JobName, STRPOS(JobName, '_') + 5, 2)) AS FinancialPeriod,
'Financial Statements Generated' AS ActivityName,
CAST(JobStartDate || JobStartTime AS TIMESTAMP) AS EventTime,
CAST(JobEndDate || JobEndTime AS TIMESTAMP) AS EndTime,
JobCreatedByUser AS ResponsibleUser,
'[Configure based on your system]' AS CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
SECONDS_BETWEEN(CAST(JobStartDate || JobStartTime AS TIMESTAMP), CAST(JobEndDate || JobEndTime AS TIMESTAMP)) AS ProcessingTime
FROM I_BatchJob
WHERE JobName LIKE '[Fin Statement Job Prefix]%' AND JobStatus = 'F'
AND JobEndDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
-- Approval is often a manual step. This requires a custom solution to capture.
-- The following is a placeholder for such a custom view.
SELECT
CONCAT(ApprovalYear, '-', LPAD(ApprovalPeriod, 2, '0')) AS FinancialPeriod,
'Financial Statements Approved' AS ActivityName,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EventTime,
CAST(ApprovalTimestamp AS TIMESTAMP) AS EndTime,
ApproverUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
FinancialStatementVersion AS DocumentNumber,
'Approved' AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM Z_I_FINSTATEMENTAPPROVAL -- Placeholder for custom approval tracking view
WHERE ApprovalDate BETWEEN '[Start Date]' AND '[End Date]'
UNION ALL
SELECT
CONCAT(CAST(LastChangeDate AS DATE FORMAT 'YYYY'), '-', CAST(LastChangeDate AS DATE FORMAT 'MM')) AS FinancialPeriod,
'Period Closed For Posting' AS ActivityName,
CAST(LastChangeDateTime AS TIMESTAMP) AS EventTime,
CAST(LastChangeDateTime AS TIMESTAMP) AS EndTime,
LastChangedByUser AS ResponsibleUser,
CompanyCode,
NULL AS GlAccountNumber,
NULL AS DocumentNumber,
NULL AS ReconciliationStatus,
NULL AS TargetCompletionDate,
0 AS ProcessingTime
FROM I_FinPostingPeriodControl -- Proxy, see note on 'Period Opened'
WHERE PostingPeriodStatus = 'C' -- 'C' for Closed
AND LastChangeDate BETWEEN '[Start Date]' AND '[End Date]'; Kroky
- Ověřte, že máte přímý přístup pro čtení schématu SAP HANA obsahujícího požadované aplikační tabulky. Zjistěte vlastníka schématu pro ACDOCA, TBTCO, CDHDR a CDPOS. Nahraďte zástupný název schématu v dotazu schváleným názvem.
- Potvrďte fiskální rok, fiskální období, rozsah kódů společností a časové období extrakce. Použijte období pokrývající celý cyklus uzávěrky, obvykle tři až šest měsíců, a nahraďte parametry data hodnotami odpovídajícími vašemu systému.
- Ověřte místní mapování polí pro změny nastavení účetních období, dokončení dávkových úloh, změny stavu odsouhlasení, spuštění konsolidace, generování přehledů a záznamy o schválení. Dotaz používá zástupné názvy zdrojových objektů, které nemusí být dostupné ve všech nasazeních SAP S/4HANA. Před spuštěním nahraďte tyto zástupné hodnoty schválenými pohledy nebo tabulkami z vašeho systému.
- Spusťte dotaz s přihlašovacími údaji databáze, které umožňují pouze čtení. Dotaz vytvoří jeden řádek události pro každou požadovanou aktivitu a neodvozuje další události z pořadí událostí.
- Zkontrolujte vrácené sloupce. FinancialPeriod je identifikátor případu, ActivityName označuje aktivitu události a EventTime je požadované časové razítko události. Sloupce EndTime, ResponsibleUser, CompanyCode, GlAccountNumber, DocumentNumber, ReconciliationStatus a TargetCompletionDate jsou zahrnuty, pokud je obsahuje zdrojový záznam.
- Ověřte, že výsledek obsahuje všechny požadované aktivity, včetně těch, pro které v daném období nemusí existovat zdrojové záznamy. Pokud některé typy aktivit chybí, dotaz vrátí ověřovací řádek s hodnotou Activity Coverage Validation ve sloupci ActivityName. Pokud cílový import vyžaduje pouze obchodní události, před nahráním do ProcessMind tento řádek odstraňte nebo zpracujte samostatně.
- Porovnejte vybrané události se záznamy aplikace SAP a protokoly úloh. Ověřte, že události účetních zápisů odpovídají záznamům ACDOCA, události úloh záznamům TBTCO a události změn záznamům CDHDR a CDPOS nebo nastaveným zdrojům odsouhlasení a schválení.
- Exportujte výsledek jako soubor CSV v kódování UTF-8 nebo v jiném tabulkovém formátu podporovaném ProcessMind. Zachovejte přesné názvy sloupců FinancialPeriod, ActivityName a EventTime. Seřaďte data podle FinancialPeriod a EventTime a ponechte jeden řádek pro každou výslovně extrahovanou událost.
- Nahrajte záznam událostí do ProcessMind a nastavte FinancialPeriod jako identifikátor případu, ActivityName jako aktivitu a EventTime jako čas začátku. Pokud je k dispozici EndTime, namapujte jej jako čas konce. Zbývající sloupce namapujte jako atributy události nebo případu.
Důležitá poznámka k mapování zdrojů: SAP S/4HANA nemá jednotnou strukturu tabulek pro všechny nástroje odsouhlasení, monitory konsolidace, archivy přehledů, workflow schvalování ani nastavení účetních období. Každý zástupný text [Your table name] a [Your column name] v dotazu nahraďte ověřeným objektem a sloupcem z vašeho systému. Nepovažujte zástupný text za spustitelný SQL.
Konfigurace
- Přístup k databázi: Použijte uživatele databáze SAP HANA s oprávněním SELECT pouze pro čtení nad ACDOCA, TBTCO, CDHDR, CDPOS a nakonfigurovanými zdrojovými objekty pro řízení účetních období, odsouhlasení, konsolidaci, výkaznictví a schvalování.
- Konfigurace schématu: Nahraďte [Your SAP schema] skutečným schématem obsahujícím aplikační objekty. Ověřte, zda jde o tabulky, výpočtová zobrazení, nebo schválená reportovací zobrazení.
- Časové období: Extrahujte celý cyklus uzávěrky, obvykle tři až šest měsíců. Zahrňte zahajovací a závěrečné činnosti, pozdní účtování, storna, schvalování i úpravy po uzávěrce.
- Účetní období: Filtrujte podle účetního roku a období používaného pro daný kód společnosti. Pokud se účetní rok liší od kalendářního, nepředpokládejte kalendářní období.
- Company Code: Pokud se proces týká jen vybraných právních subjektů, použijte filtr kódu společnosti. Jestliže se rozsah spravuje v samostatném organizačním mapování, použijte [Configure based on your system].
- Typy dokladů: Omezte extrakci účetních zápisů na typy dokladů používané pro časové rozlišení, rezervy, opravy, přecenění, zúčtování a další zápisy při uzávěrce. Před zapnutím těchto filtrů ověřte místní konfiguraci typů dokladů.
- Stav úlohy: Pro činnosti označující dokončení zahrňte pouze dokončené nebo úspěšně ukončené úlohy. Před použitím podmínky pro stav ověřte místní hodnoty stavů v TBTCO.
- Doklady změn: Po ověření místní konfigurace filtrujte CDHDR a CDPOS podle příslušné třídy objektu a indikátorů změn. Samotné doklady změn nemusí zachytit všechny obchodní činnosti.
- Zdroje odsouhlasení a schvalování: Nakonfigurujte ověřené zdrojové objekty pro změny stavu odsouhlasení, činnosti zpracovatelů, schvalování, cílová data a digitální potvrzení. Dostupné zdroje se liší podle nasazených komponent a rozšíření SAP.
- Výkon: Omezte podmínky podle účetního roku, účetního období, kódu společnosti, data účtování a časového razítka události. Filtry použijte v každé větvi UNION ALL, vyhněte se neomezenému prohledávání ACDOCA a dotaz spouštějte ve schváleném čase pro reporting.
- Datové typy: Sjednoťte časová razítka na společné časové pásmo a datový typ. Prázdné řetězce převeďte na NULL a zachovejte úvodní nuly v kódech společností, číslech účtů a číslech dokladů.
- Předpoklady: Ověřte dostupnost a naplnění požadovaných komponent SAP, nástrojů pro odsouhlasení, funkcí konsolidace, protokolování úloh, aktivace dokladů změn a auditních protokolů výkazů či workflow.
- Zabezpečení a shoda: Použijte přístup s nejnižšími potřebnými oprávněními, chraňte finanční údaje i údaje o uživatelích, zdokumentujte účel extrakce a dodržujte požadavky organizace na audit SAP a databází.
Ukázkový dotaz sql
WITH
params AS (
SELECT
TO_DATE('[Start date YYYY-MM-DD]') AS start_date,
TO_DATE('[End date YYYY-MM-DD]') AS end_date,
'[Fiscal year]' AS fiscal_year_filter,
'[Fiscal period]' AS fiscal_period_filter,
'[Company code filter]' AS company_code_filter
FROM DUMMY
),
base_events AS (
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0') AS FinancialPeriod,
'Accruals And Provisions Posted' AS ActivityName,
CAST(a.BUDAT AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(a.USNAM AS NVARCHAR(80)) AS ResponsibleUser,
CAST(a.RBUKRS AS NVARCHAR(20)) AS CompanyCode,
CAST(a.RACCT AS NVARCHAR(40)) AS GlAccountNumber,
CAST(a.BELNR AS NVARCHAR(40)) AS DocumentNumber,
CAST(NULL AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Accrual document type]', '[Provision document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Adjusting Journal Entry Posted',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Adjusting journal entry document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Foreign Currency Valuation Run',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Foreign currency valuation document type]')
UNION ALL
SELECT
TO_NVARCHAR(a.RYEAR) || '-' || LPAD(TO_NVARCHAR(a.POPER), 2, '0'),
'Automated Clearing Run Executed',
CAST(a.BUDAT AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(a.USNAM AS NVARCHAR(80)),
CAST(a.RBUKRS AS NVARCHAR(20)),
CAST(a.RACCT AS NVARCHAR(40)),
CAST(a.BELNR AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].ACDOCA a
CROSS JOIN params p
WHERE a.BUDAT >= p.start_date
AND a.BUDAT < ADD_DAYS(p.end_date, 1)
AND (p.fiscal_year_filter = '[Fiscal year]' OR TO_NVARCHAR(a.RYEAR) = p.fiscal_year_filter)
AND (p.fiscal_period_filter = '[Fiscal period]' OR TO_NVARCHAR(a.POPER) = p.fiscal_period_filter)
AND (p.company_code_filter = '[Company code filter]' OR TO_NVARCHAR(a.RBUKRS) = p.company_code_filter)
AND a.BLART IN ('[Automated clearing document type]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Subledger Data Transfer Completed',
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job end timestamp column] >= p.start_date
AND j.[Job end timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job status column] = '[Successful job status]'
AND j.[Job name column] IN ('[AR transfer job]', '[AP transfer job]', '[Asset Accounting transfer job]')
UNION ALL
SELECT
CAST(j.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(j.[Job start timestamp column] AS TIMESTAMP),
CAST(j.[Job end timestamp column] AS TIMESTAMP),
CAST(j.[Job user column] AS NVARCHAR(80)),
CAST(j.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(j.[Job name column] AS NVARCHAR(40)),
CAST(NULL AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your SAP schema].TBTCO j
CROSS JOIN params p
WHERE j.[Job start timestamp column] >= p.start_date
AND j.[Job start timestamp column] < ADD_DAYS(p.end_date, 1)
AND j.[Job name column] IN ('[Intercompany reconciliation job]')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Intercompany Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for intercompany reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('Started', 'In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Started',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Responsible user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] IN ('In Progress')
UNION ALL
SELECT
CAST(r.[Financial period column] AS NVARCHAR(20)),
'Account Reconciliation Approved',
CAST(r.[Status change timestamp column] AS TIMESTAMP),
CAST(NULL AS TIMESTAMP),
CAST(r.[Approver user column] AS NVARCHAR(80)),
CAST(r.[Company code column] AS NVARCHAR(20)),
CAST(r.[GL account column] AS NVARCHAR(40)),
CAST(r.[Reconciliation case column] AS NVARCHAR(40)),
CAST(r.[Status column] AS NVARCHAR(40)),
CAST(r.[Target completion date column] AS DATE)
FROM [Your table name for account reconciliation] r
CROSS JOIN params p
WHERE r.[Status change timestamp column] >= p.start_date
AND r.[Status change timestamp column] < ADD_DAYS(p.end_date, 1)
AND r.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(c.[Financial period column] AS NVARCHAR(20)),
'Consolidation Tasks Executed',
CAST(c.[Execution start timestamp column] AS TIMESTAMP),
CAST(c.[Execution end timestamp column] AS TIMESTAMP),
CAST(c.[Responsible user column] AS NVARCHAR(80)),
CAST(c.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(c.[Task identifier column] AS NVARCHAR(40)),
CAST(c.[Status column] AS NVARCHAR(40)),
CAST(c.[Target completion date column] AS DATE)
FROM [Your table name for consolidation execution] c
CROSS JOIN params p
WHERE c.[Execution start timestamp column] >= p.start_date
AND c.[Execution start timestamp column] < ADD_DAYS(p.end_date, 1)
AND c.[Status column] IN ('Completed', 'Successful')
UNION ALL
SELECT
CAST(t.[Financial period column] AS NVARCHAR(20)),
'Trial Balance Prepared',
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Report saved timestamp column] AS TIMESTAMP),
CAST(t.[Responsible user column] AS NVARCHAR(80)),
CAST(t.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(t.[Report identifier column] AS NVARCHAR(40)),
CAST(t.[Status column] AS NVARCHAR(40)),
CAST(t.[Target completion date column] AS DATE)
FROM [Your table name for trial balance output] t
CROSS JOIN params p
WHERE t.[Report saved timestamp column] >= p.start_date
AND t.[Report saved timestamp column] < ADD_DAYS(p.end_date, 1)
AND t.[Status column] IN ('Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Generated',
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Generation timestamp column] AS TIMESTAMP),
CAST(f.[Responsible user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement output] f
CROSS JOIN params p
WHERE f.[Generation timestamp column] >= p.start_date
AND f.[Generation timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] IN ('Generated', 'Saved', 'Completed')
UNION ALL
SELECT
CAST(f.[Financial period column] AS NVARCHAR(20)),
'Financial Statements Approved',
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approval timestamp column] AS TIMESTAMP),
CAST(f.[Approver user column] AS NVARCHAR(80)),
CAST(f.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(f.[Report identifier column] AS NVARCHAR(40)),
CAST(f.[Status column] AS NVARCHAR(40)),
CAST(f.[Target completion date column] AS DATE)
FROM [Your table name for financial statement approval] f
CROSS JOIN params p
WHERE f.[Approval timestamp column] >= p.start_date
AND f.[Approval timestamp column] < ADD_DAYS(p.end_date, 1)
AND f.[Status column] = 'Approved'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Opened For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Open'
UNION ALL
SELECT
CAST(x.[Financial period column] AS NVARCHAR(20)),
'Period Closed For Posting',
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Change timestamp column] AS TIMESTAMP),
CAST(x.[Changed by column] AS NVARCHAR(80)),
CAST(x.[Company code column] AS NVARCHAR(20)),
CAST(NULL AS NVARCHAR(40)),
CAST(x.[Change document number column] AS NVARCHAR(40)),
CAST(x.[New status column] AS NVARCHAR(40)),
CAST(NULL AS DATE)
FROM [Your table name for posting period changes] x
CROSS JOIN params p
WHERE x.[Change timestamp column] >= p.start_date
AND x.[Change timestamp column] < ADD_DAYS(p.end_date, 1)
AND x.[New status column] = 'Closed'
),
activity_list AS (
SELECT 'Period Opened For Posting' AS ActivityName FROM DUMMY
UNION ALL SELECT 'Subledger Data Transfer Completed' FROM DUMMY
UNION ALL SELECT 'Intercompany Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Accruals And Provisions Posted' FROM DUMMY
UNION ALL SELECT 'Automated Clearing Run Executed' FROM DUMMY
UNION ALL SELECT 'Foreign Currency Valuation Run' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Started' FROM DUMMY
UNION ALL SELECT 'Adjusting Journal Entry Posted' FROM DUMMY
UNION ALL SELECT 'Account Reconciliation Approved' FROM DUMMY
UNION ALL SELECT 'Consolidation Tasks Executed' FROM DUMMY
UNION ALL SELECT 'Trial Balance Prepared' FROM DUMMY
UNION ALL SELECT 'Financial Statements Generated' FROM DUMMY
UNION ALL SELECT 'Financial Statements Approved' FROM DUMMY
UNION ALL SELECT 'Period Closed For Posting' FROM DUMMY
),
missing_activities AS (
SELECT
CAST(NULL AS NVARCHAR(20)) AS FinancialPeriod,
'Activity Coverage Validation' AS ActivityName,
CAST(NULL AS TIMESTAMP) AS EventTime,
CAST(NULL AS TIMESTAMP) AS EndTime,
CAST(NULL AS NVARCHAR(80)) AS ResponsibleUser,
CAST(NULL AS NVARCHAR(20)) AS CompanyCode,
CAST(NULL AS NVARCHAR(40)) AS GlAccountNumber,
CAST(NULL AS NVARCHAR(40)) AS DocumentNumber,
CAST('Missing activity: ' || al.ActivityName AS NVARCHAR(40)) AS ReconciliationStatus,
CAST(NULL AS DATE) AS TargetCompletionDate
FROM activity_list al
LEFT JOIN base_events b ON b.ActivityName = al.ActivityName
WHERE b.ActivityName IS NULL
)
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM base_events
UNION ALL
SELECT
FinancialPeriod,
ActivityName,
EventTime,
EndTime,
ResponsibleUser,
CompanyCode,
GlAccountNumber,
DocumentNumber,
ReconciliationStatus,
TargetCompletionDate
FROM missing_activities
ORDER BY FinancialPeriod, EventTime, ActivityName Chcete začít?
Využijte tuto datovou šablonu ke zvýšení efektivity a posílení shody ve vaší organizaci. Začněte zlepšovat proces Record to Report ještě dnes.
Zlepšete uzávěrku a odsouhlasení v procesu Record to Report
Odhalte neefektivní postupy a zkraťte dobu uzávěrky až o 30 %.
Platební kartu nepotřebujete. Začít můžete během několika minut.