Top Banner
BLINOVDANIIL.COM_______________________________________________________ [email protected] 1 Transformation and Conversion ПРЕОБРАЗОВАНИЯ ДАННЫХ АК «АЛРОСА» Преобразование данных для системы BPC из BI 10 Апреля 2014 Author Daniil Blinov Консультант Консолидация E-mail: [email protected]
13

BLINOVDANIIL_Инструкция по преобразованию данных v01

Jun 14, 2015

Download

Technology

Daniil Blinov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

1 Transformation and Conversion

ПРЕОБРАЗОВАНИЯ ДАННЫХ

АК «АЛРОСА»

Преобразование данных для системы BPC из BI

10 Апреля 2014

Author

Daniil Blinov

Консультант

Консолидация

E-mail: [email protected]

Page 2: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

2 Transformation and Conversion

Version History

Draft Final

Description Version Draft Date Author Approval Date Approver

Первая версия 00 25.03.2014 Daniil Blinov

Page 3: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

3 Transformation and Conversion

Содержание

1. Общая информация ................................................................................................................. 4

1.1 Преобразование данных (Transformation) ............................................................................. 4

1.2 Обязательные файлы при трансформации .......................................................................... 4

1.2.1 Описание опции (Options): ................................................................................................. 4

1.2.2 Описание мэппинга (Mapping) .............................................................................................. 6

1.2.3. Раздел пересчета ................................................................................................................ 9

2. Общая информация по использованию JavaScript в файлах Transformation ................................... 10

2.1 Объем функций .................................................................................................................. 10

2.2 Пример файла преобразования (Transformation) .................................................................. 11

3. Ресурсы ................................................................................................................. 13

Page 4: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

4 Transformation and Conversion

1. Общая информация

1.1 Преобразование данных (Transformation)

Преобразования данных определяются так, чтобы можно было выполнить мэппинг

внешних данных с внутренними структурами данных BPC.

1.2 Обязательные файлы при трансформации

1.2.1 Описание опции (Options):

Для выполнения преобразования данных администратор должен создать не менее двух

файлов книг BPC для Excel:

Файл преобразования — дает возможность администратору настроить правила

считывания данных из внешних источников и преобразования в соответствующую

форму для базы данных BPC. Файлы преобразования — это файлы Microsoft Excel,

содержащие одну таблицу с именем Инструкции.

Таблица инструкций содержит три раздела:

*Опции

*Мэппинг

*Пересчет

Файл пересчета (Conversion) — дает администратору возможность сопоставить имена

элементов внешних структур проекций с внутренними. В файл пересчета можно

поместить несколько листов, чтобы различные преобразования могли получить доступ

к одной рабочей книге. Можно создать отдельный файл пересчета для каждой

проекции. Смотрите п.Общая информация по использованию JavaScript в файлах

Transformation

Для всех проекций приложения должен быть задан мэппинг в файле

преобразования. Т.е., если в файле импорта отсутствует проекция (например,

DATASRC), следует использовать *NEWCOL (см. ниже).

Выбор опций (OPTIONS):

Список выбора *Опции файла преобразования содержит определения для различных

опций, которые можно задать для преобразования. Ниже перечислены доступные

опции и даны их описания.

- AMOUNTDECIMALPOINT=символ

По умолчанию: . (точка)

Позволяет задать отличный от точки десятичный разделитель, например, запятую.

Заданный в этой опции символ должен отличаться oт символа, указанного для

DELIMITER.

- CONVERTAMOUNTWDIM=имя_проекции

По умолчанию: Счет

Указание, к какой проекции обращаться при вычислении значений. Необходимо

указать лист преобразования проекции с помощью опции Сумма *Пересчет. Если в

столбце Формула листа пересчета сумм отсутствует формула, этот параметр не будет

Page 5: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

5 Transformation and Conversion

действовать. Например, столбец Формула содержит следующую формулу: Значение

*1.10. Все счета при пересчете будут увеличены на 10%. (См.ниже)

External Internal Formula

* * Value*1.10

- CREDITPOSITIVE= YES | NO

По умолчанию: YES

Если NO, то для всех сумм, относящихся к типу ACCOUNT (LEQ, INC), знак будет

изменен на противоположный.

- DELIMITER символ| SPACE | TAB

По умолчанию: , (запятая)

Если для опции FORMAT задано значение DELIMITED, эта опция определяет единый

символ, используемый для разделения столбцов. Воспользуйтесь ключевым словом

SPACE или TAB для определения в качестве разделителя пробела или знака табуляции

соответственно.

- FORMAT = DELIMITED | FIXED | VARIANT

Обязательный параметр

Формат данных в файле ввода или вывода. Необходимо указать тип формата. Значение

DELIMITED означает, что используется специальный символ разделения столбцов

данных, определенный в опции DELIMITER (см. выше). Значение FIXED означает, что

данные представлены в фиксированном поле.

По умолчанию: Значение по умолчанию отсутствует. Необходимо определить опцию.

- HEADER= YES | NO

По умолчанию: YES

Если выбрано YES, то файл ввода содержит одну строку заголовка, в которой

определены поля. Если строка заголовка отсутствует, можно сослаться на имя поля в

разделе MAPPING.

- MAXREJECTCOUNT=пустая_строка| -1 | положительное_число

По умолчанию: пустая_строка

При проверке записей — указывает количество отклоненных записей, на

которых необходимо остановить обработку. Значение -1 предполагает, что

Администратор данных должен продолжать обработку независимо от числа

отклоненных записей. Значение по умолчанию — 500, что может быть представлено

пустой строкой.

- ROUNDAMOUNT=целое_число

Обязательный параметр. Задает количество знаков после запятой для округления при

преобразовании.

При указании целого числа, оно должно быть положительным и больше нуля.

По умолчанию: округление не выполняется

- SKIP= целое_число

По умолчанию: 0 (ноль)

Page 6: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

6 Transformation and Conversion

Количество строк, которое следует пропустить в верхней части файла данных. Если

файл содержит заголовок, укажите его размер в строках.

- SKIPIF= текстовая_строка | текстовая_строка2

Обязательный параметр. По умолчанию: пустая_строка

Пропускает строки в файле данных, если файл начинается с указанных строк. Строки в

данном случае разделены символом (|). Если запись содержит <текстовую_строку>

или <текстовую_строку2>, запись будет пропущена. Установка этой опции для

пустой строки означает, что строки в теле файла данных пропускаться не будут. При

этом строки заголовка могут быть пропущены с помощью команды SKIP, описанной

выше. По умолчанию: <пустая_строка>

- VALIDATERECORDS= NO | YES

По умолчанию: NO

Если выбрано значение YES, перед импортом проверьте мэппинг и убедитесь в том,

что запись соответствует приложению BPC. В этом случае для идентификатора

элемента мэппинг не задан, поэтому конкретная запись будет отклонена в процессе

проверки и проигнорирована. Если файл импорта содержит дополнительные поля, для

которых не задан мэппинг, в процессе проверки все записи будут отклонены.

- SELECTION =

<Проекция1_тех.имя>,<Проекция1_значение>;<Проекция2_тех.имя>,<Проек

ция2_значение>

Эта опция используется только для импорта данных транзакции от провайдера

информации. При прогоне других пакетов она недопустима.

Опция SELECTION задает правила выбора при уточнении данных транзакции,

получаемых от провайдера. <Проекция1_тех.имя> — техническое имя проекции,

<Проекция1_значение> — значение

оператора Condition, заданного для этой проекции. Например, 0SX_ACCS,

US;0SX_CSLC, 1 представляет выбор оператора 0SX_ACCS=US и 0SX_CSLC= 1

По умолчанию: <пусто>

- FORMULA = LIB.LGF|LIB1.LGF

Эта опция используется только для импорта основных данных. При прогоне других

пакетов она недопустима. Содержится в CONVERSION.

Опция FORMULA задает функции K2, на которые ссылается атрибут формулы элемента

основных данных

Используемые библиотеки — syslib; префикс *syslib не требуется. Различные

библиотеки разделяются символом |.

Указание: Используется для загрузки основных данных

Пример: DAVY_KP1_DEV7A2_Q_Mdxlib_1.LGF| DAVY_KP1_DEV7A2_Q_Mdxlib_2.LGF

По умолчанию: <пусто>

1.2.2 Описание мэппинга (Mapping)

-CONVERT_INTERNAL = YES | NO

Если выбрано значение NO, имена элементов ввода будут сравниваться с внешним

столбцом в файле пересчета.

Page 7: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

7 Transformation and Conversion

Если выбрано значение YES, имена элементов ввода будут сравниваться с

внутренним столбцом в файле пересчета.

По умолчанию: NO

Не изменяйте значение по умолчанию. Этот параметр предусмотрен только для

совместимости с более старыми версиями. В новых версиях и BPC 7.0 и выше

необходимость в изменении значения этого параметра отсутствует.

Раздел мэппинга (MAPPING). Раздел *Мэппинг файла преобразования определяет, как

выполняется сопоставление данных с базой данных BPC.

Указание: По умолчанию, если в файле данных есть заголовок, Администратор данных

связывает поля с именами в заголовке. Это упрощает определение мэппинга в данном

разделе файла преобразования. Например, если есть строка заголовка, в которой

определен столбец с именем AccountVal, можно задать мэппинг (*mapping) между

проекцией Счет и полем Счет в файле данных следующим образом: Account =

AccountVal

Пример: Например, если есть строка заголовка, в которой определен столбец с именем

AccountVal, можно задать мэппинг между проекцией Счет и полем Счет в файле данных

следующим образом:

Account = AccountVal

- *COL(A)

A = указатель столбца в файле данных

Определяет проекцию для поля в файле данных, когда в файле данных отсутствует

строка заголовка. Если строка заголовка есть, см. примечание об автоматических

именах полей.

Пример: Account =*COL(2), 2 – указатель столбца в файле данных

- *COL(A, B:C)

A = указатель столбца в файле данных

B:C = позиция начала/конца в пределах столбца

Определяет проекцию для подмножества поля в файле данных.

Пример: Account=*COL(3,1:4), 3,1:4 – позиция начала/конца в пределах столбца, 3 –

указатель столбца в файле данных

- *FCOL(A:B)

A:B = позиция начала/конца в пределах строки данных

При использовании файлов данных в формате Fixed эта опция позволяет определить

символ начала и конца столбца для каждого поля. В приведенном ниже примере

столбцы с 4 по 7 представляют проекцию Счет.

Пример: Account=*FCOL(4:7), 4:7 – Позиция начала/конца в пределах строки данных

- *MVAL(A:B)

A:B = начальный/конечный столбец периода времени

Эта команда используется, если в файле данных содержатся столбцы различных

периодов времени.

Пример: Рассмотрим случай, когда имеются следующие столбцы:

Account,Category,DATASRC,Entity,IntCo,RptCURRENCY,JAN,FEB,MAR,APR,M

AY,JUN,JUL,AUG,SEP,OCT,NOV,DEC

Page 8: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

8 Transformation and Conversion

Поскольку столбцы с 7 по 18 содержат данные, основанные на периодах времени,

можно воспользоваться следующей командой: Time = *MVAL(7:18). Для этой

команды требуется применение листа пересчета Time.xls. Образец файла пересчета

Time.xls можно увидеть в имеющемся окне определения пересчета.

-*NEWCOL(A)

A = элемент проекции

Создает новое поле с заданным значением.

Пример: Account=*NEWCOL(Revenue), Revenue – Элемент проекции

- *Str(строка)

Добавляет текстовую строку к элементам столбца. Удобно при необходимости задать

мэппинг между полями файла данных и полями базы данных, имеющими одинаковые

имена, если имена полей не содержат дополнительные символы (в начале или в конце

имени).

Пример: Entity = *Str(NE) + *COL(1), добавляем строку «NE» к столбцу «1».

- *PAD

Используется для указания интервала для импортируемых полей.

Для вставки буквы A перед полем (таким, как идентификатор элемента) используйте

*PAD(A). Если поле содержит 123 перед командой, полученное значение будет A123.

- *If(Условие1 Действие1;Условие2 Действие2;Действие по умолчанию)

Условие1 - Если значение True, выполнить мэппинг с помощью Действия1

Условие2 - Если Условие1 — False, а Условие2 — True, выполнить мэппинг с помощью

Действия2

Действие по умолчанию - Если оба условия (Условие1 и Условие2) — False, выполнить

мэппинг с помощью Действия по умолчанию

Условие1 и Условие2 могут содержать несколько элементов, которые суммируются (с

помощью знака +), как в следующем примере:

Пример 1: Product=*if (Product+ID+Entity = *str(148552) then *str(MHarn);ID(1:1) =

*str(C) then *str(XX) ; *str(YY))

Пояснение: Это означает, что, если сумма продукта, идентификатор и значение

сущности равны 148552, значение продукта изменится на MHarn или В противном

случае, если первое значение поля ID равно C, то измените значение продукта на XX.

В противном случае измените значение продукта на YY.

Указание: Функцию *STR() следует использовать при вычислении числовых констант

в операторе *IF.

Пример 2: Допустим, имеются следующие данные: PRODUCT,ID,ENTITY,14,85,52,

AB,CD,EF,GH,IJ,KL. Формула мэппинга (Mapping):

Product=*IF (product+ID+Entity=*Str(148552) then *str(MHarn);ID(1:1) =

*str(C) then *str(XX) ; *str(YY))

В результате получим: PRODUCT,ID,ENTITY,MHarn,85,52,AB,XX,EF,YY,IJ,KL

Допустим, имеются следующие данные:

Entity, SEntity

U1000000, US01

Z2000A01, CA03

Page 9: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

9 Transformation and Conversion

K3430000, JP04

Формула мэппинга (Mapping):

Entity=*IF(*col(1,1:1)=U then SEntity;*col(1,1:1)=Z then *col(1,3:6);

*STR(ERR))

В результате получим:

Entity, SEntity

US01, US01

A01, CA03

ERR, JP04

1.2.3. Раздел пересчета Раздел *CONVERSION файла преобразования определяет, какие листы пересчета следует использовать с какими проекциями, и имеет следующий синтаксис: Dimension Name = [COMPANY]WorkbookName[!SheetName]

Page 10: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

10 Transformation and Conversion

2. Общая информация по использованию JavaScript в файлах

Transformation

Файлы пересчета определяют мэппинг (по проекциям) от имени внешних элементов к именам внутренних элементов. Они также предоставляют возможность выполнения арифметических операций и операций округления данных в процессе пересчета. Для каждой проекции в преобразовании создается один файл пересчета. Каждый файл пересчета может содержать один или более листов для различных типов преобразования данных. Рекомендуется давать файлам пересчета такие же имена, как и проекциям, для которых они созданы.

Администратор данных поддерживает скрипты VB в файлах пересчета. Хоть в

некоторых случаях и можно успешно использовать VBA, мы не можем гарантировать

работу с BPC для Excel. Для использования JavaScript убедитесь, что следующие

параметры настроены, как указано ниже:

- CONVERT_INTERNAL

o Если опция преобразования Convert_internal = NO, Javascript можно

использовать в столбце Internal.

o Если опция преобразования Convert_internal = YES, Javascript можно

использовать в столбце External.

o Перед кодом JavaScript добавьте строку ‘js:’ — это обязательное условие.

o Код JavaScript также можно использовать и в операторах IF.

- Примеры:

o js: %external%.substring(0,2) - Возвращает Long с указанием количества

символов в строке

o js: %external%.length - Возвращает длину строки, содержащейся в

External.

o js: %external%.replace("яблоки", "апельсины") - Возвращает строку, в

которой указанная подстрока заменена другой подстрокой заданное число

раз.

o JavaScript можно использовать в столбце FORMULA

- Примеры:

o js:Math.round(VALUE*Math.pow(10,2))/Math.pow(10,2); - При исходном

значении 200.356 конечное значение будет равно 200.36

2.1 Объем функций

*SKIP

При необходимости игнорирования определенных внешних данных в столбец Internal

можно поместить ключевое слово *SKIP, как показано в следующем примере.

External Internal

ACCPAY *skip

Подстановочные знаки

Page 11: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

11 Transformation and Conversion

В столбцах External и Internal можно использовать подстановочные знаки (*) и (?).

(*) - обозначает ЛЮБОЙ символ;

(?) – обозначает ЛЮБОЙ ОДИН символ.

Например, для указания всех элементов используйте звездочку (*). При этом,

например, формула будет применена ко всем элементам. В следующем примере

показано, как увеличить все элементы на 10%:

External Internal Formula

* * Value*1.10

2.2 Пример файла преобразования (Transformation)

При копировании или импорте данных между приложениями, когда возникает

необходимость в сопоставлении различных проекций, можно создать файл

преобразования, в котором сопоставлены проекции.

Например, в исходном приложении имеются проекции "Category", "Account", "Entity", "Time", "CurrencyType", "Intco" и "Datasrc", а в целевом приложении

имеются проекции «MM_FLOW», «MM_ENTITY», «MM_INTERC» и т.д.

Можно создать следующий файл преобразования. Пример 1:

*OPTIONS

FORMAT = DELIMITED

HEADER = YES

DELIMITER = ,

AMOUNTDECIMALPOINT = .

SKIP = 0

SKIPIF =

VALIDATERECORDS=NO

CREDITPOSITIVE=YES

MAXREJECTCOUNT=

ROUNDAMOUNT=

*MAPPING

FLOW=MM_FLOW

ENTITY=MM_ENTITY

INTERCO=MM_INTERC

ACCOUNT=MM_ACCNT

CURRENCYTYPE=MM_CURTYP

ELCOST=MM_ELCOST

TIME=0CALMONTH

CATEGORY=MM_VERS

C_CURRENCY=*NEWCOL(LC)

C_GROUP=*NEWCOL(G_NONE)

PAUDITID=*NEWCOL(DDL)

SEGMENT=*NEWCOL(S_NONE)

SIGNEDDATA=MM_AMOUNT

*CONVERSION

TIME=TIME_CONV.xls CATEGORY=PCATEGORY_CONV_VERS02.xls

Page 12: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

12 Transformation and Conversion

Пример 2:

FORMAT = DELIMITED

HEADER = YES

DELIMITER = ,

AMOUNTDECIMALPOINT = .

SKIP = 0

SKIPIF =

VALIDATERECORDS=NO

CREDITPOSITIVE=YES

MAXREJECTCOUNT=

ROUNDAMOUNT=

ENDROUTINE = FAKT_ACTUAL_PAYMENTS

*MAPPING

ANALYTIKA=*STR(AN_NE_OPR)

CFV=ZDGV_DEP

COMPANYA=*NEWCOL(C1020004456)

CTG_PARTNER=ZBANK

C_DOGOVOR=ZBANK_RAH

DJERELO_DANIH=ZBANK_VYP

DOGOVOR=ZDGV

KONTRAGENT=ZCUSTOMER

KVED=*STR(VD_NE_OPR)

POKAZATEL=*STR(PKZ010)

PROEKTY=*STR(PR_NE_OPR)

ROZSHIFROVKA=*STR(ROZ_NE_OPR)

RUHRAHUNK=ZRUHRAHUN

STATYABUDJ=ZDGV_ST

STATYABUDJ_C=*STR(CSB_NE_OPR)

TIME=0CALDAY

TRANSPORT=*STR(TR_NE_OPR)

VALUTA=*MVAL(0VALUE_LC|0LOC_CURRCY||0AMOUNT|0CURRENCY||0AMOCCC|0OBJ_CURR)

VERSIA=*NEWCOL(V_FAKT)

*CONVERSION TIME=Time_Convert.xls

Page 13: BLINOVDANIIL_Инструкция по преобразованию данных v01

BLINOVDANIIL.COM_______________________________________________________

[email protected]

13 Transformation and Conversion

3. Ресурсы

http://help.sap.com/saphelp_bpc70/helpdata/ru/5d/9a3fba600e4de29e2d1656

44d67bd1/content.htm

http://www.w3schools.com/jsref/jsref_obj_string.asp