SlideShare uma empresa Scribd logo
1 de 5
По результатам беседы по телефону:
Разберём что мы имеем сейчас:
источник данных: ZPKS_KO_STOK
ФМ: Z_KO_STOK Разработчик: - Валецкий Т.А.
Данные получаются из:
 ZFM_STOCK_AND_TURNS_GET - Программист: Зенченко П.В.
Эта программа не возвращает номера документов, т.е. уже агрегирует данные.
 Результат работы этой программы передаётся в модуль
ZFM_STOCK_FOR_MANAGER, где к результату добавляются дополнительные
поля.
В программе уже заложена обработка сторнированныхдокументов - они не выводятся в
результат.
Требуется - дополнить возможностью выводить данные за определённый период времени
(по дате создания документа), плюс в определённом случае брать сторнированные
документы, а в каком-то не брать.
Я исходил из предположения, что при условии правильного запроса к базе и правильной
организации индексов выбрать данные за период в 1 час быстрее, чем выбирать их за
вообще все периоды.
Данные из источника ZPKS_KO_STOK загружаются в ODS ZPKS_D04 “04. Складской
запас”.
Дальше возникли вопросы:
Возможно ли сделатьотчёты«на дату» без номерадокумента и как?
Условно, раньше хранилась следующая информация:
Ключевые
поля
Неключевые
поля
Показатели
Эта информация была на самый последний момент времени, т.к. перезагружалась каждый
день. Это достигалось тем, что брались только самые последние движения материалов без
истории. Номера документа не было.
Чтобы была историчность, необходимо хранить дату историчности. Относительно неё
нужно и формировать отчёт на дату. Сейчас дата историчности - это дата проводки. То
есть, мы подтягиваем в BW не состояние на дату, а изменение этого состояния и дату
изменения. Не важно, что само изменение завели в систему гораздо позже, чем оно
должно было произойти в бух.учёте. Как только оно дойдёт до BW, отчёт на дату, в том
числе на прошлую дату, будет эти изменения показывать.
Для сторнированных документов необходимо заменять дату проводки на дату
проводки сторнировавшего его документа. То есть фактически проводка с минусом в
ОДС или в кубе должна произойти на дату сторнирования.
Рассмотрим, как исходные данные будут попадать в отчёт в разных случаях. Если часть
данных (несколько документов) была, например, перемещена на другой склад,
переоценена и т.п., то данные в ОДС будут следующие:
Дата проводки
(по убыванию)
Ключевые поля Неключевые поля Показатели
31.12.2011
взамен
сторнированного
Могут быть
изменены по
сравнению с
исходными
Могут быть
изменены по
сравнению с
исходными
Могут быть изменены по
сравнению с исходными
31.12.2011
(сторнировано) Неизменны
С инвертированным
знаком
01.12.2011 Исходные
Для понимания механизма сторно возьмём более конкретный вариант с детализацией до
номера документа:
Документ: Поле
историчности
(по убыванию)
Ключевые
поля
Неключевые
поля
показатели
№2 (взамен
документа № 1)
31.12.2011
(создан)
Могут быть
изменены по
сравнению с
исходными
Могут быть
изменены по
сравнению с
исходными
Могут быть
изменены по
сравнению с
исходными
сторнированный
документ №1
31.12.2011
(сторнирован)
(искусственная
замена)
Т.к. запись из MKPF/MSEG
одна и та-же, то неизменны, за
исключением 0RECORDMODE
С
инвертированным
знаком
№1 01.12.2011
(создан)
Исходные
Т.к. начальные и сторнированные записи совпадают по признакам, то В ОДС
возникает проблема дублирования записей. Необходимо будет добавить
0RECRDMODE для различения исходных документов и операций сторно.
Если отчёт запускается «на дату»:
01.01.2012: документ 1 обнулится и не попадёт в отчёт. Документ 2 попадёт.
31.12.2011: документ 1 обнулится и не попадёт в отчёт. Документ 2 попадёт.
30.12.2011: документ 1 попадёт в отчёт. Документ 2 и сторно документа 1 – не попадёт.
Возьмём случай, когда документ был сторнирован той-же датой, что и создан:
Документ: Поле
историчности
Ключевые
поля
Неключевые
поля
показатели
№2 (взамен
документа № 1)
31.12.2011
(создан)
Могут быть
изменены
Могут быть
изменены
Могут быть
изменены
сторнированный
документ №1
31.12.2011
(сторнирован)
Т.к. запись из MKPF/MSEG
одна и та-же, то неизменны
С
инвертированным
знаком
№1 31.12.2011
(создан)
Исходные
В этом случае не нужно брать в ZFM_STOCK_AND_TURNS_GET документ №1, т.к. он
был сторнирован в том-же кванте времени, в котором был создан.
Теперь посмотрим, можно ли не пользоваться номерами документов для дельты.
«Отсечение» номеров документов и, возможно, агрегация по оставшимся аналитикам
происходит ещё в ZFM_STOCK_AND_TURNS_GET. Рассмотрим как происходит это
«отсечение»:
В таблицах MKPF+MSEG хранится:
CPUDT Документ: BUDAT –
дата
проводки
Ключевые
поля BW
Неключевые
поля BW
Суммы, объём
01.01.2012,
(создан)
№А2 21.12.2011, B 200
01.01.2012
(сторниров
ан)
№А1 21.12.2011
A
-200
31.12.2011,
(создан)
№Б2 24.12.2011, A 150
31.12.2011
(сторниров
ан)
№Б1 24.12.2011
A
-100
06.12.2011
(создан)
№А1 01.12.2011 A 200
04.12.2011
(создан)
№Б1 03.12.2011 A 100
показано самое подробное поле-номер документа, поле CPUDT изменения документа +
только те поля, которые мы выбираем в BW. Скобками показаныдва запуска дельты.
В первом запуске экстрактор должен выбрать документы:
CPUDT Документ: BUDAT –
дата
проводки
Ключевые
поля BW
Неключевые
поля BW
Суммы, объём
31.12.2011,
(создан)
№Б2 24.12.2011, A 150
31.12.2011
(сторниров
ан)
№Б1 24.12.2011
A
-100
06.12.2011
(создан)
№А1 01.12.2011 A 200
04.12.2011
(создан)
№Б1 03.12.2011 A 100
После отсечения номера документа и без учёта даты создания экстрактор возвратит и в
ODS будут следующие данные:
BUDAT –
дата
проводки
Ключевые
поля BW
Неключевые
поля BW
Суммы, объём
24.12.2011, A 150
24.12.2011
A
-100
01.12.2011 A 200
03.12.2011 A 100
Отчёт можно запускать на любую дату – будет историчность.
Данные в ОДС после второго запуска дельты:
BUDAT –
дата
проводки
Ключевые
поля BW
Неключевые
поля BW
Суммы, объём
21.12.2011, B 200
21.12.2011
A
-200
24.12.2011, A 150
24.12.2011 A -100
01.12.2011 A 200
03.12.2011 A 100
Историчностьтоже соблюдается,напримерна 21 число:
21.12.2011, B 200
21.12.2011
A
-200
01.12.2011 A 200
03.12.2011 A 100
B 200
A 100
В данном случае А и B – любые комбинацииключевых инеключевых полей,укоторых,например,
отличаетсятолькономерсклада.
Нужно ли будет переделыватьвсе отчёты?
Там где нужно оставить существующую логику «только на текущий момент» - менять не
нужно, т.к. в инфопровайдере будет хранится та-же информация, что и раньше, плюс
взаимоуничтожающиеся сторнированные документы:
Раньше:
Ключевые
поля
Неключевые
поля
показатели
A B 5
После изменений:
Ключевые
поля
Неключевые
поля
показатели
A B 5
=
-3
3
Итогоиз измененийв BW - нужно будетдобавить в ODS дату проводки,тиражироватьисточник
данных,изменитьцепочку.Предлагаюсделатьсначалатестовыйисточники тестовуюОДС.

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

По результатам беседы по телефону

  • 1. По результатам беседы по телефону: Разберём что мы имеем сейчас: источник данных: ZPKS_KO_STOK ФМ: Z_KO_STOK Разработчик: - Валецкий Т.А. Данные получаются из:  ZFM_STOCK_AND_TURNS_GET - Программист: Зенченко П.В. Эта программа не возвращает номера документов, т.е. уже агрегирует данные.  Результат работы этой программы передаётся в модуль ZFM_STOCK_FOR_MANAGER, где к результату добавляются дополнительные поля. В программе уже заложена обработка сторнированныхдокументов - они не выводятся в результат. Требуется - дополнить возможностью выводить данные за определённый период времени (по дате создания документа), плюс в определённом случае брать сторнированные документы, а в каком-то не брать. Я исходил из предположения, что при условии правильного запроса к базе и правильной организации индексов выбрать данные за период в 1 час быстрее, чем выбирать их за вообще все периоды. Данные из источника ZPKS_KO_STOK загружаются в ODS ZPKS_D04 “04. Складской запас”. Дальше возникли вопросы: Возможно ли сделатьотчёты«на дату» без номерадокумента и как? Условно, раньше хранилась следующая информация: Ключевые поля Неключевые поля Показатели Эта информация была на самый последний момент времени, т.к. перезагружалась каждый день. Это достигалось тем, что брались только самые последние движения материалов без истории. Номера документа не было. Чтобы была историчность, необходимо хранить дату историчности. Относительно неё нужно и формировать отчёт на дату. Сейчас дата историчности - это дата проводки. То есть, мы подтягиваем в BW не состояние на дату, а изменение этого состояния и дату изменения. Не важно, что само изменение завели в систему гораздо позже, чем оно должно было произойти в бух.учёте. Как только оно дойдёт до BW, отчёт на дату, в том числе на прошлую дату, будет эти изменения показывать. Для сторнированных документов необходимо заменять дату проводки на дату проводки сторнировавшего его документа. То есть фактически проводка с минусом в ОДС или в кубе должна произойти на дату сторнирования.
  • 2. Рассмотрим, как исходные данные будут попадать в отчёт в разных случаях. Если часть данных (несколько документов) была, например, перемещена на другой склад, переоценена и т.п., то данные в ОДС будут следующие: Дата проводки (по убыванию) Ключевые поля Неключевые поля Показатели 31.12.2011 взамен сторнированного Могут быть изменены по сравнению с исходными Могут быть изменены по сравнению с исходными Могут быть изменены по сравнению с исходными 31.12.2011 (сторнировано) Неизменны С инвертированным знаком 01.12.2011 Исходные Для понимания механизма сторно возьмём более конкретный вариант с детализацией до номера документа: Документ: Поле историчности (по убыванию) Ключевые поля Неключевые поля показатели №2 (взамен документа № 1) 31.12.2011 (создан) Могут быть изменены по сравнению с исходными Могут быть изменены по сравнению с исходными Могут быть изменены по сравнению с исходными сторнированный документ №1 31.12.2011 (сторнирован) (искусственная замена) Т.к. запись из MKPF/MSEG одна и та-же, то неизменны, за исключением 0RECORDMODE С инвертированным знаком №1 01.12.2011 (создан) Исходные Т.к. начальные и сторнированные записи совпадают по признакам, то В ОДС возникает проблема дублирования записей. Необходимо будет добавить 0RECRDMODE для различения исходных документов и операций сторно. Если отчёт запускается «на дату»: 01.01.2012: документ 1 обнулится и не попадёт в отчёт. Документ 2 попадёт. 31.12.2011: документ 1 обнулится и не попадёт в отчёт. Документ 2 попадёт. 30.12.2011: документ 1 попадёт в отчёт. Документ 2 и сторно документа 1 – не попадёт. Возьмём случай, когда документ был сторнирован той-же датой, что и создан: Документ: Поле историчности Ключевые поля Неключевые поля показатели №2 (взамен документа № 1) 31.12.2011 (создан) Могут быть изменены Могут быть изменены Могут быть изменены сторнированный документ №1 31.12.2011 (сторнирован) Т.к. запись из MKPF/MSEG одна и та-же, то неизменны С инвертированным знаком №1 31.12.2011 (создан) Исходные В этом случае не нужно брать в ZFM_STOCK_AND_TURNS_GET документ №1, т.к. он был сторнирован в том-же кванте времени, в котором был создан.
  • 3. Теперь посмотрим, можно ли не пользоваться номерами документов для дельты. «Отсечение» номеров документов и, возможно, агрегация по оставшимся аналитикам происходит ещё в ZFM_STOCK_AND_TURNS_GET. Рассмотрим как происходит это «отсечение»:
  • 4. В таблицах MKPF+MSEG хранится: CPUDT Документ: BUDAT – дата проводки Ключевые поля BW Неключевые поля BW Суммы, объём 01.01.2012, (создан) №А2 21.12.2011, B 200 01.01.2012 (сторниров ан) №А1 21.12.2011 A -200 31.12.2011, (создан) №Б2 24.12.2011, A 150 31.12.2011 (сторниров ан) №Б1 24.12.2011 A -100 06.12.2011 (создан) №А1 01.12.2011 A 200 04.12.2011 (создан) №Б1 03.12.2011 A 100 показано самое подробное поле-номер документа, поле CPUDT изменения документа + только те поля, которые мы выбираем в BW. Скобками показаныдва запуска дельты. В первом запуске экстрактор должен выбрать документы: CPUDT Документ: BUDAT – дата проводки Ключевые поля BW Неключевые поля BW Суммы, объём 31.12.2011, (создан) №Б2 24.12.2011, A 150 31.12.2011 (сторниров ан) №Б1 24.12.2011 A -100 06.12.2011 (создан) №А1 01.12.2011 A 200 04.12.2011 (создан) №Б1 03.12.2011 A 100 После отсечения номера документа и без учёта даты создания экстрактор возвратит и в ODS будут следующие данные: BUDAT – дата проводки Ключевые поля BW Неключевые поля BW Суммы, объём 24.12.2011, A 150 24.12.2011 A -100 01.12.2011 A 200 03.12.2011 A 100 Отчёт можно запускать на любую дату – будет историчность. Данные в ОДС после второго запуска дельты:
  • 5. BUDAT – дата проводки Ключевые поля BW Неключевые поля BW Суммы, объём 21.12.2011, B 200 21.12.2011 A -200 24.12.2011, A 150 24.12.2011 A -100 01.12.2011 A 200 03.12.2011 A 100 Историчностьтоже соблюдается,напримерна 21 число: 21.12.2011, B 200 21.12.2011 A -200 01.12.2011 A 200 03.12.2011 A 100 B 200 A 100 В данном случае А и B – любые комбинацииключевых инеключевых полей,укоторых,например, отличаетсятолькономерсклада. Нужно ли будет переделыватьвсе отчёты? Там где нужно оставить существующую логику «только на текущий момент» - менять не нужно, т.к. в инфопровайдере будет хранится та-же информация, что и раньше, плюс взаимоуничтожающиеся сторнированные документы: Раньше: Ключевые поля Неключевые поля показатели A B 5 После изменений: Ключевые поля Неключевые поля показатели A B 5 = -3 3 Итогоиз измененийв BW - нужно будетдобавить в ODS дату проводки,тиражироватьисточник данных,изменитьцепочку.Предлагаюсделатьсначалатестовыйисточники тестовуюОДС.