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