Понадобилось тут экспортировать объекты из другой Sap системы. Но фишка в том, что часть объектов лежали в области имен партнера :)
В общем пока не прописал этот namespace в таблицах:
RSNSPACE
RSPSPACE
TRNSPACE
TRNSPACET
не переносилось... Единственно для TRNSPACE пришлось ключ уточнять у коллег.
"Если нельзя, но очень хочется, то можно". — Замечательно, — сказал Мюллер и поднял свою рюмку. — За ваше благополучное возвращение, за то, что вы блистательно выполнили свой долг, и за ваши филологические способности.
четверг, 23 апреля 2015 г.
понедельник, 16 марта 2015 г.
Upgrade 7.3.
Сделали upgrade c 7.02 SP11 на 7.3. SP12
Понравилась дока по изменениям в 7.3.
A
Включил в RSADMIN флаг RSPC_CUSTOMER_CONNECT, немного доп.функциональности для цепочек
B
Почему то стартовые цепочки перестали запускать подчиненные - решил переактивацией стартовых.
C
Возникла проблема с DTP. При загрузке технический статус - зеленый, overall status - желтый. Цепочка висит. Руками переводишь, всё ок.
Помогла нота 2029354 - Exception in the module RSD_HTTABS_GET_FOR_CHA_BAS / R7105
D
Возникла проблема с 0WBS_ELEMNT. В 7.3. стала более жесткая проверка на мастер-данные.
В частности, при загрузке в куб возникала ошибка при генерации SID'a, хотя до upgrade не было никаких проблем. Значение в мастер-данных было, SID был, короче всё хорошо, кроме того что не грузится.
Проблема оказалась в том, что в одной трансформации из-за специфики алгоритма сохранялось внешнее представление признака. И при генерации SID он не мог его конвертировать. Точнее мог, но в модуле RRSI_VAL_SID_SINGLE_CONVERT, FORM PLAUSIBLE_CHECK_CHAR стоит проверка.
В общем решил проблему дополнительной конвертацией значения к внутреннему представлению.
CALL FUNCTION 'CONVERSION_EXIT_WBSEL_INPUT'
EXPORTING
INPUT = SOURCE_FIELDS-/BIC/ZCOWCD
IMPORTING
OUTPUT = RESULT.
E
При переносе некоторых трансформаций возник дамп, перенос со статусом 12. Как в последствии оказалось, всего таких трансформаций было 11, но мне "повезло" на одну из них наткнуться сразу. Найти и полечить удалось с помощью программы RSTRAN_ROUT_RSFO_CHECK. Правда в каждой системе оказался свой набор "счастливчиков", и только 2 трансформации гордо пронесли свой статус ошибки (отсутствие подпрограммы) через все системы.
F
Случайно наткнулся при переносе. Исчезла кнопка обновлять все поля. И если ранее в result_package передавались весь набор полей, то теперь список этих полей можно определить самому, что в принципе должно дать прирост по скорости.
Но в момент upgrade похоже система проанализировала код и создавала свой список, где то удачно, а где то не очень...
Единственно что пока спасает, что несмотря на введения, система использует старые программы сгенерированные до upgrade, но естественно при попытке активации будут проблемы.
G
Добавил флаг RS_ENABLE_MD_SECONDARY_INDEXES на поиграться. Забавно что даже до добавления флага колонка в мастер-данных есть, но пустая.
H
При изменении трансформации с стандартным источником, возникла какая то ошибка версий.
Пока решили применением флага RSVERS_BI_IMPORT_ALL
I
При загрузке BI-статистики возникла проблема с преобразованием числа в timespamp с помощью подпрограммы TIMES.
В источнике 0TCT_IS21 (он из старых) timestamp представлен числом (000011) TYPE P DECIMALS 000007 >> 20,150,416,084,159.9480001
При передаче в показатель 0TCTTIMSTMP (Length 14) число округляется, т.е. 59 секунд превращается в 60, и соответственно система не может преобразовать 20150416 084160 в timestamp. Сделал в transfer structure truncate для числа.
J
Выгрузка ALV в Excel
548409 - ALV view: Consulting note about Integrated Excel & templates
Права на SPO-объекты и гибриды
1715267 - RSLPO_GUI026 - Initialization of semantically partitioned object cancelled
1432456 - Adjusting role templates: S_RS_HYBR and S_RS_LPOA added
K
Слетели галочки - релевантно для авторизации
1956404:Characteristics 0TCAIPROV, 0TCAACTVT, 0TCAVALID are no longer Authorization Relevant after Upgrade to BW7.3 or higher
Понравилась дока по изменениям в 7.3.
A
Включил в RSADMIN флаг RSPC_CUSTOMER_CONNECT, немного доп.функциональности для цепочек
B
Почему то стартовые цепочки перестали запускать подчиненные - решил переактивацией стартовых.
C
Возникла проблема с DTP. При загрузке технический статус - зеленый, overall status - желтый. Цепочка висит. Руками переводишь, всё ок.
Помогла нота 2029354 - Exception in the module RSD_HTTABS_GET_FOR_CHA_BAS / R7105
D
Возникла проблема с 0WBS_ELEMNT. В 7.3. стала более жесткая проверка на мастер-данные.
В частности, при загрузке в куб возникала ошибка при генерации SID'a, хотя до upgrade не было никаких проблем. Значение в мастер-данных было, SID был, короче всё хорошо, кроме того что не грузится.
Проблема оказалась в том, что в одной трансформации из-за специфики алгоритма сохранялось внешнее представление признака. И при генерации SID он не мог его конвертировать. Точнее мог, но в модуле RRSI_VAL_SID_SINGLE_CONVERT, FORM PLAUSIBLE_CHECK_CHAR стоит проверка.
В общем решил проблему дополнительной конвертацией значения к внутреннему представлению.
CALL FUNCTION 'CONVERSION_EXIT_WBSEL_INPUT'
EXPORTING
INPUT = SOURCE_FIELDS-/BIC/ZCOWCD
IMPORTING
OUTPUT = RESULT.
E
При переносе некоторых трансформаций возник дамп, перенос со статусом 12. Как в последствии оказалось, всего таких трансформаций было 11, но мне "повезло" на одну из них наткнуться сразу. Найти и полечить удалось с помощью программы RSTRAN_ROUT_RSFO_CHECK. Правда в каждой системе оказался свой набор "счастливчиков", и только 2 трансформации гордо пронесли свой статус ошибки (отсутствие подпрограммы) через все системы.
F
Случайно наткнулся при переносе. Исчезла кнопка обновлять все поля. И если ранее в result_package передавались весь набор полей, то теперь список этих полей можно определить самому, что в принципе должно дать прирост по скорости.
Но в момент upgrade похоже система проанализировала код и создавала свой список, где то удачно, а где то не очень...
Единственно что пока спасает, что несмотря на введения, система использует старые программы сгенерированные до upgrade, но естественно при попытке активации будут проблемы.
G
Добавил флаг RS_ENABLE_MD_SECONDARY_INDEXES на поиграться. Забавно что даже до добавления флага колонка в мастер-данных есть, но пустая.
H
При изменении трансформации с стандартным источником, возникла какая то ошибка версий.
Пока решили применением флага RSVERS_BI_IMPORT_ALL
I
При загрузке BI-статистики возникла проблема с преобразованием числа в timespamp с помощью подпрограммы TIMES.
В источнике 0TCT_IS21 (он из старых) timestamp представлен числом (000011) TYPE P DECIMALS 000007 >> 20,150,416,084,159.9480001
При передаче в показатель 0TCTTIMSTMP (Length 14) число округляется, т.е. 59 секунд превращается в 60, и соответственно система не может преобразовать 20150416 084160 в timestamp. Сделал в transfer structure truncate для числа.
J
Выгрузка ALV в Excel
548409 - ALV view: Consulting note about Integrated Excel & templates
Права на SPO-объекты и гибриды
1715267 - RSLPO_GUI026 - Initialization of semantically partitioned object cancelled
1432456 - Adjusting role templates: S_RS_HYBR and S_RS_LPOA added
K
Слетели галочки - релевантно для авторизации
1956404:Characteristics 0TCAIPROV, 0TCAACTVT, 0TCAVALID are no longer Authorization Relevant after Upgrade to BW7.3 or higher
четверг, 12 марта 2015 г.
Source system cannot use any of the proposed connection names, потеря системы
При восстановлении исходной системы в BI, система потерялась. Любые попытки, что то сделать в автоматическом режиме, заканчивались неудачей.
Проблема в том, что в исходной осталась запись с именем системы в таблице RSBASIDOC.
А т.к. имя систем там ключи, то не получалось создать "новую" систему.
Можно было удалить руками, но хотелось как более культурно. Поэтому удаление производил с помощью ФМ RSAP_BIW_DISCONNECT. Не забудьте поставить флажок FORCE_DELETE.
После этого система успешно подцепилась, и тиражировала все источники.
+ не оказалось записи о исходной системе в таблице RSSOURSYSTEM
Добавил через RSDG_SOURSYSTEM_MAINTAIN, по аналогии.
Дока
Ещё запустить RSTPRFC и настроить связь с клиентом для postprocessig'a
Проблема в том, что в исходной осталась запись с именем системы в таблице RSBASIDOC.
А т.к. имя систем там ключи, то не получалось создать "новую" систему.
Можно было удалить руками, но хотелось как более культурно. Поэтому удаление производил с помощью ФМ RSAP_BIW_DISCONNECT. Не забудьте поставить флажок FORCE_DELETE.
После этого система успешно подцепилась, и тиражировала все источники.
+ не оказалось записи о исходной системе в таблице RSSOURSYSTEM
Добавил через RSDG_SOURSYSTEM_MAINTAIN, по аналогии.
Дока
Ещё запустить RSTPRFC и настроить связь с клиентом для postprocessig'a
понедельник, 9 февраля 2015 г.
Exchange rate
RSCUR
RSIMPCURFILE - загрузка currency из файла
BAPI_EXCHRATE_CREATEMULTIPLE
RSIMPCURR - for scheduling job
TCURR Currency values
TCURC Currency codes
TCURT Currency name
TCURX Decimal places for currencies.
http://scn.sap.com/docs/DOC-47620
OB07 - ведение Exchange rate types
OB08 - ведение курсов в таблице TCURR
OBBS - maintance Currencies:Translation Ratios
CONVERT_TO_FOREIGN_CURRENCY- Translate local currency amount to foreign currency
CONVERT_TO_LOCAL_CURRENCY - Translate foreign currency amount to local currency
RSW_CURRENCY_TRANSLATION
READ_EXCHANGE_RATE to get the exchange rate.
В докидку если надо будет хранить курс в показателе
http://scn.sap.com/docs/DOC-12019
RSIMPCURFILE - загрузка currency из файла
BAPI_EXCHRATE_CREATEMULTIPLE
RSIMPCURR - for scheduling job
TCURR Currency values
TCURC Currency codes
TCURT Currency name
TCURX Decimal places for currencies.
http://scn.sap.com/docs/DOC-47620
OB07 - ведение Exchange rate types
OB08 - ведение курсов в таблице TCURR
OBBS - maintance Currencies:Translation Ratios
CONVERT_TO_FOREIGN_CURRENCY- Translate local currency amount to foreign currency
CONVERT_TO_LOCAL_CURRENCY - Translate foreign currency amount to local currency
RSW_CURRENCY_TRANSLATION
READ_EXCHANGE_RATE to get the exchange rate.
http://scn.sap.com/docs/DOC-12019
среда, 4 февраля 2015 г.
Вставка значений в инфо-пакет
Время от времени возникает задачи загрузки данных из исходной системы по определенным ограничениям. Проблема возникает, когда этих ограничений не пара десятков, а пара тысяч и более... и полная загрузка не возможна \ не желательна.
Можно конечно, создать отдельный признак или DSO откуда Вы будете считывать данные в ABAP рутине, а туда загружать файлом. Но есть путь проще...
Используя OLAP переменную вызвать стандартный диалог ввода значений. После запуска пакета Вы получите диалог ввода значений.
Для универсальности я сделал customer-exit переменную на признаке 0TCTIOBJVAL (из тех.контента и 60CHAR) с следующими настройками.
CMOD:
И указать переменную в пакете
Готово.
Плюсы:
- OLAP переменная может быть вставлена на любую характеристику, любого пакета, любого источника - универсальность.
- пакеты обычно измеряемы в прод, т.о. вы готовы
- переменную можно использовать несколько раз в одном пакете
- значения ограничения введенные в ручную и через переменную работают вместе
Минусы:
- из-за универсальности, необходимо следить за форматом значений. т.е. если нужны ведущие нули, будьте добры добавить. Но для спорадических задач по загрузке больших блоков данных этого более чем достаточно.
Особенности: Количество передаваемых ограничений через параметры ограничено и зависит от размера характеристики. Ноту я не нашел.... но 700 значений за раз я передавал.
Доработки:
Можно сделать несколько таких переменных, с преобразованием значения признака и подключенным search help. Для этого при вызове COMPLEX_SELECTIONS_DIALOG использовать параметры:
SEARCH_HELP
TAB_AND_FIELD
Можно конечно, создать отдельный признак или DSO откуда Вы будете считывать данные в ABAP рутине, а туда загружать файлом. Но есть путь проще...
Используя OLAP переменную вызвать стандартный диалог ввода значений. После запуска пакета Вы получите диалог ввода значений.
CMOD:
IF I_STEP = 0 AND I_VNAM = 'ZC_SO_0TCTIOBJVAL'.
CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
EXPORTING
* TITLE = ' '
TEXT = 'Enter correct values'
* SIGNED = 'X'
* LOWER_CASE = ' '
* NO_INTERVAL_CHECK = ' '
* JUST_DISPLAY = ' '
JUST_INCL = 'X'
* EXCLUDED_OPTIONS =
* DESCRIPTION =
* HELP_FIELD =
* SEARCH_HELP =
* TAB_AND_FIELD =
TABLES
RANGE = E_T_RANGE
EXCEPTIONS
NO_RANGE_TAB = 1
CANCELLED = 2
INTERNAL_ERROR = 3
INVALID_FIELDNAME = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
И указать переменную в пакете
Готово.
Плюсы:
- OLAP переменная может быть вставлена на любую характеристику, любого пакета, любого источника - универсальность.
- пакеты обычно измеряемы в прод, т.о. вы готовы
- переменную можно использовать несколько раз в одном пакете
- значения ограничения введенные в ручную и через переменную работают вместе
Минусы:
- из-за универсальности, необходимо следить за форматом значений. т.е. если нужны ведущие нули, будьте добры добавить. Но для спорадических задач по загрузке больших блоков данных этого более чем достаточно.
Особенности: Количество передаваемых ограничений через параметры ограничено и зависит от размера характеристики. Ноту я не нашел.... но 700 значений за раз я передавал.
Доработки:
Можно сделать несколько таких переменных, с преобразованием значения признака и подключенным search help. Для этого при вызове COMPLEX_SELECTIONS_DIALOG использовать параметры:
SEARCH_HELP
TAB_AND_FIELD
Цепочки
Цепочка с задержкой
RSPCLOGCHAIN
RSPCCHAIN
RSPCVARIANT
SE37 - RSPC_VARIANT_DELETE
Коллегам тут понадобилось организовать запуск процесса с задержкой. Очень было
удобно организовать это с помощью опции Debug Loop.
Тестовый пример реализации:
Обработка ошибок
Далее... необходимо было чтобы цепочка завершалась с зеленым статусом, в
случае если произошла предусмотренная ошибка (красная линия). Данная настройка
как раз позволяет это сделать. В случае если в цепочке произойдет сбой без
обработчика - статус будет красным.
Сообщения привязанные к этой цепочке (снаружи) отрабатывали согласно статусу
цепочки.
Process Chain \ Attributes \ Process status valuation
запуск ABAP
Казалось бы, какие могут быть вопросы.
Но попали на нюанс, что ALEREMOTE не имел достаточным прав в продуктиве (се ля
ви) и нужно запускать под другим пользователем. И да, ошибка авторизации не
всплывала как ошибка, ABAP программа отрабатывала "успешно" с зеленым
статусом.
Process Chain \ Attributes \ Execution User
Если ABAP программа склонна к дампу, то лучше её обернуть в цепочку. В общем,
при дампе программы просто прерывалось выполнение всей цепочки. Обернутая же,
и продолжала выполнение, и статус возвращала.
Цикл
Для циклической загрузки данных удобно использовать элемент Previous Run Active? а саму цепочку запланировать выполняться каждые 20 минут.Если нужна будут выборки, ну приодеться повозиться с переменными и TVARV.
Интересное решение на основе статистики SAP BI - Load Schedule Map
И ещё - BW Tools - /SSA/BWT
пятница, 19 декабря 2014 г.
Attribute Only
Неожиданно выстрелила галка Attribute Only.
Такой признак свободно добавляется в DSO, в отличие от куба, но при этом если Вы строите отчет на DSO или пытаетесь воспользоваться транзакцией listcube - его не видно. Вот такой вот сюрприз.
Такой признак свободно добавляется в DSO, в отличие от куба, но при этом если Вы строите отчет на DSO или пытаетесь воспользоваться транзакцией listcube - его не видно. Вот такой вот сюрприз.
Подписаться на:
Сообщения (Atom)







